mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-07 13:54:47 +03:00
Merge branch 'master' into fix-type-annotations
This commit is contained in:
commit
5c9b782a54
|
@ -19,9 +19,16 @@ env:
|
|||
- TOX_ENV=py27-django110
|
||||
- TOX_ENV=py35-django110
|
||||
- TOX_ENV=py34-django110
|
||||
- TOX_ENV=py27-djangomaster
|
||||
- TOX_ENV=py34-djangomaster
|
||||
- TOX_ENV=py35-djangomaster
|
||||
|
||||
matrix:
|
||||
fast_finish: true
|
||||
allow_failures:
|
||||
- env: TOX_ENV=py27-djangomaster
|
||||
- env: TOX_ENV=py34-djangomaster
|
||||
- env: TOX_ENV=py35-djangomaster
|
||||
|
||||
install:
|
||||
# Virtualenv < 14 is required to keep the Python 3.2 builds running.
|
||||
|
|
24
README.md
24
README.md
|
@ -11,8 +11,23 @@ Full documentation for the project is available at [http://www.django-rest-frame
|
|||
|
||||
---
|
||||
|
||||
**Funding**: If you use REST framework commercially we strongly encourage you to
|
||||
invest in its continued development by [signing up for paid plan](https://fund.django-rest-framework.org/topics/funding/).
|
||||
# Funding
|
||||
|
||||
REST framework is a *collaboratively funded project*. If you use
|
||||
REST framework commercially we strongly encourage you to invest in its
|
||||
continued development by **[signing up for a paid plan][funding]**.
|
||||
|
||||
The initial aim is to provide a single full-time position on REST framework.
|
||||
Right now we're over 58% of the way towards achieving that.
|
||||
*Every single sign-up makes a significant impact.*
|
||||
|
||||
<p align="center">
|
||||
<a href="http://jobs.rover.com/"><img src="https://raw.githubusercontent.com/tomchristie/django-rest-framework/master/docs/img/premium/rover-readme.png"/></a>
|
||||
<a href="https://getsentry.com/welcome/"><img src="https://raw.githubusercontent.com/tomchristie/django-rest-framework/master/docs/img/premium/sentry-readme.png"/></a>
|
||||
<a href="https://getstream.io/?utm_source=drf&utm_medium=banner&utm_campaign=drf"><img src="https://raw.githubusercontent.com/tomchristie/django-rest-framework/master/docs/img/premium/stream-readme.png"/></a>
|
||||
</p>
|
||||
|
||||
*Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Rover](http://jobs.rover.com/), [Sentry](https://getsentry.com/welcome/), and [Stream](https://getstream.io/?utm_source=drf&utm_medium=banner&utm_campaign=drf).*
|
||||
|
||||
---
|
||||
|
||||
|
@ -37,7 +52,7 @@ There is a live example API for testing purposes, [available here][sandbox].
|
|||
# Requirements
|
||||
|
||||
* Python (2.7, 3.2, 3.3, 3.4, 3.5)
|
||||
* Django (1.8, 1.9)
|
||||
* Django (1.8, 1.9, 1.10)
|
||||
|
||||
# Installation
|
||||
|
||||
|
@ -169,6 +184,9 @@ Send a description of the issue via email to [rest-framework-security@googlegrou
|
|||
[group]: https://groups.google.com/forum/?fromgroups#!forum/django-rest-framework
|
||||
[sandbox]: http://restframework.herokuapp.com/
|
||||
|
||||
[funding]: https://fund.django-rest-framework.org/topics/funding/
|
||||
[sponsors]: https://fund.django-rest-framework.org/topics/funding/#our-sponsors
|
||||
|
||||
[oauth1-section]: http://www.django-rest-framework.org/api-guide/authentication/#django-rest-framework-oauth
|
||||
[oauth2-section]: http://www.django-rest-framework.org/api-guide/authentication/#django-oauth-toolkit
|
||||
[serializer-section]: http://www.django-rest-framework.org/api-guide/serializers/#serializers
|
||||
|
|
|
@ -44,7 +44,7 @@ The default authentication schemes may be set globally, using the `DEFAULT_AUTHE
|
|||
}
|
||||
|
||||
You can also set the authentication scheme on a per-view or per-viewset basis,
|
||||
using the `APIView` class based views.
|
||||
using the `APIView` class-based views.
|
||||
|
||||
from rest_framework.authentication import SessionAuthentication, BasicAuthentication
|
||||
from rest_framework.permissions import IsAuthenticated
|
||||
|
@ -207,6 +207,10 @@ The `obtain_auth_token` view will return a JSON response when valid `username` a
|
|||
|
||||
Note that the default `obtain_auth_token` view explicitly uses JSON requests and responses, rather than using default renderer and parser classes in your settings. If you need a customized version of the `obtain_auth_token` view, you can do so by overriding the `ObtainAuthToken` view class, and using that in your url conf instead.
|
||||
|
||||
By default there are no permissions or throttling applied to the `obtain_auth_token` view. If you do wish to apply throttling you'll need to override the view class,
|
||||
and include them using the `throttle_classes` attribute.
|
||||
|
||||
|
||||
##### With Django admin
|
||||
|
||||
It is also possible to create Tokens manually through admin interface. In case you are using a large user base, we recommend that you monkey patch the `TokenAdmin` class to customize it to your needs, more specifically by declaring the `user` field as `raw_field`.
|
||||
|
|
|
@ -77,7 +77,7 @@ The default content negotiation class may be set globally, using the `DEFAULT_CO
|
|||
'DEFAULT_CONTENT_NEGOTIATION_CLASS': 'myapp.negotiation.IgnoreClientContentNegotiation',
|
||||
}
|
||||
|
||||
You can also set the content negotiation used for an individual view, or viewset, using the `APIView` class based views.
|
||||
You can also set the content negotiation used for an individual view, or viewset, using the `APIView` class-based views.
|
||||
|
||||
from myapp.negotiation import IgnoreClientContentNegotiation
|
||||
from rest_framework.response import Response
|
||||
|
|
|
@ -261,9 +261,10 @@ Corresponds to `django.db.models.fields.DecimalField`.
|
|||
|
||||
- `max_digits` The maximum number of digits allowed in the number. Note that this number must be greater than or equal to decimal_places.
|
||||
- `decimal_places` The number of decimal places to store with the number.
|
||||
- `coerce_to_string` Set to `True` if string values should be returned for the representation, or `False` if `Decimal` objects should be returned. Defaults to the same value as the `COERCE_DECIMAL_TO_STRING` settings key, which will be `True` unless overridden. If `Decimal` objects are returned by the serializer, then the final output format will be determined by the renderer.
|
||||
- `coerce_to_string` Set to `True` if string values should be returned for the representation, or `False` if `Decimal` objects should be returned. Defaults to the same value as the `COERCE_DECIMAL_TO_STRING` settings key, which will be `True` unless overridden. If `Decimal` objects are returned by the serializer, then the final output format will be determined by the renderer. Note that setting `localize` will force the value to `True`.
|
||||
- `max_value` Validate that the number provided is no greater than this value.
|
||||
- `min_value` Validate that the number provided is no less than this value.
|
||||
- `localize` Set to `True` to enable localization of input and output based on the current locale. This will also force `coerce_to_string` to `True`. Defaults to `False`. Note that data formatting is enabled if you have set `USE_L10N=True` in your settings file.
|
||||
|
||||
#### Example usage
|
||||
|
||||
|
|
|
@ -96,7 +96,7 @@ The default filter backends may be set globally, using the `DEFAULT_FILTER_BACKE
|
|||
}
|
||||
|
||||
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 myapp.serializers import UserSerializer
|
||||
|
@ -178,8 +178,8 @@ For more advanced filtering requirements you can specify a `FilterSet` class tha
|
|||
from rest_framework import generics
|
||||
|
||||
class ProductFilter(filters.FilterSet):
|
||||
min_price = django_filters.NumberFilter(name="price", lookup_type='gte')
|
||||
max_price = django_filters.NumberFilter(name="price", lookup_type='lte')
|
||||
min_price = django_filters.NumberFilter(name="price", lookup_expr='gte')
|
||||
max_price = django_filters.NumberFilter(name="price", lookup_expr='lte')
|
||||
class Meta:
|
||||
model = Product
|
||||
fields = ['category', 'in_stock', 'min_price', 'max_price']
|
||||
|
|
|
@ -42,7 +42,7 @@ When using `format_suffix_patterns`, you must make sure to add the `'format'` ke
|
|||
def comment_list(request, format=None):
|
||||
# do stuff...
|
||||
|
||||
Or with class based views:
|
||||
Or with class-based views:
|
||||
|
||||
class CommentList(APIView):
|
||||
def get(self, request, format=None):
|
||||
|
|
|
@ -7,7 +7,7 @@ source: mixins.py
|
|||
>
|
||||
> — [Django Documentation][cite]
|
||||
|
||||
One of the key benefits of class based views is the way they allow you to compose bits of reusable behavior. REST framework takes advantage of this by providing a number of pre-built views that provide for commonly used patterns.
|
||||
One of the key benefits of class-based views is the way they allow you to compose bits of reusable behavior. REST framework takes advantage of this by providing a number of pre-built views that provide for commonly used patterns.
|
||||
|
||||
The generic views provided by REST framework allow you to quickly build API views that map closely to your database models.
|
||||
|
||||
|
|
|
@ -47,7 +47,7 @@ You can then apply your new style to a view using the `.pagination_class` attrib
|
|||
|
||||
class BillingRecordsView(generics.ListAPIView):
|
||||
queryset = Billing.objects.all()
|
||||
serializer = BillingRecordsSerializer
|
||||
serializer_class = BillingRecordsSerializer
|
||||
pagination_class = LargeResultsSetPagination
|
||||
|
||||
Or apply the style globally, using the `DEFAULT_PAGINATION_CLASS` settings key. For example:
|
||||
|
|
|
@ -35,7 +35,7 @@ The default set of parsers may be set globally, using the `DEFAULT_PARSER_CLASSE
|
|||
}
|
||||
|
||||
You can also set the parsers used for an individual view, or viewset,
|
||||
using the `APIView` class based views.
|
||||
using the `APIView` class-based views.
|
||||
|
||||
from rest_framework.parsers import JSONParser
|
||||
from rest_framework.response import Response
|
||||
|
|
|
@ -71,7 +71,7 @@ If not specified, this setting defaults to allowing unrestricted access:
|
|||
)
|
||||
|
||||
You can also set the authentication policy on a per-view, or per-viewset basis,
|
||||
using the `APIView` class based views.
|
||||
using the `APIView` class-based views.
|
||||
|
||||
from rest_framework.permissions import IsAuthenticated
|
||||
from rest_framework.response import Response
|
||||
|
|
|
@ -28,7 +28,7 @@ The default set of renderers may be set globally, using the `DEFAULT_RENDERER_CL
|
|||
}
|
||||
|
||||
You can also set the renderers used for an individual view, or viewset,
|
||||
using the `APIView` class based views.
|
||||
using the `APIView` class-based views.
|
||||
|
||||
from django.contrib.auth.models import User
|
||||
from rest_framework.renderers import JSONRenderer
|
||||
|
|
424
docs/api-guide/schemas.md
Normal file
424
docs/api-guide/schemas.md
Normal file
|
@ -0,0 +1,424 @@
|
|||
source: schemas.py
|
||||
|
||||
# Schemas
|
||||
|
||||
> A machine-readable [schema] describes what resources are available via the API, what their URLs are, how they are represented and what operations they support.
|
||||
>
|
||||
> — Heroku, [JSON Schema for the Heroku Platform API][cite]
|
||||
|
||||
API schemas are a useful tool that allow for a range of use cases, including
|
||||
generating reference documentation, or driving dynamic client libraries that
|
||||
can interact with your API.
|
||||
|
||||
## Representing schemas internally
|
||||
|
||||
REST framework uses [Core API][coreapi] in order to model schema information in
|
||||
a format-independent representation. This information can then be rendered
|
||||
into various different schema formats, or used to generate API documentation.
|
||||
|
||||
When using Core API, a schema is represented as a `Document` which is the
|
||||
top-level container object for information about the API. Available API
|
||||
interactions are represented using `Link` objects. Each link includes a URL,
|
||||
HTTP method, and may include a list of `Field` instances, which describe any
|
||||
parameters that may be accepted by the API endpoint. The `Link` and `Field`
|
||||
instances may also include descriptions, that allow an API schema to be
|
||||
rendered into user documentation.
|
||||
|
||||
Here's an example of an API description that includes a single `search`
|
||||
endpoint:
|
||||
|
||||
coreapi.Document(
|
||||
title='Flight Search API',
|
||||
url='https://api.example.org/',
|
||||
content={
|
||||
'search': coreapi.Link(
|
||||
url='/search/',
|
||||
action='get',
|
||||
fields=[
|
||||
coreapi.Field(
|
||||
name='from',
|
||||
required=True,
|
||||
location='query',
|
||||
description='City name or airport code.'
|
||||
),
|
||||
coreapi.Field(
|
||||
name='to',
|
||||
required=True,
|
||||
location='query',
|
||||
description='City name or airport code.'
|
||||
),
|
||||
coreapi.Field(
|
||||
name='date',
|
||||
required=True,
|
||||
location='query',
|
||||
description='Flight date in "YYYY-MM-DD" format.'
|
||||
)
|
||||
],
|
||||
description='Return flight availability and prices.'
|
||||
)
|
||||
}
|
||||
)
|
||||
|
||||
## Schema output formats
|
||||
|
||||
In order to be presented in an HTTP response, the internal representation
|
||||
has to be rendered into the actual bytes that are used in the response.
|
||||
|
||||
[Core JSON][corejson] is designed as a canonical format for use with Core API.
|
||||
REST framework includes a renderer class for handling this media type, which
|
||||
is available as `renderers.CoreJSONRenderer`.
|
||||
|
||||
Other schema formats such as [Open API][open-api] ("Swagger"),
|
||||
[JSON HyperSchema][json-hyperschema], or [API Blueprint][api-blueprint] can
|
||||
also be supported by implementing a custom renderer class.
|
||||
|
||||
## Schemas vs Hypermedia
|
||||
|
||||
It's worth pointing out here that Core API can also be used to model hypermedia
|
||||
responses, which present an alternative interaction style to API schemas.
|
||||
|
||||
With an API schema, the entire available interface is presented up-front
|
||||
as a single endpoint. Responses to individual API endpoints are then typically
|
||||
presented as plain data, without any further interactions contained in each
|
||||
response.
|
||||
|
||||
With Hypermedia, the client is instead presented with a document containing
|
||||
both data and available interactions. Each interaction results in a new
|
||||
document, detailing both the current state and the available interactions.
|
||||
|
||||
Further information and support on building Hypermedia APIs with REST framework
|
||||
is planned for a future version.
|
||||
|
||||
---
|
||||
|
||||
# Adding a schema
|
||||
|
||||
You'll need to install the `coreapi` package in order to add schema support
|
||||
for REST framework.
|
||||
|
||||
pip install coreapi
|
||||
|
||||
REST framework includes functionality for auto-generating a schema,
|
||||
or allows you to specify one explicitly. There are a few different ways to
|
||||
add a schema to your API, depending on exactly what you need.
|
||||
|
||||
## Using DefaultRouter
|
||||
|
||||
If you're using `DefaultRouter` then you can include an auto-generated schema,
|
||||
simply by adding a `schema_title` argument to the router.
|
||||
|
||||
router = DefaultRouter(schema_title='Server Monitoring API')
|
||||
|
||||
The schema will be included at the root URL, `/`, and presented to clients
|
||||
that include the Core JSON media type in their `Accept` header.
|
||||
|
||||
$ http http://127.0.0.1:8000/ Accept:application/vnd.coreapi+json
|
||||
HTTP/1.0 200 OK
|
||||
Allow: GET, HEAD, OPTIONS
|
||||
Content-Type: application/vnd.coreapi+json
|
||||
|
||||
{
|
||||
"_meta": {
|
||||
"title": "Server Monitoring API"
|
||||
},
|
||||
"_type": "document",
|
||||
...
|
||||
}
|
||||
|
||||
This is a great zero-configuration option for when you want to get up and
|
||||
running really quickly.
|
||||
|
||||
The only other available option to `DefaultRouter` is `schema_renderers`, which
|
||||
may be used to pass the set of renderer classes that can be used to render
|
||||
schema output.
|
||||
|
||||
from rest_framework.renderers import CoreJSONRenderer
|
||||
from my_custom_package import APIBlueprintRenderer
|
||||
|
||||
router = DefaultRouter(schema_title='Server Monitoring API', schema_renderers=[
|
||||
CoreJSONRenderer, APIBlueprintRenderer
|
||||
])
|
||||
|
||||
If you want more flexibility over the schema output then you'll need to consider
|
||||
using `SchemaGenerator` instead.
|
||||
|
||||
## Using SchemaGenerator
|
||||
|
||||
The most common way to add a schema to your API is to use the `SchemaGenerator`
|
||||
class to auto-generate the `Document` instance, and to return that from a view.
|
||||
|
||||
This option gives you the flexibility of setting up the schema endpoint
|
||||
with whatever behavior you want. For example, you can apply different
|
||||
permission, throttling or authentication policies to the schema endpoint.
|
||||
|
||||
Here's an example of using `SchemaGenerator` together with a view to
|
||||
return the schema.
|
||||
|
||||
**views.py:**
|
||||
|
||||
from rest_framework.decorators import api_view, renderer_classes
|
||||
from rest_framework import renderers, response, schemas
|
||||
|
||||
|
||||
@api_view()
|
||||
@renderer_classes([renderers.CoreJSONRenderer])
|
||||
def schema_view(request):
|
||||
generator = schemas.SchemaGenerator(title='Bookings API')
|
||||
return response.Response(generator.get_schema())
|
||||
|
||||
**urls.py:**
|
||||
|
||||
urlpatterns = [
|
||||
url('/', schema_view),
|
||||
...
|
||||
]
|
||||
|
||||
You can also serve different schemas to different users, depending on the
|
||||
permissions they have available. This approach can be used to ensure that
|
||||
unauthenticated requests are presented with a different schema to
|
||||
authenticated requests, or to ensure that different parts of the API are
|
||||
made visible to different users depending on their role.
|
||||
|
||||
In order to present a schema with endpoints filtered by user permissions,
|
||||
you need to pass the `request` argument to the `get_schema()` method, like so:
|
||||
|
||||
@api_view()
|
||||
@renderer_classes([renderers.CoreJSONRenderer])
|
||||
def schema_view(request):
|
||||
generator = schemas.SchemaGenerator(title='Bookings API')
|
||||
return response.Response(generator.get_schema(request=request))
|
||||
|
||||
## Explicit schema definition
|
||||
|
||||
An alternative to the auto-generated approach is to specify the API schema
|
||||
explicitly, by declaring a `Document` object in your codebase. Doing so is a
|
||||
little more work, but ensures that you have full control over the schema
|
||||
representation.
|
||||
|
||||
import coreapi
|
||||
from rest_framework.decorators import api_view, renderer_classes
|
||||
from rest_framework import renderers, response
|
||||
|
||||
schema = coreapi.Document(
|
||||
title='Bookings API',
|
||||
content={
|
||||
...
|
||||
}
|
||||
)
|
||||
|
||||
@api_view()
|
||||
@renderer_classes([renderers.CoreJSONRenderer])
|
||||
def schema_view(request):
|
||||
return response.Response(schema)
|
||||
|
||||
## Static schema file
|
||||
|
||||
A final option is to write your API schema as a static file, using one
|
||||
of the available formats, such as Core JSON or Open API.
|
||||
|
||||
You could then either:
|
||||
|
||||
* Write a schema definition as a static file, and [serve the static file directly][static-files].
|
||||
* Write a schema definition that is loaded using `Core API`, and then
|
||||
rendered to one of many available formats, depending on the client request.
|
||||
|
||||
---
|
||||
|
||||
# Alternate schema formats
|
||||
|
||||
In order to support an alternate schema format, you need to implement a custom renderer
|
||||
class that handles converting a `Document` instance into a bytestring representation.
|
||||
|
||||
If there is a Core API codec package that supports encoding into the format you
|
||||
want to use then implementing the renderer class can be done by using the codec.
|
||||
|
||||
## Example
|
||||
|
||||
For example, the `openapi_codec` package provides support for encoding or decoding
|
||||
to the Open API ("Swagger") format:
|
||||
|
||||
from rest_framework import renderers
|
||||
from openapi_codec import OpenAPICodec
|
||||
|
||||
class SwaggerRenderer(renderers.BaseRenderer):
|
||||
media_type = 'application/openapi+json;version=2.0'
|
||||
format = 'swagger'
|
||||
|
||||
def render(self, data, media_type=None, renderer_context=None):
|
||||
codec = OpenAPICodec()
|
||||
return codec.dump(data)
|
||||
|
||||
---
|
||||
|
||||
# API Reference
|
||||
|
||||
## SchemaGenerator
|
||||
|
||||
A class that deals with introspecting your API views, which can be used to
|
||||
generate a schema.
|
||||
|
||||
Typically you'll instantiate `SchemaGenerator` with a single argument, like so:
|
||||
|
||||
generator = SchemaGenerator(title='Stock Prices API')
|
||||
|
||||
Arguments:
|
||||
|
||||
* `title` - The name of the API. **required**
|
||||
* `patterns` - A list of URLs to inspect when generating the schema. Defaults to the project's URL conf.
|
||||
* `urlconf` - A URL conf module name to use when generating the schema. Defaults to `settings.ROOT_URLCONF`.
|
||||
|
||||
### get_schema()
|
||||
|
||||
Returns a `coreapi.Document` instance that represents the API schema.
|
||||
|
||||
@api_view
|
||||
@renderer_classes([renderers.CoreJSONRenderer])
|
||||
def schema_view(request):
|
||||
generator = schemas.SchemaGenerator(title='Bookings API')
|
||||
return Response(generator.get_schema())
|
||||
|
||||
Arguments:
|
||||
|
||||
* `request` - The incoming request. Optionally used if you want to apply per-user permissions to the schema-generation.
|
||||
|
||||
---
|
||||
|
||||
## Core API
|
||||
|
||||
This documentation gives a brief overview of the components within the `coreapi`
|
||||
package that are used to represent an API schema.
|
||||
|
||||
Note that these classes are imported from the `coreapi` package, rather than
|
||||
from the `rest_framework` package.
|
||||
|
||||
### Document
|
||||
|
||||
Represents a container for the API schema.
|
||||
|
||||
#### `title`
|
||||
|
||||
A name for the API.
|
||||
|
||||
#### `url`
|
||||
|
||||
A canonical URL for the API.
|
||||
|
||||
#### `content`
|
||||
|
||||
A dictionary, containing the `Link` objects that the schema contains.
|
||||
|
||||
In order to provide more structure to the schema, the `content` dictionary
|
||||
may be nested, typically to a second level. For example:
|
||||
|
||||
content={
|
||||
"bookings": {
|
||||
"list": Link(...),
|
||||
"create": Link(...),
|
||||
...
|
||||
},
|
||||
"venues": {
|
||||
"list": Link(...),
|
||||
...
|
||||
},
|
||||
...
|
||||
}
|
||||
|
||||
### Link
|
||||
|
||||
Represents an individual API endpoint.
|
||||
|
||||
#### `url`
|
||||
|
||||
The URL of the endpoint. May be a URI template, such as `/users/{username}/`.
|
||||
|
||||
#### `action`
|
||||
|
||||
The HTTP method associated with the endpoint. Note that URLs that support
|
||||
more than one HTTP method, should correspond to a single `Link` for each.
|
||||
|
||||
#### `fields`
|
||||
|
||||
A list of `Field` instances, describing the available parameters on the input.
|
||||
|
||||
#### `description`
|
||||
|
||||
A short description of the meaning and intended usage of the endpoint.
|
||||
|
||||
### Field
|
||||
|
||||
Represents a single input parameter on a given API endpoint.
|
||||
|
||||
#### `name`
|
||||
|
||||
A descriptive name for the input.
|
||||
|
||||
#### `required`
|
||||
|
||||
A boolean, indicated if the client is required to included a value, or if
|
||||
the parameter can be omitted.
|
||||
|
||||
#### `location`
|
||||
|
||||
Determines how the information is encoded into the request. Should be one of
|
||||
the following strings:
|
||||
|
||||
**"path"**
|
||||
|
||||
Included in a templated URI. For example a `url` value of `/products/{product_code}/` could be used together with a `"path"` field, to handle API inputs in a URL path such as `/products/slim-fit-jeans/`.
|
||||
|
||||
These fields will normally correspond with [named arguments in the project URL conf][named-arguments].
|
||||
|
||||
**"query"**
|
||||
|
||||
Included as a URL query parameter. For example `?search=sale`. Typically for `GET` requests.
|
||||
|
||||
These fields will normally correspond with pagination and filtering controls on a view.
|
||||
|
||||
**"form"**
|
||||
|
||||
Included in the request body, as a single item of a JSON object or HTML form. For example `{"colour": "blue", ...}`. Typically for `POST`, `PUT` and `PATCH` requests. Multiple `"form"` fields may be included on a single link.
|
||||
|
||||
These fields will normally correspond with serializer fields on a view.
|
||||
|
||||
**"body"**
|
||||
|
||||
Included as the complete request body. Typically for `POST`, `PUT` and `PATCH` requests. No more than one `"body"` field may exist on a link. May not be used together with `"form"` fields.
|
||||
|
||||
These fields will normally correspond with views that use `ListSerializer` to validate the request input, or with file upload views.
|
||||
|
||||
#### `encoding`
|
||||
|
||||
**"application/json"**
|
||||
|
||||
JSON encoded request content. Corresponds to views using `JSONParser`.
|
||||
Valid only if either one or more `location="form"` fields, or a single
|
||||
`location="body"` field is included on the `Link`.
|
||||
|
||||
**"multipart/form-data"**
|
||||
|
||||
Multipart encoded request content. Corresponds to views using `MultiPartParser`.
|
||||
Valid only if one or more `location="form"` fields is included on the `Link`.
|
||||
|
||||
**"application/x-www-form-urlencoded"**
|
||||
|
||||
URL encoded request content. Corresponds to views using `FormParser`. Valid
|
||||
only if one or more `location="form"` fields is included on the `Link`.
|
||||
|
||||
**"application/octet-stream"**
|
||||
|
||||
Binary upload request content. Corresponds to views using `FileUploadParser`.
|
||||
Valid only if a `location="body"` field is included on the `Link`.
|
||||
|
||||
#### `description`
|
||||
|
||||
A short description of the meaning and intended usage of the input field.
|
||||
|
||||
|
||||
[cite]: https://blog.heroku.com/archives/2014/1/8/json_schema_for_heroku_platform_api
|
||||
[coreapi]: http://www.coreapi.org/
|
||||
[corejson]: http://www.coreapi.org/specification/encoding/#core-json-encoding
|
||||
[open-api]: https://openapis.org/
|
||||
[json-hyperschema]: http://json-schema.org/latest/json-schema-hypermedia.html
|
||||
[api-blueprint]: https://apiblueprint.org/
|
||||
[static-files]: https://docs.djangoproject.com/en/dev/howto/static-files/
|
||||
[named-arguments]: https://docs.djangoproject.com/en/dev/topics/http/urls/#named-groups
|
|
@ -876,7 +876,7 @@ There are four methods that can be overridden, depending on what functionality y
|
|||
* `.to_internal_value()` - Override this to support deserialization, for write operations.
|
||||
* `.create()` and `.update()` - Override either or both of these to support saving instances.
|
||||
|
||||
Because this class provides the same interface as the `Serializer` class, you can use it with the existing generic class based views exactly as you would for a regular `Serializer` or `ModelSerializer`.
|
||||
Because this class provides the same interface as the `Serializer` class, you can use it with the existing generic class-based views exactly as you would for a regular `Serializer` or `ModelSerializer`.
|
||||
|
||||
The only difference you'll notice when doing so is the `BaseSerializer` classes will not generate HTML forms in the browsable API. This is because the data they return does not include all the field information that would allow each field to be rendered into a suitable HTML input.
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ The `api_settings` object will check for any user-defined settings, and otherwis
|
|||
|
||||
## API policy settings
|
||||
|
||||
*The following settings control the basic API policies, and are applied to every `APIView` class based view, or `@api_view` function based view.*
|
||||
*The following settings control the basic API policies, and are applied to every `APIView` class-based view, or `@api_view` function based view.*
|
||||
|
||||
#### DEFAULT_RENDERER_CLASSES
|
||||
|
||||
|
@ -98,7 +98,7 @@ Default: `'rest_framework.negotiation.DefaultContentNegotiation'`
|
|||
|
||||
## Generic view settings
|
||||
|
||||
*The following settings control the behavior of the generic class based views.*
|
||||
*The following settings control the behavior of the generic class-based views.*
|
||||
|
||||
#### DEFAULT_PAGINATION_SERIALIZER_CLASS
|
||||
|
||||
|
@ -181,7 +181,7 @@ If set, this value will restrict the set of versions that may be returned by the
|
|||
|
||||
Default: `None`
|
||||
|
||||
#### VERSION_PARAMETER
|
||||
#### VERSION_PARAM
|
||||
|
||||
The string that should used for any versioning parameters, such as in the media type or URL query parameters.
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ The default throttling policy may be set globally, using the `DEFAULT_THROTTLE_C
|
|||
The rate descriptions used in `DEFAULT_THROTTLE_RATES` may include `second`, `minute`, `hour` or `day` as the throttle period.
|
||||
|
||||
You can also set the throttling policy on a per-view or per-viewset basis,
|
||||
using the `APIView` class based views.
|
||||
using the `APIView` class-based views.
|
||||
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.throttling import UserRateThrottle
|
||||
|
|
|
@ -156,7 +156,7 @@ If you want the date field to be entirely hidden from the user, then use `Hidden
|
|||
|
||||
---
|
||||
|
||||
# Advanced 'default' argument usage
|
||||
# Advanced field defaults
|
||||
|
||||
Validators that are applied across multiple fields in the serializer can sometimes require a field input that should not be provided by the API client, but that *is* available as input to the validator.
|
||||
|
||||
|
@ -188,6 +188,71 @@ It takes a single argument, which is the default value or callable that should b
|
|||
|
||||
---
|
||||
|
||||
# Limitations of validators
|
||||
|
||||
There are some ambiguous cases where you'll need to instead handle validation
|
||||
explicitly, rather than relying on the default serializer classes that
|
||||
`ModelSerializer` generates.
|
||||
|
||||
In these cases you may want to disable the automatically generated validators,
|
||||
by specifying an empty list for the serializer `Meta.validators` attribute.
|
||||
|
||||
## Optional fields
|
||||
|
||||
By default "unique together" validation enforces that all fields be
|
||||
`required=True`. In some cases, you might want to explicit apply
|
||||
`required=False` to one of the fields, in which case the desired behaviour
|
||||
of the validation is ambiguous.
|
||||
|
||||
In this case you will typically need to exclude the validator from the
|
||||
serializer class, and instead write any validation logic explicitly, either
|
||||
in the `.validate()` method, or else in the view.
|
||||
|
||||
For example:
|
||||
|
||||
class BillingRecordSerializer(serializers.ModelSerializer):
|
||||
def validate(self, data):
|
||||
# Apply custom validation either here, or in the view.
|
||||
|
||||
class Meta:
|
||||
fields = ('client', 'date', 'amount')
|
||||
extra_kwargs = {'client': {'required': 'False'}}
|
||||
validators = [] # Remove a default "unique together" constraint.
|
||||
|
||||
## Updating nested serializers
|
||||
|
||||
When applying an update to an existing instance, uniqueness validators will
|
||||
exclude the current instance from the uniqueness check. The current instance
|
||||
is available in the context of the uniqueness check, because it exists as
|
||||
an attribute on the serializer, having initially been passed using
|
||||
`instance=...` when instantiating the serializer.
|
||||
|
||||
In the case of update operations on *nested* serializers there's no way of
|
||||
applying this exclusion, because the instance is not available.
|
||||
|
||||
Again, you'll probably want to explicitly remove the validator from the
|
||||
serializer class, and write the code the for the validation constraint
|
||||
explicitly, in a `.validate()` method, or in the view.
|
||||
|
||||
## Debugging complex cases
|
||||
|
||||
If you're not sure exactly what behavior a `ModelSerializer` class will
|
||||
generate it is usually a good idea to run `manage.py shell`, and print
|
||||
an instance of the serializer, so that you can inspect the fields and
|
||||
validators that it automatically generates for you.
|
||||
|
||||
>>> serializer = MyComplexModelSerializer()
|
||||
>>> print(serializer)
|
||||
class MyComplexModelSerializer:
|
||||
my_fields = ...
|
||||
|
||||
Also keep in mind that with complex cases it can often be better to explicitly
|
||||
define your serializer classes, rather than relying on the default
|
||||
`ModelSerializer` behavior. This involves a little more code, but ensures
|
||||
that the resulting behavior is more transparent.
|
||||
|
||||
---
|
||||
|
||||
# Writing custom validators
|
||||
|
||||
You can use any of Django's existing validators, or write your own custom validators.
|
||||
|
@ -200,9 +265,9 @@ A validator may be any callable that raises a `serializers.ValidationError` on f
|
|||
if value % 2 != 0:
|
||||
raise serializers.ValidationError('This field must be an even number.')
|
||||
|
||||
## Class based
|
||||
## Class-based
|
||||
|
||||
To write a class based validator, use the `__call__` method. Class based validators are useful as they allow you to parameterize and reuse behavior.
|
||||
To write a class-based validator, use the `__call__` method. Class-based validators are useful as they allow you to parameterize and reuse behavior.
|
||||
|
||||
class MultipleOf(object):
|
||||
def __init__(self, base):
|
||||
|
@ -215,7 +280,7 @@ To write a class based validator, use the `__call__` method. Class based validat
|
|||
|
||||
#### Using `set_context()`
|
||||
|
||||
In some advanced cases you might want a validator to be passed the serializer field it is being used with as additional context. You can do so by declaring a `set_context` method on a class based validator.
|
||||
In some advanced cases you might want a validator to be passed the serializer field it is being used with as additional context. You can do so by declaring a `set_context` method on a class-based validator.
|
||||
|
||||
def set_context(self, serializer_field):
|
||||
# Determine if this is an update or a create operation.
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
source: decorators.py
|
||||
views.py
|
||||
|
||||
# Class Based Views
|
||||
# Class-based Views
|
||||
|
||||
> Django's class based views are a welcome departure from the old-style views.
|
||||
> Django's class-based views are a welcome departure from the old-style views.
|
||||
>
|
||||
> — [Reinout van Rees][cite]
|
||||
|
||||
|
@ -119,7 +119,7 @@ You won't typically need to override this method.
|
|||
|
||||
# Function Based Views
|
||||
|
||||
> Saying [that Class based views] is always the superior solution is a mistake.
|
||||
> Saying [that class-based views] is always the superior solution is a mistake.
|
||||
>
|
||||
> — [Nick Coghlan][cite2]
|
||||
|
||||
|
|
BIN
docs/img/corejson-format.png
Normal file
BIN
docs/img/corejson-format.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 20 KiB |
BIN
docs/img/premium/rover-readme.png
Normal file
BIN
docs/img/premium/rover-readme.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 52 KiB |
BIN
docs/img/premium/sentry-readme.png
Normal file
BIN
docs/img/premium/sentry-readme.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 24 KiB |
BIN
docs/img/premium/stream-readme.png
Normal file
BIN
docs/img/premium/stream-readme.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 19 KiB |
|
@ -1,3 +1,22 @@
|
|||
<style>
|
||||
.promo li a {
|
||||
float: left;
|
||||
width: 130px;
|
||||
height: 20px;
|
||||
text-align: center;
|
||||
margin: 10px 30px;
|
||||
padding: 150px 0 0 0;
|
||||
background-position: 0 50%;
|
||||
background-size: 130px auto;
|
||||
background-repeat: no-repeat;
|
||||
font-size: 120%;
|
||||
color: black;
|
||||
}
|
||||
.promo li {
|
||||
list-style: none;
|
||||
}
|
||||
</style>
|
||||
|
||||
<p class="badges" height=20px>
|
||||
<iframe src="http://ghbtns.com/github-btn.html?user=tomchristie&repo=django-rest-framework&type=watch&count=true" class="github-star-button" allowtransparency="true" frameborder="0" scrolling="0" width="110px" height="20px"></iframe>
|
||||
|
||||
|
@ -38,24 +57,28 @@ Some reasons you might want to use REST framework:
|
|||
* [Serialization][serializers] that supports both [ORM][modelserializer-section] and [non-ORM][serializer-section] data sources.
|
||||
* Customizable all the way down - just use [regular function-based views][functionview-section] if you don't need the [more][generic-views] [powerful][viewsets] [features][routers].
|
||||
* [Extensive documentation][index], and [great community support][group].
|
||||
* Used and trusted by large companies such as [Mozilla][mozilla] and [Eventbrite][eventbrite].
|
||||
* Used and trusted by internationally recognised companies including [Mozilla][mozilla], [Red Hat][redhat], [Heroku][heroku], and [Eventbrite][eventbrite].
|
||||
|
||||
---
|
||||
|
||||
We are a [collaboratively funded project](https://fund.django-rest-framework.org/topics/funding/).
|
||||
Many thanks to our sponsors for ensuring we can continue to develop, support and improve Django REST framework.
|
||||
## Funding
|
||||
|
||||
<a href="https://www.rover.com/" rel="nofollow" style="background-image:url(./img/rover.png);
|
||||
display:block;
|
||||
width: 300px;
|
||||
height: 0px;
|
||||
text-align: center;
|
||||
margin: 10px auto 30px;
|
||||
padding: 300px 0 0 0;
|
||||
background-position: 0 50%;
|
||||
background-size: 280px auto;
|
||||
background-repeat: no-repeat;
|
||||
font-size: 150%;">Rover.com</a>
|
||||
REST framework is a *collaboratively funded project*. If you use
|
||||
REST framework commercially we strongly encourage you to invest in its
|
||||
continued development by **[signing up for a paid plan][funding]**.
|
||||
|
||||
The initial aim is to provide a single full-time position on REST framework.
|
||||
Right now we're over 58% of the way towards achieving that.
|
||||
*Every single sign-up makes a significant impact.*
|
||||
|
||||
<ul class="premium-promo promo">
|
||||
<li><a href="http://jobs.rover.com/" style="background-image: url(https://fund-rest-framework.s3.amazonaws.com/rover_130x130.png)">Rover.com</a></li>
|
||||
<li><a href="https://getsentry.com/welcome/" style="background-image: url(https://fund-rest-framework.s3.amazonaws.com/sentry130.png)">Sentry</a></li>
|
||||
<li><a href="https://getstream.io/?utm_source=drf&utm_medium=banner&utm_campaign=drf" style="background-image: url(https://fund-rest-framework.s3.amazonaws.com/stream-130.png)">Stream</a></li>
|
||||
</ul>
|
||||
<div style="clear: both; padding-bottom: 20px;"></div>
|
||||
|
||||
*Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Rover](http://jobs.rover.com/), [Sentry](https://getsentry.com/welcome/), and [Stream](https://getstream.io/?utm_source=drf&utm_medium=banner&utm_campaign=drf).*
|
||||
|
||||
---
|
||||
|
||||
|
@ -68,6 +91,7 @@ REST framework requires the following:
|
|||
|
||||
The following packages are optional:
|
||||
|
||||
* [coreapi][coreapi] (1.32.0+) - Schema generation support.
|
||||
* [Markdown][markdown] (2.1.0+) - Markdown support for the browsable API.
|
||||
* [django-filter][django-filter] (0.9.2+) - Filtering support.
|
||||
* [django-crispy-forms][django-crispy-forms] - Improved HTML display for filtering.
|
||||
|
@ -160,10 +184,11 @@ The tutorial will walk you through the building blocks that make up REST framewo
|
|||
|
||||
* [1 - Serialization][tut-1]
|
||||
* [2 - Requests & Responses][tut-2]
|
||||
* [3 - Class based views][tut-3]
|
||||
* [3 - Class-based views][tut-3]
|
||||
* [4 - Authentication & permissions][tut-4]
|
||||
* [5 - Relationships & hyperlinked APIs][tut-5]
|
||||
* [6 - Viewsets & routers][tut-6]
|
||||
* [7 - Schemas & client libraries][tut-7]
|
||||
|
||||
There is a live example API of the finished tutorial API for testing purposes, [available here][sandbox].
|
||||
|
||||
|
@ -191,6 +216,7 @@ The API guide is your complete reference manual to all the functionality provide
|
|||
* [Versioning][versioning]
|
||||
* [Content negotiation][contentnegotiation]
|
||||
* [Metadata][metadata]
|
||||
* [Schemas][schemas]
|
||||
* [Format suffixes][formatsuffixes]
|
||||
* [Returning URLs][reverse]
|
||||
* [Exceptions][exceptions]
|
||||
|
@ -203,6 +229,7 @@ The API guide is your complete reference manual to all the functionality provide
|
|||
General guides to using REST framework.
|
||||
|
||||
* [Documenting your API][documenting-your-api]
|
||||
* [API Clients][api-clients]
|
||||
* [Internationalization][internationalization]
|
||||
* [AJAX, CSRF & CORS][ajax-csrf-cors]
|
||||
* [HTML & Forms][html-and-forms]
|
||||
|
@ -216,6 +243,7 @@ General guides to using REST framework.
|
|||
* [3.1 Announcement][3.1-announcement]
|
||||
* [3.2 Announcement][3.2-announcement]
|
||||
* [3.3 Announcement][3.3-announcement]
|
||||
* [3.4 Announcement][3.4-announcement]
|
||||
* [Kickstarter Announcement][kickstarter-announcement]
|
||||
* [Mozilla Grant][mozilla-grant]
|
||||
* [Funding][funding]
|
||||
|
@ -270,7 +298,10 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
[mozilla]: http://www.mozilla.org/en-US/about/
|
||||
[redhat]: https://www.redhat.com/
|
||||
[heroku]: https://www.heroku.com/
|
||||
[eventbrite]: https://www.eventbrite.co.uk/about/
|
||||
[coreapi]: http://pypi.python.org/pypi/coreapi/
|
||||
[markdown]: http://pypi.python.org/pypi/Markdown/
|
||||
[django-filter]: http://pypi.python.org/pypi/django-filter
|
||||
[django-crispy-forms]: https://github.com/maraujop/django-crispy-forms
|
||||
|
@ -284,6 +315,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
[modelserializer-section]: api-guide/serializers#modelserializer
|
||||
[functionview-section]: api-guide/views#function-based-views
|
||||
[sandbox]: http://restframework.herokuapp.com/
|
||||
[sponsors]: https://fund.django-rest-framework.org/topics/funding/#our-sponsors
|
||||
|
||||
[quickstart]: tutorial/quickstart.md
|
||||
[tut-1]: tutorial/1-serialization.md
|
||||
|
@ -292,6 +324,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
[tut-4]: tutorial/4-authentication-and-permissions.md
|
||||
[tut-5]: tutorial/5-relationships-and-hyperlinked-apis.md
|
||||
[tut-6]: tutorial/6-viewsets-and-routers.md
|
||||
[tut-7]: tutorial/7-schemas-and-client-libraries.md
|
||||
|
||||
[request]: api-guide/requests.md
|
||||
[response]: api-guide/responses.md
|
||||
|
@ -313,6 +346,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
[versioning]: api-guide/versioning.md
|
||||
[contentnegotiation]: api-guide/content-negotiation.md
|
||||
[metadata]: api-guide/metadata.md
|
||||
[schemas]: api-guide/schemas.md
|
||||
[formatsuffixes]: api-guide/format-suffixes.md
|
||||
[reverse]: api-guide/reverse.md
|
||||
[exceptions]: api-guide/exceptions.md
|
||||
|
@ -321,6 +355,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
[settings]: api-guide/settings.md
|
||||
|
||||
[documenting-your-api]: topics/documenting-your-api.md
|
||||
[api-clients]: topics/api-clients.md
|
||||
[internationalization]: topics/internationalization.md
|
||||
[ajax-csrf-cors]: topics/ajax-csrf-cors.md
|
||||
[html-and-forms]: topics/html-and-forms.md
|
||||
|
@ -334,6 +369,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
[3.1-announcement]: topics/3.1-announcement.md
|
||||
[3.2-announcement]: topics/3.2-announcement.md
|
||||
[3.3-announcement]: topics/3.3-announcement.md
|
||||
[3.4-announcement]: topics/3.4-announcement.md
|
||||
[kickstarter-announcement]: topics/kickstarter-announcement.md
|
||||
[mozilla-grant]: topics/mozilla-grant.md
|
||||
[funding]: topics/funding.md
|
||||
|
|
|
@ -6,7 +6,7 @@ REST framework 2.3 makes it even quicker and easier to build your Web APIs.
|
|||
|
||||
The 2.3 release introduces the [ViewSet][viewset] and [Router][router] classes.
|
||||
|
||||
A viewset is simply a type of class based view that allows you to group multiple views into a single common class.
|
||||
A viewset is simply a type of class-based view that allows you to group multiple views into a single common class.
|
||||
|
||||
Routers allow you to automatically determine the URLconf for your viewset classes.
|
||||
|
||||
|
|
|
@ -426,7 +426,7 @@ There are four methods that can be overridden, depending on what functionality y
|
|||
* `.to_internal_value()` - Override this to support deserialization, for write operations.
|
||||
* `.create()` and `.update()` - Override either or both of these to support saving instances.
|
||||
|
||||
Because this class provides the same interface as the `Serializer` class, you can use it with the existing generic class based views exactly as you would for a regular `Serializer` or `ModelSerializer`.
|
||||
Because this class provides the same interface as the `Serializer` class, you can use it with the existing generic class-based views exactly as you would for a regular `Serializer` or `ModelSerializer`.
|
||||
|
||||
The only difference you'll notice when doing so is the `BaseSerializer` classes will not generate HTML forms in the browsable API. This is because the data they return does not include all the field information that would allow each field to be rendered into a suitable HTML input.
|
||||
|
||||
|
@ -801,7 +801,7 @@ This change means that you can now easily customize the style of error responses
|
|||
|
||||
## The metadata API
|
||||
|
||||
Behavior for dealing with `OPTIONS` requests was previously built directly into the class based views. This has now been properly separated out into a Metadata API that allows the same pluggable style as other API policies in REST framework.
|
||||
Behavior for dealing with `OPTIONS` requests was previously built directly into the class-based views. This has now been properly separated out into a Metadata API that allows the same pluggable style as other API policies in REST framework.
|
||||
|
||||
This makes it far easier to use a different style for `OPTIONS` responses throughout your API, and makes it possible to create third-party metadata policies.
|
||||
|
||||
|
|
194
docs/topics/3.4-announcement.md
Normal file
194
docs/topics/3.4-announcement.md
Normal file
|
@ -0,0 +1,194 @@
|
|||
<style>
|
||||
.promo li a {
|
||||
float: left;
|
||||
width: 130px;
|
||||
height: 20px;
|
||||
text-align: center;
|
||||
margin: 10px 30px;
|
||||
padding: 150px 0 0 0;
|
||||
background-position: 0 50%;
|
||||
background-size: 130px auto;
|
||||
background-repeat: no-repeat;
|
||||
font-size: 120%;
|
||||
color: black;
|
||||
}
|
||||
.promo li {
|
||||
list-style: none;
|
||||
}
|
||||
</style>
|
||||
|
||||
# Django REST framework 3.4
|
||||
|
||||
The 3.4 release is the first in a planned series that will be addressing schema
|
||||
generation, hypermedia support, API clients, and finally realtime support.
|
||||
|
||||
---
|
||||
|
||||
## Funding
|
||||
|
||||
The 3.4 release has been made possible a recent [Mozilla grant][moss], and by our
|
||||
[collaborative funding model][funding]. If you use REST framework commercially, and would
|
||||
like to see this work continue, we strongly encourage you to invest in its
|
||||
continued development by **[signing up for a paid plan][funding]**.
|
||||
|
||||
The initial aim is to provide a single full-time position on REST framework.
|
||||
Right now we're over 60% of the way towards achieving that.
|
||||
*Every single sign-up makes a significant impact.*
|
||||
|
||||
<ul class="premium-promo promo">
|
||||
<li><a href="http://jobs.rover.com/" style="background-image: url(https://fund-rest-framework.s3.amazonaws.com/rover_130x130.png)">Rover.com</a></li>
|
||||
<li><a href="https://getsentry.com/welcome/" style="background-image: url(https://fund-rest-framework.s3.amazonaws.com/sentry130.png)">Sentry</a></li>
|
||||
<li><a href="https://getstream.io/?utm_source=drf&utm_medium=banner&utm_campaign=drf" style="background-image: url(https://fund-rest-framework.s3.amazonaws.com/stream-130.png)">Stream</a></li>
|
||||
</ul>
|
||||
<div style="clear: both; padding-bottom: 20px;"></div>
|
||||
|
||||
*Many thanks to all our [awesome sponsors][sponsors], and in particular to our premium backers, [Rover](http://jobs.rover.com/), [Sentry](https://getsentry.com/welcome/), and [Stream](https://getstream.io/?utm_source=drf&utm_medium=banner&utm_campaign=drf).*
|
||||
|
||||
---
|
||||
|
||||
## Schemas & client libraries
|
||||
|
||||
REST framework 3.4 brings built-in support for generating API schemas.
|
||||
|
||||
We provide this support by using [Core API][core-api], a Document Object Model
|
||||
for describing APIs.
|
||||
|
||||
Because Core API represents the API schema in an format-independent
|
||||
manner, we're able to render the Core API `Document` object into many different
|
||||
schema formats, by allowing the renderer class to determine how the internal
|
||||
representation maps onto the external schema format.
|
||||
|
||||
This approach should also open the door to a range of auto-generated API
|
||||
documentation options in the future, by rendering the `Document` object into
|
||||
HTML documentation pages.
|
||||
|
||||
Alongside the built-in schema support, we're also now providing the following:
|
||||
|
||||
* A [command line tool][command-line-client] for interacting with APIs.
|
||||
* A [Python client library][client-library] for interacting with APIs.
|
||||
|
||||
These API clients are dynamically driven, and able to interact with any API
|
||||
that exposes a supported schema format.
|
||||
|
||||
Dynamically driven clients allow you to interact with an API at an application
|
||||
layer interface, rather than a network layer interface, while still providing
|
||||
the benefits of RESTful Web API design.
|
||||
|
||||
We're expecting to expand the range of languages that we provide client libraries
|
||||
for over the coming months.
|
||||
|
||||
Further work on maturing the API schema support is also planned, including
|
||||
documentation on supporting file upload and download, and improved support for
|
||||
documentation generation and parameter annotation.
|
||||
|
||||
---
|
||||
|
||||
Current support for schema formats is as follows:
|
||||
|
||||
Name | Support | PyPI package
|
||||
---------------------------------|-------------------------------------|--------------------------------
|
||||
[Core JSON][core-json] | Schema generation & client support. | Built-in support in `coreapi`.
|
||||
[Swagger / OpenAPI][swagger] | Schema generation & client support. | The `openapi-codec` package.
|
||||
[JSON Hyper-Schema][hyperschema] | Currrently client support only. | The `hyperschema-codec` package.
|
||||
[API Blueprint][api-blueprint] | Not yet available. | Not yet available.
|
||||
|
||||
---
|
||||
|
||||
You can read more about any of this new functionality in the following:
|
||||
|
||||
* New tutorial section on [schemas & client libraries][tut-7].
|
||||
* Documentation page on [schema generation][schema-generation].
|
||||
* Topic page on [API clients][api-clients].
|
||||
|
||||
It is also worth noting that Marc Gibbons is currently working towards a 2.0 release of
|
||||
the popular Django REST Swagger package, which will tie in with our new built-in support.
|
||||
|
||||
---
|
||||
|
||||
## Supported versions
|
||||
|
||||
The 3.4.0 release adds support for Django 1.10.
|
||||
|
||||
The following versions of Python and Django are now supported:
|
||||
|
||||
* Django versions 1.8, 1.9, and 1.10.
|
||||
* Python versions 2.7, 3.2(\*), 3.3(\*), 3.4, 3.5.
|
||||
|
||||
(\*) Note that Python 3.2 and 3.3 are not supported from Django 1.9 onwards.
|
||||
|
||||
---
|
||||
|
||||
## Deprecations and changes
|
||||
|
||||
The 3.4 release includes very limited deprecation or behavioral changes, and
|
||||
should present a straightforward upgrade.
|
||||
|
||||
### Use fields or exclude on serializer classes.
|
||||
|
||||
The following change in 3.3.0 is now escalated from "pending deprecation" to
|
||||
"deprecated". Its usage will continue to function but will raise warnings:
|
||||
|
||||
`ModelSerializer` and `HyperlinkedModelSerializer` should include either a `fields`
|
||||
option, or an `exclude` option. The `fields = '__all__'` shortcut may be used
|
||||
to explicitly include all fields.
|
||||
|
||||
### Microsecond precision when returning time or datetime.
|
||||
|
||||
Using the default JSON renderer and directly returning a `datetime` or `time`
|
||||
instance will now render with microsecond precision (6 digits), rather than
|
||||
millisecond precision (3 digits). This makes the output format consistent with the
|
||||
default string output of `serializers.DateTimeField` and `serializers.TimeField`.
|
||||
|
||||
This change *does not affect the default behavior when using serializers*,
|
||||
which is to serialize `datetime` and `time` instances into strings with
|
||||
microsecond precision.
|
||||
|
||||
The serializer behavior can be modified if needed, using the `DATETIME_FORMAT`
|
||||
and `TIME_FORMAT` settings.
|
||||
|
||||
The renderer behavior can be modified by setting a custom `encoder_class`
|
||||
attribute on a `JSONRenderer` subclass.
|
||||
|
||||
### Relational choices no longer displayed in OPTIONS requests.
|
||||
|
||||
Making an `OPTIONS` request to views that have a serializer choice field
|
||||
will result in a list of the available choices being returned in the response.
|
||||
|
||||
In cases where there is a relational field, the previous behavior would be
|
||||
to return a list of available instances to choose from for that relational field.
|
||||
|
||||
In order to minimise exposed information the behavior now is to *not* return
|
||||
choices information for relational fields.
|
||||
|
||||
If you want to override this new behavior you'll need to [implement a custom
|
||||
metadata class][metadata].
|
||||
|
||||
See [issue #3751][gh3751] for more information on this behavioral change.
|
||||
|
||||
---
|
||||
|
||||
## Other improvements
|
||||
|
||||
This release includes further work from a huge number of [pull requests and issues][milestone].
|
||||
|
||||
Many thanks to all our contributors who've been involved in the release, either through raising issues, giving feedback, improving the documentation, or suggesting and implementing code changes.
|
||||
|
||||
The full set of itemized release notes [are available here][release-notes].
|
||||
|
||||
[sponsors]: https://fund.django-rest-framework.org/topics/funding/#our-sponsors
|
||||
[moss]: mozilla-grant.md
|
||||
[funding]: funding.md
|
||||
[core-api]: http://www.coreapi.org/
|
||||
[command-line-client]: api-clients#command-line-client
|
||||
[client-library]: api-clients#python-client-library
|
||||
[core-json]: http://www.coreapi.org/specification/encoding/#core-json-encoding
|
||||
[swagger]: https://openapis.org/specification
|
||||
[hyperschema]: http://json-schema.org/latest/json-schema-hypermedia.html
|
||||
[api-blueprint]: https://apiblueprint.org/
|
||||
[tut-7]: ../../tutorial/7-schemas-and-client-libraries/
|
||||
[schema-generation]: ../../api-guide/schemas/
|
||||
[api-clients]: api-clients.md
|
||||
[milestone]: https://github.com/tomchristie/django-rest-framework/milestone/35
|
||||
[release-notes]: release-notes#34
|
||||
[metadata]: ../../api-guide/metadata/#custom-metadata-classes
|
||||
[gh3751]: https://github.com/tomchristie/django-rest-framework/issues/3751
|
325
docs/topics/api-clients.md
Normal file
325
docs/topics/api-clients.md
Normal file
|
@ -0,0 +1,325 @@
|
|||
# API Clients
|
||||
|
||||
An API client handles the underlying details of how network requests are made
|
||||
and how responses are decoded. They present the developer with an application
|
||||
interface to work against, rather than working directly with the network interface.
|
||||
|
||||
The API clients documented here are not restricted to APIs built with Django REST framework.
|
||||
They can be used with any API that exposes a supported schema format.
|
||||
|
||||
For example, [the Heroku platform API][heroku-api] exposes a schema in the JSON
|
||||
Hyperschema format. As a result, the Core API command line client and Python
|
||||
client library can be [used to interact with the Heroku API][heroku-example].
|
||||
|
||||
## Client-side Core API
|
||||
|
||||
[Core API][core-api] is a document specification that can be used to describe APIs. It can
|
||||
be used either server-side, as is done with REST framework's [schema generation][schema-generation],
|
||||
or used client-side, as described here.
|
||||
|
||||
When used client-side, Core API allows for *dynamically driven client libraries*
|
||||
that can interact with any API that exposes a supported schema or hypermedia
|
||||
format.
|
||||
|
||||
Using a dynamically driven client has a number of advantages over interacting
|
||||
with an API by building HTTP requests directly.
|
||||
|
||||
#### More meaningful interaction
|
||||
|
||||
API interactions are presented in a more meaningful way. You're working at
|
||||
the application interface layer, rather than the network interface layer.
|
||||
|
||||
#### Resilience & evolvability
|
||||
|
||||
The client determines what endpoints are available, what parameters exist
|
||||
against each particular endpoint, and how HTTP requests are formed.
|
||||
|
||||
This also allows for a degree of API evolvability. URLs can be modified
|
||||
without breaking existing clients, or more efficient encodings can be used
|
||||
on-the-wire, with clients transparently upgrading.
|
||||
|
||||
#### Self-descriptive APIs
|
||||
|
||||
A dynamically driven client is able to present documentation on the API to the
|
||||
end user. This documentation allows the user to discover the available endpoints
|
||||
and parameters, and better understand the API they are working with.
|
||||
|
||||
Because this documentation is driven by the API schema it will always be fully
|
||||
up to date with the most recently deployed version of the service.
|
||||
|
||||
---
|
||||
|
||||
# Command line client
|
||||
|
||||
The command line client allows you to inspect and interact with any API that
|
||||
exposes a supported schema format.
|
||||
|
||||
## Getting started
|
||||
|
||||
To install the Core API command line client, use `pip`.
|
||||
|
||||
Note that the command-line client is a separate package to the
|
||||
python client library. Make sure to install `coreapi-cli`.
|
||||
|
||||
$ pip install coreapi-cli
|
||||
|
||||
To start inspecting and interacting with an API the schema must first be loaded
|
||||
from the network.
|
||||
|
||||
$ coreapi get http://api.example.org/
|
||||
<Pastebin API "http://127.0.0.1:8000/">
|
||||
snippets: {
|
||||
create(code, [title], [linenos], [language], [style])
|
||||
destroy(pk)
|
||||
highlight(pk)
|
||||
list([page])
|
||||
partial_update(pk, [title], [code], [linenos], [language], [style])
|
||||
retrieve(pk)
|
||||
update(pk, code, [title], [linenos], [language], [style])
|
||||
}
|
||||
users: {
|
||||
list([page])
|
||||
retrieve(pk)
|
||||
}
|
||||
|
||||
This will then load the schema, displaying the resulting `Document`. This
|
||||
`Document` includes all the available interactions that may be made against the API.
|
||||
|
||||
To interact with the API, use the `action` command. This command requires a list
|
||||
of keys that are used to index into the link.
|
||||
|
||||
$ coreapi action users list
|
||||
[
|
||||
{
|
||||
"url": "http://127.0.0.1:8000/users/2/",
|
||||
"id": 2,
|
||||
"username": "aziz",
|
||||
"snippets": []
|
||||
},
|
||||
...
|
||||
]
|
||||
|
||||
To inspect the underlying HTTP request and response, use the `--debug` flag.
|
||||
|
||||
$ coreapi action users list --debug
|
||||
> GET /users/ HTTP/1.1
|
||||
> Accept: application/vnd.coreapi+json, */*
|
||||
> Authorization: Basic bWF4Om1heA==
|
||||
> Host: 127.0.0.1
|
||||
> User-Agent: coreapi
|
||||
< 200 OK
|
||||
< Allow: GET, HEAD, OPTIONS
|
||||
< Content-Type: application/json
|
||||
< Date: Thu, 30 Jun 2016 10:51:46 GMT
|
||||
< Server: WSGIServer/0.1 Python/2.7.10
|
||||
< Vary: Accept, Cookie
|
||||
<
|
||||
< [{"url":"http://127.0.0.1/users/2/","id":2,"username":"aziz","snippets":[]},{"url":"http://127.0.0.1/users/3/","id":3,"username":"amy","snippets":["http://127.0.0.1/snippets/3/"]},{"url":"http://127.0.0.1/users/4/","id":4,"username":"max","snippets":["http://127.0.0.1/snippets/4/","http://127.0.0.1/snippets/5/","http://127.0.0.1/snippets/6/","http://127.0.0.1/snippets/7/"]},{"url":"http://127.0.0.1/users/5/","id":5,"username":"jose","snippets":[]},{"url":"http://127.0.0.1/users/6/","id":6,"username":"admin","snippets":["http://127.0.0.1/snippets/1/","http://127.0.0.1/snippets/2/"]}]
|
||||
|
||||
[
|
||||
...
|
||||
]
|
||||
|
||||
Some actions may include optional or required parameters.
|
||||
|
||||
$ coreapi action users create --param username=example
|
||||
|
||||
When using `--param`, the type of the input will be determined automatically.
|
||||
|
||||
If you want to be more explicit about the parameter type then use `--data` for
|
||||
any null, numeric, boolean, list, or object inputs, and use `--string` for string inputs.
|
||||
|
||||
$ coreapi action users edit --string username=tomchristie --data is_admin=true
|
||||
|
||||
## Authentication & headers
|
||||
|
||||
The `credentials` command is used to manage the request `Authentication:` header.
|
||||
Any credentials added are always linked to a particular domain, so as to ensure
|
||||
that credentials are not leaked across differing APIs.
|
||||
|
||||
The format for adding a new credential is:
|
||||
|
||||
$ coreapi credentials add <domain> <credentials string>
|
||||
|
||||
For instance:
|
||||
|
||||
$ coreapi credentials add api.example.org "Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b"
|
||||
|
||||
The optional `--auth` flag also allows you to add specific types of authentication,
|
||||
handling the encoding for you. Currently only `"basic"` is supported as an option here.
|
||||
For example:
|
||||
|
||||
$ coreapi credentials add api.example.org tomchristie:foobar --auth basic
|
||||
|
||||
You can also add specific request headers, using the `headers` command:
|
||||
|
||||
$ coreapi headers add api.example.org x-api-version 2
|
||||
|
||||
For more information and a listing of the available subcommands use `coreapi
|
||||
credentials --help` or `coreapi headers --help`.
|
||||
|
||||
## Codecs
|
||||
|
||||
By default the command line client only includes support for reading Core JSON
|
||||
schemas, however it includes a plugin system for installing additional codecs.
|
||||
|
||||
$ pip install openapi-codec jsonhyperschema-codec hal-codec
|
||||
$ coreapi codecs show
|
||||
Codecs
|
||||
corejson application/vnd.coreapi+json encoding, decoding
|
||||
hal application/hal+json encoding, decoding
|
||||
openapi application/openapi+json encoding, decoding
|
||||
jsonhyperschema application/schema+json decoding
|
||||
json application/json data
|
||||
text text/* data
|
||||
|
||||
## Utilities
|
||||
|
||||
The command line client includes functionality for bookmarking API URLs
|
||||
under a memorable name. For example, you can add a bookmark for the
|
||||
existing API, like so...
|
||||
|
||||
$ coreapi bookmarks add accountmanagement
|
||||
|
||||
There is also functionality for navigating forward or backward through the
|
||||
history of which API URLs have been accessed.
|
||||
|
||||
$ coreapi history show
|
||||
$ coreapi history back
|
||||
|
||||
For more information and a listing of the available subcommands use
|
||||
`coreapi bookmarks --help` or `coreapi history --help`.
|
||||
|
||||
## Other commands
|
||||
|
||||
To display the current `Document`:
|
||||
|
||||
$ coreapi show
|
||||
|
||||
To reload the current `Document` from the network:
|
||||
|
||||
$ coreapi reload
|
||||
|
||||
To load a schema file from disk:
|
||||
|
||||
$ coreapi load my-api-schema.json --format corejson
|
||||
|
||||
To dump the current document to console in a given format:
|
||||
|
||||
$ coreapi dump --format openapi
|
||||
|
||||
To remove the current document, along with all currently saved history,
|
||||
credentials, headers and bookmarks:
|
||||
|
||||
$ coreapi clear
|
||||
|
||||
---
|
||||
|
||||
# Python client library
|
||||
|
||||
The `coreapi` Python package allows you to programatically interact with any
|
||||
API that exposes a supported schema format.
|
||||
|
||||
## Getting started
|
||||
|
||||
You'll need to install the `coreapi` package using `pip` before you can get
|
||||
started.
|
||||
|
||||
$ pip install coreapi
|
||||
|
||||
In order to start working with an API, we first need a `Client` instance. The
|
||||
client holds any configuration around which codecs and transports are supported
|
||||
when interacting with an API, which allows you to provide for more advanced
|
||||
kinds of behaviour.
|
||||
|
||||
import coreapi
|
||||
client = coreapi.Client()
|
||||
|
||||
Once we have a `Client` instance, we can fetch an API schema from the network.
|
||||
|
||||
schema = client.get('https://api.example.org/')
|
||||
|
||||
The object returned from this call will be a `Document` instance, which is
|
||||
the internal representation of the interface that we are interacting with.
|
||||
|
||||
Now that we have our schema `Document`, we can now start to interact with the API:
|
||||
|
||||
users = client.action(schema, ['users', 'list'])
|
||||
|
||||
Some endpoints may include named parameters, which might be either optional or required:
|
||||
|
||||
new_user = client.action(schema, ['users', 'create'], params={"username": "max"})
|
||||
|
||||
## Codecs
|
||||
|
||||
Codecs are responsible for encoding or decoding Documents.
|
||||
|
||||
The decoding process is used by a client to take a bytestring of an API schema
|
||||
definition, and returning the Core API `Document` that represents that interface.
|
||||
|
||||
A codec should be associated with a particular media type, such as **TODO**.
|
||||
|
||||
This media type is used by the server in the response `Content-Type` header,
|
||||
in order to indicate what kind of data is being returned in the response.
|
||||
|
||||
#### Configuring codecs
|
||||
|
||||
The codecs that are available can be configured when instantiating a client.
|
||||
The keyword argument used here is `decoders`, because in the context of a
|
||||
client the codecs are only for *decoding* responses.
|
||||
|
||||
In the following example we'll configure a client to only accept `Core JSON`
|
||||
and `JSON` responses. This will allow us to receive and decode a Core JSON schema,
|
||||
and subsequently to receive JSON responses made against the API.
|
||||
|
||||
from coreapi import codecs, Client
|
||||
|
||||
decoders = [codecs.CoreJSONCodec(), codecs.JSONCodec()]
|
||||
client = Client(decoders=decoders)
|
||||
|
||||
#### Loading and saving schemas
|
||||
|
||||
You can use a codec directly, in order to load an existing schema definition,
|
||||
and return the resulting `Document`.
|
||||
|
||||
input_file = open('my-api-schema.json', 'rb')
|
||||
schema_definition = input_file.read()
|
||||
codec = codecs.CoreJSONCodec()
|
||||
schema = codec.load(schema_definition)
|
||||
|
||||
You can also use a codec directly to generate a schema definition given a `Document` instance:
|
||||
|
||||
schema_definition = codec.dump(schema)
|
||||
output_file = open('my-api-schema.json', 'rb')
|
||||
output_file.write(schema_definition)
|
||||
|
||||
## Transports
|
||||
|
||||
Transports are responsible for making network requests. The set of transports
|
||||
that a client has installed determines which network protocols it is able to
|
||||
support.
|
||||
|
||||
Currently the `coreapi` library only includes an HTTP/HTTPS transport, but
|
||||
other protocols can also be supported.
|
||||
|
||||
#### Configuring transports
|
||||
|
||||
The behaviour of the network layer can be customized by configuring the
|
||||
transports that the client is instantiated with.
|
||||
|
||||
import requests
|
||||
from coreapi import transports, Client
|
||||
|
||||
credentials = {'api.example.org': 'Token 3bd44a009d16ff'}
|
||||
transports = transports.HTTPTransport(credentials=credentials)
|
||||
client = Client(transports=transports)
|
||||
|
||||
More complex customizations can also be achieved, for example modifying the
|
||||
underlying `requests.Session` instance to [attach transport adaptors][transport-adaptors]
|
||||
that modify the outgoing requests.
|
||||
|
||||
[heroku-api]: https://devcenter.heroku.com/categories/platform-api
|
||||
[heroku-example]: http://www.coreapi.org/tools-and-resources/example-services/#heroku-json-hyper-schema
|
||||
[core-api]: http://www.coreapi.org/
|
||||
[schema-generation]: ../api-guide/schemas.md
|
||||
[transport-adaptors]: http://docs.python-requests.org/en/master/user/advanced/#transport-adapters
|
|
@ -40,12 +40,94 @@ You can determine your currently installed version using `pip freeze`:
|
|||
|
||||
## 3.4.x series
|
||||
|
||||
### 3.4
|
||||
### 3.4.0
|
||||
|
||||
**Unreleased**
|
||||
**Date**: [14th July 2016][3.4.0-milestone]
|
||||
|
||||
* Dropped support for EOL Django 1.7 ([#3933][gh3933])
|
||||
* Fixed null foreign keys targeting UUIDField primary keys. ([#3936][gh3936])
|
||||
* Don't strip microseconds in JSON output. ([#4256][gh4256])
|
||||
* Two slightly different iso 8601 datetime serialization. ([#4255][gh4255])
|
||||
* Resolve incorrect inclusion of media type parameters. ([#4254][gh4254])
|
||||
* Response Content-Type potentially malformed. ([#4253][gh4253])
|
||||
* Fix setup.py error on some platforms. ([#4246][gh4246])
|
||||
* Move alternate formats in coreapi into separate packages. ([#4244][gh4244])
|
||||
* Add localize keyword argument to `DecimalField`. ([#4233][gh4233])
|
||||
* Fix issues with routers for custom list-route and detail-routes. ([#4229][gh4229])
|
||||
* Namespace versioning with nested namespaces. ([#4219][gh4219])
|
||||
* Robust uniqueness checks. ([#4217][gh4217])
|
||||
* Minor refactoring of `must_call_distinct`. ([#4215][gh4215])
|
||||
* Overridable offset cutoff in CursorPagination. ([#4212][gh4212])
|
||||
* Pass through strings as-in with date/time fields. ([#4196][gh4196])
|
||||
* Add test confirming that required=False is valid on a relational field. ([#4195][gh4195])
|
||||
* In LimitOffsetPagination `limit=0` should revert to default limit. ([#4194][gh4194])
|
||||
* Exclude read_only=True fields from unique_together validation & add docs. ([#4192][gh4192])
|
||||
* Handle bytestrings in JSON. ([#4191][gh4191])
|
||||
* JSONField(binary=True) represents using binary strings, which JSONRenderer does not support. ([#4187][gh4187])
|
||||
* JSONField(binary=True) represents using binary strings, which JSONRenderer does not support. ([#4185][gh4185])
|
||||
* More robust form rendering in the browsable API. ([#4181][gh4181])
|
||||
* Empty cases of `.validated_data` and `.errors` as lists not dicts for ListSerializer. ([#4180][gh4180])
|
||||
* Schemas & client libraries. ([#4179][gh4179])
|
||||
* Removed `AUTH_USER_MODEL` compat property. ([#4176][gh4176])
|
||||
* Clean up existing deprecation warnings. ([#4166][gh4166])
|
||||
* Django 1.10 support. ([#4158][gh4158])
|
||||
* Updated jQuery version to 1.12.4. ([#4157][gh4157])
|
||||
* More robust default behavior on OrderingFilter. ([#4156][gh4156])
|
||||
* description.py codes and tests removal. ([#4153][gh4153])
|
||||
* Wrap guardian.VERSION in tuple. ([#4149][gh4149])
|
||||
* Refine validator for fields with <source=> kwargs. ([#4146][gh4146])
|
||||
* Fix None values representation in childs of ListField, DictField. ([#4118][gh4118])
|
||||
* Resolve TimeField representation for midnight value. ([#4107][gh4107])
|
||||
* Set proper status code in AdminRenderer for the redirection after POST/DELETE requests. ([#4106][gh4106])
|
||||
* TimeField render returns None instead of 00:00:00. ([#4105][gh4105])
|
||||
* Fix incorrectly named zh-hans and zh-hant locale path. ([#4103][gh4103])
|
||||
* Prevent raising exception when limit is 0. ([#4098][gh4098])
|
||||
* TokenAuthentication: Allow custom keyword in the header. ([#4097][gh4097])
|
||||
* Handle incorrectly padded HTTP basic auth header. ([#4090][gh4090])
|
||||
* LimitOffset pagination crashes Browseable API when limit=0. ([#4079][gh4079])
|
||||
* Fixed DecimalField arbitrary precision support. ([#4075][gh4075])
|
||||
* Added support for custom CSRF cookie names. ([#4049][gh4049])
|
||||
* Fix regression introduced by #4035. ([#4041][gh4041])
|
||||
* No auth view failing permission should raise 403. ([#4040][gh4040])
|
||||
* Fix string_types / text_types confusion. ([#4025][gh4025])
|
||||
* Do not list related field choices in OPTIONS requests. ([#4021][gh4021])
|
||||
* Fix typo. ([#4008][gh4008])
|
||||
* Reorder initializing the view. ([#4006][gh4006])
|
||||
* Type error in DjangoObjectPermissionsFilter on Python 3.4. ([#4005][gh4005])
|
||||
* Fixed use of deprecated Query.aggregates. ([#4003][gh4003])
|
||||
* Fix blank lines around docstrings. ([#4002][gh4002])
|
||||
* Fixed admin pagination when limit is 0. ([#3990][gh3990])
|
||||
* OrderingFilter adjustements. ([#3983][gh3983])
|
||||
* Non-required serializer related fields. ([#3976][gh3976])
|
||||
* Using safer calling way of "@api_view" in tutorial. ([#3971][gh3971])
|
||||
* ListSerializer doesn't handle unique_together constraints. ([#3970][gh3970])
|
||||
* Add missing migration file. ([#3968][gh3968])
|
||||
* `OrderingFilter` should call `get_serializer_class()` to determine default fields. ([#3964][gh3964])
|
||||
* Remove old django checks from tests and compat. ([#3953][gh3953])
|
||||
* Support callable as the value of `initial` for any `serializer.Field`. ([#3943][gh3943])
|
||||
* Prevented unnecessary distinct() call in SearchFilter. ([#3938][gh3938])
|
||||
* Fix None UUID ForeignKey serialization. ([#3936][gh3936])
|
||||
* Drop EOL Django 1.7. ([#3933][gh3933])
|
||||
* Add missing space in serializer error message. ([#3926][gh3926])
|
||||
* Fixed _force_text_recursive typo. ([#3908][gh3908])
|
||||
* Attempt to address Django 2.0 deprecate warnings related to `field.rel`. ([#3906][gh3906])
|
||||
* Fix parsing multipart data using a nested serializer with list. ([#3820][gh3820])
|
||||
* Resolving APIs URL to different namespaces. ([#3816][gh3816])
|
||||
* Do not HTML-escape `help_text` in Browsable API forms. ([#3812][gh3812])
|
||||
* OPTIONS fetches and shows all possible foreign keys in choices field. ([#3751][gh3751])
|
||||
* Django 1.9 deprecation warnings ([#3729][gh3729])
|
||||
* Test case for #3598 ([#3710][gh3710])
|
||||
* Adding support for multiple values for search filter. ([#3541][gh3541])
|
||||
* Use get_serializer_class in ordering filter. ([#3487][gh3487])
|
||||
* Serializers with many=True should return empty list rather than empty dict. ([#3476][gh3476])
|
||||
* LimitOffsetPagination limit=0 fix. ([#3444][gh3444])
|
||||
* Enable Validators to defer string evaluation and handle new string format. ([#3438][gh3438])
|
||||
* Unique validator is executed and breaks if field is invalid. ([#3381][gh3381])
|
||||
* Do not ignore overridden View.get_view_name() in breadcrumbs. ([#3273][gh3273])
|
||||
* Retry form rendering when rendering with serializer fails. ([#3164][gh3164])
|
||||
* Unique constraint prevents nested serializers from updating. ([#2996][gh2996])
|
||||
* Uniqueness validators should not be run for excluded (read_only) fields. ([#2848][gh2848])
|
||||
* UniqueValidator raises exception for nested objects. ([#2403][gh2403])
|
||||
* `lookup_type` is deprecated in favor of `lookup_expr`. ([#4259][gh4259])
|
||||
---
|
||||
|
||||
## 3.3.x series
|
||||
|
||||
|
@ -127,6 +209,8 @@ You can determine your currently installed version using `pip freeze`:
|
|||
* Removed support for Django 1.5 & 1.6. ([#3421][gh3421], [#3429][gh3429])
|
||||
* Removed 'south' migrations. ([#3495][gh3495])
|
||||
|
||||
---
|
||||
|
||||
## 3.2.x series
|
||||
|
||||
### 3.2.5
|
||||
|
@ -410,6 +494,7 @@ For older release notes, [please see the version 2.x documentation][old-release-
|
|||
[3.3.1-milestone]: https://github.com/tomchristie/django-rest-framework/issues?q=milestone%3A%223.3.1+Release%22
|
||||
[3.3.2-milestone]: https://github.com/tomchristie/django-rest-framework/issues?q=milestone%3A%223.3.2+Release%22
|
||||
[3.3.3-milestone]: https://github.com/tomchristie/django-rest-framework/issues?q=milestone%3A%223.3.3+Release%22
|
||||
[3.4.0-milestone]: https://github.com/tomchristie/django-rest-framework/issues?q=milestone%3A%223.4.0+Release%22
|
||||
|
||||
<!-- 3.0.1 -->
|
||||
[gh2013]: https://github.com/tomchristie/django-rest-framework/issues/2013
|
||||
|
@ -726,3 +811,88 @@ For older release notes, [please see the version 2.x documentation][old-release-
|
|||
[gh3636]: https://github.com/tomchristie/django-rest-framework/issues/3636
|
||||
[gh3605]: https://github.com/tomchristie/django-rest-framework/issues/3605
|
||||
[gh3604]: https://github.com/tomchristie/django-rest-framework/issues/3604
|
||||
|
||||
<!-- 3.4.0 -->
|
||||
[gh2403]: https://github.com/tomchristie/django-rest-framework/issues/2403
|
||||
[gh2848]: https://github.com/tomchristie/django-rest-framework/issues/2848
|
||||
[gh2996]: https://github.com/tomchristie/django-rest-framework/issues/2996
|
||||
[gh3164]: https://github.com/tomchristie/django-rest-framework/issues/3164
|
||||
[gh3273]: https://github.com/tomchristie/django-rest-framework/issues/3273
|
||||
[gh3381]: https://github.com/tomchristie/django-rest-framework/issues/3381
|
||||
[gh3438]: https://github.com/tomchristie/django-rest-framework/issues/3438
|
||||
[gh3444]: https://github.com/tomchristie/django-rest-framework/issues/3444
|
||||
[gh3476]: https://github.com/tomchristie/django-rest-framework/issues/3476
|
||||
[gh3487]: https://github.com/tomchristie/django-rest-framework/issues/3487
|
||||
[gh3541]: https://github.com/tomchristie/django-rest-framework/issues/3541
|
||||
[gh3710]: https://github.com/tomchristie/django-rest-framework/issues/3710
|
||||
[gh3729]: https://github.com/tomchristie/django-rest-framework/issues/3729
|
||||
[gh3751]: https://github.com/tomchristie/django-rest-framework/issues/3751
|
||||
[gh3812]: https://github.com/tomchristie/django-rest-framework/issues/3812
|
||||
[gh3816]: https://github.com/tomchristie/django-rest-framework/issues/3816
|
||||
[gh3820]: https://github.com/tomchristie/django-rest-framework/issues/3820
|
||||
[gh3906]: https://github.com/tomchristie/django-rest-framework/issues/3906
|
||||
[gh3908]: https://github.com/tomchristie/django-rest-framework/issues/3908
|
||||
[gh3926]: https://github.com/tomchristie/django-rest-framework/issues/3926
|
||||
[gh3933]: https://github.com/tomchristie/django-rest-framework/issues/3933
|
||||
[gh3936]: https://github.com/tomchristie/django-rest-framework/issues/3936
|
||||
[gh3938]: https://github.com/tomchristie/django-rest-framework/issues/3938
|
||||
[gh3943]: https://github.com/tomchristie/django-rest-framework/issues/3943
|
||||
[gh3953]: https://github.com/tomchristie/django-rest-framework/issues/3953
|
||||
[gh3964]: https://github.com/tomchristie/django-rest-framework/issues/3964
|
||||
[gh3968]: https://github.com/tomchristie/django-rest-framework/issues/3968
|
||||
[gh3970]: https://github.com/tomchristie/django-rest-framework/issues/3970
|
||||
[gh3971]: https://github.com/tomchristie/django-rest-framework/issues/3971
|
||||
[gh3976]: https://github.com/tomchristie/django-rest-framework/issues/3976
|
||||
[gh3983]: https://github.com/tomchristie/django-rest-framework/issues/3983
|
||||
[gh3990]: https://github.com/tomchristie/django-rest-framework/issues/3990
|
||||
[gh4002]: https://github.com/tomchristie/django-rest-framework/issues/4002
|
||||
[gh4003]: https://github.com/tomchristie/django-rest-framework/issues/4003
|
||||
[gh4005]: https://github.com/tomchristie/django-rest-framework/issues/4005
|
||||
[gh4006]: https://github.com/tomchristie/django-rest-framework/issues/4006
|
||||
[gh4008]: https://github.com/tomchristie/django-rest-framework/issues/4008
|
||||
[gh4021]: https://github.com/tomchristie/django-rest-framework/issues/4021
|
||||
[gh4025]: https://github.com/tomchristie/django-rest-framework/issues/4025
|
||||
[gh4040]: https://github.com/tomchristie/django-rest-framework/issues/4040
|
||||
[gh4041]: https://github.com/tomchristie/django-rest-framework/issues/4041
|
||||
[gh4049]: https://github.com/tomchristie/django-rest-framework/issues/4049
|
||||
[gh4075]: https://github.com/tomchristie/django-rest-framework/issues/4075
|
||||
[gh4079]: https://github.com/tomchristie/django-rest-framework/issues/4079
|
||||
[gh4090]: https://github.com/tomchristie/django-rest-framework/issues/4090
|
||||
[gh4097]: https://github.com/tomchristie/django-rest-framework/issues/4097
|
||||
[gh4098]: https://github.com/tomchristie/django-rest-framework/issues/4098
|
||||
[gh4103]: https://github.com/tomchristie/django-rest-framework/issues/4103
|
||||
[gh4105]: https://github.com/tomchristie/django-rest-framework/issues/4105
|
||||
[gh4106]: https://github.com/tomchristie/django-rest-framework/issues/4106
|
||||
[gh4107]: https://github.com/tomchristie/django-rest-framework/issues/4107
|
||||
[gh4118]: https://github.com/tomchristie/django-rest-framework/issues/4118
|
||||
[gh4146]: https://github.com/tomchristie/django-rest-framework/issues/4146
|
||||
[gh4149]: https://github.com/tomchristie/django-rest-framework/issues/4149
|
||||
[gh4153]: https://github.com/tomchristie/django-rest-framework/issues/4153
|
||||
[gh4156]: https://github.com/tomchristie/django-rest-framework/issues/4156
|
||||
[gh4157]: https://github.com/tomchristie/django-rest-framework/issues/4157
|
||||
[gh4158]: https://github.com/tomchristie/django-rest-framework/issues/4158
|
||||
[gh4166]: https://github.com/tomchristie/django-rest-framework/issues/4166
|
||||
[gh4176]: https://github.com/tomchristie/django-rest-framework/issues/4176
|
||||
[gh4179]: https://github.com/tomchristie/django-rest-framework/issues/4179
|
||||
[gh4180]: https://github.com/tomchristie/django-rest-framework/issues/4180
|
||||
[gh4181]: https://github.com/tomchristie/django-rest-framework/issues/4181
|
||||
[gh4185]: https://github.com/tomchristie/django-rest-framework/issues/4185
|
||||
[gh4187]: https://github.com/tomchristie/django-rest-framework/issues/4187
|
||||
[gh4191]: https://github.com/tomchristie/django-rest-framework/issues/4191
|
||||
[gh4192]: https://github.com/tomchristie/django-rest-framework/issues/4192
|
||||
[gh4194]: https://github.com/tomchristie/django-rest-framework/issues/4194
|
||||
[gh4195]: https://github.com/tomchristie/django-rest-framework/issues/4195
|
||||
[gh4196]: https://github.com/tomchristie/django-rest-framework/issues/4196
|
||||
[gh4212]: https://github.com/tomchristie/django-rest-framework/issues/4212
|
||||
[gh4215]: https://github.com/tomchristie/django-rest-framework/issues/4215
|
||||
[gh4217]: https://github.com/tomchristie/django-rest-framework/issues/4217
|
||||
[gh4219]: https://github.com/tomchristie/django-rest-framework/issues/4219
|
||||
[gh4229]: https://github.com/tomchristie/django-rest-framework/issues/4229
|
||||
[gh4233]: https://github.com/tomchristie/django-rest-framework/issues/4233
|
||||
[gh4244]: https://github.com/tomchristie/django-rest-framework/issues/4244
|
||||
[gh4246]: https://github.com/tomchristie/django-rest-framework/issues/4246
|
||||
[gh4253]: https://github.com/tomchristie/django-rest-framework/issues/4253
|
||||
[gh4254]: https://github.com/tomchristie/django-rest-framework/issues/4254
|
||||
[gh4255]: https://github.com/tomchristie/django-rest-framework/issues/4255
|
||||
[gh4256]: https://github.com/tomchristie/django-rest-framework/issues/4256
|
||||
[gh4259]: https://github.com/tomchristie/django-rest-framework/issues/4259
|
||||
|
|
|
@ -267,6 +267,7 @@ To submit new content, [open an issue][drf-create-issue] or [create a pull reque
|
|||
* [ViewSets and Routers - django-rest-framework part 3][viewsets-and-routers-django-rest-framework-part-3]
|
||||
* [Django Rest Framework User Endpoint][django-rest-framework-user-endpoint]
|
||||
* [Check credentials using Django Rest Framework][check-credentials-using-django-rest-framework]
|
||||
* [Django REST Framework course][django-rest-framework-course]
|
||||
|
||||
### Videos
|
||||
|
||||
|
@ -363,3 +364,4 @@ To submit new content, [open an issue][drf-create-issue] or [create a pull reque
|
|||
[django-rest-messaging-centrifugo]: https://github.com/raphaelgyory/django-rest-messaging-centrifugo
|
||||
[django-rest-messaging-js]: https://github.com/raphaelgyory/django-rest-messaging-js
|
||||
[medium-django-rest-framework]: https://medium.com/django-rest-framework
|
||||
[django-rest-framework-course]: https://teamtreehouse.com/library/django-rest-framework
|
||||
|
|
|
@ -25,7 +25,7 @@ Using numeric HTTP status codes in your views doesn't always make for obvious re
|
|||
REST framework provides two wrappers you can use to write API views.
|
||||
|
||||
1. The `@api_view` decorator for working with function based views.
|
||||
2. The `APIView` class for working with class based views.
|
||||
2. The `APIView` class for working with class-based views.
|
||||
|
||||
These wrappers provide a few bits of functionality such as making sure you receive `Request` instances in your view, and adding context to `Response` objects so that content negotiation can be performed.
|
||||
|
||||
|
@ -96,7 +96,7 @@ Notice that we're no longer explicitly tying our requests or responses to a give
|
|||
|
||||
## Adding optional format suffixes to our URLs
|
||||
|
||||
To take advantage of the fact that our responses are no longer hardwired to a single content type let's add support for format suffixes to our API endpoints. Using format suffixes gives us URLs that explicitly refer to a given format, and means our API will be able to handle URLs such as [http://example.com/api/items/4/.json][json-url].
|
||||
To take advantage of the fact that our responses are no longer hardwired to a single content type let's add support for format suffixes to our API endpoints. Using format suffixes gives us URLs that explicitly refer to a given format, and means our API will be able to handle URLs such as [http://example.com/api/items/4.json][json-url].
|
||||
|
||||
Start by adding a `format` keyword argument to both of the views, like so.
|
||||
|
||||
|
@ -186,6 +186,8 @@ Similarly, we can control the format of the request that we send, using the `Con
|
|||
"style": "friendly"
|
||||
}
|
||||
|
||||
If you add a `--debug` switch to the `http` requests above, you will be able to see the request type in request headers.
|
||||
|
||||
Now go and open the API in a web browser, by visiting [http://127.0.0.1:8000/snippets/][devserver].
|
||||
|
||||
### Browsability
|
||||
|
@ -198,9 +200,9 @@ See the [browsable api][browsable-api] topic for more information about the brow
|
|||
|
||||
## What's next?
|
||||
|
||||
In [tutorial part 3][tut-3], we'll start using class based views, and see how generic views reduce the amount of code we need to write.
|
||||
In [tutorial part 3][tut-3], we'll start using class-based views, and see how generic views reduce the amount of code we need to write.
|
||||
|
||||
[json-url]: http://example.com/api/items/4/.json
|
||||
[json-url]: http://example.com/api/items/4.json
|
||||
[devserver]: http://127.0.0.1:8000/snippets/
|
||||
[browsable-api]: ../topics/browsable-api.md
|
||||
[tut-1]: 1-serialization.md
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
# Tutorial 3: Class Based Views
|
||||
# Tutorial 3: Class-based Views
|
||||
|
||||
We can also write our API views using class based views, rather than function based views. As we'll see this is a powerful pattern that allows us to reuse common functionality, and helps us keep our code [DRY][dry].
|
||||
We can also write our API views using class-based views, rather than function based views. As we'll see this is a powerful pattern that allows us to reuse common functionality, and helps us keep our code [DRY][dry].
|
||||
|
||||
## Rewriting our API using class based views
|
||||
## Rewriting our API using class-based views
|
||||
|
||||
We'll start by rewriting the root view as a class based view. All this involves is a little bit of refactoring of `views.py`.
|
||||
We'll start by rewriting the root view as a class-based view. All this involves is a little bit of refactoring of `views.py`.
|
||||
|
||||
from snippets.models import Snippet
|
||||
from snippets.serializers import SnippetSerializer
|
||||
|
@ -62,7 +62,7 @@ So far, so good. It looks pretty similar to the previous case, but we've got be
|
|||
|
||||
That's looking good. Again, it's still pretty similar to the function based view right now.
|
||||
|
||||
We'll also need to refactor our `urls.py` slightly now we're using class based views.
|
||||
We'll also need to refactor our `urls.py` slightly now we're using class-based views.
|
||||
|
||||
from django.conf.urls import url
|
||||
from rest_framework.urlpatterns import format_suffix_patterns
|
||||
|
@ -79,7 +79,7 @@ Okay, we're done. If you run the development server everything should be workin
|
|||
|
||||
## Using mixins
|
||||
|
||||
One of the big wins of using class based views is that it allows us to easily compose reusable bits of behaviour.
|
||||
One of the big wins of using class-based views is that it allows us to easily compose reusable bits of behaviour.
|
||||
|
||||
The create/retrieve/update/delete operations that we've been using so far are going to be pretty similar for any model-backed API views we create. Those bits of common behaviour are implemented in REST framework's mixin classes.
|
||||
|
||||
|
@ -124,7 +124,7 @@ The base class provides the core functionality, and the mixin classes provide th
|
|||
|
||||
Pretty similar. Again we're using the `GenericAPIView` class to provide the core functionality, and adding in mixins to provide the `.retrieve()`, `.update()` and `.destroy()` actions.
|
||||
|
||||
## Using generic class based views
|
||||
## Using generic class-based views
|
||||
|
||||
Using the mixin classes we've rewritten the views to use slightly less code than before, but we can go one step further. REST framework provides a set of already mixed-in generic views that we can use to trim down our `views.py` module even more.
|
||||
|
||||
|
|
|
@ -67,7 +67,7 @@ Now that we've got some users to work with, we'd better add representations of t
|
|||
|
||||
Because `'snippets'` is a *reverse* relationship on the User model, it will not be included by default when using the `ModelSerializer` class, so we needed to add an explicit field for it.
|
||||
|
||||
We'll also add a couple of views to `views.py`. We'd like to just use read-only views for the user representations, so we'll use the `ListAPIView` and `RetrieveAPIView` generic class based views.
|
||||
We'll also add a couple of views to `views.py`. We'd like to just use read-only views for the user representations, so we'll use the `ListAPIView` and `RetrieveAPIView` generic class-based views.
|
||||
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ Right now we have endpoints for 'snippets' and 'users', but we don't have a sing
|
|||
'snippets': reverse('snippet-list', request=request, format=format)
|
||||
})
|
||||
|
||||
Two things should be noticed here. First, we're using REST framework's `reverse` function in order to return fully-qualified URLs; second, URL patterns are identified by convenience names that we will declare later on in our `snippets/urls.py`.
|
||||
Two things should be noticed here. First, we're using REST framework's `reverse` function in order to return fully-qualified URLs; second, URL patterns are identified by convenience names that we will declare later on in our `snippets/urls.py`.
|
||||
|
||||
## Creating an endpoint for the highlighted snippets
|
||||
|
||||
|
@ -80,7 +80,7 @@ We can easily re-write our existing serializers to use hyperlinking. In your `sn
|
|||
|
||||
class Meta:
|
||||
model = Snippet
|
||||
fields = ('url', 'highlight', 'owner',
|
||||
fields = ('url', 'pk', 'highlight', 'owner',
|
||||
'title', 'code', 'linenos', 'language', 'style')
|
||||
|
||||
|
||||
|
@ -89,7 +89,7 @@ We can easily re-write our existing serializers to use hyperlinking. In your `sn
|
|||
|
||||
class Meta:
|
||||
model = User
|
||||
fields = ('url', 'username', 'snippets')
|
||||
fields = ('url', 'pk', 'username', 'snippets')
|
||||
|
||||
Notice that we've also added a new `'highlight'` field. This field is of the same type as the `url` field, except that it points to the `'snippet-highlight'` url pattern, instead of the `'snippet-detail'` url pattern.
|
||||
|
||||
|
|
|
@ -130,27 +130,7 @@ Using viewsets can be a really useful abstraction. It helps ensure that URL con
|
|||
|
||||
That doesn't mean it's always the right approach to take. There's a similar set of trade-offs to consider as when using class-based views instead of function based views. Using viewsets is less explicit than building your views individually.
|
||||
|
||||
## Reviewing our work
|
||||
In [part 7][tut-7] of the tutorial we'll look at how we can add an API schema,
|
||||
and interact with our API using a client library or command line tool.
|
||||
|
||||
With an incredibly small amount of code, we've now got a complete pastebin Web API, which is fully web browsable, and comes complete with authentication, per-object permissions, and multiple renderer formats.
|
||||
|
||||
We've walked through each step of the design process, and seen how if we need to customize anything we can gradually work our way down to simply using regular Django views.
|
||||
|
||||
You can review the final [tutorial code][repo] on GitHub, or try out a live example in [the sandbox][sandbox].
|
||||
|
||||
## Onwards and upwards
|
||||
|
||||
We've reached the end of our tutorial. If you want to get more involved in the REST framework project, here are a few places you can start:
|
||||
|
||||
* Contribute on [GitHub][github] by reviewing and submitting issues, and making pull requests.
|
||||
* Join the [REST framework discussion group][group], and help build the community.
|
||||
* Follow [the author][twitter] on Twitter and say hi.
|
||||
|
||||
**Now go build awesome things.**
|
||||
|
||||
|
||||
[repo]: https://github.com/tomchristie/rest-framework-tutorial
|
||||
[sandbox]: http://restframework.herokuapp.com/
|
||||
[github]: https://github.com/tomchristie/django-rest-framework
|
||||
[group]: https://groups.google.com/forum/?fromgroups#!forum/django-rest-framework
|
||||
[twitter]: https://twitter.com/_tomchristie
|
||||
[tut-7]: 7-schemas-and-client-libraries.md
|
||||
|
|
221
docs/tutorial/7-schemas-and-client-libraries.md
Normal file
221
docs/tutorial/7-schemas-and-client-libraries.md
Normal file
|
@ -0,0 +1,221 @@
|
|||
# Tutorial 7: Schemas & client libraries
|
||||
|
||||
A schema is a machine-readable document that describes the available API
|
||||
endpoints, their URLS, and what operations they support.
|
||||
|
||||
Schemas can be a useful tool for auto-generated documentation, and can also
|
||||
be used to drive dynamic client libraries that can interact with the API.
|
||||
|
||||
## Core API
|
||||
|
||||
In order to provide schema support REST framework uses [Core API][coreapi].
|
||||
|
||||
Core API is a document specification for describing APIs. It is used to provide
|
||||
an internal representation format of the available endpoints and possible
|
||||
interactions that an API exposes. It can either be used server-side, or
|
||||
client-side.
|
||||
|
||||
When used server-side, Core API allows an API to support rendering to a wide
|
||||
range of schema or hypermedia formats.
|
||||
|
||||
When used client-side, Core API allows for dynamically driven client libraries
|
||||
that can interact with any API that exposes a supported schema or hypermedia
|
||||
format.
|
||||
|
||||
## Adding a schema
|
||||
|
||||
REST framework supports either explicitly defined schema views, or
|
||||
automatically generated schemas. Since we're using viewsets and routers,
|
||||
we can simply use the automatic schema generation.
|
||||
|
||||
You'll need to install the `coreapi` python package in order to include an
|
||||
API schema.
|
||||
|
||||
$ pip install coreapi
|
||||
|
||||
We can now include a schema for our API, by adding a `schema_title` argument to
|
||||
the router instantiation.
|
||||
|
||||
router = DefaultRouter(schema_title='Pastebin API')
|
||||
|
||||
If you visit the API root endpoint in a browser you should now see `corejson`
|
||||
representation become available as an option.
|
||||
|
||||

|
||||
|
||||
We can also request the schema from the command line, by specifying the desired
|
||||
content type in the `Accept` header.
|
||||
|
||||
$ http http://127.0.0.1:8000/ Accept:application/vnd.coreapi+json
|
||||
HTTP/1.0 200 OK
|
||||
Allow: GET, HEAD, OPTIONS
|
||||
Content-Type: application/vnd.coreapi+json
|
||||
|
||||
{
|
||||
"_meta": {
|
||||
"title": "Pastebin API"
|
||||
},
|
||||
"_type": "document",
|
||||
...
|
||||
|
||||
The default output style is to use the [Core JSON][corejson] encoding.
|
||||
|
||||
Other schema formats, such as [Open API][openapi] (formerly Swagger) are
|
||||
also supported.
|
||||
|
||||
## Using a command line client
|
||||
|
||||
Now that our API is exposing a schema endpoint, we can use a dynamic client
|
||||
library to interact with the API. To demonstrate this, let's use the
|
||||
Core API command line client.
|
||||
|
||||
The command line client is available as the `coreapi-cli` package:
|
||||
|
||||
$ pip install coreapi-cli
|
||||
|
||||
Now check that it is available on the command line...
|
||||
|
||||
$ coreapi
|
||||
Usage: coreapi [OPTIONS] COMMAND [ARGS]...
|
||||
|
||||
Command line client for interacting with CoreAPI services.
|
||||
|
||||
Visit http://www.coreapi.org for more information.
|
||||
|
||||
Options:
|
||||
--version Display the package version number.
|
||||
--help Show this message and exit.
|
||||
|
||||
Commands:
|
||||
...
|
||||
|
||||
First we'll load the API schema using the command line client.
|
||||
|
||||
$ coreapi get http://127.0.0.1:8000/
|
||||
<Pastebin API "http://127.0.0.1:8000/">
|
||||
snippets: {
|
||||
highlight(pk)
|
||||
list()
|
||||
retrieve(pk)
|
||||
}
|
||||
users: {
|
||||
list()
|
||||
retrieve(pk)
|
||||
}
|
||||
|
||||
We haven't authenticated yet, so right now we're only able to see the read only
|
||||
endpoints, in line with how we've set up the permissions on the API.
|
||||
|
||||
Let's try listing the existing snippets, using the command line client:
|
||||
|
||||
$ coreapi action snippets list
|
||||
[
|
||||
{
|
||||
"url": "http://127.0.0.1:8000/snippets/1/",
|
||||
"pk": 1,
|
||||
"highlight": "http://127.0.0.1:8000/snippets/1/highlight/",
|
||||
"owner": "lucy",
|
||||
"title": "Example",
|
||||
"code": "print('hello, world!')",
|
||||
"linenos": true,
|
||||
"language": "python",
|
||||
"style": "friendly"
|
||||
},
|
||||
...
|
||||
|
||||
Some of the API endpoints require named parameters. For example, to get back
|
||||
the highlight HTML for a particular snippet we need to provide an id.
|
||||
|
||||
$ coreapi action snippets highlight --param pk=1
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title>Example</title>
|
||||
...
|
||||
|
||||
## Authenticating our client
|
||||
|
||||
If we want to be able to create, edit and delete snippets, we'll need to
|
||||
authenticate as a valid user. In this case we'll just use basic auth.
|
||||
|
||||
Make sure to replace the `<username>` and `<password>` below with your
|
||||
actual username and password.
|
||||
|
||||
$ coreapi credentials add 127.0.0.1 <username>:<password> --auth basic
|
||||
Added credentials
|
||||
127.0.0.1 "Basic <...>"
|
||||
|
||||
Now if we fetch the schema again, we should be able to see the full
|
||||
set of available interactions.
|
||||
|
||||
$ coreapi reload
|
||||
Pastebin API "http://127.0.0.1:8000/">
|
||||
snippets: {
|
||||
create(code, [title], [linenos], [language], [style])
|
||||
destroy(pk)
|
||||
highlight(pk)
|
||||
list()
|
||||
partial_update(pk, [title], [code], [linenos], [language], [style])
|
||||
retrieve(pk)
|
||||
update(pk, code, [title], [linenos], [language], [style])
|
||||
}
|
||||
users: {
|
||||
list()
|
||||
retrieve(pk)
|
||||
}
|
||||
|
||||
We're now able to interact with these endpoints. For example, to create a new
|
||||
snippet:
|
||||
|
||||
$ coreapi action snippets create --param title="Example" --param code="print('hello, world')"
|
||||
{
|
||||
"url": "http://127.0.0.1:8000/snippets/7/",
|
||||
"pk": 7,
|
||||
"highlight": "http://127.0.0.1:8000/snippets/7/highlight/",
|
||||
"owner": "lucy",
|
||||
"title": "Example",
|
||||
"code": "print('hello, world')",
|
||||
"linenos": false,
|
||||
"language": "python",
|
||||
"style": "friendly"
|
||||
}
|
||||
|
||||
And to delete a snippet:
|
||||
|
||||
$ coreapi action snippets destroy --param pk=7
|
||||
|
||||
As well as the command line client, developers can also interact with your
|
||||
API using client libraries. The Python client library is the first of these
|
||||
to be available, and a Javascript client library is planned to be released
|
||||
soon.
|
||||
|
||||
For more details on customizing schema generation and using Core API
|
||||
client libraries you'll need to refer to the full documentation.
|
||||
|
||||
## Reviewing our work
|
||||
|
||||
With an incredibly small amount of code, we've now got a complete pastebin Web API, which is fully web browsable, includes a schema-driven client library, and comes complete with authentication, per-object permissions, and multiple renderer formats.
|
||||
|
||||
We've walked through each step of the design process, and seen how if we need to customize anything we can gradually work our way down to simply using regular Django views.
|
||||
|
||||
You can review the final [tutorial code][repo] on GitHub, or try out a live example in [the sandbox][sandbox].
|
||||
|
||||
## Onwards and upwards
|
||||
|
||||
We've reached the end of our tutorial. If you want to get more involved in the REST framework project, here are a few places you can start:
|
||||
|
||||
* Contribute on [GitHub][github] by reviewing and submitting issues, and making pull requests.
|
||||
* Join the [REST framework discussion group][group], and help build the community.
|
||||
* Follow [the author][twitter] on Twitter and say hi.
|
||||
|
||||
**Now go build awesome things.**
|
||||
|
||||
[coreapi]: http://www.coreapi.org
|
||||
[corejson]: http://www.coreapi.org/specification/encoding/#core-json-encoding
|
||||
[openapi]: https://openapis.org/
|
||||
[repo]: https://github.com/tomchristie/rest-framework-tutorial
|
||||
[sandbox]: http://restframework.herokuapp.com/
|
||||
[github]: https://github.com/tomchristie/django-rest-framework
|
||||
[group]: https://groups.google.com/forum/?fromgroups#!forum/django-rest-framework
|
||||
[twitter]: https://twitter.com/_tomchristie
|
|
@ -104,7 +104,7 @@ Okay, now let's wire up the API URLs. On to `tutorial/urls.py`...
|
|||
|
||||
Because we're using viewsets instead of views, we can automatically generate the URL conf for our API, by simply registering the viewsets with a router class.
|
||||
|
||||
Again, if we need more control over the API URLs we can simply drop down to using regular class based views, and writing the URL conf explicitly.
|
||||
Again, if we need more control over the API URLs we can simply drop down to using regular class-based views, and writing the URL conf explicitly.
|
||||
|
||||
Finally, we're including default login and logout views for use with the browsable API. That's optional, but useful if your API requires authentication and you want to use the browsable API.
|
||||
|
||||
|
@ -130,7 +130,7 @@ Okay, we're done.
|
|||
|
||||
We're now ready to test the API we've built. Let's fire up the server from the command line.
|
||||
|
||||
python ./manage.py runserver
|
||||
python manage.py runserver
|
||||
|
||||
We can now access our API, both from the command-line, using tools like `curl`...
|
||||
|
||||
|
@ -182,7 +182,7 @@ Or using the [httpie][httpie], command line tool...
|
|||
}
|
||||
|
||||
|
||||
Or directly through the browser...
|
||||
Or directly through the browser, by going to the URL `http://127.0.0.1:8000/users/`...
|
||||
|
||||
![Quick start image][image]
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@ pages:
|
|||
- '4 - Authentication and permissions': 'tutorial/4-authentication-and-permissions.md'
|
||||
- '5 - Relationships and hyperlinked APIs': 'tutorial/5-relationships-and-hyperlinked-apis.md'
|
||||
- '6 - Viewsets and routers': 'tutorial/6-viewsets-and-routers.md'
|
||||
- '7 - Schemas and client libraries': 'tutorial/7-schemas-and-client-libraries.md'
|
||||
- API Guide:
|
||||
- 'Requests': 'api-guide/requests.md'
|
||||
- 'Responses': 'api-guide/responses.md'
|
||||
|
@ -41,6 +42,7 @@ pages:
|
|||
- 'Versioning': 'api-guide/versioning.md'
|
||||
- 'Content negotiation': 'api-guide/content-negotiation.md'
|
||||
- 'Metadata': 'api-guide/metadata.md'
|
||||
- 'Schemas': 'api-guide/schemas.md'
|
||||
- 'Format suffixes': 'api-guide/format-suffixes.md'
|
||||
- 'Returning URLs': 'api-guide/reverse.md'
|
||||
- 'Exceptions': 'api-guide/exceptions.md'
|
||||
|
@ -49,6 +51,7 @@ pages:
|
|||
- 'Settings': 'api-guide/settings.md'
|
||||
- Topics:
|
||||
- 'Documenting your API': 'topics/documenting-your-api.md'
|
||||
- 'API Clients': 'topics/api-clients.md'
|
||||
- 'Internationalization': 'topics/internationalization.md'
|
||||
- 'AJAX, CSRF & CORS': 'topics/ajax-csrf-cors.md'
|
||||
- 'HTML & Forms': 'topics/html-and-forms.md'
|
||||
|
@ -62,6 +65,7 @@ pages:
|
|||
- '3.1 Announcement': 'topics/3.1-announcement.md'
|
||||
- '3.2 Announcement': 'topics/3.2-announcement.md'
|
||||
- '3.3 Announcement': 'topics/3.3-announcement.md'
|
||||
- '3.4 Announcement': 'topics/3.4-announcement.md'
|
||||
- 'Kickstarter Announcement': 'topics/kickstarter-announcement.md'
|
||||
- 'Mozilla Grant': 'topics/mozilla-grant.md'
|
||||
- 'Funding': 'topics/funding.md'
|
||||
|
|
|
@ -2,3 +2,4 @@
|
|||
markdown==2.6.4
|
||||
django-guardian==1.4.3
|
||||
django-filter==0.13.0
|
||||
coreapi==1.32.0
|
||||
|
|
|
@ -8,7 +8,7 @@ ______ _____ _____ _____ __
|
|||
"""
|
||||
|
||||
__title__ = 'Django REST framework'
|
||||
__version__ = '3.3.3'
|
||||
__version__ = '3.4.0'
|
||||
__author__ = 'Tom Christie'
|
||||
__license__ = 'BSD 2-Clause'
|
||||
__copyright__ = 'Copyright 2011-2016 Tom Christie'
|
||||
|
|
|
@ -6,12 +6,6 @@ from django.db import models
|
|||
from django.utils.encoding import python_2_unicode_compatible
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
# Prior to Django 1.5, the AUTH_USER_MODEL setting does not exist.
|
||||
# Note that we don't perform this code in the compat module due to
|
||||
# bug report #1297
|
||||
# See: https://github.com/tomchristie/django-rest-framework/issues/1297
|
||||
AUTH_USER_MODEL = getattr(settings, 'AUTH_USER_MODEL', 'auth.User')
|
||||
|
||||
|
||||
@python_2_unicode_compatible
|
||||
class Token(models.Model):
|
||||
|
@ -19,8 +13,10 @@ class Token(models.Model):
|
|||
The default authorization token model.
|
||||
"""
|
||||
key = models.CharField(_("Key"), max_length=40, primary_key=True)
|
||||
user = models.OneToOneField(AUTH_USER_MODEL, related_name='auth_token',
|
||||
on_delete=models.CASCADE, verbose_name=_("User"))
|
||||
user = models.OneToOneField(
|
||||
settings.AUTH_USER_MODEL, related_name='auth_token',
|
||||
on_delete=models.CASCADE, verbose_name=_("User")
|
||||
)
|
||||
created = models.DateTimeField(_("Created"), auto_now_add=True)
|
||||
|
||||
class Meta:
|
||||
|
|
|
@ -126,7 +126,7 @@ def get_related_model(field):
|
|||
def value_from_object(field, obj):
|
||||
if django.VERSION < (1, 9):
|
||||
return field._get_val_from_obj(obj)
|
||||
field.value_from_object(obj)
|
||||
return field.value_from_object(obj)
|
||||
|
||||
|
||||
# contrib.postgres only supported from 1.8 onwards.
|
||||
|
@ -157,6 +157,16 @@ except ImportError:
|
|||
crispy_forms = None
|
||||
|
||||
|
||||
# coreapi is optional (Note that uritemplate is a dependancy of coreapi)
|
||||
try:
|
||||
import coreapi
|
||||
import uritemplate
|
||||
except (ImportError, SyntaxError):
|
||||
# SyntaxError is possible under python 3.2
|
||||
coreapi = None
|
||||
uritemplate = None
|
||||
|
||||
|
||||
# Django-guardian is optional. Import only if guardian is in INSTALLED_APPS
|
||||
# Fixes (#1712). We keep the try/except for the test suite.
|
||||
guardian = None
|
||||
|
|
|
@ -25,6 +25,7 @@ from django.utils.dateparse import (
|
|||
)
|
||||
from django.utils.duration import duration_string
|
||||
from django.utils.encoding import is_protected_type, smart_text
|
||||
from django.utils.formats import localize_input, sanitize_separators
|
||||
from django.utils.functional import cached_property
|
||||
from django.utils.ipv6 import clean_ipv6_address
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
@ -855,6 +856,7 @@ class FloatField(Field):
|
|||
self.validators.append(MinValueValidator(self.min_value, message=message))
|
||||
|
||||
def to_internal_value(self, data):
|
||||
|
||||
if isinstance(data, six.text_type) and len(data) > self.MAX_STRING_LENGTH:
|
||||
self.fail('max_string_length')
|
||||
|
||||
|
@ -879,11 +881,15 @@ class DecimalField(Field):
|
|||
}
|
||||
MAX_STRING_LENGTH = 1000 # Guard against malicious string inputs.
|
||||
|
||||
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,
|
||||
localize=False, **kwargs):
|
||||
self.max_digits = max_digits
|
||||
self.decimal_places = decimal_places
|
||||
self.localize = localize
|
||||
if coerce_to_string is not None:
|
||||
self.coerce_to_string = coerce_to_string
|
||||
if self.localize:
|
||||
self.coerce_to_string = True
|
||||
|
||||
self.max_value = max_value
|
||||
self.min_value = min_value
|
||||
|
@ -907,7 +913,12 @@ class DecimalField(Field):
|
|||
Validate that the input is a decimal number and return a Decimal
|
||||
instance.
|
||||
"""
|
||||
|
||||
data = smart_text(data).strip()
|
||||
|
||||
if self.localize:
|
||||
data = sanitize_separators(data)
|
||||
|
||||
if len(data) > self.MAX_STRING_LENGTH:
|
||||
self.fail('max_string_length')
|
||||
|
||||
|
@ -972,6 +983,9 @@ class DecimalField(Field):
|
|||
|
||||
if not coerce_to_string:
|
||||
return quantized
|
||||
if self.localize:
|
||||
return localize_input(quantized)
|
||||
|
||||
return '{0:f}'.format(quantized)
|
||||
|
||||
def quantize(self, value):
|
||||
|
@ -1057,7 +1071,7 @@ class DateTimeField(Field):
|
|||
|
||||
output_format = getattr(self, 'format', api_settings.DATETIME_FORMAT)
|
||||
|
||||
if output_format is None:
|
||||
if output_format is None or isinstance(value, six.string_types):
|
||||
return value
|
||||
|
||||
if output_format.lower() == ISO_8601:
|
||||
|
@ -1117,7 +1131,7 @@ class DateField(Field):
|
|||
|
||||
output_format = getattr(self, 'format', api_settings.DATE_FORMAT)
|
||||
|
||||
if output_format is None:
|
||||
if output_format is None or isinstance(value, six.string_types):
|
||||
return value
|
||||
|
||||
# Applying a `DateField` to a datetime value is almost always
|
||||
|
@ -1130,8 +1144,6 @@ class DateField(Field):
|
|||
)
|
||||
|
||||
if output_format.lower() == ISO_8601:
|
||||
if isinstance(value, six.string_types):
|
||||
value = datetime.datetime.strptime(value, '%Y-%m-%d').date()
|
||||
return value.isoformat()
|
||||
|
||||
return value.strftime(output_format)
|
||||
|
@ -1182,7 +1194,7 @@ class TimeField(Field):
|
|||
|
||||
output_format = getattr(self, 'format', api_settings.TIME_FORMAT)
|
||||
|
||||
if output_format is None:
|
||||
if output_format is None or isinstance(value, six.string_types):
|
||||
return value
|
||||
|
||||
# Applying a `TimeField` to a datetime value is almost always
|
||||
|
@ -1195,8 +1207,6 @@ class TimeField(Field):
|
|||
)
|
||||
|
||||
if output_format.lower() == ISO_8601:
|
||||
if isinstance(value, six.string_types):
|
||||
value = datetime.datetime.strptime(value, '%H:%M:%S').time()
|
||||
return value.isoformat()
|
||||
return value.strftime(output_format)
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@ from functools import reduce
|
|||
from django.conf import settings
|
||||
from django.core.exceptions import ImproperlyConfigured
|
||||
from django.db import models
|
||||
from django.db.models.constants import LOOKUP_SEP
|
||||
from django.template import loader
|
||||
from django.utils import six
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
@ -71,6 +72,9 @@ class BaseFilterBackend(object):
|
|||
"""
|
||||
raise NotImplementedError(".filter_queryset() must be overridden.")
|
||||
|
||||
def get_fields(self, view):
|
||||
return []
|
||||
|
||||
|
||||
class DjangoFilterBackend(BaseFilterBackend):
|
||||
"""
|
||||
|
@ -127,11 +131,28 @@ class DjangoFilterBackend(BaseFilterBackend):
|
|||
template = loader.get_template(self.template)
|
||||
return template_render(template, context)
|
||||
|
||||
def get_fields(self, view):
|
||||
filter_class = getattr(view, 'filter_class', None)
|
||||
if filter_class:
|
||||
return list(filter_class().filters.keys())
|
||||
|
||||
filter_fields = getattr(view, 'filter_fields', None)
|
||||
if filter_fields:
|
||||
return filter_fields
|
||||
|
||||
return []
|
||||
|
||||
|
||||
class SearchFilter(BaseFilterBackend):
|
||||
# The URL query parameter used for the search.
|
||||
search_param = api_settings.SEARCH_PARAM
|
||||
template = 'rest_framework/filters/search.html'
|
||||
lookup_prefixes = {
|
||||
'^': 'istartswith',
|
||||
'=': 'iexact',
|
||||
'@': 'search',
|
||||
'$': 'iregex',
|
||||
}
|
||||
|
||||
def get_search_terms(self, request):
|
||||
"""
|
||||
|
@ -142,16 +163,32 @@ class SearchFilter(BaseFilterBackend):
|
|||
return params.replace(',', ' ').split()
|
||||
|
||||
def construct_search(self, field_name):
|
||||
if field_name.startswith('^'):
|
||||
return "%s__istartswith" % field_name[1:]
|
||||
elif field_name.startswith('='):
|
||||
return "%s__iexact" % field_name[1:]
|
||||
elif field_name.startswith('@'):
|
||||
return "%s__search" % field_name[1:]
|
||||
if field_name.startswith('$'):
|
||||
return "%s__iregex" % field_name[1:]
|
||||
lookup = self.lookup_prefixes.get(field_name[0])
|
||||
if lookup:
|
||||
field_name = field_name[1:]
|
||||
else:
|
||||
return "%s__icontains" % field_name
|
||||
lookup = 'icontains'
|
||||
return LOOKUP_SEP.join([field_name, lookup])
|
||||
|
||||
def must_call_distinct(self, queryset, search_fields):
|
||||
"""
|
||||
Return True if 'distinct()' should be used to query the given lookups.
|
||||
"""
|
||||
opts = queryset.model._meta
|
||||
for search_field in search_fields:
|
||||
if search_field[0] in self.lookup_prefixes:
|
||||
search_field = search_field[1:]
|
||||
parts = search_field.split(LOOKUP_SEP)
|
||||
for part in parts:
|
||||
field = opts.get_field(part)
|
||||
if hasattr(field, 'get_path_info'):
|
||||
# This field is a relation, update opts to follow the relation
|
||||
path_info = field.get_path_info()
|
||||
opts = path_info[-1].to_opts
|
||||
if any(path.m2m for path in path_info):
|
||||
# This field is a m2m relation so we know we need to call distinct
|
||||
return True
|
||||
return False
|
||||
|
||||
def filter_queryset(self, request, queryset, view):
|
||||
search_fields = getattr(view, 'search_fields', None)
|
||||
|
@ -173,10 +210,13 @@ class SearchFilter(BaseFilterBackend):
|
|||
]
|
||||
queryset = queryset.filter(reduce(operator.or_, queries))
|
||||
|
||||
# Filtering against a many-to-many field requires us to
|
||||
# call queryset.distinct() in order to avoid duplicate items
|
||||
# in the resulting queryset.
|
||||
return distinct(queryset, base)
|
||||
if self.must_call_distinct(queryset, search_fields):
|
||||
# Filtering against a many-to-many field requires us to
|
||||
# call queryset.distinct() in order to avoid duplicate items
|
||||
# in the resulting queryset.
|
||||
# We try to avoid this is possible, for performance reasons.
|
||||
queryset = distinct(queryset, base)
|
||||
return queryset
|
||||
|
||||
def to_html(self, request, queryset, view):
|
||||
if not getattr(view, 'search_fields', None):
|
||||
|
@ -191,6 +231,9 @@ class SearchFilter(BaseFilterBackend):
|
|||
template = loader.get_template(self.template)
|
||||
return template_render(template, context)
|
||||
|
||||
def get_fields(self, view):
|
||||
return [self.search_param]
|
||||
|
||||
|
||||
class OrderingFilter(BaseFilterBackend):
|
||||
# The URL query parameter used for the ordering.
|
||||
|
@ -304,6 +347,9 @@ class OrderingFilter(BaseFilterBackend):
|
|||
context = self.get_template_context(request, queryset, view)
|
||||
return template_render(template, context)
|
||||
|
||||
def get_fields(self, view):
|
||||
return [self.ordering_param]
|
||||
|
||||
|
||||
class DjangoObjectPermissionsFilter(BaseFilterBackend):
|
||||
"""
|
||||
|
|
Binary file not shown.
|
@ -7,9 +7,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Django REST framework\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-01 18:38+0100\n"
|
||||
"PO-Revision-Date: 2016-03-01 17:38+0000\n"
|
||||
"Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
|
||||
"POT-Creation-Date: 2016-07-12 16:13+0100\n"
|
||||
"PO-Revision-Date: 2016-07-12 15:14+0000\n"
|
||||
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n"
|
||||
"Language-Team: Acoli (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/ach/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -17,40 +17,40 @@ msgstr ""
|
|||
"Language: ach\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: authentication.py:71
|
||||
#: authentication.py:73
|
||||
msgid "Invalid basic header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:74
|
||||
#: authentication.py:76
|
||||
msgid "Invalid basic header. Credentials string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:80
|
||||
#: authentication.py:82
|
||||
msgid "Invalid basic header. Credentials not correctly base64 encoded."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:97
|
||||
#: authentication.py:99
|
||||
msgid "Invalid username/password."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:100 authentication.py:195
|
||||
#: authentication.py:102 authentication.py:198
|
||||
msgid "User inactive or deleted."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:173
|
||||
#: authentication.py:176
|
||||
msgid "Invalid token header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:176
|
||||
#: authentication.py:179
|
||||
msgid "Invalid token header. Token string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:182
|
||||
#: authentication.py:185
|
||||
msgid ""
|
||||
"Invalid token header. Token string should not contain invalid characters."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:192
|
||||
#: authentication.py:195
|
||||
msgid "Invalid token."
|
||||
msgstr ""
|
||||
|
||||
|
@ -58,23 +58,23 @@ msgstr ""
|
|||
msgid "Auth Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:21
|
||||
#: authtoken/models.py:15
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:23
|
||||
#: authtoken/models.py:18
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:24
|
||||
#: authtoken/models.py:20
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:33
|
||||
#: authtoken/models.py:29
|
||||
msgid "Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:34
|
||||
#: authtoken/models.py:30
|
||||
msgid "Tokens"
|
||||
msgstr ""
|
||||
|
||||
|
@ -123,7 +123,6 @@ msgid "Not found."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:109
|
||||
#, python-brace-format
|
||||
msgid "Method \"{method}\" not allowed."
|
||||
msgstr ""
|
||||
|
||||
|
@ -132,7 +131,6 @@ msgid "Could not satisfy the request Accept header."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:132
|
||||
#, python-brace-format
|
||||
msgid "Unsupported media type \"{media_type}\" in request."
|
||||
msgstr ""
|
||||
|
||||
|
@ -140,214 +138,201 @@ msgstr ""
|
|||
msgid "Request was throttled."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:266 relations.py:206 relations.py:239 validators.py:79
|
||||
#: validators.py:162
|
||||
#: fields.py:269 relations.py:206 relations.py:239 validators.py:98
|
||||
#: validators.py:181
|
||||
msgid "This field is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:267
|
||||
#: fields.py:270
|
||||
msgid "This field may not be null."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:603 fields.py:634
|
||||
#, python-brace-format
|
||||
#: fields.py:608 fields.py:639
|
||||
msgid "\"{input}\" is not a valid boolean."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:669
|
||||
#: fields.py:674
|
||||
msgid "This field may not be blank."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:670 fields.py:1664
|
||||
#, python-brace-format
|
||||
#: fields.py:675 fields.py:1675
|
||||
msgid "Ensure this field has no more than {max_length} characters."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:671
|
||||
#, python-brace-format
|
||||
#: fields.py:676
|
||||
msgid "Ensure this field has at least {min_length} characters."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:708
|
||||
#: fields.py:713
|
||||
msgid "Enter a valid email address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:719
|
||||
#: fields.py:724
|
||||
msgid "This value does not match the required pattern."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:730
|
||||
#: fields.py:735
|
||||
msgid ""
|
||||
"Enter a valid \"slug\" consisting of letters, numbers, underscores or "
|
||||
"hyphens."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:742
|
||||
#: fields.py:747
|
||||
msgid "Enter a valid URL."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:755
|
||||
#, python-brace-format
|
||||
#: fields.py:760
|
||||
msgid "\"{value}\" is not a valid UUID."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:791
|
||||
#: fields.py:796
|
||||
msgid "Enter a valid IPv4 or IPv6 address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:816
|
||||
#: fields.py:821
|
||||
msgid "A valid integer is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:817 fields.py:852 fields.py:885
|
||||
#, python-brace-format
|
||||
#: fields.py:822 fields.py:857 fields.py:891
|
||||
msgid "Ensure this value is less than or equal to {max_value}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:818 fields.py:853 fields.py:886
|
||||
#, python-brace-format
|
||||
#: fields.py:823 fields.py:858 fields.py:892
|
||||
msgid "Ensure this value is greater than or equal to {min_value}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:819 fields.py:854 fields.py:890
|
||||
#: fields.py:824 fields.py:859 fields.py:896
|
||||
msgid "String value too large."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:851 fields.py:884
|
||||
#: fields.py:856 fields.py:890
|
||||
msgid "A valid number is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:887
|
||||
#, python-brace-format
|
||||
#: fields.py:893
|
||||
msgid "Ensure that there are no more than {max_digits} digits in total."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:888
|
||||
#, python-brace-format
|
||||
#: fields.py:894
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_decimal_places} decimal places."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:889
|
||||
#, python-brace-format
|
||||
#: fields.py:895
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_whole_digits} digits before the "
|
||||
"decimal point."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1004
|
||||
#, python-brace-format
|
||||
#: fields.py:1025
|
||||
msgid "Datetime has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1005
|
||||
#: fields.py:1026
|
||||
msgid "Expected a datetime but got a date."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1082
|
||||
#, python-brace-format
|
||||
#: fields.py:1103
|
||||
msgid "Date has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1083
|
||||
#: fields.py:1104
|
||||
msgid "Expected a date but got a datetime."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1151
|
||||
#, python-brace-format
|
||||
#: fields.py:1170
|
||||
msgid "Time has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1215
|
||||
#, python-brace-format
|
||||
#: fields.py:1232
|
||||
msgid "Duration has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1240 fields.py:1289
|
||||
#, python-brace-format
|
||||
#: fields.py:1251 fields.py:1300
|
||||
msgid "\"{input}\" is not a valid choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1243 relations.py:71 relations.py:442
|
||||
#, python-brace-format
|
||||
#: fields.py:1254 relations.py:71 relations.py:441
|
||||
msgid "More than {count} items..."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1290 fields.py:1437 relations.py:438 serializers.py:520
|
||||
#, python-brace-format
|
||||
#: fields.py:1301 fields.py:1448 relations.py:437 serializers.py:524
|
||||
msgid "Expected a list of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1291
|
||||
#: fields.py:1302
|
||||
msgid "This selection may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1328
|
||||
#, python-brace-format
|
||||
#: fields.py:1339
|
||||
msgid "\"{input}\" is not a valid path choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1347
|
||||
#: fields.py:1358
|
||||
msgid "No file was submitted."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1348
|
||||
#: fields.py:1359
|
||||
msgid ""
|
||||
"The submitted data was not a file. Check the encoding type on the form."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1349
|
||||
#: fields.py:1360
|
||||
msgid "No filename could be determined."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1350
|
||||
#: fields.py:1361
|
||||
msgid "The submitted file is empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1351
|
||||
#, python-brace-format
|
||||
#: fields.py:1362
|
||||
msgid ""
|
||||
"Ensure this filename has at most {max_length} characters (it has {length})."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1399
|
||||
#: fields.py:1410
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1438 relations.py:439 serializers.py:521
|
||||
#: fields.py:1449 relations.py:438 serializers.py:525
|
||||
msgid "This list may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1491
|
||||
#, python-brace-format
|
||||
#: fields.py:1502
|
||||
msgid "Expected a dictionary of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1538
|
||||
#: fields.py:1549
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:35 templates/rest_framework/filters/django_filter.html.py:5
|
||||
#: filters.py:36 templates/rest_framework/filters/django_filter.html:5
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:189
|
||||
#: filters.py:336
|
||||
msgid "ascending"
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:337
|
||||
msgid "descending"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:193
|
||||
msgid "Invalid page."
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:407
|
||||
#: pagination.py:427
|
||||
msgid "Invalid cursor"
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:207
|
||||
#, python-brace-format
|
||||
msgid "Invalid pk \"{pk_value}\" - object does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:208
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected pk value, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
|
@ -364,25 +349,22 @@ msgid "Invalid hyperlink - Object does not exist."
|
|||
msgstr ""
|
||||
|
||||
#: relations.py:243
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected URL string, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:402
|
||||
#, python-brace-format
|
||||
#: relations.py:401
|
||||
msgid "Object with {slug_name}={value} does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:403
|
||||
#: relations.py:402
|
||||
msgid "Invalid value."
|
||||
msgstr ""
|
||||
|
||||
#: serializers.py:326
|
||||
#, python-brace-format
|
||||
msgid "Invalid data. Expected a dictionary, but got {datatype}."
|
||||
msgstr ""
|
||||
|
||||
#: templates/rest_framework/admin.html:118
|
||||
#: templates/rest_framework/admin.html:116
|
||||
#: templates/rest_framework/base.html:128
|
||||
msgid "Filters"
|
||||
msgstr ""
|
||||
|
@ -412,27 +394,23 @@ msgstr ""
|
|||
msgid "No items to select."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:24
|
||||
#: validators.py:43
|
||||
msgid "This field must be unique."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:78
|
||||
#, python-brace-format
|
||||
#: validators.py:97
|
||||
msgid "The fields {field_names} must make a unique set."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:226
|
||||
#, python-brace-format
|
||||
#: validators.py:245
|
||||
msgid "This field must be unique for the \"{date_field}\" date."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:241
|
||||
#, python-brace-format
|
||||
#: validators.py:260
|
||||
msgid "This field must be unique for the \"{date_field}\" month."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:254
|
||||
#, python-brace-format
|
||||
#: validators.py:273
|
||||
msgid "This field must be unique for the \"{date_field}\" year."
|
||||
msgstr ""
|
||||
|
||||
|
@ -440,15 +418,19 @@ msgstr ""
|
|||
msgid "Invalid version in \"Accept\" header."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:73 versioning.py:115
|
||||
#: versioning.py:73
|
||||
msgid "Invalid version in URL path."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:144
|
||||
#: versioning.py:115
|
||||
msgid "Invalid version in URL path. Does not match any version namespace."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:147
|
||||
msgid "Invalid version in hostname."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:166
|
||||
#: versioning.py:169
|
||||
msgid "Invalid version in query parameter."
|
||||
msgstr ""
|
||||
|
||||
|
|
Binary file not shown.
|
@ -3,14 +3,15 @@
|
|||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
# Translators:
|
||||
# Bashar Al-Abdulhadi, 2016
|
||||
# Eyad Toma <d.eyad.t@gmail.com>, 2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Django REST framework\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-01 18:38+0100\n"
|
||||
"PO-Revision-Date: 2016-03-01 17:38+0000\n"
|
||||
"Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
|
||||
"POT-Creation-Date: 2016-07-12 16:13+0100\n"
|
||||
"PO-Revision-Date: 2016-07-12 15:14+0000\n"
|
||||
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n"
|
||||
"Language-Team: Arabic (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/ar/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -18,74 +19,74 @@ msgstr ""
|
|||
"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"
|
||||
|
||||
#: authentication.py:71
|
||||
#: authentication.py:73
|
||||
msgid "Invalid basic header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:74
|
||||
#: authentication.py:76
|
||||
msgid "Invalid basic header. Credentials string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:80
|
||||
#: authentication.py:82
|
||||
msgid "Invalid basic header. Credentials not correctly base64 encoded."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:97
|
||||
#: authentication.py:99
|
||||
msgid "Invalid username/password."
|
||||
msgstr "اسم المستخدم/كلمة السر غير صحيحين."
|
||||
|
||||
#: authentication.py:100 authentication.py:195
|
||||
#: authentication.py:102 authentication.py:198
|
||||
msgid "User inactive or deleted."
|
||||
msgstr "المستخدم غير مفعل او تم حذفه."
|
||||
|
||||
#: authentication.py:173
|
||||
#: authentication.py:176
|
||||
msgid "Invalid token header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:176
|
||||
#: authentication.py:179
|
||||
msgid "Invalid token header. Token string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:182
|
||||
#: authentication.py:185
|
||||
msgid ""
|
||||
"Invalid token header. Token string should not contain invalid characters."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:192
|
||||
#: authentication.py:195
|
||||
msgid "Invalid token."
|
||||
msgstr ""
|
||||
msgstr "رمز غير صحيح"
|
||||
|
||||
#: authtoken/apps.py:7
|
||||
msgid "Auth Token"
|
||||
msgstr ""
|
||||
msgstr "رمز التفويض"
|
||||
|
||||
#: authtoken/models.py:21
|
||||
#: authtoken/models.py:15
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
msgstr "المفتاح"
|
||||
|
||||
#: authtoken/models.py:23
|
||||
#: authtoken/models.py:18
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
msgstr "المستخدم"
|
||||
|
||||
#: authtoken/models.py:24
|
||||
#: authtoken/models.py:20
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
msgstr "أنشئ"
|
||||
|
||||
#: authtoken/models.py:33
|
||||
#: authtoken/models.py:29
|
||||
msgid "Token"
|
||||
msgstr ""
|
||||
msgstr "الرمز"
|
||||
|
||||
#: authtoken/models.py:34
|
||||
#: authtoken/models.py:30
|
||||
msgid "Tokens"
|
||||
msgstr ""
|
||||
msgstr "الرموز"
|
||||
|
||||
#: authtoken/serializers.py:8
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
msgstr "اسم المستخدم"
|
||||
|
||||
#: authtoken/serializers.py:9
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
msgstr "كلمة المرور"
|
||||
|
||||
#: authtoken/serializers.py:20
|
||||
msgid "User account is disabled."
|
||||
|
@ -124,7 +125,6 @@ msgid "Not found."
|
|||
msgstr "غير موجود."
|
||||
|
||||
#: exceptions.py:109
|
||||
#, python-brace-format
|
||||
msgid "Method \"{method}\" not allowed."
|
||||
msgstr ""
|
||||
|
||||
|
@ -133,7 +133,6 @@ msgid "Could not satisfy the request Accept header."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:132
|
||||
#, python-brace-format
|
||||
msgid "Unsupported media type \"{media_type}\" in request."
|
||||
msgstr ""
|
||||
|
||||
|
@ -141,214 +140,201 @@ msgstr ""
|
|||
msgid "Request was throttled."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:266 relations.py:206 relations.py:239 validators.py:79
|
||||
#: validators.py:162
|
||||
#: fields.py:269 relations.py:206 relations.py:239 validators.py:98
|
||||
#: validators.py:181
|
||||
msgid "This field is required."
|
||||
msgstr "هذا الحقل مطلوب."
|
||||
|
||||
#: fields.py:267
|
||||
#: fields.py:270
|
||||
msgid "This field may not be null."
|
||||
msgstr "لا يمكن لهذا الحقل ان يكون فارغاً null."
|
||||
|
||||
#: fields.py:603 fields.py:634
|
||||
#, python-brace-format
|
||||
#: fields.py:608 fields.py:639
|
||||
msgid "\"{input}\" is not a valid boolean."
|
||||
msgstr "\"{input}\" ليس قيمة منطقية."
|
||||
|
||||
#: fields.py:669
|
||||
#: fields.py:674
|
||||
msgid "This field may not be blank."
|
||||
msgstr "لا يمكن لهذا الحقل ان يكون فارغاً."
|
||||
|
||||
#: fields.py:670 fields.py:1664
|
||||
#, python-brace-format
|
||||
#: fields.py:675 fields.py:1675
|
||||
msgid "Ensure this field has no more than {max_length} characters."
|
||||
msgstr "تأكد ان الحقل لا يزيد عن {max_length} محرف."
|
||||
|
||||
#: fields.py:671
|
||||
#, python-brace-format
|
||||
#: fields.py:676
|
||||
msgid "Ensure this field has at least {min_length} characters."
|
||||
msgstr "تأكد ان الحقل {min_length} محرف على الاقل."
|
||||
|
||||
#: fields.py:708
|
||||
#: fields.py:713
|
||||
msgid "Enter a valid email address."
|
||||
msgstr "عليك ان تدخل بريد إلكتروني صالح."
|
||||
|
||||
#: fields.py:719
|
||||
#: fields.py:724
|
||||
msgid "This value does not match the required pattern."
|
||||
msgstr "هذه القيمة لا تطابق النمط المطلوب."
|
||||
|
||||
#: fields.py:730
|
||||
#: fields.py:735
|
||||
msgid ""
|
||||
"Enter a valid \"slug\" consisting of letters, numbers, underscores or "
|
||||
"hyphens."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:742
|
||||
#: fields.py:747
|
||||
msgid "Enter a valid URL."
|
||||
msgstr "الرجاء إدخال رابط إلكتروني صالح."
|
||||
|
||||
#: fields.py:755
|
||||
#, python-brace-format
|
||||
#: fields.py:760
|
||||
msgid "\"{value}\" is not a valid UUID."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:791
|
||||
#: fields.py:796
|
||||
msgid "Enter a valid IPv4 or IPv6 address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:816
|
||||
#: fields.py:821
|
||||
msgid "A valid integer is required."
|
||||
msgstr "الرجاء إدخال رقم صحيح صالح."
|
||||
|
||||
#: fields.py:817 fields.py:852 fields.py:885
|
||||
#, python-brace-format
|
||||
#: fields.py:822 fields.py:857 fields.py:891
|
||||
msgid "Ensure this value is less than or equal to {max_value}."
|
||||
msgstr "تأكد ان القيمة أقل أو تساوي {max_value}."
|
||||
|
||||
#: fields.py:818 fields.py:853 fields.py:886
|
||||
#, python-brace-format
|
||||
#: fields.py:823 fields.py:858 fields.py:892
|
||||
msgid "Ensure this value is greater than or equal to {min_value}."
|
||||
msgstr "تأكد ان القيمة أكبر أو تساوي {min_value}."
|
||||
|
||||
#: fields.py:819 fields.py:854 fields.py:890
|
||||
#: fields.py:824 fields.py:859 fields.py:896
|
||||
msgid "String value too large."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:851 fields.py:884
|
||||
#: fields.py:856 fields.py:890
|
||||
msgid "A valid number is required."
|
||||
msgstr "الرجاء إدخال رقم صالح."
|
||||
|
||||
#: fields.py:887
|
||||
#, python-brace-format
|
||||
#: fields.py:893
|
||||
msgid "Ensure that there are no more than {max_digits} digits in total."
|
||||
msgstr "تأكد ان القيمة لا تحوي أكثر من {max_digits} رقم."
|
||||
|
||||
#: fields.py:888
|
||||
#, python-brace-format
|
||||
#: fields.py:894
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_decimal_places} decimal places."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:889
|
||||
#, python-brace-format
|
||||
#: fields.py:895
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_whole_digits} digits before the "
|
||||
"decimal point."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1004
|
||||
#, python-brace-format
|
||||
#: fields.py:1025
|
||||
msgid "Datetime has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr "صيغة التاريخ و الوقت غير صحيحة. عليك أن تستخدم واحدة من هذه الصيغ التالية: {format}."
|
||||
|
||||
#: fields.py:1005
|
||||
#: fields.py:1026
|
||||
msgid "Expected a datetime but got a date."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1082
|
||||
#, python-brace-format
|
||||
#: fields.py:1103
|
||||
msgid "Date has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr "صيغة التاريخ غير صحيحة. عليك أن تستخدم واحدة من هذه الصيغ التالية: {format}."
|
||||
|
||||
#: fields.py:1083
|
||||
#: fields.py:1104
|
||||
msgid "Expected a date but got a datetime."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1151
|
||||
#, python-brace-format
|
||||
#: fields.py:1170
|
||||
msgid "Time has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr "صيغة الوقت غير صحيحة. عليك أن تستخدم واحدة من هذه الصيغ التالية: {format}."
|
||||
|
||||
#: fields.py:1215
|
||||
#, python-brace-format
|
||||
#: fields.py:1232
|
||||
msgid "Duration has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1240 fields.py:1289
|
||||
#, python-brace-format
|
||||
#: fields.py:1251 fields.py:1300
|
||||
msgid "\"{input}\" is not a valid choice."
|
||||
msgstr "\"{input}\" ليست واحدة من الخيارات الصالحة."
|
||||
|
||||
#: fields.py:1243 relations.py:71 relations.py:442
|
||||
#, python-brace-format
|
||||
#: fields.py:1254 relations.py:71 relations.py:441
|
||||
msgid "More than {count} items..."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1290 fields.py:1437 relations.py:438 serializers.py:520
|
||||
#, python-brace-format
|
||||
#: fields.py:1301 fields.py:1448 relations.py:437 serializers.py:524
|
||||
msgid "Expected a list of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1291
|
||||
#: fields.py:1302
|
||||
msgid "This selection may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1328
|
||||
#, python-brace-format
|
||||
#: fields.py:1339
|
||||
msgid "\"{input}\" is not a valid path choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1347
|
||||
#: fields.py:1358
|
||||
msgid "No file was submitted."
|
||||
msgstr "لم يتم إرسال أي ملف."
|
||||
|
||||
#: fields.py:1348
|
||||
#: fields.py:1359
|
||||
msgid ""
|
||||
"The submitted data was not a file. Check the encoding type on the form."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1349
|
||||
#: fields.py:1360
|
||||
msgid "No filename could be determined."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1350
|
||||
#: fields.py:1361
|
||||
msgid "The submitted file is empty."
|
||||
msgstr "الملف الذي تم إرساله فارغ."
|
||||
|
||||
#: fields.py:1351
|
||||
#, python-brace-format
|
||||
#: fields.py:1362
|
||||
msgid ""
|
||||
"Ensure this filename has at most {max_length} characters (it has {length})."
|
||||
msgstr "تأكد ان اسم الملف لا يحوي أكثر من {max_length} محرف (الإسم المرسل يحوي {length} محرف)."
|
||||
|
||||
#: fields.py:1399
|
||||
#: fields.py:1410
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1438 relations.py:439 serializers.py:521
|
||||
#: fields.py:1449 relations.py:438 serializers.py:525
|
||||
msgid "This list may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1491
|
||||
#, python-brace-format
|
||||
#: fields.py:1502
|
||||
msgid "Expected a dictionary of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1538
|
||||
#: fields.py:1549
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:35 templates/rest_framework/filters/django_filter.html.py:5
|
||||
#: filters.py:36 templates/rest_framework/filters/django_filter.html:5
|
||||
msgid "Submit"
|
||||
msgstr "أرسل"
|
||||
|
||||
#: filters.py:336
|
||||
msgid "ascending"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:189
|
||||
#: filters.py:337
|
||||
msgid "descending"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:193
|
||||
msgid "Invalid page."
|
||||
msgstr ""
|
||||
msgstr "صفحة غير صحيحة"
|
||||
|
||||
#: pagination.py:407
|
||||
#: pagination.py:427
|
||||
msgid "Invalid cursor"
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:207
|
||||
#, python-brace-format
|
||||
msgid "Invalid pk \"{pk_value}\" - object does not exist."
|
||||
msgstr "معرف العنصر \"{pk_value}\" غير صالح - العنصر غير موجود."
|
||||
|
||||
#: relations.py:208
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected pk value, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
|
@ -365,41 +351,38 @@ msgid "Invalid hyperlink - Object does not exist."
|
|||
msgstr ""
|
||||
|
||||
#: relations.py:243
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected URL string, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:402
|
||||
#, python-brace-format
|
||||
#: relations.py:401
|
||||
msgid "Object with {slug_name}={value} does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:403
|
||||
#: relations.py:402
|
||||
msgid "Invalid value."
|
||||
msgstr "قيمة غير صالحة."
|
||||
|
||||
#: serializers.py:326
|
||||
#, python-brace-format
|
||||
msgid "Invalid data. Expected a dictionary, but got {datatype}."
|
||||
msgstr ""
|
||||
|
||||
#: templates/rest_framework/admin.html:118
|
||||
#: templates/rest_framework/admin.html:116
|
||||
#: templates/rest_framework/base.html:128
|
||||
msgid "Filters"
|
||||
msgstr ""
|
||||
msgstr "مرشحات"
|
||||
|
||||
#: templates/rest_framework/filters/django_filter.html:2
|
||||
#: templates/rest_framework/filters/django_filter_crispyforms.html:4
|
||||
msgid "Field filters"
|
||||
msgstr ""
|
||||
msgstr "مرشحات الحقول"
|
||||
|
||||
#: templates/rest_framework/filters/ordering.html:3
|
||||
msgid "Ordering"
|
||||
msgstr ""
|
||||
msgstr "الترتيب"
|
||||
|
||||
#: templates/rest_framework/filters/search.html:2
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
msgstr "البحث"
|
||||
|
||||
#: templates/rest_framework/horizontal/radio.html:2
|
||||
#: templates/rest_framework/inline/radio.html:2
|
||||
|
@ -413,27 +396,23 @@ msgstr ""
|
|||
msgid "No items to select."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:24
|
||||
#: validators.py:43
|
||||
msgid "This field must be unique."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:78
|
||||
#, python-brace-format
|
||||
#: validators.py:97
|
||||
msgid "The fields {field_names} must make a unique set."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:226
|
||||
#, python-brace-format
|
||||
#: validators.py:245
|
||||
msgid "This field must be unique for the \"{date_field}\" date."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:241
|
||||
#, python-brace-format
|
||||
#: validators.py:260
|
||||
msgid "This field must be unique for the \"{date_field}\" month."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:254
|
||||
#, python-brace-format
|
||||
#: validators.py:273
|
||||
msgid "This field must be unique for the \"{date_field}\" year."
|
||||
msgstr ""
|
||||
|
||||
|
@ -441,15 +420,19 @@ msgstr ""
|
|||
msgid "Invalid version in \"Accept\" header."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:73 versioning.py:115
|
||||
#: versioning.py:73
|
||||
msgid "Invalid version in URL path."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:144
|
||||
#: versioning.py:115
|
||||
msgid "Invalid version in URL path. Does not match any version namespace."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:147
|
||||
msgid "Invalid version in hostname."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:166
|
||||
#: versioning.py:169
|
||||
msgid "Invalid version in query parameter."
|
||||
msgstr ""
|
||||
|
||||
|
|
Binary file not shown.
|
@ -7,9 +7,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Django REST framework\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-01 18:38+0100\n"
|
||||
"PO-Revision-Date: 2016-03-01 17:38+0000\n"
|
||||
"Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
|
||||
"POT-Creation-Date: 2016-07-12 16:13+0100\n"
|
||||
"PO-Revision-Date: 2016-07-12 15:14+0000\n"
|
||||
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n"
|
||||
"Language-Team: Belarusian (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/be/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -17,40 +17,40 @@ msgstr ""
|
|||
"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"
|
||||
|
||||
#: authentication.py:71
|
||||
#: authentication.py:73
|
||||
msgid "Invalid basic header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:74
|
||||
#: authentication.py:76
|
||||
msgid "Invalid basic header. Credentials string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:80
|
||||
#: authentication.py:82
|
||||
msgid "Invalid basic header. Credentials not correctly base64 encoded."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:97
|
||||
#: authentication.py:99
|
||||
msgid "Invalid username/password."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:100 authentication.py:195
|
||||
#: authentication.py:102 authentication.py:198
|
||||
msgid "User inactive or deleted."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:173
|
||||
#: authentication.py:176
|
||||
msgid "Invalid token header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:176
|
||||
#: authentication.py:179
|
||||
msgid "Invalid token header. Token string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:182
|
||||
#: authentication.py:185
|
||||
msgid ""
|
||||
"Invalid token header. Token string should not contain invalid characters."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:192
|
||||
#: authentication.py:195
|
||||
msgid "Invalid token."
|
||||
msgstr ""
|
||||
|
||||
|
@ -58,23 +58,23 @@ msgstr ""
|
|||
msgid "Auth Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:21
|
||||
#: authtoken/models.py:15
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:23
|
||||
#: authtoken/models.py:18
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:24
|
||||
#: authtoken/models.py:20
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:33
|
||||
#: authtoken/models.py:29
|
||||
msgid "Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:34
|
||||
#: authtoken/models.py:30
|
||||
msgid "Tokens"
|
||||
msgstr ""
|
||||
|
||||
|
@ -123,7 +123,6 @@ msgid "Not found."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:109
|
||||
#, python-brace-format
|
||||
msgid "Method \"{method}\" not allowed."
|
||||
msgstr ""
|
||||
|
||||
|
@ -132,7 +131,6 @@ msgid "Could not satisfy the request Accept header."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:132
|
||||
#, python-brace-format
|
||||
msgid "Unsupported media type \"{media_type}\" in request."
|
||||
msgstr ""
|
||||
|
||||
|
@ -140,214 +138,201 @@ msgstr ""
|
|||
msgid "Request was throttled."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:266 relations.py:206 relations.py:239 validators.py:79
|
||||
#: validators.py:162
|
||||
#: fields.py:269 relations.py:206 relations.py:239 validators.py:98
|
||||
#: validators.py:181
|
||||
msgid "This field is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:267
|
||||
#: fields.py:270
|
||||
msgid "This field may not be null."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:603 fields.py:634
|
||||
#, python-brace-format
|
||||
#: fields.py:608 fields.py:639
|
||||
msgid "\"{input}\" is not a valid boolean."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:669
|
||||
#: fields.py:674
|
||||
msgid "This field may not be blank."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:670 fields.py:1664
|
||||
#, python-brace-format
|
||||
#: fields.py:675 fields.py:1675
|
||||
msgid "Ensure this field has no more than {max_length} characters."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:671
|
||||
#, python-brace-format
|
||||
#: fields.py:676
|
||||
msgid "Ensure this field has at least {min_length} characters."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:708
|
||||
#: fields.py:713
|
||||
msgid "Enter a valid email address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:719
|
||||
#: fields.py:724
|
||||
msgid "This value does not match the required pattern."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:730
|
||||
#: fields.py:735
|
||||
msgid ""
|
||||
"Enter a valid \"slug\" consisting of letters, numbers, underscores or "
|
||||
"hyphens."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:742
|
||||
#: fields.py:747
|
||||
msgid "Enter a valid URL."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:755
|
||||
#, python-brace-format
|
||||
#: fields.py:760
|
||||
msgid "\"{value}\" is not a valid UUID."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:791
|
||||
#: fields.py:796
|
||||
msgid "Enter a valid IPv4 or IPv6 address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:816
|
||||
#: fields.py:821
|
||||
msgid "A valid integer is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:817 fields.py:852 fields.py:885
|
||||
#, python-brace-format
|
||||
#: fields.py:822 fields.py:857 fields.py:891
|
||||
msgid "Ensure this value is less than or equal to {max_value}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:818 fields.py:853 fields.py:886
|
||||
#, python-brace-format
|
||||
#: fields.py:823 fields.py:858 fields.py:892
|
||||
msgid "Ensure this value is greater than or equal to {min_value}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:819 fields.py:854 fields.py:890
|
||||
#: fields.py:824 fields.py:859 fields.py:896
|
||||
msgid "String value too large."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:851 fields.py:884
|
||||
#: fields.py:856 fields.py:890
|
||||
msgid "A valid number is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:887
|
||||
#, python-brace-format
|
||||
#: fields.py:893
|
||||
msgid "Ensure that there are no more than {max_digits} digits in total."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:888
|
||||
#, python-brace-format
|
||||
#: fields.py:894
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_decimal_places} decimal places."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:889
|
||||
#, python-brace-format
|
||||
#: fields.py:895
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_whole_digits} digits before the "
|
||||
"decimal point."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1004
|
||||
#, python-brace-format
|
||||
#: fields.py:1025
|
||||
msgid "Datetime has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1005
|
||||
#: fields.py:1026
|
||||
msgid "Expected a datetime but got a date."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1082
|
||||
#, python-brace-format
|
||||
#: fields.py:1103
|
||||
msgid "Date has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1083
|
||||
#: fields.py:1104
|
||||
msgid "Expected a date but got a datetime."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1151
|
||||
#, python-brace-format
|
||||
#: fields.py:1170
|
||||
msgid "Time has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1215
|
||||
#, python-brace-format
|
||||
#: fields.py:1232
|
||||
msgid "Duration has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1240 fields.py:1289
|
||||
#, python-brace-format
|
||||
#: fields.py:1251 fields.py:1300
|
||||
msgid "\"{input}\" is not a valid choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1243 relations.py:71 relations.py:442
|
||||
#, python-brace-format
|
||||
#: fields.py:1254 relations.py:71 relations.py:441
|
||||
msgid "More than {count} items..."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1290 fields.py:1437 relations.py:438 serializers.py:520
|
||||
#, python-brace-format
|
||||
#: fields.py:1301 fields.py:1448 relations.py:437 serializers.py:524
|
||||
msgid "Expected a list of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1291
|
||||
#: fields.py:1302
|
||||
msgid "This selection may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1328
|
||||
#, python-brace-format
|
||||
#: fields.py:1339
|
||||
msgid "\"{input}\" is not a valid path choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1347
|
||||
#: fields.py:1358
|
||||
msgid "No file was submitted."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1348
|
||||
#: fields.py:1359
|
||||
msgid ""
|
||||
"The submitted data was not a file. Check the encoding type on the form."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1349
|
||||
#: fields.py:1360
|
||||
msgid "No filename could be determined."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1350
|
||||
#: fields.py:1361
|
||||
msgid "The submitted file is empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1351
|
||||
#, python-brace-format
|
||||
#: fields.py:1362
|
||||
msgid ""
|
||||
"Ensure this filename has at most {max_length} characters (it has {length})."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1399
|
||||
#: fields.py:1410
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1438 relations.py:439 serializers.py:521
|
||||
#: fields.py:1449 relations.py:438 serializers.py:525
|
||||
msgid "This list may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1491
|
||||
#, python-brace-format
|
||||
#: fields.py:1502
|
||||
msgid "Expected a dictionary of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1538
|
||||
#: fields.py:1549
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:35 templates/rest_framework/filters/django_filter.html.py:5
|
||||
#: filters.py:36 templates/rest_framework/filters/django_filter.html:5
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:189
|
||||
#: filters.py:336
|
||||
msgid "ascending"
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:337
|
||||
msgid "descending"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:193
|
||||
msgid "Invalid page."
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:407
|
||||
#: pagination.py:427
|
||||
msgid "Invalid cursor"
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:207
|
||||
#, python-brace-format
|
||||
msgid "Invalid pk \"{pk_value}\" - object does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:208
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected pk value, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
|
@ -364,25 +349,22 @@ msgid "Invalid hyperlink - Object does not exist."
|
|||
msgstr ""
|
||||
|
||||
#: relations.py:243
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected URL string, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:402
|
||||
#, python-brace-format
|
||||
#: relations.py:401
|
||||
msgid "Object with {slug_name}={value} does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:403
|
||||
#: relations.py:402
|
||||
msgid "Invalid value."
|
||||
msgstr ""
|
||||
|
||||
#: serializers.py:326
|
||||
#, python-brace-format
|
||||
msgid "Invalid data. Expected a dictionary, but got {datatype}."
|
||||
msgstr ""
|
||||
|
||||
#: templates/rest_framework/admin.html:118
|
||||
#: templates/rest_framework/admin.html:116
|
||||
#: templates/rest_framework/base.html:128
|
||||
msgid "Filters"
|
||||
msgstr ""
|
||||
|
@ -412,27 +394,23 @@ msgstr ""
|
|||
msgid "No items to select."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:24
|
||||
#: validators.py:43
|
||||
msgid "This field must be unique."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:78
|
||||
#, python-brace-format
|
||||
#: validators.py:97
|
||||
msgid "The fields {field_names} must make a unique set."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:226
|
||||
#, python-brace-format
|
||||
#: validators.py:245
|
||||
msgid "This field must be unique for the \"{date_field}\" date."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:241
|
||||
#, python-brace-format
|
||||
#: validators.py:260
|
||||
msgid "This field must be unique for the \"{date_field}\" month."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:254
|
||||
#, python-brace-format
|
||||
#: validators.py:273
|
||||
msgid "This field must be unique for the \"{date_field}\" year."
|
||||
msgstr ""
|
||||
|
||||
|
@ -440,15 +418,19 @@ msgstr ""
|
|||
msgid "Invalid version in \"Accept\" header."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:73 versioning.py:115
|
||||
#: versioning.py:73
|
||||
msgid "Invalid version in URL path."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:144
|
||||
#: versioning.py:115
|
||||
msgid "Invalid version in URL path. Does not match any version namespace."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:147
|
||||
msgid "Invalid version in hostname."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:166
|
||||
#: versioning.py:169
|
||||
msgid "Invalid version in query parameter."
|
||||
msgstr ""
|
||||
|
||||
|
|
Binary file not shown.
|
@ -7,9 +7,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Django REST framework\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-01 18:38+0100\n"
|
||||
"PO-Revision-Date: 2016-03-01 17:38+0000\n"
|
||||
"Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
|
||||
"POT-Creation-Date: 2016-07-12 16:13+0100\n"
|
||||
"PO-Revision-Date: 2016-07-12 15:14+0000\n"
|
||||
"Last-Translator: Thomas Christie <tom@tomchristie.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"
|
||||
|
@ -17,40 +17,40 @@ msgstr ""
|
|||
"Language: ca\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: authentication.py:71
|
||||
#: authentication.py:73
|
||||
msgid "Invalid basic header. No credentials provided."
|
||||
msgstr "Header Basic invàlid. No hi ha disponibles les credencials."
|
||||
|
||||
#: authentication.py:74
|
||||
#: authentication.py:76
|
||||
msgid "Invalid basic header. Credentials string should not contain spaces."
|
||||
msgstr "Header Basic invàlid. Les credencials no poden contenir espais."
|
||||
|
||||
#: authentication.py:80
|
||||
#: authentication.py:82
|
||||
msgid "Invalid basic header. Credentials not correctly base64 encoded."
|
||||
msgstr "Header Basic invàlid. Les credencials no estan codificades correctament en base64."
|
||||
|
||||
#: authentication.py:97
|
||||
#: authentication.py:99
|
||||
msgid "Invalid username/password."
|
||||
msgstr "Usuari/Contrasenya incorrectes."
|
||||
|
||||
#: authentication.py:100 authentication.py:195
|
||||
#: authentication.py:102 authentication.py:198
|
||||
msgid "User inactive or deleted."
|
||||
msgstr "Usuari inactiu o esborrat."
|
||||
|
||||
#: authentication.py:173
|
||||
#: authentication.py:176
|
||||
msgid "Invalid token header. No credentials provided."
|
||||
msgstr "Token header invàlid. No s'han indicat les credencials."
|
||||
|
||||
#: authentication.py:176
|
||||
#: authentication.py:179
|
||||
msgid "Invalid token header. Token string should not contain spaces."
|
||||
msgstr "Token header invàlid. El token no ha de contenir espais."
|
||||
|
||||
#: authentication.py:182
|
||||
#: authentication.py:185
|
||||
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:192
|
||||
#: authentication.py:195
|
||||
msgid "Invalid token."
|
||||
msgstr "Token invàlid."
|
||||
|
||||
|
@ -58,23 +58,23 @@ msgstr "Token invàlid."
|
|||
msgid "Auth Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:21
|
||||
#: authtoken/models.py:15
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:23
|
||||
#: authtoken/models.py:18
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:24
|
||||
#: authtoken/models.py:20
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:33
|
||||
#: authtoken/models.py:29
|
||||
msgid "Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:34
|
||||
#: authtoken/models.py:30
|
||||
msgid "Tokens"
|
||||
msgstr ""
|
||||
|
||||
|
@ -123,7 +123,6 @@ msgid "Not found."
|
|||
msgstr "No trobat."
|
||||
|
||||
#: exceptions.py:109
|
||||
#, python-brace-format
|
||||
msgid "Method \"{method}\" not allowed."
|
||||
msgstr "Mètode \"{method}\" no permès."
|
||||
|
||||
|
@ -132,7 +131,6 @@ 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."
|
||||
|
||||
|
@ -140,214 +138,201 @@ msgstr "Media type \"{media_type}\" no suportat."
|
|||
msgid "Request was throttled."
|
||||
msgstr "La petició ha estat limitada pel número màxim de peticions definit."
|
||||
|
||||
#: fields.py:266 relations.py:206 relations.py:239 validators.py:79
|
||||
#: validators.py:162
|
||||
#: fields.py:269 relations.py:206 relations.py:239 validators.py:98
|
||||
#: validators.py:181
|
||||
msgid "This field is required."
|
||||
msgstr "Aquest camp és obligatori."
|
||||
|
||||
#: fields.py:267
|
||||
#: fields.py:270
|
||||
msgid "This field may not be null."
|
||||
msgstr "Aquest camp no pot ser nul."
|
||||
|
||||
#: fields.py:603 fields.py:634
|
||||
#, python-brace-format
|
||||
#: fields.py:608 fields.py:639
|
||||
msgid "\"{input}\" is not a valid boolean."
|
||||
msgstr "\"{input}\" no és un booleà."
|
||||
|
||||
#: fields.py:669
|
||||
#: fields.py:674
|
||||
msgid "This field may not be blank."
|
||||
msgstr "Aquest camp no pot estar en blanc."
|
||||
|
||||
#: fields.py:670 fields.py:1664
|
||||
#, python-brace-format
|
||||
#: fields.py:675 fields.py:1675
|
||||
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:671
|
||||
#, python-brace-format
|
||||
#: fields.py:676
|
||||
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:708
|
||||
#: fields.py:713
|
||||
msgid "Enter a valid email address."
|
||||
msgstr "Introdueixi una adreça de correu vàlida."
|
||||
|
||||
#: fields.py:719
|
||||
#: fields.py:724
|
||||
msgid "This value does not match the required pattern."
|
||||
msgstr "Aquest valor no compleix el patró requerit."
|
||||
|
||||
#: fields.py:730
|
||||
#: fields.py:735
|
||||
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:742
|
||||
#: fields.py:747
|
||||
msgid "Enter a valid URL."
|
||||
msgstr "Introdueixi una URL vàlida."
|
||||
|
||||
#: fields.py:755
|
||||
#, python-brace-format
|
||||
#: fields.py:760
|
||||
msgid "\"{value}\" is not a valid UUID."
|
||||
msgstr "\"{value}\" no és un UUID vàlid."
|
||||
|
||||
#: fields.py:791
|
||||
#: fields.py:796
|
||||
msgid "Enter a valid IPv4 or IPv6 address."
|
||||
msgstr "Introdueixi una adreça IPv4 o IPv6 vàlida."
|
||||
|
||||
#: fields.py:816
|
||||
#: fields.py:821
|
||||
msgid "A valid integer is required."
|
||||
msgstr "Es requereix un nombre enter vàlid."
|
||||
|
||||
#: fields.py:817 fields.py:852 fields.py:885
|
||||
#, python-brace-format
|
||||
#: fields.py:822 fields.py:857 fields.py:891
|
||||
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:818 fields.py:853 fields.py:886
|
||||
#, python-brace-format
|
||||
#: fields.py:823 fields.py:858 fields.py:892
|
||||
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:819 fields.py:854 fields.py:890
|
||||
#: fields.py:824 fields.py:859 fields.py:896
|
||||
msgid "String value too large."
|
||||
msgstr "Valor del text massa gran."
|
||||
|
||||
#: fields.py:851 fields.py:884
|
||||
#: fields.py:856 fields.py:890
|
||||
msgid "A valid number is required."
|
||||
msgstr "Es requereix un nombre vàlid."
|
||||
|
||||
#: fields.py:887
|
||||
#, python-brace-format
|
||||
#: fields.py:893
|
||||
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:888
|
||||
#, python-brace-format
|
||||
#: fields.py:894
|
||||
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:889
|
||||
#, python-brace-format
|
||||
#: fields.py:895
|
||||
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:1004
|
||||
#, python-brace-format
|
||||
#: fields.py:1025
|
||||
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:1005
|
||||
#: fields.py:1026
|
||||
msgid "Expected a datetime but got a date."
|
||||
msgstr "S'espera un Datetime però s'ha rebut un Date."
|
||||
|
||||
#: fields.py:1082
|
||||
#, python-brace-format
|
||||
#: fields.py:1103
|
||||
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:1083
|
||||
#: fields.py:1104
|
||||
msgid "Expected a date but got a datetime."
|
||||
msgstr "S'espera un Date però s'ha rebut un Datetime."
|
||||
|
||||
#: fields.py:1151
|
||||
#, python-brace-format
|
||||
#: fields.py:1170
|
||||
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:1215
|
||||
#, python-brace-format
|
||||
#: fields.py:1232
|
||||
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:1240 fields.py:1289
|
||||
#, python-brace-format
|
||||
#: fields.py:1251 fields.py:1300
|
||||
msgid "\"{input}\" is not a valid choice."
|
||||
msgstr "\"{input}\" no és una opció vàlida."
|
||||
|
||||
#: fields.py:1243 relations.py:71 relations.py:442
|
||||
#, python-brace-format
|
||||
#: fields.py:1254 relations.py:71 relations.py:441
|
||||
msgid "More than {count} items..."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1290 fields.py:1437 relations.py:438 serializers.py:520
|
||||
#, python-brace-format
|
||||
#: fields.py:1301 fields.py:1448 relations.py:437 serializers.py:524
|
||||
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:1291
|
||||
#: fields.py:1302
|
||||
msgid "This selection may not be empty."
|
||||
msgstr "Aquesta selecció no pot estar buida."
|
||||
|
||||
#: fields.py:1328
|
||||
#, python-brace-format
|
||||
#: fields.py:1339
|
||||
msgid "\"{input}\" is not a valid path choice."
|
||||
msgstr "\"{input}\" no és un path vàlid."
|
||||
|
||||
#: fields.py:1347
|
||||
#: fields.py:1358
|
||||
msgid "No file was submitted."
|
||||
msgstr "No s'ha enviat cap fitxer."
|
||||
|
||||
#: fields.py:1348
|
||||
#: fields.py:1359
|
||||
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:1349
|
||||
#: fields.py:1360
|
||||
msgid "No filename could be determined."
|
||||
msgstr "No s'ha pogut determinar el nom del fitxer."
|
||||
|
||||
#: fields.py:1350
|
||||
#: fields.py:1361
|
||||
msgid "The submitted file is empty."
|
||||
msgstr "El fitxer enviat està buit."
|
||||
|
||||
#: fields.py:1351
|
||||
#, python-brace-format
|
||||
#: fields.py:1362
|
||||
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:1399
|
||||
#: fields.py:1410
|
||||
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:1438 relations.py:439 serializers.py:521
|
||||
#: fields.py:1449 relations.py:438 serializers.py:525
|
||||
msgid "This list may not be empty."
|
||||
msgstr "Aquesta llista no pot estar buida."
|
||||
|
||||
#: fields.py:1491
|
||||
#, python-brace-format
|
||||
#: fields.py:1502
|
||||
msgid "Expected a dictionary of items but got type \"{input_type}\"."
|
||||
msgstr "S'espera un diccionari però s'ha rebut el tipus \"{input_type}\"."
|
||||
|
||||
#: fields.py:1538
|
||||
#: fields.py:1549
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:35 templates/rest_framework/filters/django_filter.html.py:5
|
||||
#: filters.py:36 templates/rest_framework/filters/django_filter.html:5
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:189
|
||||
#: filters.py:336
|
||||
msgid "ascending"
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:337
|
||||
msgid "descending"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:193
|
||||
msgid "Invalid page."
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:407
|
||||
#: pagination.py:427
|
||||
msgid "Invalid cursor"
|
||||
msgstr "Cursor invàlid."
|
||||
|
||||
#: relations.py:207
|
||||
#, python-brace-format
|
||||
msgid "Invalid pk \"{pk_value}\" - object does not exist."
|
||||
msgstr "PK invàlida \"{pk_value}\" - l'objecte no existeix."
|
||||
|
||||
#: relations.py:208
|
||||
#, 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}."
|
||||
|
||||
|
@ -364,25 +349,22 @@ msgid "Invalid hyperlink - Object does not exist."
|
|||
msgstr "Hyperlink invàlid - L'objecte no existeix."
|
||||
|
||||
#: relations.py:243
|
||||
#, 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:402
|
||||
#, python-brace-format
|
||||
#: relations.py:401
|
||||
msgid "Object with {slug_name}={value} does not exist."
|
||||
msgstr "L'objecte amb {slug_name}={value} no existeix."
|
||||
|
||||
#: relations.py:403
|
||||
#: relations.py:402
|
||||
msgid "Invalid value."
|
||||
msgstr "Valor invàlid."
|
||||
|
||||
#: serializers.py:326
|
||||
#, 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/admin.html:118
|
||||
#: templates/rest_framework/admin.html:116
|
||||
#: templates/rest_framework/base.html:128
|
||||
msgid "Filters"
|
||||
msgstr ""
|
||||
|
@ -412,27 +394,23 @@ msgstr "Cap"
|
|||
msgid "No items to select."
|
||||
msgstr "Cap opció seleccionada."
|
||||
|
||||
#: validators.py:24
|
||||
#: validators.py:43
|
||||
msgid "This field must be unique."
|
||||
msgstr "Aquest camp ha de ser únic."
|
||||
|
||||
#: validators.py:78
|
||||
#, python-brace-format
|
||||
#: validators.py:97
|
||||
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
|
||||
#: validators.py:245
|
||||
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
|
||||
#: validators.py:260
|
||||
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
|
||||
#: validators.py:273
|
||||
msgid "This field must be unique for the \"{date_field}\" year."
|
||||
msgstr "Aquest camp ha de ser únic per a l'any \"{date_field}\"."
|
||||
|
||||
|
@ -440,15 +418,19 @@ msgstr "Aquest camp ha de ser únic per a l'any \"{date_field}\"."
|
|||
msgid "Invalid version in \"Accept\" header."
|
||||
msgstr "Versió invàlida al header \"Accept\"."
|
||||
|
||||
#: versioning.py:73 versioning.py:115
|
||||
#: versioning.py:73
|
||||
msgid "Invalid version in URL path."
|
||||
msgstr "Versió invàlida a la URL."
|
||||
|
||||
#: versioning.py:144
|
||||
#: versioning.py:115
|
||||
msgid "Invalid version in URL path. Does not match any version namespace."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:147
|
||||
msgid "Invalid version in hostname."
|
||||
msgstr "Versió invàlida al hostname."
|
||||
|
||||
#: versioning.py:166
|
||||
#: versioning.py:169
|
||||
msgid "Invalid version in query parameter."
|
||||
msgstr "Versió invàlida al paràmetre de consulta."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -7,9 +7,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Django REST framework\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-01 18:38+0100\n"
|
||||
"PO-Revision-Date: 2016-03-01 17:38+0000\n"
|
||||
"Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
|
||||
"POT-Creation-Date: 2016-07-12 16:13+0100\n"
|
||||
"PO-Revision-Date: 2016-07-12 15:14+0000\n"
|
||||
"Last-Translator: Thomas Christie <tom@tomchristie.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"
|
||||
|
@ -17,40 +17,40 @@ msgstr ""
|
|||
"Language: ca_ES\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: authentication.py:71
|
||||
#: authentication.py:73
|
||||
msgid "Invalid basic header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:74
|
||||
#: authentication.py:76
|
||||
msgid "Invalid basic header. Credentials string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:80
|
||||
#: authentication.py:82
|
||||
msgid "Invalid basic header. Credentials not correctly base64 encoded."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:97
|
||||
#: authentication.py:99
|
||||
msgid "Invalid username/password."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:100 authentication.py:195
|
||||
#: authentication.py:102 authentication.py:198
|
||||
msgid "User inactive or deleted."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:173
|
||||
#: authentication.py:176
|
||||
msgid "Invalid token header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:176
|
||||
#: authentication.py:179
|
||||
msgid "Invalid token header. Token string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:182
|
||||
#: authentication.py:185
|
||||
msgid ""
|
||||
"Invalid token header. Token string should not contain invalid characters."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:192
|
||||
#: authentication.py:195
|
||||
msgid "Invalid token."
|
||||
msgstr ""
|
||||
|
||||
|
@ -58,23 +58,23 @@ msgstr ""
|
|||
msgid "Auth Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:21
|
||||
#: authtoken/models.py:15
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:23
|
||||
#: authtoken/models.py:18
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:24
|
||||
#: authtoken/models.py:20
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:33
|
||||
#: authtoken/models.py:29
|
||||
msgid "Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:34
|
||||
#: authtoken/models.py:30
|
||||
msgid "Tokens"
|
||||
msgstr ""
|
||||
|
||||
|
@ -123,7 +123,6 @@ msgid "Not found."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:109
|
||||
#, python-brace-format
|
||||
msgid "Method \"{method}\" not allowed."
|
||||
msgstr ""
|
||||
|
||||
|
@ -132,7 +131,6 @@ msgid "Could not satisfy the request Accept header."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:132
|
||||
#, python-brace-format
|
||||
msgid "Unsupported media type \"{media_type}\" in request."
|
||||
msgstr ""
|
||||
|
||||
|
@ -140,214 +138,201 @@ msgstr ""
|
|||
msgid "Request was throttled."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:266 relations.py:206 relations.py:239 validators.py:79
|
||||
#: validators.py:162
|
||||
#: fields.py:269 relations.py:206 relations.py:239 validators.py:98
|
||||
#: validators.py:181
|
||||
msgid "This field is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:267
|
||||
#: fields.py:270
|
||||
msgid "This field may not be null."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:603 fields.py:634
|
||||
#, python-brace-format
|
||||
#: fields.py:608 fields.py:639
|
||||
msgid "\"{input}\" is not a valid boolean."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:669
|
||||
#: fields.py:674
|
||||
msgid "This field may not be blank."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:670 fields.py:1664
|
||||
#, python-brace-format
|
||||
#: fields.py:675 fields.py:1675
|
||||
msgid "Ensure this field has no more than {max_length} characters."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:671
|
||||
#, python-brace-format
|
||||
#: fields.py:676
|
||||
msgid "Ensure this field has at least {min_length} characters."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:708
|
||||
#: fields.py:713
|
||||
msgid "Enter a valid email address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:719
|
||||
#: fields.py:724
|
||||
msgid "This value does not match the required pattern."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:730
|
||||
#: fields.py:735
|
||||
msgid ""
|
||||
"Enter a valid \"slug\" consisting of letters, numbers, underscores or "
|
||||
"hyphens."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:742
|
||||
#: fields.py:747
|
||||
msgid "Enter a valid URL."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:755
|
||||
#, python-brace-format
|
||||
#: fields.py:760
|
||||
msgid "\"{value}\" is not a valid UUID."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:791
|
||||
#: fields.py:796
|
||||
msgid "Enter a valid IPv4 or IPv6 address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:816
|
||||
#: fields.py:821
|
||||
msgid "A valid integer is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:817 fields.py:852 fields.py:885
|
||||
#, python-brace-format
|
||||
#: fields.py:822 fields.py:857 fields.py:891
|
||||
msgid "Ensure this value is less than or equal to {max_value}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:818 fields.py:853 fields.py:886
|
||||
#, python-brace-format
|
||||
#: fields.py:823 fields.py:858 fields.py:892
|
||||
msgid "Ensure this value is greater than or equal to {min_value}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:819 fields.py:854 fields.py:890
|
||||
#: fields.py:824 fields.py:859 fields.py:896
|
||||
msgid "String value too large."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:851 fields.py:884
|
||||
#: fields.py:856 fields.py:890
|
||||
msgid "A valid number is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:887
|
||||
#, python-brace-format
|
||||
#: fields.py:893
|
||||
msgid "Ensure that there are no more than {max_digits} digits in total."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:888
|
||||
#, python-brace-format
|
||||
#: fields.py:894
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_decimal_places} decimal places."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:889
|
||||
#, python-brace-format
|
||||
#: fields.py:895
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_whole_digits} digits before the "
|
||||
"decimal point."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1004
|
||||
#, python-brace-format
|
||||
#: fields.py:1025
|
||||
msgid "Datetime has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1005
|
||||
#: fields.py:1026
|
||||
msgid "Expected a datetime but got a date."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1082
|
||||
#, python-brace-format
|
||||
#: fields.py:1103
|
||||
msgid "Date has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1083
|
||||
#: fields.py:1104
|
||||
msgid "Expected a date but got a datetime."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1151
|
||||
#, python-brace-format
|
||||
#: fields.py:1170
|
||||
msgid "Time has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1215
|
||||
#, python-brace-format
|
||||
#: fields.py:1232
|
||||
msgid "Duration has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1240 fields.py:1289
|
||||
#, python-brace-format
|
||||
#: fields.py:1251 fields.py:1300
|
||||
msgid "\"{input}\" is not a valid choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1243 relations.py:71 relations.py:442
|
||||
#, python-brace-format
|
||||
#: fields.py:1254 relations.py:71 relations.py:441
|
||||
msgid "More than {count} items..."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1290 fields.py:1437 relations.py:438 serializers.py:520
|
||||
#, python-brace-format
|
||||
#: fields.py:1301 fields.py:1448 relations.py:437 serializers.py:524
|
||||
msgid "Expected a list of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1291
|
||||
#: fields.py:1302
|
||||
msgid "This selection may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1328
|
||||
#, python-brace-format
|
||||
#: fields.py:1339
|
||||
msgid "\"{input}\" is not a valid path choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1347
|
||||
#: fields.py:1358
|
||||
msgid "No file was submitted."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1348
|
||||
#: fields.py:1359
|
||||
msgid ""
|
||||
"The submitted data was not a file. Check the encoding type on the form."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1349
|
||||
#: fields.py:1360
|
||||
msgid "No filename could be determined."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1350
|
||||
#: fields.py:1361
|
||||
msgid "The submitted file is empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1351
|
||||
#, python-brace-format
|
||||
#: fields.py:1362
|
||||
msgid ""
|
||||
"Ensure this filename has at most {max_length} characters (it has {length})."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1399
|
||||
#: fields.py:1410
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1438 relations.py:439 serializers.py:521
|
||||
#: fields.py:1449 relations.py:438 serializers.py:525
|
||||
msgid "This list may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1491
|
||||
#, python-brace-format
|
||||
#: fields.py:1502
|
||||
msgid "Expected a dictionary of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1538
|
||||
#: fields.py:1549
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:35 templates/rest_framework/filters/django_filter.html.py:5
|
||||
#: filters.py:36 templates/rest_framework/filters/django_filter.html:5
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:189
|
||||
#: filters.py:336
|
||||
msgid "ascending"
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:337
|
||||
msgid "descending"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:193
|
||||
msgid "Invalid page."
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:407
|
||||
#: pagination.py:427
|
||||
msgid "Invalid cursor"
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:207
|
||||
#, python-brace-format
|
||||
msgid "Invalid pk \"{pk_value}\" - object does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:208
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected pk value, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
|
@ -364,25 +349,22 @@ msgid "Invalid hyperlink - Object does not exist."
|
|||
msgstr ""
|
||||
|
||||
#: relations.py:243
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected URL string, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:402
|
||||
#, python-brace-format
|
||||
#: relations.py:401
|
||||
msgid "Object with {slug_name}={value} does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:403
|
||||
#: relations.py:402
|
||||
msgid "Invalid value."
|
||||
msgstr ""
|
||||
|
||||
#: serializers.py:326
|
||||
#, python-brace-format
|
||||
msgid "Invalid data. Expected a dictionary, but got {datatype}."
|
||||
msgstr ""
|
||||
|
||||
#: templates/rest_framework/admin.html:118
|
||||
#: templates/rest_framework/admin.html:116
|
||||
#: templates/rest_framework/base.html:128
|
||||
msgid "Filters"
|
||||
msgstr ""
|
||||
|
@ -412,27 +394,23 @@ msgstr ""
|
|||
msgid "No items to select."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:24
|
||||
#: validators.py:43
|
||||
msgid "This field must be unique."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:78
|
||||
#, python-brace-format
|
||||
#: validators.py:97
|
||||
msgid "The fields {field_names} must make a unique set."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:226
|
||||
#, python-brace-format
|
||||
#: validators.py:245
|
||||
msgid "This field must be unique for the \"{date_field}\" date."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:241
|
||||
#, python-brace-format
|
||||
#: validators.py:260
|
||||
msgid "This field must be unique for the \"{date_field}\" month."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:254
|
||||
#, python-brace-format
|
||||
#: validators.py:273
|
||||
msgid "This field must be unique for the \"{date_field}\" year."
|
||||
msgstr ""
|
||||
|
||||
|
@ -440,15 +418,19 @@ msgstr ""
|
|||
msgid "Invalid version in \"Accept\" header."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:73 versioning.py:115
|
||||
#: versioning.py:73
|
||||
msgid "Invalid version in URL path."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:144
|
||||
#: versioning.py:115
|
||||
msgid "Invalid version in URL path. Does not match any version namespace."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:147
|
||||
msgid "Invalid version in hostname."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:166
|
||||
#: versioning.py:169
|
||||
msgid "Invalid version in query parameter."
|
||||
msgstr ""
|
||||
|
||||
|
|
Binary file not shown.
|
@ -9,9 +9,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Django REST framework\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-01 18:38+0100\n"
|
||||
"PO-Revision-Date: 2016-03-01 17:38+0000\n"
|
||||
"Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
|
||||
"POT-Creation-Date: 2016-07-12 16:13+0100\n"
|
||||
"PO-Revision-Date: 2016-07-12 15:14+0000\n"
|
||||
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n"
|
||||
"Language-Team: Czech (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/cs/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -19,40 +19,40 @@ msgstr ""
|
|||
"Language: cs\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||
|
||||
#: authentication.py:71
|
||||
#: authentication.py:73
|
||||
msgid "Invalid basic header. No credentials provided."
|
||||
msgstr "Chybná hlavička. Nebyly poskytnuty přihlašovací údaje."
|
||||
|
||||
#: authentication.py:74
|
||||
#: authentication.py:76
|
||||
msgid "Invalid basic header. Credentials string should not contain spaces."
|
||||
msgstr "Chybná hlavička. Přihlašovací údaje by neměly obsahovat mezery."
|
||||
|
||||
#: authentication.py:80
|
||||
#: authentication.py:82
|
||||
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."
|
||||
|
||||
#: authentication.py:97
|
||||
#: authentication.py:99
|
||||
msgid "Invalid username/password."
|
||||
msgstr "Chybné uživatelské jméno nebo heslo."
|
||||
|
||||
#: authentication.py:100 authentication.py:195
|
||||
#: authentication.py:102 authentication.py:198
|
||||
msgid "User inactive or deleted."
|
||||
msgstr "Uživatelský účet je neaktivní nebo byl smazán."
|
||||
|
||||
#: authentication.py:173
|
||||
#: authentication.py:176
|
||||
msgid "Invalid token header. No credentials provided."
|
||||
msgstr "Chybná hlavička tokenu. Nebyly zadány přihlašovací údaje."
|
||||
|
||||
#: authentication.py:176
|
||||
#: authentication.py:179
|
||||
msgid "Invalid token header. Token string should not contain spaces."
|
||||
msgstr "Chybná hlavička tokenu. Přihlašovací údaje by neměly obsahovat mezery."
|
||||
|
||||
#: authentication.py:182
|
||||
#: authentication.py:185
|
||||
msgid ""
|
||||
"Invalid token header. Token string should not contain invalid characters."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:192
|
||||
#: authentication.py:195
|
||||
msgid "Invalid token."
|
||||
msgstr "Chybný token."
|
||||
|
||||
|
@ -60,23 +60,23 @@ msgstr "Chybný token."
|
|||
msgid "Auth Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:21
|
||||
#: authtoken/models.py:15
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:23
|
||||
#: authtoken/models.py:18
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:24
|
||||
#: authtoken/models.py:20
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:33
|
||||
#: authtoken/models.py:29
|
||||
msgid "Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:34
|
||||
#: authtoken/models.py:30
|
||||
msgid "Tokens"
|
||||
msgstr ""
|
||||
|
||||
|
@ -125,7 +125,6 @@ msgid "Not found."
|
|||
msgstr "Nenalezeno."
|
||||
|
||||
#: exceptions.py:109
|
||||
#, python-brace-format
|
||||
msgid "Method \"{method}\" not allowed."
|
||||
msgstr "Metoda \"{method}\" není povolena."
|
||||
|
||||
|
@ -134,7 +133,6 @@ msgid "Could not satisfy the request Accept header."
|
|||
msgstr "Nelze vyhovět požadavku v hlavičce Accept."
|
||||
|
||||
#: exceptions.py:132
|
||||
#, python-brace-format
|
||||
msgid "Unsupported media type \"{media_type}\" in request."
|
||||
msgstr "Nepodporovaný media type \"{media_type}\" v požadavku."
|
||||
|
||||
|
@ -142,214 +140,201 @@ msgstr "Nepodporovaný media type \"{media_type}\" v požadavku."
|
|||
msgid "Request was throttled."
|
||||
msgstr "Požadavek byl limitován kvůli omezení počtu požadavků za časovou periodu."
|
||||
|
||||
#: fields.py:266 relations.py:206 relations.py:239 validators.py:79
|
||||
#: validators.py:162
|
||||
#: fields.py:269 relations.py:206 relations.py:239 validators.py:98
|
||||
#: validators.py:181
|
||||
msgid "This field is required."
|
||||
msgstr "Toto pole je vyžadováno."
|
||||
|
||||
#: fields.py:267
|
||||
#: fields.py:270
|
||||
msgid "This field may not be null."
|
||||
msgstr "Toto pole nesmí být prázdné (null)."
|
||||
|
||||
#: fields.py:603 fields.py:634
|
||||
#, python-brace-format
|
||||
#: fields.py:608 fields.py:639
|
||||
msgid "\"{input}\" is not a valid boolean."
|
||||
msgstr "\"{input}\" nelze použít jako typ boolean."
|
||||
|
||||
#: fields.py:669
|
||||
#: fields.py:674
|
||||
msgid "This field may not be blank."
|
||||
msgstr "Toto pole nesmí být prázdné."
|
||||
|
||||
#: fields.py:670 fields.py:1664
|
||||
#, python-brace-format
|
||||
#: fields.py:675 fields.py:1675
|
||||
msgid "Ensure this field has no more than {max_length} characters."
|
||||
msgstr "Zkontrolujte, že toto pole není delší než {max_length} znaků."
|
||||
|
||||
#: fields.py:671
|
||||
#, python-brace-format
|
||||
#: fields.py:676
|
||||
msgid "Ensure this field has at least {min_length} characters."
|
||||
msgstr "Zkontrolujte, že toto pole obsahuje alespoň {min_length} znaků."
|
||||
|
||||
#: fields.py:708
|
||||
#: fields.py:713
|
||||
msgid "Enter a valid email address."
|
||||
msgstr "Vložte platnou e-mailovou adresu."
|
||||
|
||||
#: fields.py:719
|
||||
#: fields.py:724
|
||||
msgid "This value does not match the required pattern."
|
||||
msgstr "Hodnota v tomto poli neodpovídá požadovanému formátu."
|
||||
|
||||
#: fields.py:730
|
||||
#: fields.py:735
|
||||
msgid ""
|
||||
"Enter a valid \"slug\" consisting of letters, numbers, underscores or "
|
||||
"hyphens."
|
||||
msgstr "Vložte platnou \"zkrácenou formu\" obsahující pouze malá písmena, čísla, spojovník nebo podtržítko."
|
||||
|
||||
#: fields.py:742
|
||||
#: fields.py:747
|
||||
msgid "Enter a valid URL."
|
||||
msgstr "Vložte platný odkaz."
|
||||
|
||||
#: fields.py:755
|
||||
#, python-brace-format
|
||||
#: fields.py:760
|
||||
msgid "\"{value}\" is not a valid UUID."
|
||||
msgstr "\"{value}\" není platné UUID."
|
||||
|
||||
#: fields.py:791
|
||||
#: fields.py:796
|
||||
msgid "Enter a valid IPv4 or IPv6 address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:816
|
||||
#: fields.py:821
|
||||
msgid "A valid integer is required."
|
||||
msgstr "Je vyžadováno celé číslo."
|
||||
|
||||
#: fields.py:817 fields.py:852 fields.py:885
|
||||
#, python-brace-format
|
||||
#: fields.py:822 fields.py:857 fields.py:891
|
||||
msgid "Ensure this value is less than or equal to {max_value}."
|
||||
msgstr "Zkontrolujte, že hodnota je menší nebo rovna {max_value}."
|
||||
|
||||
#: fields.py:818 fields.py:853 fields.py:886
|
||||
#, python-brace-format
|
||||
#: fields.py:823 fields.py:858 fields.py:892
|
||||
msgid "Ensure this value is greater than or equal to {min_value}."
|
||||
msgstr "Zkontrolujte, že hodnota je větší nebo rovna {min_value}."
|
||||
|
||||
#: fields.py:819 fields.py:854 fields.py:890
|
||||
#: fields.py:824 fields.py:859 fields.py:896
|
||||
msgid "String value too large."
|
||||
msgstr "Řetězec je příliš dlouhý."
|
||||
|
||||
#: fields.py:851 fields.py:884
|
||||
#: fields.py:856 fields.py:890
|
||||
msgid "A valid number is required."
|
||||
msgstr "Je vyžadováno číslo."
|
||||
|
||||
#: fields.py:887
|
||||
#, python-brace-format
|
||||
#: fields.py:893
|
||||
msgid "Ensure that there are no more than {max_digits} digits in total."
|
||||
msgstr "Zkontrolujte, že číslo neobsahuje více než {max_digits} čislic."
|
||||
|
||||
#: fields.py:888
|
||||
#, python-brace-format
|
||||
#: fields.py:894
|
||||
msgid ""
|
||||
"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."
|
||||
|
||||
#: fields.py:889
|
||||
#, python-brace-format
|
||||
#: fields.py:895
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_whole_digits} digits before the "
|
||||
"decimal point."
|
||||
msgstr "Zkontrolujte, že číslo neobsahuje více než {max_whole_digits} čislic před desetinnou čárkou."
|
||||
|
||||
#: fields.py:1004
|
||||
#, python-brace-format
|
||||
#: fields.py:1025
|
||||
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}."
|
||||
|
||||
#: fields.py:1005
|
||||
#: fields.py:1026
|
||||
msgid "Expected a datetime but got a date."
|
||||
msgstr "Bylo zadáno pouze datum bez času."
|
||||
|
||||
#: fields.py:1082
|
||||
#, python-brace-format
|
||||
#: fields.py:1103
|
||||
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}."
|
||||
|
||||
#: fields.py:1083
|
||||
#: fields.py:1104
|
||||
msgid "Expected a date but got a datetime."
|
||||
msgstr "Bylo zadáno datum a čas, místo samotného data."
|
||||
|
||||
#: fields.py:1151
|
||||
#, python-brace-format
|
||||
#: fields.py:1170
|
||||
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}."
|
||||
|
||||
#: fields.py:1215
|
||||
#, python-brace-format
|
||||
#: fields.py:1232
|
||||
msgid "Duration has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1240 fields.py:1289
|
||||
#, python-brace-format
|
||||
#: fields.py:1251 fields.py:1300
|
||||
msgid "\"{input}\" is not a valid choice."
|
||||
msgstr "\"{input}\" není platnou možností."
|
||||
|
||||
#: fields.py:1243 relations.py:71 relations.py:442
|
||||
#, python-brace-format
|
||||
#: fields.py:1254 relations.py:71 relations.py:441
|
||||
msgid "More than {count} items..."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1290 fields.py:1437 relations.py:438 serializers.py:520
|
||||
#, python-brace-format
|
||||
#: fields.py:1301 fields.py:1448 relations.py:437 serializers.py:524
|
||||
msgid "Expected a list of items but got type \"{input_type}\"."
|
||||
msgstr "Byl očekáván seznam položek ale nalezen \"{input_type}\"."
|
||||
|
||||
#: fields.py:1291
|
||||
#: fields.py:1302
|
||||
msgid "This selection may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1328
|
||||
#, python-brace-format
|
||||
#: fields.py:1339
|
||||
msgid "\"{input}\" is not a valid path choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1347
|
||||
#: fields.py:1358
|
||||
msgid "No file was submitted."
|
||||
msgstr "Nebyl zaslán žádný soubor."
|
||||
|
||||
#: fields.py:1348
|
||||
#: fields.py:1359
|
||||
msgid ""
|
||||
"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."
|
||||
|
||||
#: fields.py:1349
|
||||
#: fields.py:1360
|
||||
msgid "No filename could be determined."
|
||||
msgstr "Nebylo možné zjistit jméno souboru."
|
||||
|
||||
#: fields.py:1350
|
||||
#: fields.py:1361
|
||||
msgid "The submitted file is empty."
|
||||
msgstr "Zaslaný soubor je prázdný."
|
||||
|
||||
#: fields.py:1351
|
||||
#, python-brace-format
|
||||
#: fields.py:1362
|
||||
msgid ""
|
||||
"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ů)."
|
||||
|
||||
#: fields.py:1399
|
||||
#: fields.py:1410
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr "Nahrajte platný obrázek. Nahraný soubor buď není obrázkem nebo je poškozen."
|
||||
|
||||
#: fields.py:1438 relations.py:439 serializers.py:521
|
||||
#: fields.py:1449 relations.py:438 serializers.py:525
|
||||
msgid "This list may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1491
|
||||
#, python-brace-format
|
||||
#: fields.py:1502
|
||||
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}\"."
|
||||
|
||||
#: fields.py:1538
|
||||
#: fields.py:1549
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:35 templates/rest_framework/filters/django_filter.html.py:5
|
||||
#: filters.py:36 templates/rest_framework/filters/django_filter.html:5
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:189
|
||||
#: filters.py:336
|
||||
msgid "ascending"
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:337
|
||||
msgid "descending"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:193
|
||||
msgid "Invalid page."
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:407
|
||||
#: pagination.py:427
|
||||
msgid "Invalid cursor"
|
||||
msgstr "Chybný kurzor."
|
||||
|
||||
#: relations.py:207
|
||||
#, python-brace-format
|
||||
msgid "Invalid pk \"{pk_value}\" - object does not exist."
|
||||
msgstr "Chybný primární klíč \"{pk_value}\" - objekt neexistuje."
|
||||
|
||||
#: relations.py:208
|
||||
#, python-brace-format
|
||||
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."
|
||||
|
||||
|
@ -366,25 +351,22 @@ msgid "Invalid hyperlink - Object does not exist."
|
|||
msgstr "Chybný odkaz - objekt neexistuje."
|
||||
|
||||
#: relations.py:243
|
||||
#, python-brace-format
|
||||
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."
|
||||
|
||||
#: relations.py:402
|
||||
#, python-brace-format
|
||||
#: relations.py:401
|
||||
msgid "Object with {slug_name}={value} does not exist."
|
||||
msgstr "Objekt s {slug_name}={value} neexistuje."
|
||||
|
||||
#: relations.py:403
|
||||
#: relations.py:402
|
||||
msgid "Invalid value."
|
||||
msgstr "Chybná hodnota."
|
||||
|
||||
#: serializers.py:326
|
||||
#, python-brace-format
|
||||
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."
|
||||
|
||||
#: templates/rest_framework/admin.html:118
|
||||
#: templates/rest_framework/admin.html:116
|
||||
#: templates/rest_framework/base.html:128
|
||||
msgid "Filters"
|
||||
msgstr ""
|
||||
|
@ -414,27 +396,23 @@ msgstr ""
|
|||
msgid "No items to select."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:24
|
||||
#: validators.py:43
|
||||
msgid "This field must be unique."
|
||||
msgstr "Tato položka musí být unikátní."
|
||||
|
||||
#: validators.py:78
|
||||
#, python-brace-format
|
||||
#: validators.py:97
|
||||
msgid "The fields {field_names} must make a unique set."
|
||||
msgstr "Položka {field_names} musí tvořit unikátní množinu."
|
||||
|
||||
#: validators.py:226
|
||||
#, python-brace-format
|
||||
#: validators.py:245
|
||||
msgid "This field must be unique for the \"{date_field}\" date."
|
||||
msgstr "Tato položka musí být pro datum \"{date_field}\" unikátní."
|
||||
|
||||
#: validators.py:241
|
||||
#, python-brace-format
|
||||
#: validators.py:260
|
||||
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í."
|
||||
|
||||
#: validators.py:254
|
||||
#, python-brace-format
|
||||
#: validators.py:273
|
||||
msgid "This field must be unique for the \"{date_field}\" year."
|
||||
msgstr "Tato položka musí být pro rok \"{date_field}\" unikátní."
|
||||
|
||||
|
@ -442,15 +420,19 @@ msgstr "Tato položka musí být pro rok \"{date_field}\" unikátní."
|
|||
msgid "Invalid version in \"Accept\" header."
|
||||
msgstr "Chybné číslo verze v hlavičce Accept."
|
||||
|
||||
#: versioning.py:73 versioning.py:115
|
||||
#: versioning.py:73
|
||||
msgid "Invalid version in URL path."
|
||||
msgstr "Chybné číslo verze v odkazu."
|
||||
|
||||
#: versioning.py:144
|
||||
#: versioning.py:115
|
||||
msgid "Invalid version in URL path. Does not match any version namespace."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:147
|
||||
msgid "Invalid version in hostname."
|
||||
msgstr "Chybné číslo verze v hostname."
|
||||
|
||||
#: versioning.py:166
|
||||
#: versioning.py:169
|
||||
msgid "Invalid version in query parameter."
|
||||
msgstr "Chybné čislo verze v URL parametru."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -9,9 +9,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Django REST framework\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-01 18:38+0100\n"
|
||||
"PO-Revision-Date: 2016-03-01 17:38+0000\n"
|
||||
"Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
|
||||
"POT-Creation-Date: 2016-07-12 16:13+0100\n"
|
||||
"PO-Revision-Date: 2016-07-12 15:14+0000\n"
|
||||
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n"
|
||||
"Language-Team: Danish (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/da/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -19,40 +19,40 @@ msgstr ""
|
|||
"Language: da\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: authentication.py:71
|
||||
#: authentication.py:73
|
||||
msgid "Invalid basic header. No credentials provided."
|
||||
msgstr "Ugyldig basic header. Ingen legitimation angivet."
|
||||
|
||||
#: authentication.py:74
|
||||
#: authentication.py:76
|
||||
msgid "Invalid basic header. Credentials string should not contain spaces."
|
||||
msgstr "Ugyldig basic header. Legitimationsstrenge må ikke indeholde mellemrum."
|
||||
|
||||
#: authentication.py:80
|
||||
#: authentication.py:82
|
||||
msgid "Invalid basic header. Credentials not correctly base64 encoded."
|
||||
msgstr "Ugyldig basic header. Legitimationen er ikke base64 encoded på korrekt vis."
|
||||
|
||||
#: authentication.py:97
|
||||
#: authentication.py:99
|
||||
msgid "Invalid username/password."
|
||||
msgstr "Ugyldigt brugernavn/kodeord."
|
||||
|
||||
#: authentication.py:100 authentication.py:195
|
||||
#: authentication.py:102 authentication.py:198
|
||||
msgid "User inactive or deleted."
|
||||
msgstr "Inaktiv eller slettet bruger."
|
||||
|
||||
#: authentication.py:173
|
||||
#: authentication.py:176
|
||||
msgid "Invalid token header. No credentials provided."
|
||||
msgstr "Ugyldig token header."
|
||||
|
||||
#: authentication.py:176
|
||||
#: authentication.py:179
|
||||
msgid "Invalid token header. Token string should not contain spaces."
|
||||
msgstr "Ugyldig token header. Token-strenge må ikke indeholde mellemrum."
|
||||
|
||||
#: authentication.py:182
|
||||
#: authentication.py:185
|
||||
msgid ""
|
||||
"Invalid token header. Token string should not contain invalid characters."
|
||||
msgstr "Ugyldig token header. Token streng bør ikke indeholde ugyldige karakterer."
|
||||
|
||||
#: authentication.py:192
|
||||
#: authentication.py:195
|
||||
msgid "Invalid token."
|
||||
msgstr "Ugyldigt token."
|
||||
|
||||
|
@ -60,23 +60,23 @@ msgstr "Ugyldigt token."
|
|||
msgid "Auth Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:21
|
||||
#: authtoken/models.py:15
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:23
|
||||
#: authtoken/models.py:18
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:24
|
||||
#: authtoken/models.py:20
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:33
|
||||
#: authtoken/models.py:29
|
||||
msgid "Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:34
|
||||
#: authtoken/models.py:30
|
||||
msgid "Tokens"
|
||||
msgstr ""
|
||||
|
||||
|
@ -125,7 +125,6 @@ msgid "Not found."
|
|||
msgstr "Ikke fundet."
|
||||
|
||||
#: exceptions.py:109
|
||||
#, python-brace-format
|
||||
msgid "Method \"{method}\" not allowed."
|
||||
msgstr "Metoden \"{method}\" er ikke tilladt."
|
||||
|
||||
|
@ -134,7 +133,6 @@ msgid "Could not satisfy the request Accept header."
|
|||
msgstr "Kunne ikke efterkomme forespørgslens Accept header."
|
||||
|
||||
#: exceptions.py:132
|
||||
#, python-brace-format
|
||||
msgid "Unsupported media type \"{media_type}\" in request."
|
||||
msgstr "Forespørgslens media type, \"{media_type}\", er ikke understøttet."
|
||||
|
||||
|
@ -142,214 +140,201 @@ msgstr "Forespørgslens media type, \"{media_type}\", er ikke understøttet."
|
|||
msgid "Request was throttled."
|
||||
msgstr "Forespørgslen blev neddroslet."
|
||||
|
||||
#: fields.py:266 relations.py:206 relations.py:239 validators.py:79
|
||||
#: validators.py:162
|
||||
#: fields.py:269 relations.py:206 relations.py:239 validators.py:98
|
||||
#: validators.py:181
|
||||
msgid "This field is required."
|
||||
msgstr "Dette felt er påkrævet."
|
||||
|
||||
#: fields.py:267
|
||||
#: fields.py:270
|
||||
msgid "This field may not be null."
|
||||
msgstr "Dette felt må ikke være null."
|
||||
|
||||
#: fields.py:603 fields.py:634
|
||||
#, python-brace-format
|
||||
#: fields.py:608 fields.py:639
|
||||
msgid "\"{input}\" is not a valid boolean."
|
||||
msgstr "\"{input}\" er ikke en tilladt boolsk værdi."
|
||||
|
||||
#: fields.py:669
|
||||
#: fields.py:674
|
||||
msgid "This field may not be blank."
|
||||
msgstr "Dette felt må ikke være tomt."
|
||||
|
||||
#: fields.py:670 fields.py:1664
|
||||
#, python-brace-format
|
||||
#: fields.py:675 fields.py:1675
|
||||
msgid "Ensure this field has no more than {max_length} characters."
|
||||
msgstr "Tjek at dette felt ikke indeholder flere end {max_length} tegn."
|
||||
|
||||
#: fields.py:671
|
||||
#, python-brace-format
|
||||
#: fields.py:676
|
||||
msgid "Ensure this field has at least {min_length} characters."
|
||||
msgstr "Tjek at dette felt indeholder mindst {min_length} tegn."
|
||||
|
||||
#: fields.py:708
|
||||
#: fields.py:713
|
||||
msgid "Enter a valid email address."
|
||||
msgstr "Angiv en gyldig e-mailadresse."
|
||||
|
||||
#: fields.py:719
|
||||
#: fields.py:724
|
||||
msgid "This value does not match the required pattern."
|
||||
msgstr "Denne værdi passer ikke med det påkrævede mønster."
|
||||
|
||||
#: fields.py:730
|
||||
#: fields.py:735
|
||||
msgid ""
|
||||
"Enter a valid \"slug\" consisting of letters, numbers, underscores or "
|
||||
"hyphens."
|
||||
msgstr "Indtast en gyldig \"slug\", bestående af bogstaver, tal, bund- og bindestreger."
|
||||
|
||||
#: fields.py:742
|
||||
#: fields.py:747
|
||||
msgid "Enter a valid URL."
|
||||
msgstr "Indtast en gyldig URL."
|
||||
|
||||
#: fields.py:755
|
||||
#, python-brace-format
|
||||
#: fields.py:760
|
||||
msgid "\"{value}\" is not a valid UUID."
|
||||
msgstr "\"{value}\" er ikke et gyldigt UUID."
|
||||
|
||||
#: fields.py:791
|
||||
#: fields.py:796
|
||||
msgid "Enter a valid IPv4 or IPv6 address."
|
||||
msgstr "Indtast en gyldig IPv4 eller IPv6 adresse."
|
||||
|
||||
#: fields.py:816
|
||||
#: fields.py:821
|
||||
msgid "A valid integer is required."
|
||||
msgstr "Et gyldigt heltal er påkrævet."
|
||||
|
||||
#: fields.py:817 fields.py:852 fields.py:885
|
||||
#, python-brace-format
|
||||
#: fields.py:822 fields.py:857 fields.py:891
|
||||
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}."
|
||||
|
||||
#: fields.py:818 fields.py:853 fields.py:886
|
||||
#, python-brace-format
|
||||
#: fields.py:823 fields.py:858 fields.py:892
|
||||
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}."
|
||||
|
||||
#: fields.py:819 fields.py:854 fields.py:890
|
||||
#: fields.py:824 fields.py:859 fields.py:896
|
||||
msgid "String value too large."
|
||||
msgstr "Strengværdien er for stor."
|
||||
|
||||
#: fields.py:851 fields.py:884
|
||||
#: fields.py:856 fields.py:890
|
||||
msgid "A valid number is required."
|
||||
msgstr "Et gyldigt tal er påkrævet."
|
||||
|
||||
#: fields.py:887
|
||||
#, python-brace-format
|
||||
#: fields.py:893
|
||||
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."
|
||||
|
||||
#: fields.py:888
|
||||
#, python-brace-format
|
||||
#: fields.py:894
|
||||
msgid ""
|
||||
"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."
|
||||
|
||||
#: fields.py:889
|
||||
#, python-brace-format
|
||||
#: fields.py:895
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_whole_digits} digits before the "
|
||||
"decimal point."
|
||||
msgstr "Tjek at der ikke er flere end {max_whole_digits} cifre før kommaet."
|
||||
|
||||
#: fields.py:1004
|
||||
#, python-brace-format
|
||||
#: fields.py:1025
|
||||
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}."
|
||||
|
||||
#: fields.py:1005
|
||||
#: fields.py:1026
|
||||
msgid "Expected a datetime but got a date."
|
||||
msgstr "Forventede en datotid, men fik en dato."
|
||||
|
||||
#: fields.py:1082
|
||||
#, python-brace-format
|
||||
#: fields.py:1103
|
||||
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}."
|
||||
|
||||
#: fields.py:1083
|
||||
#: fields.py:1104
|
||||
msgid "Expected a date but got a datetime."
|
||||
msgstr "Forventede en dato men fik en datotid."
|
||||
|
||||
#: fields.py:1151
|
||||
#, python-brace-format
|
||||
#: fields.py:1170
|
||||
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}. "
|
||||
|
||||
#: fields.py:1215
|
||||
#, python-brace-format
|
||||
#: fields.py:1232
|
||||
msgid "Duration has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr "Varighed har forkert format. Brug istedet et af følgende formater: {format}."
|
||||
|
||||
#: fields.py:1240 fields.py:1289
|
||||
#, python-brace-format
|
||||
#: fields.py:1251 fields.py:1300
|
||||
msgid "\"{input}\" is not a valid choice."
|
||||
msgstr "\"{input}\" er ikke et gyldigt valg."
|
||||
|
||||
#: fields.py:1243 relations.py:71 relations.py:442
|
||||
#, python-brace-format
|
||||
#: fields.py:1254 relations.py:71 relations.py:441
|
||||
msgid "More than {count} items..."
|
||||
msgstr "Flere end {count} objekter..."
|
||||
|
||||
#: fields.py:1290 fields.py:1437 relations.py:438 serializers.py:520
|
||||
#, python-brace-format
|
||||
#: fields.py:1301 fields.py:1448 relations.py:437 serializers.py:524
|
||||
msgid "Expected a list of items but got type \"{input_type}\"."
|
||||
msgstr "Forventede en liste, men fik noget af typen \"{input_type}\"."
|
||||
|
||||
#: fields.py:1291
|
||||
#: fields.py:1302
|
||||
msgid "This selection may not be empty."
|
||||
msgstr "Dette valg kan være tomt."
|
||||
|
||||
#: fields.py:1328
|
||||
#, python-brace-format
|
||||
#: fields.py:1339
|
||||
msgid "\"{input}\" is not a valid path choice."
|
||||
msgstr "\"{input}\" er ikke et gyldigt valg af adresse."
|
||||
|
||||
#: fields.py:1347
|
||||
#: fields.py:1358
|
||||
msgid "No file was submitted."
|
||||
msgstr "Ingen medsendt fil."
|
||||
|
||||
#: fields.py:1348
|
||||
#: fields.py:1359
|
||||
msgid ""
|
||||
"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."
|
||||
|
||||
#: fields.py:1349
|
||||
#: fields.py:1360
|
||||
msgid "No filename could be determined."
|
||||
msgstr "Filnavnet kunne ikke afgøres."
|
||||
|
||||
#: fields.py:1350
|
||||
#: fields.py:1361
|
||||
msgid "The submitted file is empty."
|
||||
msgstr "Den medsendte fil er tom."
|
||||
|
||||
#: fields.py:1351
|
||||
#, python-brace-format
|
||||
#: fields.py:1362
|
||||
msgid ""
|
||||
"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})."
|
||||
|
||||
#: fields.py:1399
|
||||
#: fields.py:1410
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr "Medsend et gyldigt billede. Den medsendte fil var enten ikke et billede eller billedfilen var ødelagt."
|
||||
|
||||
#: fields.py:1438 relations.py:439 serializers.py:521
|
||||
#: fields.py:1449 relations.py:438 serializers.py:525
|
||||
msgid "This list may not be empty."
|
||||
msgstr "Denne liste er muligvis ikke tom."
|
||||
|
||||
#: fields.py:1491
|
||||
#, python-brace-format
|
||||
#: fields.py:1502
|
||||
msgid "Expected a dictionary of items but got type \"{input_type}\"."
|
||||
msgstr "Forventede en dictionary, men fik noget af typen \"{input_type}\"."
|
||||
|
||||
#: fields.py:1538
|
||||
#: fields.py:1549
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Værdi skal være gyldig JSON."
|
||||
|
||||
#: filters.py:35 templates/rest_framework/filters/django_filter.html.py:5
|
||||
#: filters.py:36 templates/rest_framework/filters/django_filter.html:5
|
||||
msgid "Submit"
|
||||
msgstr "Indsend."
|
||||
|
||||
#: pagination.py:189
|
||||
#: filters.py:336
|
||||
msgid "ascending"
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:337
|
||||
msgid "descending"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:193
|
||||
msgid "Invalid page."
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:407
|
||||
#: pagination.py:427
|
||||
msgid "Invalid cursor"
|
||||
msgstr "Ugyldig cursor"
|
||||
|
||||
#: relations.py:207
|
||||
#, python-brace-format
|
||||
msgid "Invalid pk \"{pk_value}\" - object does not exist."
|
||||
msgstr "Ugyldig primærnøgle \"{pk_value}\" - objektet findes ikke."
|
||||
|
||||
#: relations.py:208
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected pk value, received {data_type}."
|
||||
msgstr "Ugyldig type. Forventet værdi er primærnøgle, fik {data_type}."
|
||||
|
||||
|
@ -366,25 +351,22 @@ msgid "Invalid hyperlink - Object does not exist."
|
|||
msgstr "Ugyldigt hyperlink - objektet findes ikke."
|
||||
|
||||
#: relations.py:243
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected URL string, received {data_type}."
|
||||
msgstr "Forkert type. Forventede en URL-streng, fik {data_type}."
|
||||
|
||||
#: relations.py:402
|
||||
#, python-brace-format
|
||||
#: relations.py:401
|
||||
msgid "Object with {slug_name}={value} does not exist."
|
||||
msgstr "Object med {slug_name}={value} findes ikke."
|
||||
|
||||
#: relations.py:403
|
||||
#: relations.py:402
|
||||
msgid "Invalid value."
|
||||
msgstr "Ugyldig værdi."
|
||||
|
||||
#: serializers.py:326
|
||||
#, python-brace-format
|
||||
msgid "Invalid data. Expected a dictionary, but got {datatype}."
|
||||
msgstr "Ugyldig data. Forventede en dictionary, men fik {datatype}."
|
||||
|
||||
#: templates/rest_framework/admin.html:118
|
||||
#: templates/rest_framework/admin.html:116
|
||||
#: templates/rest_framework/base.html:128
|
||||
msgid "Filters"
|
||||
msgstr "Filtre"
|
||||
|
@ -414,27 +396,23 @@ msgstr "Ingen"
|
|||
msgid "No items to select."
|
||||
msgstr "Intet at vælge."
|
||||
|
||||
#: validators.py:24
|
||||
#: validators.py:43
|
||||
msgid "This field must be unique."
|
||||
msgstr "Dette felt skal være unikt."
|
||||
|
||||
#: validators.py:78
|
||||
#, python-brace-format
|
||||
#: validators.py:97
|
||||
msgid "The fields {field_names} must make a unique set."
|
||||
msgstr "Felterne {field_names} skal udgøre et unikt sæt."
|
||||
|
||||
#: validators.py:226
|
||||
#, python-brace-format
|
||||
#: validators.py:245
|
||||
msgid "This field must be unique for the \"{date_field}\" date."
|
||||
msgstr "Dette felt skal være unikt for \"{date_field}\"-datoen."
|
||||
|
||||
#: validators.py:241
|
||||
#, python-brace-format
|
||||
#: validators.py:260
|
||||
msgid "This field must be unique for the \"{date_field}\" month."
|
||||
msgstr "Dette felt skal være unikt for \"{date_field}\"-måneden."
|
||||
|
||||
#: validators.py:254
|
||||
#, python-brace-format
|
||||
#: validators.py:273
|
||||
msgid "This field must be unique for the \"{date_field}\" year."
|
||||
msgstr "Dette felt skal være unikt for \"{date_field}\"-året."
|
||||
|
||||
|
@ -442,15 +420,19 @@ msgstr "Dette felt skal være unikt for \"{date_field}\"-året."
|
|||
msgid "Invalid version in \"Accept\" header."
|
||||
msgstr "Ugyldig version i \"Accept\" headeren."
|
||||
|
||||
#: versioning.py:73 versioning.py:115
|
||||
#: versioning.py:73
|
||||
msgid "Invalid version in URL path."
|
||||
msgstr "Ugyldig version i URL-stien."
|
||||
|
||||
#: versioning.py:144
|
||||
#: versioning.py:115
|
||||
msgid "Invalid version in URL path. Does not match any version namespace."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:147
|
||||
msgid "Invalid version in hostname."
|
||||
msgstr "Ugyldig version i hostname."
|
||||
|
||||
#: versioning.py:166
|
||||
#: versioning.py:169
|
||||
msgid "Invalid version in query parameter."
|
||||
msgstr "Ugyldig version i forespørgselsparameteren."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -7,9 +7,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Django REST framework\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-01 18:38+0100\n"
|
||||
"PO-Revision-Date: 2016-03-01 17:38+0000\n"
|
||||
"Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
|
||||
"POT-Creation-Date: 2016-07-12 16:13+0100\n"
|
||||
"PO-Revision-Date: 2016-07-12 15:14+0000\n"
|
||||
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n"
|
||||
"Language-Team: Danish (Denmark) (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/da_DK/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -17,40 +17,40 @@ msgstr ""
|
|||
"Language: da_DK\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: authentication.py:71
|
||||
#: authentication.py:73
|
||||
msgid "Invalid basic header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:74
|
||||
#: authentication.py:76
|
||||
msgid "Invalid basic header. Credentials string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:80
|
||||
#: authentication.py:82
|
||||
msgid "Invalid basic header. Credentials not correctly base64 encoded."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:97
|
||||
#: authentication.py:99
|
||||
msgid "Invalid username/password."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:100 authentication.py:195
|
||||
#: authentication.py:102 authentication.py:198
|
||||
msgid "User inactive or deleted."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:173
|
||||
#: authentication.py:176
|
||||
msgid "Invalid token header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:176
|
||||
#: authentication.py:179
|
||||
msgid "Invalid token header. Token string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:182
|
||||
#: authentication.py:185
|
||||
msgid ""
|
||||
"Invalid token header. Token string should not contain invalid characters."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:192
|
||||
#: authentication.py:195
|
||||
msgid "Invalid token."
|
||||
msgstr ""
|
||||
|
||||
|
@ -58,23 +58,23 @@ msgstr ""
|
|||
msgid "Auth Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:21
|
||||
#: authtoken/models.py:15
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:23
|
||||
#: authtoken/models.py:18
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:24
|
||||
#: authtoken/models.py:20
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:33
|
||||
#: authtoken/models.py:29
|
||||
msgid "Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:34
|
||||
#: authtoken/models.py:30
|
||||
msgid "Tokens"
|
||||
msgstr ""
|
||||
|
||||
|
@ -123,7 +123,6 @@ msgid "Not found."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:109
|
||||
#, python-brace-format
|
||||
msgid "Method \"{method}\" not allowed."
|
||||
msgstr ""
|
||||
|
||||
|
@ -132,7 +131,6 @@ msgid "Could not satisfy the request Accept header."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:132
|
||||
#, python-brace-format
|
||||
msgid "Unsupported media type \"{media_type}\" in request."
|
||||
msgstr ""
|
||||
|
||||
|
@ -140,214 +138,201 @@ msgstr ""
|
|||
msgid "Request was throttled."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:266 relations.py:206 relations.py:239 validators.py:79
|
||||
#: validators.py:162
|
||||
#: fields.py:269 relations.py:206 relations.py:239 validators.py:98
|
||||
#: validators.py:181
|
||||
msgid "This field is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:267
|
||||
#: fields.py:270
|
||||
msgid "This field may not be null."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:603 fields.py:634
|
||||
#, python-brace-format
|
||||
#: fields.py:608 fields.py:639
|
||||
msgid "\"{input}\" is not a valid boolean."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:669
|
||||
#: fields.py:674
|
||||
msgid "This field may not be blank."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:670 fields.py:1664
|
||||
#, python-brace-format
|
||||
#: fields.py:675 fields.py:1675
|
||||
msgid "Ensure this field has no more than {max_length} characters."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:671
|
||||
#, python-brace-format
|
||||
#: fields.py:676
|
||||
msgid "Ensure this field has at least {min_length} characters."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:708
|
||||
#: fields.py:713
|
||||
msgid "Enter a valid email address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:719
|
||||
#: fields.py:724
|
||||
msgid "This value does not match the required pattern."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:730
|
||||
#: fields.py:735
|
||||
msgid ""
|
||||
"Enter a valid \"slug\" consisting of letters, numbers, underscores or "
|
||||
"hyphens."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:742
|
||||
#: fields.py:747
|
||||
msgid "Enter a valid URL."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:755
|
||||
#, python-brace-format
|
||||
#: fields.py:760
|
||||
msgid "\"{value}\" is not a valid UUID."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:791
|
||||
#: fields.py:796
|
||||
msgid "Enter a valid IPv4 or IPv6 address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:816
|
||||
#: fields.py:821
|
||||
msgid "A valid integer is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:817 fields.py:852 fields.py:885
|
||||
#, python-brace-format
|
||||
#: fields.py:822 fields.py:857 fields.py:891
|
||||
msgid "Ensure this value is less than or equal to {max_value}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:818 fields.py:853 fields.py:886
|
||||
#, python-brace-format
|
||||
#: fields.py:823 fields.py:858 fields.py:892
|
||||
msgid "Ensure this value is greater than or equal to {min_value}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:819 fields.py:854 fields.py:890
|
||||
#: fields.py:824 fields.py:859 fields.py:896
|
||||
msgid "String value too large."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:851 fields.py:884
|
||||
#: fields.py:856 fields.py:890
|
||||
msgid "A valid number is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:887
|
||||
#, python-brace-format
|
||||
#: fields.py:893
|
||||
msgid "Ensure that there are no more than {max_digits} digits in total."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:888
|
||||
#, python-brace-format
|
||||
#: fields.py:894
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_decimal_places} decimal places."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:889
|
||||
#, python-brace-format
|
||||
#: fields.py:895
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_whole_digits} digits before the "
|
||||
"decimal point."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1004
|
||||
#, python-brace-format
|
||||
#: fields.py:1025
|
||||
msgid "Datetime has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1005
|
||||
#: fields.py:1026
|
||||
msgid "Expected a datetime but got a date."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1082
|
||||
#, python-brace-format
|
||||
#: fields.py:1103
|
||||
msgid "Date has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1083
|
||||
#: fields.py:1104
|
||||
msgid "Expected a date but got a datetime."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1151
|
||||
#, python-brace-format
|
||||
#: fields.py:1170
|
||||
msgid "Time has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1215
|
||||
#, python-brace-format
|
||||
#: fields.py:1232
|
||||
msgid "Duration has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1240 fields.py:1289
|
||||
#, python-brace-format
|
||||
#: fields.py:1251 fields.py:1300
|
||||
msgid "\"{input}\" is not a valid choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1243 relations.py:71 relations.py:442
|
||||
#, python-brace-format
|
||||
#: fields.py:1254 relations.py:71 relations.py:441
|
||||
msgid "More than {count} items..."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1290 fields.py:1437 relations.py:438 serializers.py:520
|
||||
#, python-brace-format
|
||||
#: fields.py:1301 fields.py:1448 relations.py:437 serializers.py:524
|
||||
msgid "Expected a list of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1291
|
||||
#: fields.py:1302
|
||||
msgid "This selection may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1328
|
||||
#, python-brace-format
|
||||
#: fields.py:1339
|
||||
msgid "\"{input}\" is not a valid path choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1347
|
||||
#: fields.py:1358
|
||||
msgid "No file was submitted."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1348
|
||||
#: fields.py:1359
|
||||
msgid ""
|
||||
"The submitted data was not a file. Check the encoding type on the form."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1349
|
||||
#: fields.py:1360
|
||||
msgid "No filename could be determined."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1350
|
||||
#: fields.py:1361
|
||||
msgid "The submitted file is empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1351
|
||||
#, python-brace-format
|
||||
#: fields.py:1362
|
||||
msgid ""
|
||||
"Ensure this filename has at most {max_length} characters (it has {length})."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1399
|
||||
#: fields.py:1410
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1438 relations.py:439 serializers.py:521
|
||||
#: fields.py:1449 relations.py:438 serializers.py:525
|
||||
msgid "This list may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1491
|
||||
#, python-brace-format
|
||||
#: fields.py:1502
|
||||
msgid "Expected a dictionary of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1538
|
||||
#: fields.py:1549
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:35 templates/rest_framework/filters/django_filter.html.py:5
|
||||
#: filters.py:36 templates/rest_framework/filters/django_filter.html:5
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:189
|
||||
#: filters.py:336
|
||||
msgid "ascending"
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:337
|
||||
msgid "descending"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:193
|
||||
msgid "Invalid page."
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:407
|
||||
#: pagination.py:427
|
||||
msgid "Invalid cursor"
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:207
|
||||
#, python-brace-format
|
||||
msgid "Invalid pk \"{pk_value}\" - object does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:208
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected pk value, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
|
@ -364,25 +349,22 @@ msgid "Invalid hyperlink - Object does not exist."
|
|||
msgstr ""
|
||||
|
||||
#: relations.py:243
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected URL string, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:402
|
||||
#, python-brace-format
|
||||
#: relations.py:401
|
||||
msgid "Object with {slug_name}={value} does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:403
|
||||
#: relations.py:402
|
||||
msgid "Invalid value."
|
||||
msgstr ""
|
||||
|
||||
#: serializers.py:326
|
||||
#, python-brace-format
|
||||
msgid "Invalid data. Expected a dictionary, but got {datatype}."
|
||||
msgstr ""
|
||||
|
||||
#: templates/rest_framework/admin.html:118
|
||||
#: templates/rest_framework/admin.html:116
|
||||
#: templates/rest_framework/base.html:128
|
||||
msgid "Filters"
|
||||
msgstr ""
|
||||
|
@ -412,27 +394,23 @@ msgstr ""
|
|||
msgid "No items to select."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:24
|
||||
#: validators.py:43
|
||||
msgid "This field must be unique."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:78
|
||||
#, python-brace-format
|
||||
#: validators.py:97
|
||||
msgid "The fields {field_names} must make a unique set."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:226
|
||||
#, python-brace-format
|
||||
#: validators.py:245
|
||||
msgid "This field must be unique for the \"{date_field}\" date."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:241
|
||||
#, python-brace-format
|
||||
#: validators.py:260
|
||||
msgid "This field must be unique for the \"{date_field}\" month."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:254
|
||||
#, python-brace-format
|
||||
#: validators.py:273
|
||||
msgid "This field must be unique for the \"{date_field}\" year."
|
||||
msgstr ""
|
||||
|
||||
|
@ -440,15 +418,19 @@ msgstr ""
|
|||
msgid "Invalid version in \"Accept\" header."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:73 versioning.py:115
|
||||
#: versioning.py:73
|
||||
msgid "Invalid version in URL path."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:144
|
||||
#: versioning.py:115
|
||||
msgid "Invalid version in URL path. Does not match any version namespace."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:147
|
||||
msgid "Invalid version in hostname."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:166
|
||||
#: versioning.py:169
|
||||
msgid "Invalid version in query parameter."
|
||||
msgstr ""
|
||||
|
||||
|
|
Binary file not shown.
|
@ -5,7 +5,7 @@
|
|||
# Translators:
|
||||
# Fabian Büchler <fabian@buechler.io>, 2015
|
||||
# Mads Jensen <mje@inducks.org>, 2015
|
||||
# Niklas P <contact@niklasplessing.net>, 2015
|
||||
# Niklas P <contact@niklasplessing.net>, 2015-2016
|
||||
# Thomas Tanner, 2015
|
||||
# Tom Jaster <futur3.tom@googlemail.com>, 2015
|
||||
# Xavier Ordoquy <xordoquy@linovia.com>, 2015
|
||||
|
@ -13,9 +13,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Django REST framework\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-01 18:38+0100\n"
|
||||
"PO-Revision-Date: 2016-03-01 17:38+0000\n"
|
||||
"Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
|
||||
"POT-Creation-Date: 2016-07-12 16:13+0100\n"
|
||||
"PO-Revision-Date: 2016-07-12 15:14+0000\n"
|
||||
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n"
|
||||
"Language-Team: German (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -23,74 +23,74 @@ msgstr ""
|
|||
"Language: de\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: authentication.py:71
|
||||
#: authentication.py:73
|
||||
msgid "Invalid basic header. No credentials provided."
|
||||
msgstr "Ungültiger basic header. Keine Zugangsdaten angegeben."
|
||||
|
||||
#: authentication.py:74
|
||||
#: authentication.py:76
|
||||
msgid "Invalid basic header. Credentials string should not contain spaces."
|
||||
msgstr "Ungültiger basic header. Zugangsdaten sollen keine Leerzeichen enthalten."
|
||||
|
||||
#: authentication.py:80
|
||||
#: authentication.py:82
|
||||
msgid "Invalid basic header. Credentials not correctly base64 encoded."
|
||||
msgstr "Ungültiger basic header. Zugangsdaten sind nicht korrekt mit base64 kodiert."
|
||||
|
||||
#: authentication.py:97
|
||||
#: authentication.py:99
|
||||
msgid "Invalid username/password."
|
||||
msgstr "Ungültiger Benutzername/Passwort"
|
||||
|
||||
#: authentication.py:100 authentication.py:195
|
||||
#: authentication.py:102 authentication.py:198
|
||||
msgid "User inactive or deleted."
|
||||
msgstr "Benutzer inaktiv oder gelöscht."
|
||||
|
||||
#: authentication.py:173
|
||||
#: authentication.py:176
|
||||
msgid "Invalid token header. No credentials provided."
|
||||
msgstr "Ungültiger token header. Keine Zugangsdaten angegeben."
|
||||
|
||||
#: authentication.py:176
|
||||
#: authentication.py:179
|
||||
msgid "Invalid token header. Token string should not contain spaces."
|
||||
msgstr "Ungültiger token header. Zugangsdaten sollen keine Leerzeichen enthalten."
|
||||
|
||||
#: authentication.py:182
|
||||
#: authentication.py:185
|
||||
msgid ""
|
||||
"Invalid token header. Token string should not contain invalid characters."
|
||||
msgstr "Ungültiger Token Header. Tokens dürfen keine ungültigen Zeichen enthalten."
|
||||
|
||||
#: authentication.py:192
|
||||
#: authentication.py:195
|
||||
msgid "Invalid token."
|
||||
msgstr "Ungültiges Token"
|
||||
|
||||
#: authtoken/apps.py:7
|
||||
msgid "Auth Token"
|
||||
msgstr ""
|
||||
msgstr "Auth Token"
|
||||
|
||||
#: authtoken/models.py:21
|
||||
#: authtoken/models.py:15
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
msgstr "Schlüssel"
|
||||
|
||||
#: authtoken/models.py:23
|
||||
#: authtoken/models.py:18
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
msgstr "Benutzer"
|
||||
|
||||
#: authtoken/models.py:24
|
||||
#: authtoken/models.py:20
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:33
|
||||
#: authtoken/models.py:29
|
||||
msgid "Token"
|
||||
msgstr ""
|
||||
msgstr "Token"
|
||||
|
||||
#: authtoken/models.py:34
|
||||
#: authtoken/models.py:30
|
||||
msgid "Tokens"
|
||||
msgstr ""
|
||||
msgstr "Tokens"
|
||||
|
||||
#: authtoken/serializers.py:8
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
msgstr "Benutzername"
|
||||
|
||||
#: authtoken/serializers.py:9
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
msgstr "Passwort"
|
||||
|
||||
#: authtoken/serializers.py:20
|
||||
msgid "User account is disabled."
|
||||
|
@ -129,7 +129,6 @@ msgid "Not found."
|
|||
msgstr "Nicht gefunden."
|
||||
|
||||
#: exceptions.py:109
|
||||
#, python-brace-format
|
||||
msgid "Method \"{method}\" not allowed."
|
||||
msgstr "Methode \"{method}\" nicht erlaubt."
|
||||
|
||||
|
@ -138,7 +137,6 @@ msgid "Could not satisfy the request Accept header."
|
|||
msgstr "Kann die Accept Kopfzeile der Anfrage nicht erfüllen."
|
||||
|
||||
#: exceptions.py:132
|
||||
#, python-brace-format
|
||||
msgid "Unsupported media type \"{media_type}\" in request."
|
||||
msgstr "Nicht unterstützter Medientyp \"{media_type}\" in der Anfrage."
|
||||
|
||||
|
@ -146,214 +144,201 @@ msgstr "Nicht unterstützter Medientyp \"{media_type}\" in der Anfrage."
|
|||
msgid "Request was throttled."
|
||||
msgstr "Die Anfrage wurde gedrosselt."
|
||||
|
||||
#: fields.py:266 relations.py:206 relations.py:239 validators.py:79
|
||||
#: validators.py:162
|
||||
#: fields.py:269 relations.py:206 relations.py:239 validators.py:98
|
||||
#: validators.py:181
|
||||
msgid "This field is required."
|
||||
msgstr "Dieses Feld ist erforderlich."
|
||||
|
||||
#: fields.py:267
|
||||
#: fields.py:270
|
||||
msgid "This field may not be null."
|
||||
msgstr "Dieses Feld darf nicht Null sein."
|
||||
|
||||
#: fields.py:603 fields.py:634
|
||||
#, python-brace-format
|
||||
#: fields.py:608 fields.py:639
|
||||
msgid "\"{input}\" is not a valid boolean."
|
||||
msgstr "\"{input}\" ist kein gültiger Wahrheitswert."
|
||||
|
||||
#: fields.py:669
|
||||
#: fields.py:674
|
||||
msgid "This field may not be blank."
|
||||
msgstr "Dieses Feld darf nicht leer sein."
|
||||
|
||||
#: fields.py:670 fields.py:1664
|
||||
#, python-brace-format
|
||||
#: fields.py:675 fields.py:1675
|
||||
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."
|
||||
|
||||
#: fields.py:671
|
||||
#, python-brace-format
|
||||
#: fields.py:676
|
||||
msgid "Ensure this field has at least {min_length} characters."
|
||||
msgstr "Stelle sicher, dass dieses Feld mindestens {min_length} Zeichen lang ist."
|
||||
|
||||
#: fields.py:708
|
||||
#: fields.py:713
|
||||
msgid "Enter a valid email address."
|
||||
msgstr "Gib eine gültige E-Mail Adresse an."
|
||||
|
||||
#: fields.py:719
|
||||
#: fields.py:724
|
||||
msgid "This value does not match the required pattern."
|
||||
msgstr "Dieser Wert passt nicht zu dem erforderlichen Muster."
|
||||
|
||||
#: fields.py:730
|
||||
#: fields.py:735
|
||||
msgid ""
|
||||
"Enter a valid \"slug\" consisting of letters, numbers, underscores or "
|
||||
"hyphens."
|
||||
msgstr "Gib ein gültiges \"slug\" aus Buchstaben, Ziffern, Unterstrichen und Minuszeichen ein."
|
||||
|
||||
#: fields.py:742
|
||||
#: fields.py:747
|
||||
msgid "Enter a valid URL."
|
||||
msgstr "Gib eine gültige URL ein."
|
||||
|
||||
#: fields.py:755
|
||||
#, python-brace-format
|
||||
#: fields.py:760
|
||||
msgid "\"{value}\" is not a valid UUID."
|
||||
msgstr "\"{value}\" ist keine gültige UUID."
|
||||
|
||||
#: fields.py:791
|
||||
#: fields.py:796
|
||||
msgid "Enter a valid IPv4 or IPv6 address."
|
||||
msgstr "Geben Sie eine gültige UPv4 oder IPv6 Adresse an"
|
||||
|
||||
#: fields.py:816
|
||||
#: fields.py:821
|
||||
msgid "A valid integer is required."
|
||||
msgstr "Eine gültige Ganzzahl ist erforderlich."
|
||||
|
||||
#: fields.py:817 fields.py:852 fields.py:885
|
||||
#, python-brace-format
|
||||
#: fields.py:822 fields.py:857 fields.py:891
|
||||
msgid "Ensure this value is less than or equal to {max_value}."
|
||||
msgstr "Stelle sicher, dass dieser Wert kleiner oder gleich {max_value} ist."
|
||||
|
||||
#: fields.py:818 fields.py:853 fields.py:886
|
||||
#, python-brace-format
|
||||
#: fields.py:823 fields.py:858 fields.py:892
|
||||
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."
|
||||
|
||||
#: fields.py:819 fields.py:854 fields.py:890
|
||||
#: fields.py:824 fields.py:859 fields.py:896
|
||||
msgid "String value too large."
|
||||
msgstr "Zeichenkette zu lang."
|
||||
|
||||
#: fields.py:851 fields.py:884
|
||||
#: fields.py:856 fields.py:890
|
||||
msgid "A valid number is required."
|
||||
msgstr "Eine gültige Zahl ist erforderlich."
|
||||
|
||||
#: fields.py:887
|
||||
#, python-brace-format
|
||||
#: fields.py:893
|
||||
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."
|
||||
|
||||
#: fields.py:888
|
||||
#, python-brace-format
|
||||
#: fields.py:894
|
||||
msgid ""
|
||||
"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."
|
||||
|
||||
#: fields.py:889
|
||||
#, python-brace-format
|
||||
#: fields.py:895
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_whole_digits} digits before the "
|
||||
"decimal point."
|
||||
msgstr "Stelle sicher, dass es nicht mehr als {max_whole_digits} Stellen vor dem Komma lang ist."
|
||||
|
||||
#: fields.py:1004
|
||||
#, python-brace-format
|
||||
#: fields.py:1025
|
||||
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}."
|
||||
|
||||
#: fields.py:1005
|
||||
#: fields.py:1026
|
||||
msgid "Expected a datetime but got a date."
|
||||
msgstr "Erwarte eine Datums- und Zeitangabe, erhielt aber ein Datum."
|
||||
|
||||
#: fields.py:1082
|
||||
#, python-brace-format
|
||||
#: fields.py:1103
|
||||
msgid "Date has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr "Datum hat das falsche Format. Nutze stattdessen eines dieser Formate: {format}."
|
||||
|
||||
#: fields.py:1083
|
||||
#: fields.py:1104
|
||||
msgid "Expected a date but got a datetime."
|
||||
msgstr "Erwarte ein Datum, erhielt aber eine Datums- und Zeitangabe."
|
||||
|
||||
#: fields.py:1151
|
||||
#, python-brace-format
|
||||
#: fields.py:1170
|
||||
msgid "Time has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr "Zeitangabe hat das falsche Format. Nutze stattdessen eines dieser Formate: {format}."
|
||||
|
||||
#: fields.py:1215
|
||||
#, python-brace-format
|
||||
#: fields.py:1232
|
||||
msgid "Duration has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr "Laufzeit hat das falsche Format. Benutze stattdessen eines dieser Formate {format}."
|
||||
|
||||
#: fields.py:1240 fields.py:1289
|
||||
#, python-brace-format
|
||||
#: fields.py:1251 fields.py:1300
|
||||
msgid "\"{input}\" is not a valid choice."
|
||||
msgstr "\"{input}\" ist keine gültige Option."
|
||||
|
||||
#: fields.py:1243 relations.py:71 relations.py:442
|
||||
#, python-brace-format
|
||||
#: fields.py:1254 relations.py:71 relations.py:441
|
||||
msgid "More than {count} items..."
|
||||
msgstr "Mehr als {count} Ergebnisse"
|
||||
|
||||
#: fields.py:1290 fields.py:1437 relations.py:438 serializers.py:520
|
||||
#, python-brace-format
|
||||
#: fields.py:1301 fields.py:1448 relations.py:437 serializers.py:524
|
||||
msgid "Expected a list of items but got type \"{input_type}\"."
|
||||
msgstr "Erwarte eine Liste von Elementen, erhielt aber den Typ \"{input_type}\"."
|
||||
|
||||
#: fields.py:1291
|
||||
#: fields.py:1302
|
||||
msgid "This selection may not be empty."
|
||||
msgstr "Diese Auswahl darf nicht leer sein"
|
||||
|
||||
#: fields.py:1328
|
||||
#, python-brace-format
|
||||
#: fields.py:1339
|
||||
msgid "\"{input}\" is not a valid path choice."
|
||||
msgstr "\"{input}\" ist ein ungültiger Pfad Wahl."
|
||||
|
||||
#: fields.py:1347
|
||||
#: fields.py:1358
|
||||
msgid "No file was submitted."
|
||||
msgstr "Es wurde keine Datei übermittelt."
|
||||
|
||||
#: fields.py:1348
|
||||
#: fields.py:1359
|
||||
msgid ""
|
||||
"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."
|
||||
|
||||
#: fields.py:1349
|
||||
#: fields.py:1360
|
||||
msgid "No filename could be determined."
|
||||
msgstr "Der Dateiname konnte nicht ermittelt werden."
|
||||
|
||||
#: fields.py:1350
|
||||
#: fields.py:1361
|
||||
msgid "The submitted file is empty."
|
||||
msgstr "Die übermittelte Datei ist leer."
|
||||
|
||||
#: fields.py:1351
|
||||
#, python-brace-format
|
||||
#: fields.py:1362
|
||||
msgid ""
|
||||
"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})."
|
||||
|
||||
#: fields.py:1399
|
||||
#: fields.py:1410
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr "Lade ein gültiges Bild hoch. Die hochgeladene Datei ist entweder kein Bild oder ein beschädigtes Bild."
|
||||
|
||||
#: fields.py:1438 relations.py:439 serializers.py:521
|
||||
#: fields.py:1449 relations.py:438 serializers.py:525
|
||||
msgid "This list may not be empty."
|
||||
msgstr "Diese Liste darf nicht leer sein."
|
||||
|
||||
#: fields.py:1491
|
||||
#, python-brace-format
|
||||
#: fields.py:1502
|
||||
msgid "Expected a dictionary of items but got type \"{input_type}\"."
|
||||
msgstr "Erwarte ein Dictionary mit Elementen, erhielt aber den Typ \"{input_type}\"."
|
||||
|
||||
#: fields.py:1538
|
||||
#: fields.py:1549
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Wert muss gültiges JSON sein."
|
||||
|
||||
#: filters.py:35 templates/rest_framework/filters/django_filter.html.py:5
|
||||
#: filters.py:36 templates/rest_framework/filters/django_filter.html:5
|
||||
msgid "Submit"
|
||||
msgstr "Abschicken"
|
||||
|
||||
#: pagination.py:189
|
||||
#: filters.py:336
|
||||
msgid "ascending"
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:337
|
||||
msgid "descending"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:193
|
||||
msgid "Invalid page."
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:407
|
||||
#: pagination.py:427
|
||||
msgid "Invalid cursor"
|
||||
msgstr "Ungültiger Zeiger"
|
||||
|
||||
#: relations.py:207
|
||||
#, python-brace-format
|
||||
msgid "Invalid pk \"{pk_value}\" - object does not exist."
|
||||
msgstr "Ungültiger pk \"{pk_value}\" - Object existiert nicht."
|
||||
|
||||
#: relations.py:208
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected pk value, received {data_type}."
|
||||
msgstr "Falscher Typ. Erwarte pk Wert, erhielt aber {data_type}."
|
||||
|
||||
|
@ -370,25 +355,22 @@ msgid "Invalid hyperlink - Object does not exist."
|
|||
msgstr "Ungültiger Hyperlink - Objekt existiert nicht."
|
||||
|
||||
#: relations.py:243
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected URL string, received {data_type}."
|
||||
msgstr "Falscher Typ. Erwarte URL Zeichenkette, erhielt aber {data_type}."
|
||||
|
||||
#: relations.py:402
|
||||
#, python-brace-format
|
||||
#: relations.py:401
|
||||
msgid "Object with {slug_name}={value} does not exist."
|
||||
msgstr "Objekt mit {slug_name}={value} existiert nicht."
|
||||
|
||||
#: relations.py:403
|
||||
#: relations.py:402
|
||||
msgid "Invalid value."
|
||||
msgstr "Ungültiger Wert."
|
||||
|
||||
#: serializers.py:326
|
||||
#, python-brace-format
|
||||
msgid "Invalid data. Expected a dictionary, but got {datatype}."
|
||||
msgstr "Ungültige Daten. Dictionary erwartet, aber {datatype} erhalten."
|
||||
|
||||
#: templates/rest_framework/admin.html:118
|
||||
#: templates/rest_framework/admin.html:116
|
||||
#: templates/rest_framework/base.html:128
|
||||
msgid "Filters"
|
||||
msgstr "Filter"
|
||||
|
@ -418,27 +400,23 @@ msgstr "Nichts"
|
|||
msgid "No items to select."
|
||||
msgstr "Keine Elemente zum Auswählen."
|
||||
|
||||
#: validators.py:24
|
||||
#: validators.py:43
|
||||
msgid "This field must be unique."
|
||||
msgstr "Dieses Feld muss eindeutig sein."
|
||||
|
||||
#: validators.py:78
|
||||
#, python-brace-format
|
||||
#: validators.py:97
|
||||
msgid "The fields {field_names} must make a unique set."
|
||||
msgstr "Die Felder {field_names} müssen eine eindeutige Menge bilden."
|
||||
|
||||
#: validators.py:226
|
||||
#, python-brace-format
|
||||
#: validators.py:245
|
||||
msgid "This field must be unique for the \"{date_field}\" date."
|
||||
msgstr "Dieses Feld muss bezüglich des \"{date_field}\" Datums eindeutig sein."
|
||||
|
||||
#: validators.py:241
|
||||
#, python-brace-format
|
||||
#: validators.py:260
|
||||
msgid "This field must be unique for the \"{date_field}\" month."
|
||||
msgstr "Dieses Feld muss bezüglich des \"{date_field}\" Monats eindeutig sein."
|
||||
|
||||
#: validators.py:254
|
||||
#, python-brace-format
|
||||
#: validators.py:273
|
||||
msgid "This field must be unique for the \"{date_field}\" year."
|
||||
msgstr "Dieses Feld muss bezüglich des \"{date_field}\" Jahrs eindeutig sein."
|
||||
|
||||
|
@ -446,15 +424,19 @@ msgstr "Dieses Feld muss bezüglich des \"{date_field}\" Jahrs eindeutig sein."
|
|||
msgid "Invalid version in \"Accept\" header."
|
||||
msgstr "Ungültige Version in der \"Accept\" Kopfzeile."
|
||||
|
||||
#: versioning.py:73 versioning.py:115
|
||||
#: versioning.py:73
|
||||
msgid "Invalid version in URL path."
|
||||
msgstr "Ungültige Version im URL Pfad."
|
||||
|
||||
#: versioning.py:144
|
||||
#: versioning.py:115
|
||||
msgid "Invalid version in URL path. Does not match any version namespace."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:147
|
||||
msgid "Invalid version in hostname."
|
||||
msgstr "Ungültige Version im Hostname."
|
||||
|
||||
#: versioning.py:166
|
||||
#: versioning.py:169
|
||||
msgid "Invalid version in query parameter."
|
||||
msgstr "Ungültige Version im Anfrageparameter."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -3,13 +3,14 @@
|
|||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
# Translators:
|
||||
# Serafeim Papastefanos <spapas@gmail.com>, 2016
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Django REST framework\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-01 18:38+0100\n"
|
||||
"PO-Revision-Date: 2016-03-01 17:38+0000\n"
|
||||
"Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
|
||||
"POT-Creation-Date: 2016-07-12 16:13+0100\n"
|
||||
"PO-Revision-Date: 2016-07-12 15:14+0000\n"
|
||||
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n"
|
||||
"Language-Team: Greek (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/el/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -17,441 +18,423 @@ msgstr ""
|
|||
"Language: el\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: authentication.py:71
|
||||
#: authentication.py:73
|
||||
msgid "Invalid basic header. No credentials provided."
|
||||
msgstr ""
|
||||
msgstr "Λανθασμένη επικεφαλίδα basic. Δεν υπάρχουν διαπιστευτήρια."
|
||||
|
||||
#: authentication.py:74
|
||||
#: authentication.py:76
|
||||
msgid "Invalid basic header. Credentials string should not contain spaces."
|
||||
msgstr ""
|
||||
msgstr "Λανθασμένη επικεφαλίδα basic. Τα διαπιστευτήρια δε μπορεί να περιέχουν κενά."
|
||||
|
||||
#: authentication.py:80
|
||||
#: authentication.py:82
|
||||
msgid "Invalid basic header. Credentials not correctly base64 encoded."
|
||||
msgstr ""
|
||||
msgstr "Λανθασμένη επικεφαλίδα basic. Τα διαπιστευτήρια δεν είναι κωδικοποιημένα κατά base64."
|
||||
|
||||
#: authentication.py:97
|
||||
#: authentication.py:99
|
||||
msgid "Invalid username/password."
|
||||
msgstr ""
|
||||
msgstr "Λανθασμένο όνομα χρήστη/κωδικός."
|
||||
|
||||
#: authentication.py:100 authentication.py:195
|
||||
#: authentication.py:102 authentication.py:198
|
||||
msgid "User inactive or deleted."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:173
|
||||
msgid "Invalid token header. No credentials provided."
|
||||
msgstr ""
|
||||
msgstr "Ο χρήστης είναι ανενεργός ή διεγραμμένος."
|
||||
|
||||
#: authentication.py:176
|
||||
msgid "Invalid token header. Token string should not contain spaces."
|
||||
msgstr ""
|
||||
msgid "Invalid token header. No credentials provided."
|
||||
msgstr "Λανθασμένη επικεφαλίδα token. Δεν υπάρχουν διαπιστευτήρια."
|
||||
|
||||
#: authentication.py:182
|
||||
#: authentication.py:179
|
||||
msgid "Invalid token header. Token string should not contain spaces."
|
||||
msgstr "Λανθασμένη επικεφαλίδα token. Το token δε πρέπει να περιέχει κενά."
|
||||
|
||||
#: authentication.py:185
|
||||
msgid ""
|
||||
"Invalid token header. Token string should not contain invalid characters."
|
||||
msgstr ""
|
||||
msgstr "Λανθασμένη επικεφαλίδα token. Το token περιέχει μη επιτρεπτούς χαρακτήρες."
|
||||
|
||||
#: authentication.py:192
|
||||
#: authentication.py:195
|
||||
msgid "Invalid token."
|
||||
msgstr ""
|
||||
msgstr "Λανθασμένο token"
|
||||
|
||||
#: authtoken/apps.py:7
|
||||
msgid "Auth Token"
|
||||
msgstr ""
|
||||
msgstr "Token πιστοποίησης"
|
||||
|
||||
#: authtoken/models.py:21
|
||||
#: authtoken/models.py:15
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
msgstr "Κλειδί"
|
||||
|
||||
#: authtoken/models.py:23
|
||||
#: authtoken/models.py:18
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
msgstr "Χρήστης"
|
||||
|
||||
#: authtoken/models.py:24
|
||||
#: authtoken/models.py:20
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
msgstr "Δημιουργήθηκε"
|
||||
|
||||
#: authtoken/models.py:33
|
||||
#: authtoken/models.py:29
|
||||
msgid "Token"
|
||||
msgstr ""
|
||||
msgstr "Token"
|
||||
|
||||
#: authtoken/models.py:34
|
||||
#: authtoken/models.py:30
|
||||
msgid "Tokens"
|
||||
msgstr ""
|
||||
msgstr "Tokens"
|
||||
|
||||
#: authtoken/serializers.py:8
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
msgstr "Όνομα χρήστη"
|
||||
|
||||
#: authtoken/serializers.py:9
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
msgstr "Κωδικός"
|
||||
|
||||
#: authtoken/serializers.py:20
|
||||
msgid "User account is disabled."
|
||||
msgstr ""
|
||||
msgstr "Ο λογαριασμός χρήστη είναι απενεργοποιημένος."
|
||||
|
||||
#: authtoken/serializers.py:23
|
||||
msgid "Unable to log in with provided credentials."
|
||||
msgstr ""
|
||||
msgstr "Δεν είναι δυνατή η σύνδεση με τα διαπιστευτήρια."
|
||||
|
||||
#: authtoken/serializers.py:26
|
||||
msgid "Must include \"username\" and \"password\"."
|
||||
msgstr ""
|
||||
msgstr "Πρέπει να περιέχει \"όνομα χρήστη\" και \"κωδικό\"."
|
||||
|
||||
#: exceptions.py:49
|
||||
msgid "A server error occurred."
|
||||
msgstr ""
|
||||
msgstr "Σφάλμα διακομιστή."
|
||||
|
||||
#: exceptions.py:84
|
||||
msgid "Malformed request."
|
||||
msgstr ""
|
||||
msgstr "Λανθασμένο αίτημα."
|
||||
|
||||
#: exceptions.py:89
|
||||
msgid "Incorrect authentication credentials."
|
||||
msgstr ""
|
||||
msgstr "Λάθος διαπιστευτήρια."
|
||||
|
||||
#: exceptions.py:94
|
||||
msgid "Authentication credentials were not provided."
|
||||
msgstr ""
|
||||
msgstr "Δεν δόθηκαν διαπιστευτήρια."
|
||||
|
||||
#: exceptions.py:99
|
||||
msgid "You do not have permission to perform this action."
|
||||
msgstr ""
|
||||
msgstr "Δεν έχετε δικαίωματα για αυτή την ενέργεια."
|
||||
|
||||
#: exceptions.py:104 views.py:81
|
||||
msgid "Not found."
|
||||
msgstr ""
|
||||
msgstr "Δε βρέθηκε."
|
||||
|
||||
#: exceptions.py:109
|
||||
#, python-brace-format
|
||||
msgid "Method \"{method}\" not allowed."
|
||||
msgstr ""
|
||||
msgstr "Η μέθοδος \"{method\"} δεν επιτρέπεται."
|
||||
|
||||
#: exceptions.py:120
|
||||
msgid "Could not satisfy the request Accept header."
|
||||
msgstr ""
|
||||
msgstr "Δεν ήταν δυνατή η ικανοποίηση της επικεφαλίδας Accept της αίτησης."
|
||||
|
||||
#: exceptions.py:132
|
||||
#, python-brace-format
|
||||
msgid "Unsupported media type \"{media_type}\" in request."
|
||||
msgstr ""
|
||||
msgstr "Δεν υποστηρίζεται το media type \"{media_type}\" της αίτησης."
|
||||
|
||||
#: exceptions.py:145
|
||||
msgid "Request was throttled."
|
||||
msgstr ""
|
||||
msgstr "Το αίτημα έγινε throttle."
|
||||
|
||||
#: fields.py:266 relations.py:206 relations.py:239 validators.py:79
|
||||
#: validators.py:162
|
||||
#: fields.py:269 relations.py:206 relations.py:239 validators.py:98
|
||||
#: validators.py:181
|
||||
msgid "This field is required."
|
||||
msgstr ""
|
||||
msgstr "Το πεδίο είναι απαραίτητο."
|
||||
|
||||
#: fields.py:267
|
||||
#: fields.py:270
|
||||
msgid "This field may not be null."
|
||||
msgstr ""
|
||||
msgstr "Το πεδίο δε μπορεί να είναι null."
|
||||
|
||||
#: fields.py:603 fields.py:634
|
||||
#, python-brace-format
|
||||
#: fields.py:608 fields.py:639
|
||||
msgid "\"{input}\" is not a valid boolean."
|
||||
msgstr ""
|
||||
msgstr "Το \"{input}\" δεν είναι έγκυρο boolean."
|
||||
|
||||
#: fields.py:669
|
||||
#: fields.py:674
|
||||
msgid "This field may not be blank."
|
||||
msgstr ""
|
||||
msgstr "Το πεδίο δε μπορεί να είναι κενό."
|
||||
|
||||
#: fields.py:670 fields.py:1664
|
||||
#, python-brace-format
|
||||
#: fields.py:675 fields.py:1675
|
||||
msgid "Ensure this field has no more than {max_length} characters."
|
||||
msgstr ""
|
||||
msgstr "Επιβεβαιώσατε ότι το πεδίο δεν έχει περισσότερους από {max_length} χαρακτήρες."
|
||||
|
||||
#: fields.py:671
|
||||
#, python-brace-format
|
||||
#: fields.py:676
|
||||
msgid "Ensure this field has at least {min_length} characters."
|
||||
msgstr ""
|
||||
msgstr "Επιβεβαιώσατε ότι το πεδίο έχει τουλάχιστον {min_length} χαρακτήρες."
|
||||
|
||||
#: fields.py:708
|
||||
#: fields.py:713
|
||||
msgid "Enter a valid email address."
|
||||
msgstr ""
|
||||
msgstr "Συμπληρώσατε μια έγκυρη διεύθυνση e-mail."
|
||||
|
||||
#: fields.py:719
|
||||
#: fields.py:724
|
||||
msgid "This value does not match the required pattern."
|
||||
msgstr ""
|
||||
msgstr "Η τιμή δε ταιριάζει με το pattern."
|
||||
|
||||
#: fields.py:730
|
||||
#: fields.py:735
|
||||
msgid ""
|
||||
"Enter a valid \"slug\" consisting of letters, numbers, underscores or "
|
||||
"hyphens."
|
||||
msgstr ""
|
||||
msgstr "Εισάγετε ένα έγκυρο \"slug\" που αποτελείται από γράμματα, αριθμούς παύλες και κάτω παύλες."
|
||||
|
||||
#: fields.py:742
|
||||
#: fields.py:747
|
||||
msgid "Enter a valid URL."
|
||||
msgstr ""
|
||||
msgstr "Εισάγετε έγκυρο URL."
|
||||
|
||||
#: fields.py:755
|
||||
#, python-brace-format
|
||||
#: fields.py:760
|
||||
msgid "\"{value}\" is not a valid UUID."
|
||||
msgstr ""
|
||||
msgstr "Το \"{value}\" δεν είναι έγκυρο UUID."
|
||||
|
||||
#: fields.py:791
|
||||
#: fields.py:796
|
||||
msgid "Enter a valid IPv4 or IPv6 address."
|
||||
msgstr ""
|
||||
msgstr "Εισάγετε μια έγκυρη διεύθυνση IPv4 ή IPv6."
|
||||
|
||||
#: fields.py:816
|
||||
#: fields.py:821
|
||||
msgid "A valid integer is required."
|
||||
msgstr ""
|
||||
msgstr "Ένας έγκυρος ακέραιος είναι απαραίτητος."
|
||||
|
||||
#: fields.py:817 fields.py:852 fields.py:885
|
||||
#, python-brace-format
|
||||
#: fields.py:822 fields.py:857 fields.py:891
|
||||
msgid "Ensure this value is less than or equal to {max_value}."
|
||||
msgstr ""
|
||||
msgstr "Επιβεβαιώσατε ότι η τιμή είναι μικρότερη ή ίση του {max_value}."
|
||||
|
||||
#: fields.py:818 fields.py:853 fields.py:886
|
||||
#, python-brace-format
|
||||
#: fields.py:823 fields.py:858 fields.py:892
|
||||
msgid "Ensure this value is greater than or equal to {min_value}."
|
||||
msgstr ""
|
||||
msgstr "Επιβεβαιώσατε ότι η τιμή είναι μεγαλύτερη ή ίση του {min_value}."
|
||||
|
||||
#: fields.py:819 fields.py:854 fields.py:890
|
||||
#: fields.py:824 fields.py:859 fields.py:896
|
||||
msgid "String value too large."
|
||||
msgstr ""
|
||||
msgstr "Το κείμενο είναι πολύ μεγάλο."
|
||||
|
||||
#: fields.py:851 fields.py:884
|
||||
#: fields.py:856 fields.py:890
|
||||
msgid "A valid number is required."
|
||||
msgstr ""
|
||||
msgstr "Ένας έγκυρος αριθμός είναι απαραίτητος."
|
||||
|
||||
#: fields.py:887
|
||||
#, python-brace-format
|
||||
#: fields.py:893
|
||||
msgid "Ensure that there are no more than {max_digits} digits in total."
|
||||
msgstr ""
|
||||
msgstr "Επιβεβαιώσατε ότι δεν υπάρχουν παραπάνω από {max_digits} ψηφία."
|
||||
|
||||
#: fields.py:888
|
||||
#, python-brace-format
|
||||
#: fields.py:894
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_decimal_places} decimal places."
|
||||
msgstr ""
|
||||
msgstr "Επιβεβαιώσατε ότι δεν υπάρχουν παραπάνω από {max_decimal_places} δεκαδικά ψηφία."
|
||||
|
||||
#: fields.py:889
|
||||
#, python-brace-format
|
||||
#: fields.py:895
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_whole_digits} digits before the "
|
||||
"decimal point."
|
||||
msgstr ""
|
||||
msgstr "Επιβεβαιώσατε ότι δεν υπάρχουν παραπάνω από {max_whole_digits} ακέραια ψηφία."
|
||||
|
||||
#: fields.py:1004
|
||||
#, python-brace-format
|
||||
#: fields.py:1025
|
||||
msgid "Datetime has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
msgstr "Η ημερομηνία έχεi λάθος μορφή. Χρησιμοποιήστε μια από τις ακόλουθες μορφές: {format}"
|
||||
|
||||
#: fields.py:1005
|
||||
#: fields.py:1026
|
||||
msgid "Expected a datetime but got a date."
|
||||
msgstr ""
|
||||
msgstr "Αναμένεται ημερομηνία και ώρα αλλά δόθηκε μόνο ημερομηνία."
|
||||
|
||||
#: fields.py:1082
|
||||
#, python-brace-format
|
||||
#: fields.py:1103
|
||||
msgid "Date has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
msgstr "Η ημερομηνία έχεi λάθος μορφή. Χρησιμοποιήστε μια από τις ακόλουθες μορφές: {format}"
|
||||
|
||||
#: fields.py:1083
|
||||
#: fields.py:1104
|
||||
msgid "Expected a date but got a datetime."
|
||||
msgstr ""
|
||||
msgstr "Αναμένεται ημερομηνία αλλά δόθηκε ημερομηνία και ώρα."
|
||||
|
||||
#: fields.py:1151
|
||||
#, python-brace-format
|
||||
#: fields.py:1170
|
||||
msgid "Time has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
msgstr "Η ώρα έχει λάθος μορφή. Χρησιμοποιήστε μια από τις ακόλουθες μορφές: {format}"
|
||||
|
||||
#: fields.py:1215
|
||||
#, python-brace-format
|
||||
#: fields.py:1232
|
||||
msgid "Duration has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
msgstr "Η διάρκεια έχει λάθος μορφή. Χρησιμοποιήστε μια από τις ακόλουθες μορφές: {format}"
|
||||
|
||||
#: fields.py:1240 fields.py:1289
|
||||
#, python-brace-format
|
||||
#: fields.py:1251 fields.py:1300
|
||||
msgid "\"{input}\" is not a valid choice."
|
||||
msgstr ""
|
||||
msgstr "Το \"{input}\" δεν είναι έγκυρη επιλογή."
|
||||
|
||||
#: fields.py:1243 relations.py:71 relations.py:442
|
||||
#, python-brace-format
|
||||
#: fields.py:1254 relations.py:71 relations.py:441
|
||||
msgid "More than {count} items..."
|
||||
msgstr ""
|
||||
msgstr "Περισσότερα από {count} αντικείμενα..."
|
||||
|
||||
#: fields.py:1290 fields.py:1437 relations.py:438 serializers.py:520
|
||||
#, python-brace-format
|
||||
#: fields.py:1301 fields.py:1448 relations.py:437 serializers.py:524
|
||||
msgid "Expected a list of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
msgstr "Αναμένεται μια λίστα αντικειμένον αλλά δόθηκε ο τύπος \"{input_type}\""
|
||||
|
||||
#: fields.py:1291
|
||||
#: fields.py:1302
|
||||
msgid "This selection may not be empty."
|
||||
msgstr ""
|
||||
msgstr "Η επιλογή δε μπορεί να είναι κενή."
|
||||
|
||||
#: fields.py:1328
|
||||
#, python-brace-format
|
||||
#: fields.py:1339
|
||||
msgid "\"{input}\" is not a valid path choice."
|
||||
msgstr ""
|
||||
msgstr "Το \"{input}\" δεν είναι έγκυρη επιλογή διαδρομής."
|
||||
|
||||
#: fields.py:1347
|
||||
#: fields.py:1358
|
||||
msgid "No file was submitted."
|
||||
msgstr ""
|
||||
msgstr "Δεν υποβλήθηκε αρχείο."
|
||||
|
||||
#: fields.py:1348
|
||||
#: fields.py:1359
|
||||
msgid ""
|
||||
"The submitted data was not a file. Check the encoding type on the form."
|
||||
msgstr ""
|
||||
msgstr "Τα δεδομένα που υποβλήθηκαν δεν ήταν αρχείο. Ελέγξατε την κωδικοποίηση της φόρμας."
|
||||
|
||||
#: fields.py:1349
|
||||
#: fields.py:1360
|
||||
msgid "No filename could be determined."
|
||||
msgstr ""
|
||||
msgstr "Δε βρέθηκε όνομα αρχείου."
|
||||
|
||||
#: fields.py:1350
|
||||
#: fields.py:1361
|
||||
msgid "The submitted file is empty."
|
||||
msgstr ""
|
||||
msgstr "Το αρχείο που υποβλήθηκε είναι κενό."
|
||||
|
||||
#: fields.py:1351
|
||||
#, python-brace-format
|
||||
#: fields.py:1362
|
||||
msgid ""
|
||||
"Ensure this filename has at most {max_length} characters (it has {length})."
|
||||
msgstr ""
|
||||
msgstr "Επιβεβαιώσατε ότι το όνομα αρχείου έχει ως {max_length} χαρακτήρες (έχει {length})."
|
||||
|
||||
#: fields.py:1399
|
||||
#: fields.py:1410
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr ""
|
||||
msgstr "Ανεβάστε μια έγκυρη εικόνα. Το αρχείο που ανεβάσατε είτε δεν είναι εικόνα είτε έχει καταστραφεί."
|
||||
|
||||
#: fields.py:1438 relations.py:439 serializers.py:521
|
||||
#: fields.py:1449 relations.py:438 serializers.py:525
|
||||
msgid "This list may not be empty."
|
||||
msgstr ""
|
||||
msgstr "Η λίστα δε μπορεί να είναι κενή."
|
||||
|
||||
#: fields.py:1491
|
||||
#, python-brace-format
|
||||
#: fields.py:1502
|
||||
msgid "Expected a dictionary of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
msgstr "Αναμένεται ένα λεξικό αντικείμενων αλλά δόθηκε ο τύπος \"{input_type}\"."
|
||||
|
||||
#: fields.py:1538
|
||||
#: fields.py:1549
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr ""
|
||||
msgstr "Η τιμή πρέπει να είναι μορφής JSON."
|
||||
|
||||
#: filters.py:35 templates/rest_framework/filters/django_filter.html.py:5
|
||||
#: filters.py:36 templates/rest_framework/filters/django_filter.html:5
|
||||
msgid "Submit"
|
||||
msgstr "Υποβολή"
|
||||
|
||||
#: filters.py:336
|
||||
msgid "ascending"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:189
|
||||
#: filters.py:337
|
||||
msgid "descending"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:193
|
||||
msgid "Invalid page."
|
||||
msgstr ""
|
||||
msgstr "Λάθος σελίδα."
|
||||
|
||||
#: pagination.py:407
|
||||
#: pagination.py:427
|
||||
msgid "Invalid cursor"
|
||||
msgstr ""
|
||||
msgstr "Λάθος cursor."
|
||||
|
||||
#: relations.py:207
|
||||
#, python-brace-format
|
||||
msgid "Invalid pk \"{pk_value}\" - object does not exist."
|
||||
msgstr ""
|
||||
msgstr "Λάθος κλειδί \"{pk_value}\" - το αντικείμενο δεν υπάρχει."
|
||||
|
||||
#: relations.py:208
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected pk value, received {data_type}."
|
||||
msgstr ""
|
||||
msgstr "Λάθος τύπος. Αναμένεται τιμή κλειδιού, δόθηκε {data_type}."
|
||||
|
||||
#: relations.py:240
|
||||
msgid "Invalid hyperlink - No URL match."
|
||||
msgstr ""
|
||||
msgstr "Λάθος σύνδεση - δε ταιριάζει κάποιο URL."
|
||||
|
||||
#: relations.py:241
|
||||
msgid "Invalid hyperlink - Incorrect URL match."
|
||||
msgstr ""
|
||||
msgstr "Λάθος σύνδεση - δε ταιριάζει κάποιο URL."
|
||||
|
||||
#: relations.py:242
|
||||
msgid "Invalid hyperlink - Object does not exist."
|
||||
msgstr ""
|
||||
msgstr "Λάθος σύνδεση - το αντικείμενο δεν υπάρχει."
|
||||
|
||||
#: relations.py:243
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected URL string, received {data_type}."
|
||||
msgstr ""
|
||||
msgstr "Λάθος τύπος. Αναμένεται URL, δόθηκε {data_type}."
|
||||
|
||||
#: relations.py:401
|
||||
msgid "Object with {slug_name}={value} does not exist."
|
||||
msgstr "Το αντικείμενο {slug_name}={value} δεν υπάρχει."
|
||||
|
||||
#: relations.py:402
|
||||
#, python-brace-format
|
||||
msgid "Object with {slug_name}={value} does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:403
|
||||
msgid "Invalid value."
|
||||
msgstr ""
|
||||
msgstr "Λάθος τιμή."
|
||||
|
||||
#: serializers.py:326
|
||||
#, python-brace-format
|
||||
msgid "Invalid data. Expected a dictionary, but got {datatype}."
|
||||
msgstr ""
|
||||
msgstr "Λάθος δεδομένα. Αναμένεται λεξικό αλλά δόθηκε {datatype}."
|
||||
|
||||
#: templates/rest_framework/admin.html:118
|
||||
#: templates/rest_framework/admin.html:116
|
||||
#: templates/rest_framework/base.html:128
|
||||
msgid "Filters"
|
||||
msgstr ""
|
||||
msgstr "Φίλτρα"
|
||||
|
||||
#: templates/rest_framework/filters/django_filter.html:2
|
||||
#: templates/rest_framework/filters/django_filter_crispyforms.html:4
|
||||
msgid "Field filters"
|
||||
msgstr ""
|
||||
msgstr "Φίλτρα πεδίων"
|
||||
|
||||
#: templates/rest_framework/filters/ordering.html:3
|
||||
msgid "Ordering"
|
||||
msgstr ""
|
||||
msgstr "Ταξινόμηση"
|
||||
|
||||
#: templates/rest_framework/filters/search.html:2
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
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 ""
|
||||
msgstr "None"
|
||||
|
||||
#: 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 ""
|
||||
msgstr "Δεν υπάρχουν αντικείμενα προς επιλογή."
|
||||
|
||||
#: validators.py:24
|
||||
#: validators.py:43
|
||||
msgid "This field must be unique."
|
||||
msgstr ""
|
||||
msgstr "Το πεδίο πρέπει να είναι μοναδικό"
|
||||
|
||||
#: validators.py:78
|
||||
#, python-brace-format
|
||||
#: validators.py:97
|
||||
msgid "The fields {field_names} must make a unique set."
|
||||
msgstr ""
|
||||
msgstr "Τα πεδία {field_names} πρέπει να αποτελούν ένα μοναδικό σύνολο."
|
||||
|
||||
#: validators.py:226
|
||||
#, python-brace-format
|
||||
#: validators.py:245
|
||||
msgid "This field must be unique for the \"{date_field}\" date."
|
||||
msgstr ""
|
||||
msgstr "Το πεδίο πρέπει να είναι μοναδικό για την ημερομηνία \"{date_field}\"."
|
||||
|
||||
#: validators.py:241
|
||||
#, python-brace-format
|
||||
#: validators.py:260
|
||||
msgid "This field must be unique for the \"{date_field}\" month."
|
||||
msgstr ""
|
||||
msgstr "Το πεδίο πρέπει να είναι μοναδικό για το μήνα \"{date_field}\"."
|
||||
|
||||
#: validators.py:254
|
||||
#, python-brace-format
|
||||
#: validators.py:273
|
||||
msgid "This field must be unique for the \"{date_field}\" year."
|
||||
msgstr ""
|
||||
msgstr "Το πεδίο πρέπει να είναι μοναδικό για το έτος \"{date_field}\"."
|
||||
|
||||
#: versioning.py:42
|
||||
msgid "Invalid version in \"Accept\" header."
|
||||
msgstr ""
|
||||
msgstr "Λάθος έκδοση στην επικεφαλίδα \"Accept\"."
|
||||
|
||||
#: versioning.py:73 versioning.py:115
|
||||
#: versioning.py:73
|
||||
msgid "Invalid version in URL path."
|
||||
msgstr "Λάθος έκδοση στη διαδρομή URL."
|
||||
|
||||
#: versioning.py:115
|
||||
msgid "Invalid version in URL path. Does not match any version namespace."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:144
|
||||
#: versioning.py:147
|
||||
msgid "Invalid version in hostname."
|
||||
msgstr ""
|
||||
msgstr "Λάθος έκδοση στο hostname."
|
||||
|
||||
#: versioning.py:166
|
||||
#: versioning.py:169
|
||||
msgid "Invalid version in query parameter."
|
||||
msgstr ""
|
||||
msgstr "Λάθος έκδοση στην παράμετρο"
|
||||
|
||||
#: views.py:88
|
||||
msgid "Permission denied."
|
||||
msgstr ""
|
||||
msgstr "Απόρριψη πρόσβασης"
|
||||
|
|
Binary file not shown.
|
@ -7,9 +7,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Django REST framework\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-01 18:38+0100\n"
|
||||
"PO-Revision-Date: 2016-03-01 17:38+0000\n"
|
||||
"Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
|
||||
"POT-Creation-Date: 2016-07-12 16:13+0100\n"
|
||||
"PO-Revision-Date: 2016-07-12 15:14+0000\n"
|
||||
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n"
|
||||
"Language-Team: Greek (Greece) (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/el_GR/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -17,40 +17,40 @@ msgstr ""
|
|||
"Language: el_GR\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: authentication.py:71
|
||||
#: authentication.py:73
|
||||
msgid "Invalid basic header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:74
|
||||
#: authentication.py:76
|
||||
msgid "Invalid basic header. Credentials string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:80
|
||||
#: authentication.py:82
|
||||
msgid "Invalid basic header. Credentials not correctly base64 encoded."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:97
|
||||
#: authentication.py:99
|
||||
msgid "Invalid username/password."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:100 authentication.py:195
|
||||
#: authentication.py:102 authentication.py:198
|
||||
msgid "User inactive or deleted."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:173
|
||||
#: authentication.py:176
|
||||
msgid "Invalid token header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:176
|
||||
#: authentication.py:179
|
||||
msgid "Invalid token header. Token string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:182
|
||||
#: authentication.py:185
|
||||
msgid ""
|
||||
"Invalid token header. Token string should not contain invalid characters."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:192
|
||||
#: authentication.py:195
|
||||
msgid "Invalid token."
|
||||
msgstr ""
|
||||
|
||||
|
@ -58,23 +58,23 @@ msgstr ""
|
|||
msgid "Auth Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:21
|
||||
#: authtoken/models.py:15
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:23
|
||||
#: authtoken/models.py:18
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:24
|
||||
#: authtoken/models.py:20
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:33
|
||||
#: authtoken/models.py:29
|
||||
msgid "Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:34
|
||||
#: authtoken/models.py:30
|
||||
msgid "Tokens"
|
||||
msgstr ""
|
||||
|
||||
|
@ -123,7 +123,6 @@ msgid "Not found."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:109
|
||||
#, python-brace-format
|
||||
msgid "Method \"{method}\" not allowed."
|
||||
msgstr ""
|
||||
|
||||
|
@ -132,7 +131,6 @@ msgid "Could not satisfy the request Accept header."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:132
|
||||
#, python-brace-format
|
||||
msgid "Unsupported media type \"{media_type}\" in request."
|
||||
msgstr ""
|
||||
|
||||
|
@ -140,214 +138,201 @@ msgstr ""
|
|||
msgid "Request was throttled."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:266 relations.py:206 relations.py:239 validators.py:79
|
||||
#: validators.py:162
|
||||
#: fields.py:269 relations.py:206 relations.py:239 validators.py:98
|
||||
#: validators.py:181
|
||||
msgid "This field is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:267
|
||||
#: fields.py:270
|
||||
msgid "This field may not be null."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:603 fields.py:634
|
||||
#, python-brace-format
|
||||
#: fields.py:608 fields.py:639
|
||||
msgid "\"{input}\" is not a valid boolean."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:669
|
||||
#: fields.py:674
|
||||
msgid "This field may not be blank."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:670 fields.py:1664
|
||||
#, python-brace-format
|
||||
#: fields.py:675 fields.py:1675
|
||||
msgid "Ensure this field has no more than {max_length} characters."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:671
|
||||
#, python-brace-format
|
||||
#: fields.py:676
|
||||
msgid "Ensure this field has at least {min_length} characters."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:708
|
||||
#: fields.py:713
|
||||
msgid "Enter a valid email address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:719
|
||||
#: fields.py:724
|
||||
msgid "This value does not match the required pattern."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:730
|
||||
#: fields.py:735
|
||||
msgid ""
|
||||
"Enter a valid \"slug\" consisting of letters, numbers, underscores or "
|
||||
"hyphens."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:742
|
||||
#: fields.py:747
|
||||
msgid "Enter a valid URL."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:755
|
||||
#, python-brace-format
|
||||
#: fields.py:760
|
||||
msgid "\"{value}\" is not a valid UUID."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:791
|
||||
#: fields.py:796
|
||||
msgid "Enter a valid IPv4 or IPv6 address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:816
|
||||
#: fields.py:821
|
||||
msgid "A valid integer is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:817 fields.py:852 fields.py:885
|
||||
#, python-brace-format
|
||||
#: fields.py:822 fields.py:857 fields.py:891
|
||||
msgid "Ensure this value is less than or equal to {max_value}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:818 fields.py:853 fields.py:886
|
||||
#, python-brace-format
|
||||
#: fields.py:823 fields.py:858 fields.py:892
|
||||
msgid "Ensure this value is greater than or equal to {min_value}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:819 fields.py:854 fields.py:890
|
||||
#: fields.py:824 fields.py:859 fields.py:896
|
||||
msgid "String value too large."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:851 fields.py:884
|
||||
#: fields.py:856 fields.py:890
|
||||
msgid "A valid number is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:887
|
||||
#, python-brace-format
|
||||
#: fields.py:893
|
||||
msgid "Ensure that there are no more than {max_digits} digits in total."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:888
|
||||
#, python-brace-format
|
||||
#: fields.py:894
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_decimal_places} decimal places."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:889
|
||||
#, python-brace-format
|
||||
#: fields.py:895
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_whole_digits} digits before the "
|
||||
"decimal point."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1004
|
||||
#, python-brace-format
|
||||
#: fields.py:1025
|
||||
msgid "Datetime has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1005
|
||||
#: fields.py:1026
|
||||
msgid "Expected a datetime but got a date."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1082
|
||||
#, python-brace-format
|
||||
#: fields.py:1103
|
||||
msgid "Date has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1083
|
||||
#: fields.py:1104
|
||||
msgid "Expected a date but got a datetime."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1151
|
||||
#, python-brace-format
|
||||
#: fields.py:1170
|
||||
msgid "Time has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1215
|
||||
#, python-brace-format
|
||||
#: fields.py:1232
|
||||
msgid "Duration has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1240 fields.py:1289
|
||||
#, python-brace-format
|
||||
#: fields.py:1251 fields.py:1300
|
||||
msgid "\"{input}\" is not a valid choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1243 relations.py:71 relations.py:442
|
||||
#, python-brace-format
|
||||
#: fields.py:1254 relations.py:71 relations.py:441
|
||||
msgid "More than {count} items..."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1290 fields.py:1437 relations.py:438 serializers.py:520
|
||||
#, python-brace-format
|
||||
#: fields.py:1301 fields.py:1448 relations.py:437 serializers.py:524
|
||||
msgid "Expected a list of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1291
|
||||
#: fields.py:1302
|
||||
msgid "This selection may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1328
|
||||
#, python-brace-format
|
||||
#: fields.py:1339
|
||||
msgid "\"{input}\" is not a valid path choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1347
|
||||
#: fields.py:1358
|
||||
msgid "No file was submitted."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1348
|
||||
#: fields.py:1359
|
||||
msgid ""
|
||||
"The submitted data was not a file. Check the encoding type on the form."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1349
|
||||
#: fields.py:1360
|
||||
msgid "No filename could be determined."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1350
|
||||
#: fields.py:1361
|
||||
msgid "The submitted file is empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1351
|
||||
#, python-brace-format
|
||||
#: fields.py:1362
|
||||
msgid ""
|
||||
"Ensure this filename has at most {max_length} characters (it has {length})."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1399
|
||||
#: fields.py:1410
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1438 relations.py:439 serializers.py:521
|
||||
#: fields.py:1449 relations.py:438 serializers.py:525
|
||||
msgid "This list may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1491
|
||||
#, python-brace-format
|
||||
#: fields.py:1502
|
||||
msgid "Expected a dictionary of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1538
|
||||
#: fields.py:1549
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:35 templates/rest_framework/filters/django_filter.html.py:5
|
||||
#: filters.py:36 templates/rest_framework/filters/django_filter.html:5
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:189
|
||||
#: filters.py:336
|
||||
msgid "ascending"
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:337
|
||||
msgid "descending"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:193
|
||||
msgid "Invalid page."
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:407
|
||||
#: pagination.py:427
|
||||
msgid "Invalid cursor"
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:207
|
||||
#, python-brace-format
|
||||
msgid "Invalid pk \"{pk_value}\" - object does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:208
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected pk value, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
|
@ -364,25 +349,22 @@ msgid "Invalid hyperlink - Object does not exist."
|
|||
msgstr ""
|
||||
|
||||
#: relations.py:243
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected URL string, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:402
|
||||
#, python-brace-format
|
||||
#: relations.py:401
|
||||
msgid "Object with {slug_name}={value} does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:403
|
||||
#: relations.py:402
|
||||
msgid "Invalid value."
|
||||
msgstr ""
|
||||
|
||||
#: serializers.py:326
|
||||
#, python-brace-format
|
||||
msgid "Invalid data. Expected a dictionary, but got {datatype}."
|
||||
msgstr ""
|
||||
|
||||
#: templates/rest_framework/admin.html:118
|
||||
#: templates/rest_framework/admin.html:116
|
||||
#: templates/rest_framework/base.html:128
|
||||
msgid "Filters"
|
||||
msgstr ""
|
||||
|
@ -412,27 +394,23 @@ msgstr ""
|
|||
msgid "No items to select."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:24
|
||||
#: validators.py:43
|
||||
msgid "This field must be unique."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:78
|
||||
#, python-brace-format
|
||||
#: validators.py:97
|
||||
msgid "The fields {field_names} must make a unique set."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:226
|
||||
#, python-brace-format
|
||||
#: validators.py:245
|
||||
msgid "This field must be unique for the \"{date_field}\" date."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:241
|
||||
#, python-brace-format
|
||||
#: validators.py:260
|
||||
msgid "This field must be unique for the \"{date_field}\" month."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:254
|
||||
#, python-brace-format
|
||||
#: validators.py:273
|
||||
msgid "This field must be unique for the \"{date_field}\" year."
|
||||
msgstr ""
|
||||
|
||||
|
@ -440,15 +418,19 @@ msgstr ""
|
|||
msgid "Invalid version in \"Accept\" header."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:73 versioning.py:115
|
||||
#: versioning.py:73
|
||||
msgid "Invalid version in URL path."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:144
|
||||
#: versioning.py:115
|
||||
msgid "Invalid version in URL path. Does not match any version namespace."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:147
|
||||
msgid "Invalid version in hostname."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:166
|
||||
#: versioning.py:169
|
||||
msgid "Invalid version in query parameter."
|
||||
msgstr ""
|
||||
|
||||
|
|
Binary file not shown.
|
@ -7,9 +7,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Django REST framework\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-01 18:38+0100\n"
|
||||
"PO-Revision-Date: 2016-03-01 17:38+0000\n"
|
||||
"Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
|
||||
"POT-Creation-Date: 2016-07-12 16:13+0100\n"
|
||||
"PO-Revision-Date: 2016-07-12 15:14+0000\n"
|
||||
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n"
|
||||
"Language-Team: English (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/en/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -17,40 +17,40 @@ msgstr ""
|
|||
"Language: en\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: authentication.py:71
|
||||
#: authentication.py:73
|
||||
msgid "Invalid basic header. No credentials provided."
|
||||
msgstr "Invalid basic header. No credentials provided."
|
||||
|
||||
#: authentication.py:74
|
||||
#: authentication.py:76
|
||||
msgid "Invalid basic header. Credentials string should not contain spaces."
|
||||
msgstr "Invalid basic header. Credentials string should not contain spaces."
|
||||
|
||||
#: authentication.py:80
|
||||
#: authentication.py:82
|
||||
msgid "Invalid basic header. Credentials not correctly base64 encoded."
|
||||
msgstr "Invalid basic header. Credentials not correctly base64 encoded."
|
||||
|
||||
#: authentication.py:97
|
||||
#: authentication.py:99
|
||||
msgid "Invalid username/password."
|
||||
msgstr "Invalid username/password."
|
||||
|
||||
#: authentication.py:100 authentication.py:195
|
||||
#: authentication.py:102 authentication.py:198
|
||||
msgid "User inactive or deleted."
|
||||
msgstr "User inactive or deleted."
|
||||
|
||||
#: authentication.py:173
|
||||
#: authentication.py:176
|
||||
msgid "Invalid token header. No credentials provided."
|
||||
msgstr "Invalid token header. No credentials provided."
|
||||
|
||||
#: authentication.py:176
|
||||
#: authentication.py:179
|
||||
msgid "Invalid token header. Token string should not contain spaces."
|
||||
msgstr "Invalid token header. Token string should not contain spaces."
|
||||
|
||||
#: authentication.py:182
|
||||
#: authentication.py:185
|
||||
msgid ""
|
||||
"Invalid token header. Token string should not contain invalid characters."
|
||||
msgstr "Invalid token header. Token string should not contain invalid characters."
|
||||
|
||||
#: authentication.py:192
|
||||
#: authentication.py:195
|
||||
msgid "Invalid token."
|
||||
msgstr "Invalid token."
|
||||
|
||||
|
@ -58,23 +58,23 @@ msgstr "Invalid token."
|
|||
msgid "Auth Token"
|
||||
msgstr "Auth Token"
|
||||
|
||||
#: authtoken/models.py:21
|
||||
#: authtoken/models.py:15
|
||||
msgid "Key"
|
||||
msgstr "Key"
|
||||
|
||||
#: authtoken/models.py:23
|
||||
#: authtoken/models.py:18
|
||||
msgid "User"
|
||||
msgstr "User"
|
||||
|
||||
#: authtoken/models.py:24
|
||||
#: authtoken/models.py:20
|
||||
msgid "Created"
|
||||
msgstr "Created"
|
||||
|
||||
#: authtoken/models.py:33
|
||||
#: authtoken/models.py:29
|
||||
msgid "Token"
|
||||
msgstr "Token"
|
||||
|
||||
#: authtoken/models.py:34
|
||||
#: authtoken/models.py:30
|
||||
msgid "Tokens"
|
||||
msgstr "Tokens"
|
||||
|
||||
|
@ -123,7 +123,6 @@ msgid "Not found."
|
|||
msgstr "Not found."
|
||||
|
||||
#: exceptions.py:109
|
||||
#, python-brace-format
|
||||
msgid "Method \"{method}\" not allowed."
|
||||
msgstr "Method \"{method}\" not allowed."
|
||||
|
||||
|
@ -132,7 +131,6 @@ msgid "Could not satisfy the request Accept header."
|
|||
msgstr "Could not satisfy the request Accept header."
|
||||
|
||||
#: exceptions.py:132
|
||||
#, python-brace-format
|
||||
msgid "Unsupported media type \"{media_type}\" in request."
|
||||
msgstr "Unsupported media type \"{media_type}\" in request."
|
||||
|
||||
|
@ -140,214 +138,201 @@ msgstr "Unsupported media type \"{media_type}\" in request."
|
|||
msgid "Request was throttled."
|
||||
msgstr "Request was throttled."
|
||||
|
||||
#: fields.py:266 relations.py:206 relations.py:239 validators.py:79
|
||||
#: validators.py:162
|
||||
#: fields.py:269 relations.py:206 relations.py:239 validators.py:98
|
||||
#: validators.py:181
|
||||
msgid "This field is required."
|
||||
msgstr "This field is required."
|
||||
|
||||
#: fields.py:267
|
||||
#: fields.py:270
|
||||
msgid "This field may not be null."
|
||||
msgstr "This field may not be null."
|
||||
|
||||
#: fields.py:603 fields.py:634
|
||||
#, python-brace-format
|
||||
#: fields.py:608 fields.py:639
|
||||
msgid "\"{input}\" is not a valid boolean."
|
||||
msgstr "\"{input}\" is not a valid boolean."
|
||||
|
||||
#: fields.py:669
|
||||
#: fields.py:674
|
||||
msgid "This field may not be blank."
|
||||
msgstr "This field may not be blank."
|
||||
|
||||
#: fields.py:670 fields.py:1664
|
||||
#, python-brace-format
|
||||
#: fields.py:675 fields.py:1675
|
||||
msgid "Ensure this field has no more than {max_length} characters."
|
||||
msgstr "Ensure this field has no more than {max_length} characters."
|
||||
|
||||
#: fields.py:671
|
||||
#, python-brace-format
|
||||
#: fields.py:676
|
||||
msgid "Ensure this field has at least {min_length} characters."
|
||||
msgstr "Ensure this field has at least {min_length} characters."
|
||||
|
||||
#: fields.py:708
|
||||
#: fields.py:713
|
||||
msgid "Enter a valid email address."
|
||||
msgstr "Enter a valid email address."
|
||||
|
||||
#: fields.py:719
|
||||
#: fields.py:724
|
||||
msgid "This value does not match the required pattern."
|
||||
msgstr "This value does not match the required pattern."
|
||||
|
||||
#: fields.py:730
|
||||
#: fields.py:735
|
||||
msgid ""
|
||||
"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:742
|
||||
#: fields.py:747
|
||||
msgid "Enter a valid URL."
|
||||
msgstr "Enter a valid URL."
|
||||
|
||||
#: fields.py:755
|
||||
#, python-brace-format
|
||||
#: fields.py:760
|
||||
msgid "\"{value}\" is not a valid UUID."
|
||||
msgstr "\"{value}\" is not a valid UUID."
|
||||
|
||||
#: fields.py:791
|
||||
#: fields.py:796
|
||||
msgid "Enter a valid IPv4 or IPv6 address."
|
||||
msgstr "Enter a valid IPv4 or IPv6 address."
|
||||
|
||||
#: fields.py:816
|
||||
#: fields.py:821
|
||||
msgid "A valid integer is required."
|
||||
msgstr "A valid integer is required."
|
||||
|
||||
#: fields.py:817 fields.py:852 fields.py:885
|
||||
#, python-brace-format
|
||||
#: fields.py:822 fields.py:857 fields.py:891
|
||||
msgid "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:818 fields.py:853 fields.py:886
|
||||
#, python-brace-format
|
||||
#: fields.py:823 fields.py:858 fields.py:892
|
||||
msgid "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:819 fields.py:854 fields.py:890
|
||||
#: fields.py:824 fields.py:859 fields.py:896
|
||||
msgid "String value too large."
|
||||
msgstr "String value too large."
|
||||
|
||||
#: fields.py:851 fields.py:884
|
||||
#: fields.py:856 fields.py:890
|
||||
msgid "A valid number is required."
|
||||
msgstr "A valid number is required."
|
||||
|
||||
#: fields.py:887
|
||||
#, python-brace-format
|
||||
#: fields.py:893
|
||||
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."
|
||||
|
||||
#: fields.py:888
|
||||
#, python-brace-format
|
||||
#: fields.py:894
|
||||
msgid ""
|
||||
"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:889
|
||||
#, python-brace-format
|
||||
#: fields.py:895
|
||||
msgid ""
|
||||
"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:1004
|
||||
#, python-brace-format
|
||||
#: fields.py:1025
|
||||
msgid "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:1005
|
||||
#: fields.py:1026
|
||||
msgid "Expected a datetime but got a date."
|
||||
msgstr "Expected a datetime but got a date."
|
||||
|
||||
#: fields.py:1082
|
||||
#, python-brace-format
|
||||
#: fields.py:1103
|
||||
msgid "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:1083
|
||||
#: fields.py:1104
|
||||
msgid "Expected a date but got a datetime."
|
||||
msgstr "Expected a date but got a datetime."
|
||||
|
||||
#: fields.py:1151
|
||||
#, python-brace-format
|
||||
#: fields.py:1170
|
||||
msgid "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:1215
|
||||
#, python-brace-format
|
||||
#: fields.py:1232
|
||||
msgid "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:1240 fields.py:1289
|
||||
#, python-brace-format
|
||||
#: fields.py:1251 fields.py:1300
|
||||
msgid "\"{input}\" is not a valid choice."
|
||||
msgstr "\"{input}\" is not a valid choice."
|
||||
|
||||
#: fields.py:1243 relations.py:71 relations.py:442
|
||||
#, python-brace-format
|
||||
#: fields.py:1254 relations.py:71 relations.py:441
|
||||
msgid "More than {count} items..."
|
||||
msgstr "More than {count} items..."
|
||||
|
||||
#: fields.py:1290 fields.py:1437 relations.py:438 serializers.py:520
|
||||
#, python-brace-format
|
||||
#: fields.py:1301 fields.py:1448 relations.py:437 serializers.py:524
|
||||
msgid "Expected a list of items but got type \"{input_type}\"."
|
||||
msgstr "Expected a list of items but got type \"{input_type}\"."
|
||||
|
||||
#: fields.py:1291
|
||||
#: fields.py:1302
|
||||
msgid "This selection may not be empty."
|
||||
msgstr "This selection may not be empty."
|
||||
|
||||
#: fields.py:1328
|
||||
#, python-brace-format
|
||||
#: fields.py:1339
|
||||
msgid "\"{input}\" is not a valid path choice."
|
||||
msgstr "\"{input}\" is not a valid path choice."
|
||||
|
||||
#: fields.py:1347
|
||||
#: fields.py:1358
|
||||
msgid "No file was submitted."
|
||||
msgstr "No file was submitted."
|
||||
|
||||
#: fields.py:1348
|
||||
#: fields.py:1359
|
||||
msgid ""
|
||||
"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:1349
|
||||
#: fields.py:1360
|
||||
msgid "No filename could be determined."
|
||||
msgstr "No filename could be determined."
|
||||
|
||||
#: fields.py:1350
|
||||
#: fields.py:1361
|
||||
msgid "The submitted file is empty."
|
||||
msgstr "The submitted file is empty."
|
||||
|
||||
#: fields.py:1351
|
||||
#, python-brace-format
|
||||
#: fields.py:1362
|
||||
msgid ""
|
||||
"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:1399
|
||||
#: fields.py:1410
|
||||
msgid ""
|
||||
"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:1438 relations.py:439 serializers.py:521
|
||||
#: fields.py:1449 relations.py:438 serializers.py:525
|
||||
msgid "This list may not be empty."
|
||||
msgstr "This list may not be empty."
|
||||
|
||||
#: fields.py:1491
|
||||
#, python-brace-format
|
||||
#: fields.py:1502
|
||||
msgid "Expected a dictionary of items but got type \"{input_type}\"."
|
||||
msgstr "Expected a dictionary of items but got type \"{input_type}\"."
|
||||
|
||||
#: fields.py:1538
|
||||
#: fields.py:1549
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Value must be valid JSON."
|
||||
|
||||
#: filters.py:35 templates/rest_framework/filters/django_filter.html.py:5
|
||||
#: filters.py:36 templates/rest_framework/filters/django_filter.html:5
|
||||
msgid "Submit"
|
||||
msgstr "Submit"
|
||||
|
||||
#: pagination.py:189
|
||||
#: filters.py:336
|
||||
msgid "ascending"
|
||||
msgstr "ascending"
|
||||
|
||||
#: filters.py:337
|
||||
msgid "descending"
|
||||
msgstr "descending"
|
||||
|
||||
#: pagination.py:193
|
||||
msgid "Invalid page."
|
||||
msgstr "Invalid page."
|
||||
|
||||
#: pagination.py:407
|
||||
#: pagination.py:427
|
||||
msgid "Invalid cursor"
|
||||
msgstr "Invalid cursor"
|
||||
|
||||
#: relations.py:207
|
||||
#, python-brace-format
|
||||
msgid "Invalid pk \"{pk_value}\" - object does not exist."
|
||||
msgstr "Invalid pk \"{pk_value}\" - object does not exist."
|
||||
|
||||
#: relations.py:208
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected pk value, received {data_type}."
|
||||
msgstr "Incorrect type. Expected pk value, received {data_type}."
|
||||
|
||||
|
@ -364,25 +349,22 @@ msgid "Invalid hyperlink - Object does not exist."
|
|||
msgstr "Invalid hyperlink - Object does not exist."
|
||||
|
||||
#: relations.py:243
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected URL string, received {data_type}."
|
||||
msgstr "Incorrect type. Expected URL string, received {data_type}."
|
||||
|
||||
#: relations.py:402
|
||||
#, python-brace-format
|
||||
#: relations.py:401
|
||||
msgid "Object with {slug_name}={value} does not exist."
|
||||
msgstr "Object with {slug_name}={value} does not exist."
|
||||
|
||||
#: relations.py:403
|
||||
#: relations.py:402
|
||||
msgid "Invalid value."
|
||||
msgstr "Invalid value."
|
||||
|
||||
#: serializers.py:326
|
||||
#, python-brace-format
|
||||
msgid "Invalid data. Expected a dictionary, but got {datatype}."
|
||||
msgstr "Invalid data. Expected a dictionary, but got {datatype}."
|
||||
|
||||
#: templates/rest_framework/admin.html:118
|
||||
#: templates/rest_framework/admin.html:116
|
||||
#: templates/rest_framework/base.html:128
|
||||
msgid "Filters"
|
||||
msgstr "Filters"
|
||||
|
@ -412,27 +394,23 @@ msgstr "None"
|
|||
msgid "No items to select."
|
||||
msgstr "No items to select."
|
||||
|
||||
#: validators.py:24
|
||||
#: validators.py:43
|
||||
msgid "This field must be unique."
|
||||
msgstr "This field must be unique."
|
||||
|
||||
#: validators.py:78
|
||||
#, python-brace-format
|
||||
#: validators.py:97
|
||||
msgid "The fields {field_names} must make a unique set."
|
||||
msgstr "The fields {field_names} must make a unique set."
|
||||
|
||||
#: validators.py:226
|
||||
#, python-brace-format
|
||||
#: validators.py:245
|
||||
msgid "This field must be unique for the \"{date_field}\" date."
|
||||
msgstr "This field must be unique for the \"{date_field}\" date."
|
||||
|
||||
#: validators.py:241
|
||||
#, python-brace-format
|
||||
#: validators.py:260
|
||||
msgid "This field must be unique for the \"{date_field}\" month."
|
||||
msgstr "This field must be unique for the \"{date_field}\" month."
|
||||
|
||||
#: validators.py:254
|
||||
#, python-brace-format
|
||||
#: validators.py:273
|
||||
msgid "This field must be unique for the \"{date_field}\" year."
|
||||
msgstr "This field must be unique for the \"{date_field}\" year."
|
||||
|
||||
|
@ -440,15 +418,19 @@ msgstr "This field must be unique for the \"{date_field}\" year."
|
|||
msgid "Invalid version in \"Accept\" header."
|
||||
msgstr "Invalid version in \"Accept\" header."
|
||||
|
||||
#: versioning.py:73 versioning.py:115
|
||||
#: versioning.py:73
|
||||
msgid "Invalid version in URL path."
|
||||
msgstr "Invalid version in URL path."
|
||||
|
||||
#: versioning.py:144
|
||||
#: versioning.py:115
|
||||
msgid "Invalid version in URL path. Does not match any version namespace."
|
||||
msgstr "Invalid version in URL path. Does not match any version namespace."
|
||||
|
||||
#: versioning.py:147
|
||||
msgid "Invalid version in hostname."
|
||||
msgstr "Invalid version in hostname."
|
||||
|
||||
#: versioning.py:166
|
||||
#: versioning.py:169
|
||||
msgid "Invalid version in query parameter."
|
||||
msgstr "Invalid version in query parameter."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -7,9 +7,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Django REST framework\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-01 18:38+0100\n"
|
||||
"PO-Revision-Date: 2016-03-01 17:38+0000\n"
|
||||
"Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
|
||||
"POT-Creation-Date: 2016-07-12 16:13+0100\n"
|
||||
"PO-Revision-Date: 2016-07-12 15:14+0000\n"
|
||||
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n"
|
||||
"Language-Team: English (Australia) (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/en_AU/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -17,40 +17,40 @@ msgstr ""
|
|||
"Language: en_AU\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: authentication.py:71
|
||||
#: authentication.py:73
|
||||
msgid "Invalid basic header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:74
|
||||
#: authentication.py:76
|
||||
msgid "Invalid basic header. Credentials string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:80
|
||||
#: authentication.py:82
|
||||
msgid "Invalid basic header. Credentials not correctly base64 encoded."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:97
|
||||
#: authentication.py:99
|
||||
msgid "Invalid username/password."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:100 authentication.py:195
|
||||
#: authentication.py:102 authentication.py:198
|
||||
msgid "User inactive or deleted."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:173
|
||||
#: authentication.py:176
|
||||
msgid "Invalid token header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:176
|
||||
#: authentication.py:179
|
||||
msgid "Invalid token header. Token string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:182
|
||||
#: authentication.py:185
|
||||
msgid ""
|
||||
"Invalid token header. Token string should not contain invalid characters."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:192
|
||||
#: authentication.py:195
|
||||
msgid "Invalid token."
|
||||
msgstr ""
|
||||
|
||||
|
@ -58,23 +58,23 @@ msgstr ""
|
|||
msgid "Auth Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:21
|
||||
#: authtoken/models.py:15
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:23
|
||||
#: authtoken/models.py:18
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:24
|
||||
#: authtoken/models.py:20
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:33
|
||||
#: authtoken/models.py:29
|
||||
msgid "Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:34
|
||||
#: authtoken/models.py:30
|
||||
msgid "Tokens"
|
||||
msgstr ""
|
||||
|
||||
|
@ -123,7 +123,6 @@ msgid "Not found."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:109
|
||||
#, python-brace-format
|
||||
msgid "Method \"{method}\" not allowed."
|
||||
msgstr ""
|
||||
|
||||
|
@ -132,7 +131,6 @@ msgid "Could not satisfy the request Accept header."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:132
|
||||
#, python-brace-format
|
||||
msgid "Unsupported media type \"{media_type}\" in request."
|
||||
msgstr ""
|
||||
|
||||
|
@ -140,214 +138,201 @@ msgstr ""
|
|||
msgid "Request was throttled."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:266 relations.py:206 relations.py:239 validators.py:79
|
||||
#: validators.py:162
|
||||
#: fields.py:269 relations.py:206 relations.py:239 validators.py:98
|
||||
#: validators.py:181
|
||||
msgid "This field is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:267
|
||||
#: fields.py:270
|
||||
msgid "This field may not be null."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:603 fields.py:634
|
||||
#, python-brace-format
|
||||
#: fields.py:608 fields.py:639
|
||||
msgid "\"{input}\" is not a valid boolean."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:669
|
||||
#: fields.py:674
|
||||
msgid "This field may not be blank."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:670 fields.py:1664
|
||||
#, python-brace-format
|
||||
#: fields.py:675 fields.py:1675
|
||||
msgid "Ensure this field has no more than {max_length} characters."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:671
|
||||
#, python-brace-format
|
||||
#: fields.py:676
|
||||
msgid "Ensure this field has at least {min_length} characters."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:708
|
||||
#: fields.py:713
|
||||
msgid "Enter a valid email address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:719
|
||||
#: fields.py:724
|
||||
msgid "This value does not match the required pattern."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:730
|
||||
#: fields.py:735
|
||||
msgid ""
|
||||
"Enter a valid \"slug\" consisting of letters, numbers, underscores or "
|
||||
"hyphens."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:742
|
||||
#: fields.py:747
|
||||
msgid "Enter a valid URL."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:755
|
||||
#, python-brace-format
|
||||
#: fields.py:760
|
||||
msgid "\"{value}\" is not a valid UUID."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:791
|
||||
#: fields.py:796
|
||||
msgid "Enter a valid IPv4 or IPv6 address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:816
|
||||
#: fields.py:821
|
||||
msgid "A valid integer is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:817 fields.py:852 fields.py:885
|
||||
#, python-brace-format
|
||||
#: fields.py:822 fields.py:857 fields.py:891
|
||||
msgid "Ensure this value is less than or equal to {max_value}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:818 fields.py:853 fields.py:886
|
||||
#, python-brace-format
|
||||
#: fields.py:823 fields.py:858 fields.py:892
|
||||
msgid "Ensure this value is greater than or equal to {min_value}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:819 fields.py:854 fields.py:890
|
||||
#: fields.py:824 fields.py:859 fields.py:896
|
||||
msgid "String value too large."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:851 fields.py:884
|
||||
#: fields.py:856 fields.py:890
|
||||
msgid "A valid number is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:887
|
||||
#, python-brace-format
|
||||
#: fields.py:893
|
||||
msgid "Ensure that there are no more than {max_digits} digits in total."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:888
|
||||
#, python-brace-format
|
||||
#: fields.py:894
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_decimal_places} decimal places."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:889
|
||||
#, python-brace-format
|
||||
#: fields.py:895
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_whole_digits} digits before the "
|
||||
"decimal point."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1004
|
||||
#, python-brace-format
|
||||
#: fields.py:1025
|
||||
msgid "Datetime has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1005
|
||||
#: fields.py:1026
|
||||
msgid "Expected a datetime but got a date."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1082
|
||||
#, python-brace-format
|
||||
#: fields.py:1103
|
||||
msgid "Date has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1083
|
||||
#: fields.py:1104
|
||||
msgid "Expected a date but got a datetime."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1151
|
||||
#, python-brace-format
|
||||
#: fields.py:1170
|
||||
msgid "Time has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1215
|
||||
#, python-brace-format
|
||||
#: fields.py:1232
|
||||
msgid "Duration has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1240 fields.py:1289
|
||||
#, python-brace-format
|
||||
#: fields.py:1251 fields.py:1300
|
||||
msgid "\"{input}\" is not a valid choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1243 relations.py:71 relations.py:442
|
||||
#, python-brace-format
|
||||
#: fields.py:1254 relations.py:71 relations.py:441
|
||||
msgid "More than {count} items..."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1290 fields.py:1437 relations.py:438 serializers.py:520
|
||||
#, python-brace-format
|
||||
#: fields.py:1301 fields.py:1448 relations.py:437 serializers.py:524
|
||||
msgid "Expected a list of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1291
|
||||
#: fields.py:1302
|
||||
msgid "This selection may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1328
|
||||
#, python-brace-format
|
||||
#: fields.py:1339
|
||||
msgid "\"{input}\" is not a valid path choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1347
|
||||
#: fields.py:1358
|
||||
msgid "No file was submitted."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1348
|
||||
#: fields.py:1359
|
||||
msgid ""
|
||||
"The submitted data was not a file. Check the encoding type on the form."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1349
|
||||
#: fields.py:1360
|
||||
msgid "No filename could be determined."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1350
|
||||
#: fields.py:1361
|
||||
msgid "The submitted file is empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1351
|
||||
#, python-brace-format
|
||||
#: fields.py:1362
|
||||
msgid ""
|
||||
"Ensure this filename has at most {max_length} characters (it has {length})."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1399
|
||||
#: fields.py:1410
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1438 relations.py:439 serializers.py:521
|
||||
#: fields.py:1449 relations.py:438 serializers.py:525
|
||||
msgid "This list may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1491
|
||||
#, python-brace-format
|
||||
#: fields.py:1502
|
||||
msgid "Expected a dictionary of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1538
|
||||
#: fields.py:1549
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:35 templates/rest_framework/filters/django_filter.html.py:5
|
||||
#: filters.py:36 templates/rest_framework/filters/django_filter.html:5
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:189
|
||||
#: filters.py:336
|
||||
msgid "ascending"
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:337
|
||||
msgid "descending"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:193
|
||||
msgid "Invalid page."
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:407
|
||||
#: pagination.py:427
|
||||
msgid "Invalid cursor"
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:207
|
||||
#, python-brace-format
|
||||
msgid "Invalid pk \"{pk_value}\" - object does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:208
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected pk value, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
|
@ -364,25 +349,22 @@ msgid "Invalid hyperlink - Object does not exist."
|
|||
msgstr ""
|
||||
|
||||
#: relations.py:243
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected URL string, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:402
|
||||
#, python-brace-format
|
||||
#: relations.py:401
|
||||
msgid "Object with {slug_name}={value} does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:403
|
||||
#: relations.py:402
|
||||
msgid "Invalid value."
|
||||
msgstr ""
|
||||
|
||||
#: serializers.py:326
|
||||
#, python-brace-format
|
||||
msgid "Invalid data. Expected a dictionary, but got {datatype}."
|
||||
msgstr ""
|
||||
|
||||
#: templates/rest_framework/admin.html:118
|
||||
#: templates/rest_framework/admin.html:116
|
||||
#: templates/rest_framework/base.html:128
|
||||
msgid "Filters"
|
||||
msgstr ""
|
||||
|
@ -412,27 +394,23 @@ msgstr ""
|
|||
msgid "No items to select."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:24
|
||||
#: validators.py:43
|
||||
msgid "This field must be unique."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:78
|
||||
#, python-brace-format
|
||||
#: validators.py:97
|
||||
msgid "The fields {field_names} must make a unique set."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:226
|
||||
#, python-brace-format
|
||||
#: validators.py:245
|
||||
msgid "This field must be unique for the \"{date_field}\" date."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:241
|
||||
#, python-brace-format
|
||||
#: validators.py:260
|
||||
msgid "This field must be unique for the \"{date_field}\" month."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:254
|
||||
#, python-brace-format
|
||||
#: validators.py:273
|
||||
msgid "This field must be unique for the \"{date_field}\" year."
|
||||
msgstr ""
|
||||
|
||||
|
@ -440,15 +418,19 @@ msgstr ""
|
|||
msgid "Invalid version in \"Accept\" header."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:73 versioning.py:115
|
||||
#: versioning.py:73
|
||||
msgid "Invalid version in URL path."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:144
|
||||
#: versioning.py:115
|
||||
msgid "Invalid version in URL path. Does not match any version namespace."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:147
|
||||
msgid "Invalid version in hostname."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:166
|
||||
#: versioning.py:169
|
||||
msgid "Invalid version in query parameter."
|
||||
msgstr ""
|
||||
|
||||
|
|
Binary file not shown.
|
@ -7,9 +7,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Django REST framework\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-01 18:38+0100\n"
|
||||
"PO-Revision-Date: 2016-03-01 17:38+0000\n"
|
||||
"Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
|
||||
"POT-Creation-Date: 2016-07-12 16:13+0100\n"
|
||||
"PO-Revision-Date: 2016-07-12 15:14+0000\n"
|
||||
"Last-Translator: Thomas Christie <tom@tomchristie.com>\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"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -17,40 +17,40 @@ msgstr ""
|
|||
"Language: en_CA\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: authentication.py:71
|
||||
#: authentication.py:73
|
||||
msgid "Invalid basic header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:74
|
||||
#: authentication.py:76
|
||||
msgid "Invalid basic header. Credentials string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:80
|
||||
#: authentication.py:82
|
||||
msgid "Invalid basic header. Credentials not correctly base64 encoded."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:97
|
||||
#: authentication.py:99
|
||||
msgid "Invalid username/password."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:100 authentication.py:195
|
||||
#: authentication.py:102 authentication.py:198
|
||||
msgid "User inactive or deleted."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:173
|
||||
#: authentication.py:176
|
||||
msgid "Invalid token header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:176
|
||||
#: authentication.py:179
|
||||
msgid "Invalid token header. Token string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:182
|
||||
#: authentication.py:185
|
||||
msgid ""
|
||||
"Invalid token header. Token string should not contain invalid characters."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:192
|
||||
#: authentication.py:195
|
||||
msgid "Invalid token."
|
||||
msgstr ""
|
||||
|
||||
|
@ -58,23 +58,23 @@ msgstr ""
|
|||
msgid "Auth Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:21
|
||||
#: authtoken/models.py:15
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:23
|
||||
#: authtoken/models.py:18
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:24
|
||||
#: authtoken/models.py:20
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:33
|
||||
#: authtoken/models.py:29
|
||||
msgid "Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:34
|
||||
#: authtoken/models.py:30
|
||||
msgid "Tokens"
|
||||
msgstr ""
|
||||
|
||||
|
@ -123,7 +123,6 @@ msgid "Not found."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:109
|
||||
#, python-brace-format
|
||||
msgid "Method \"{method}\" not allowed."
|
||||
msgstr ""
|
||||
|
||||
|
@ -132,7 +131,6 @@ msgid "Could not satisfy the request Accept header."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:132
|
||||
#, python-brace-format
|
||||
msgid "Unsupported media type \"{media_type}\" in request."
|
||||
msgstr ""
|
||||
|
||||
|
@ -140,214 +138,201 @@ msgstr ""
|
|||
msgid "Request was throttled."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:266 relations.py:206 relations.py:239 validators.py:79
|
||||
#: validators.py:162
|
||||
#: fields.py:269 relations.py:206 relations.py:239 validators.py:98
|
||||
#: validators.py:181
|
||||
msgid "This field is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:267
|
||||
#: fields.py:270
|
||||
msgid "This field may not be null."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:603 fields.py:634
|
||||
#, python-brace-format
|
||||
#: fields.py:608 fields.py:639
|
||||
msgid "\"{input}\" is not a valid boolean."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:669
|
||||
#: fields.py:674
|
||||
msgid "This field may not be blank."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:670 fields.py:1664
|
||||
#, python-brace-format
|
||||
#: fields.py:675 fields.py:1675
|
||||
msgid "Ensure this field has no more than {max_length} characters."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:671
|
||||
#, python-brace-format
|
||||
#: fields.py:676
|
||||
msgid "Ensure this field has at least {min_length} characters."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:708
|
||||
#: fields.py:713
|
||||
msgid "Enter a valid email address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:719
|
||||
#: fields.py:724
|
||||
msgid "This value does not match the required pattern."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:730
|
||||
#: fields.py:735
|
||||
msgid ""
|
||||
"Enter a valid \"slug\" consisting of letters, numbers, underscores or "
|
||||
"hyphens."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:742
|
||||
#: fields.py:747
|
||||
msgid "Enter a valid URL."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:755
|
||||
#, python-brace-format
|
||||
#: fields.py:760
|
||||
msgid "\"{value}\" is not a valid UUID."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:791
|
||||
#: fields.py:796
|
||||
msgid "Enter a valid IPv4 or IPv6 address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:816
|
||||
#: fields.py:821
|
||||
msgid "A valid integer is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:817 fields.py:852 fields.py:885
|
||||
#, python-brace-format
|
||||
#: fields.py:822 fields.py:857 fields.py:891
|
||||
msgid "Ensure this value is less than or equal to {max_value}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:818 fields.py:853 fields.py:886
|
||||
#, python-brace-format
|
||||
#: fields.py:823 fields.py:858 fields.py:892
|
||||
msgid "Ensure this value is greater than or equal to {min_value}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:819 fields.py:854 fields.py:890
|
||||
#: fields.py:824 fields.py:859 fields.py:896
|
||||
msgid "String value too large."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:851 fields.py:884
|
||||
#: fields.py:856 fields.py:890
|
||||
msgid "A valid number is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:887
|
||||
#, python-brace-format
|
||||
#: fields.py:893
|
||||
msgid "Ensure that there are no more than {max_digits} digits in total."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:888
|
||||
#, python-brace-format
|
||||
#: fields.py:894
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_decimal_places} decimal places."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:889
|
||||
#, python-brace-format
|
||||
#: fields.py:895
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_whole_digits} digits before the "
|
||||
"decimal point."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1004
|
||||
#, python-brace-format
|
||||
#: fields.py:1025
|
||||
msgid "Datetime has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1005
|
||||
#: fields.py:1026
|
||||
msgid "Expected a datetime but got a date."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1082
|
||||
#, python-brace-format
|
||||
#: fields.py:1103
|
||||
msgid "Date has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1083
|
||||
#: fields.py:1104
|
||||
msgid "Expected a date but got a datetime."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1151
|
||||
#, python-brace-format
|
||||
#: fields.py:1170
|
||||
msgid "Time has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1215
|
||||
#, python-brace-format
|
||||
#: fields.py:1232
|
||||
msgid "Duration has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1240 fields.py:1289
|
||||
#, python-brace-format
|
||||
#: fields.py:1251 fields.py:1300
|
||||
msgid "\"{input}\" is not a valid choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1243 relations.py:71 relations.py:442
|
||||
#, python-brace-format
|
||||
#: fields.py:1254 relations.py:71 relations.py:441
|
||||
msgid "More than {count} items..."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1290 fields.py:1437 relations.py:438 serializers.py:520
|
||||
#, python-brace-format
|
||||
#: fields.py:1301 fields.py:1448 relations.py:437 serializers.py:524
|
||||
msgid "Expected a list of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1291
|
||||
#: fields.py:1302
|
||||
msgid "This selection may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1328
|
||||
#, python-brace-format
|
||||
#: fields.py:1339
|
||||
msgid "\"{input}\" is not a valid path choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1347
|
||||
#: fields.py:1358
|
||||
msgid "No file was submitted."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1348
|
||||
#: fields.py:1359
|
||||
msgid ""
|
||||
"The submitted data was not a file. Check the encoding type on the form."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1349
|
||||
#: fields.py:1360
|
||||
msgid "No filename could be determined."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1350
|
||||
#: fields.py:1361
|
||||
msgid "The submitted file is empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1351
|
||||
#, python-brace-format
|
||||
#: fields.py:1362
|
||||
msgid ""
|
||||
"Ensure this filename has at most {max_length} characters (it has {length})."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1399
|
||||
#: fields.py:1410
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1438 relations.py:439 serializers.py:521
|
||||
#: fields.py:1449 relations.py:438 serializers.py:525
|
||||
msgid "This list may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1491
|
||||
#, python-brace-format
|
||||
#: fields.py:1502
|
||||
msgid "Expected a dictionary of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1538
|
||||
#: fields.py:1549
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:35 templates/rest_framework/filters/django_filter.html.py:5
|
||||
#: filters.py:36 templates/rest_framework/filters/django_filter.html:5
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:189
|
||||
#: filters.py:336
|
||||
msgid "ascending"
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:337
|
||||
msgid "descending"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:193
|
||||
msgid "Invalid page."
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:407
|
||||
#: pagination.py:427
|
||||
msgid "Invalid cursor"
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:207
|
||||
#, python-brace-format
|
||||
msgid "Invalid pk \"{pk_value}\" - object does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:208
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected pk value, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
|
@ -364,25 +349,22 @@ msgid "Invalid hyperlink - Object does not exist."
|
|||
msgstr ""
|
||||
|
||||
#: relations.py:243
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected URL string, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:402
|
||||
#, python-brace-format
|
||||
#: relations.py:401
|
||||
msgid "Object with {slug_name}={value} does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:403
|
||||
#: relations.py:402
|
||||
msgid "Invalid value."
|
||||
msgstr ""
|
||||
|
||||
#: serializers.py:326
|
||||
#, python-brace-format
|
||||
msgid "Invalid data. Expected a dictionary, but got {datatype}."
|
||||
msgstr ""
|
||||
|
||||
#: templates/rest_framework/admin.html:118
|
||||
#: templates/rest_framework/admin.html:116
|
||||
#: templates/rest_framework/base.html:128
|
||||
msgid "Filters"
|
||||
msgstr ""
|
||||
|
@ -412,27 +394,23 @@ msgstr ""
|
|||
msgid "No items to select."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:24
|
||||
#: validators.py:43
|
||||
msgid "This field must be unique."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:78
|
||||
#, python-brace-format
|
||||
#: validators.py:97
|
||||
msgid "The fields {field_names} must make a unique set."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:226
|
||||
#, python-brace-format
|
||||
#: validators.py:245
|
||||
msgid "This field must be unique for the \"{date_field}\" date."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:241
|
||||
#, python-brace-format
|
||||
#: validators.py:260
|
||||
msgid "This field must be unique for the \"{date_field}\" month."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:254
|
||||
#, python-brace-format
|
||||
#: validators.py:273
|
||||
msgid "This field must be unique for the \"{date_field}\" year."
|
||||
msgstr ""
|
||||
|
||||
|
@ -440,15 +418,19 @@ msgstr ""
|
|||
msgid "Invalid version in \"Accept\" header."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:73 versioning.py:115
|
||||
#: versioning.py:73
|
||||
msgid "Invalid version in URL path."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:144
|
||||
#: versioning.py:115
|
||||
msgid "Invalid version in URL path. Does not match any version namespace."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:147
|
||||
msgid "Invalid version in hostname."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:166
|
||||
#: versioning.py:169
|
||||
msgid "Invalid version in query parameter."
|
||||
msgstr ""
|
||||
|
||||
|
|
Binary file not shown.
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-01 18:38+0100\n"
|
||||
"POT-Creation-Date: 2016-07-12 16:13+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -17,40 +17,40 @@ msgstr ""
|
|||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: authentication.py:71
|
||||
#: authentication.py:73
|
||||
msgid "Invalid basic header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:74
|
||||
#: authentication.py:76
|
||||
msgid "Invalid basic header. Credentials string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:80
|
||||
#: authentication.py:82
|
||||
msgid "Invalid basic header. Credentials not correctly base64 encoded."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:97
|
||||
#: authentication.py:99
|
||||
msgid "Invalid username/password."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:100 authentication.py:195
|
||||
#: authentication.py:102 authentication.py:198
|
||||
msgid "User inactive or deleted."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:173
|
||||
#: authentication.py:176
|
||||
msgid "Invalid token header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:176
|
||||
#: authentication.py:179
|
||||
msgid "Invalid token header. Token string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:182
|
||||
#: authentication.py:185
|
||||
msgid ""
|
||||
"Invalid token header. Token string should not contain invalid characters."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:192
|
||||
#: authentication.py:195
|
||||
msgid "Invalid token."
|
||||
msgstr ""
|
||||
|
||||
|
@ -58,23 +58,23 @@ msgstr ""
|
|||
msgid "Auth Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:21
|
||||
#: authtoken/models.py:15
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:23
|
||||
#: authtoken/models.py:18
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:24
|
||||
#: authtoken/models.py:20
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:33
|
||||
#: authtoken/models.py:29
|
||||
msgid "Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:34
|
||||
#: authtoken/models.py:30
|
||||
msgid "Tokens"
|
||||
msgstr ""
|
||||
|
||||
|
@ -123,7 +123,6 @@ msgid "Not found."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:109
|
||||
#, python-brace-format
|
||||
msgid "Method \"{method}\" not allowed."
|
||||
msgstr ""
|
||||
|
||||
|
@ -132,7 +131,6 @@ msgid "Could not satisfy the request Accept header."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:132
|
||||
#, python-brace-format
|
||||
msgid "Unsupported media type \"{media_type}\" in request."
|
||||
msgstr ""
|
||||
|
||||
|
@ -140,212 +138,199 @@ msgstr ""
|
|||
msgid "Request was throttled."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:266 relations.py:206 relations.py:239 validators.py:79
|
||||
#: validators.py:162
|
||||
#: fields.py:269 relations.py:206 relations.py:239 validators.py:98
|
||||
#: validators.py:181
|
||||
msgid "This field is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:267
|
||||
#: fields.py:270
|
||||
msgid "This field may not be null."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:603 fields.py:634
|
||||
#, python-brace-format
|
||||
#: fields.py:608 fields.py:639
|
||||
msgid "\"{input}\" is not a valid boolean."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:669
|
||||
#: fields.py:674
|
||||
msgid "This field may not be blank."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:670 fields.py:1664
|
||||
#, python-brace-format
|
||||
#: fields.py:675 fields.py:1675
|
||||
msgid "Ensure this field has no more than {max_length} characters."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:671
|
||||
#, python-brace-format
|
||||
#: fields.py:676
|
||||
msgid "Ensure this field has at least {min_length} characters."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:708
|
||||
#: fields.py:713
|
||||
msgid "Enter a valid email address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:719
|
||||
#: fields.py:724
|
||||
msgid "This value does not match the required pattern."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:730
|
||||
#: fields.py:735
|
||||
msgid ""
|
||||
"Enter a valid \"slug\" consisting of letters, numbers, underscores or "
|
||||
"hyphens."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:742
|
||||
#: fields.py:747
|
||||
msgid "Enter a valid URL."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:755
|
||||
#, python-brace-format
|
||||
#: fields.py:760
|
||||
msgid "\"{value}\" is not a valid UUID."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:791
|
||||
#: fields.py:796
|
||||
msgid "Enter a valid IPv4 or IPv6 address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:816
|
||||
#: fields.py:821
|
||||
msgid "A valid integer is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:817 fields.py:852 fields.py:885
|
||||
#, python-brace-format
|
||||
#: fields.py:822 fields.py:857 fields.py:891
|
||||
msgid "Ensure this value is less than or equal to {max_value}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:818 fields.py:853 fields.py:886
|
||||
#, python-brace-format
|
||||
#: fields.py:823 fields.py:858 fields.py:892
|
||||
msgid "Ensure this value is greater than or equal to {min_value}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:819 fields.py:854 fields.py:890
|
||||
#: fields.py:824 fields.py:859 fields.py:896
|
||||
msgid "String value too large."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:851 fields.py:884
|
||||
#: fields.py:856 fields.py:890
|
||||
msgid "A valid number is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:887
|
||||
#, python-brace-format
|
||||
#: fields.py:893
|
||||
msgid "Ensure that there are no more than {max_digits} digits in total."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:888
|
||||
#, python-brace-format
|
||||
#: fields.py:894
|
||||
msgid "Ensure that there are no more than {max_decimal_places} decimal places."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:889
|
||||
#, python-brace-format
|
||||
#: fields.py:895
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_whole_digits} digits before the "
|
||||
"decimal point."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1004
|
||||
#, python-brace-format
|
||||
#: fields.py:1025
|
||||
msgid "Datetime has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1005
|
||||
#: fields.py:1026
|
||||
msgid "Expected a datetime but got a date."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1082
|
||||
#, python-brace-format
|
||||
#: fields.py:1103
|
||||
msgid "Date has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1083
|
||||
#: fields.py:1104
|
||||
msgid "Expected a date but got a datetime."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1151
|
||||
#, python-brace-format
|
||||
#: fields.py:1170
|
||||
msgid "Time has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1215
|
||||
#, python-brace-format
|
||||
#: fields.py:1232
|
||||
msgid "Duration has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1240 fields.py:1289
|
||||
#, python-brace-format
|
||||
#: fields.py:1251 fields.py:1300
|
||||
msgid "\"{input}\" is not a valid choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1243 relations.py:71 relations.py:442
|
||||
#, python-brace-format
|
||||
#: fields.py:1254 relations.py:71 relations.py:441
|
||||
msgid "More than {count} items..."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1290 fields.py:1437 relations.py:438 serializers.py:520
|
||||
#, python-brace-format
|
||||
#: fields.py:1301 fields.py:1448 relations.py:437 serializers.py:524
|
||||
msgid "Expected a list of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1291
|
||||
#: fields.py:1302
|
||||
msgid "This selection may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1328
|
||||
#, python-brace-format
|
||||
#: fields.py:1339
|
||||
msgid "\"{input}\" is not a valid path choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1347
|
||||
#: fields.py:1358
|
||||
msgid "No file was submitted."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1348
|
||||
#: fields.py:1359
|
||||
msgid "The submitted data was not a file. Check the encoding type on the form."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1349
|
||||
#: fields.py:1360
|
||||
msgid "No filename could be determined."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1350
|
||||
#: fields.py:1361
|
||||
msgid "The submitted file is empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1351
|
||||
#, python-brace-format
|
||||
#: fields.py:1362
|
||||
msgid ""
|
||||
"Ensure this filename has at most {max_length} characters (it has {length})."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1399
|
||||
#: fields.py:1410
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1438 relations.py:439 serializers.py:521
|
||||
#: fields.py:1449 relations.py:438 serializers.py:525
|
||||
msgid "This list may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1491
|
||||
#, python-brace-format
|
||||
#: fields.py:1502
|
||||
msgid "Expected a dictionary of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1538
|
||||
#: fields.py:1549
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:35 templates/rest_framework/filters/django_filter.html.py:5
|
||||
#: filters.py:36 templates/rest_framework/filters/django_filter.html:5
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:189
|
||||
#: filters.py:336
|
||||
msgid "ascending"
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:337
|
||||
msgid "descending"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:193
|
||||
msgid "Invalid page."
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:407
|
||||
#: pagination.py:427
|
||||
msgid "Invalid cursor"
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:207
|
||||
#, python-brace-format
|
||||
msgid "Invalid pk \"{pk_value}\" - object does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:208
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected pk value, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
|
@ -362,25 +347,22 @@ msgid "Invalid hyperlink - Object does not exist."
|
|||
msgstr ""
|
||||
|
||||
#: relations.py:243
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected URL string, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:402
|
||||
#, python-brace-format
|
||||
#: relations.py:401
|
||||
msgid "Object with {slug_name}={value} does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:403
|
||||
#: relations.py:402
|
||||
msgid "Invalid value."
|
||||
msgstr ""
|
||||
|
||||
#: serializers.py:326
|
||||
#, python-brace-format
|
||||
msgid "Invalid data. Expected a dictionary, but got {datatype}."
|
||||
msgstr ""
|
||||
|
||||
#: templates/rest_framework/admin.html:118
|
||||
#: templates/rest_framework/admin.html:116
|
||||
#: templates/rest_framework/base.html:128
|
||||
msgid "Filters"
|
||||
msgstr ""
|
||||
|
@ -410,27 +392,23 @@ msgstr ""
|
|||
msgid "No items to select."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:24
|
||||
#: validators.py:43
|
||||
msgid "This field must be unique."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:78
|
||||
#, python-brace-format
|
||||
#: validators.py:97
|
||||
msgid "The fields {field_names} must make a unique set."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:226
|
||||
#, python-brace-format
|
||||
#: validators.py:245
|
||||
msgid "This field must be unique for the \"{date_field}\" date."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:241
|
||||
#, python-brace-format
|
||||
#: validators.py:260
|
||||
msgid "This field must be unique for the \"{date_field}\" month."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:254
|
||||
#, python-brace-format
|
||||
#: validators.py:273
|
||||
msgid "This field must be unique for the \"{date_field}\" year."
|
||||
msgstr ""
|
||||
|
||||
|
@ -438,15 +416,19 @@ msgstr ""
|
|||
msgid "Invalid version in \"Accept\" header."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:73 versioning.py:115
|
||||
#: versioning.py:73
|
||||
msgid "Invalid version in URL path."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:144
|
||||
#: versioning.py:115
|
||||
msgid "Invalid version in URL path. Does not match any version namespace."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:147
|
||||
msgid "Invalid version in hostname."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:166
|
||||
#: versioning.py:169
|
||||
msgid "Invalid version in query parameter."
|
||||
msgstr ""
|
||||
|
||||
|
|
Binary file not shown.
|
@ -3,18 +3,18 @@
|
|||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
# Translators:
|
||||
# nnrcschmdt <e.rico.schmidt@gmail.com>, 2015
|
||||
# Ernesto Rico-Schmidt <e.rico.schmidt@gmail.com>, 2015
|
||||
# José Padilla <jpadilla@webapplicate.com>, 2015
|
||||
# Miguel González <migonzalvar@gmail.com>, 2015
|
||||
# Miguel González <migonzalvar@gmail.com>, 2015-2016
|
||||
# Miguel Gonzalez <migonzalvar@gmail.com>, 2015
|
||||
# Miguel Gonzalez <migonzalvar@gmail.com>, 2015-2016
|
||||
# Sergio Infante <rsinfante@gmail.com>, 2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Django REST framework\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-01 18:38+0100\n"
|
||||
"PO-Revision-Date: 2016-03-01 18:16+0000\n"
|
||||
"Last-Translator: Miguel González <migonzalvar@gmail.com>\n"
|
||||
"POT-Creation-Date: 2016-07-12 16:13+0100\n"
|
||||
"PO-Revision-Date: 2016-07-12 15:14+0000\n"
|
||||
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n"
|
||||
"Language-Team: Spanish (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/es/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -22,40 +22,40 @@ msgstr ""
|
|||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: authentication.py:71
|
||||
#: authentication.py:73
|
||||
msgid "Invalid basic header. No credentials provided."
|
||||
msgstr "Cabecera básica inválida. Las credenciales no fueron suministradas."
|
||||
|
||||
#: authentication.py:74
|
||||
#: authentication.py:76
|
||||
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."
|
||||
|
||||
#: authentication.py:80
|
||||
#: authentication.py:82
|
||||
msgid "Invalid basic header. Credentials not correctly base64 encoded."
|
||||
msgstr "Cabecera básica inválida. Las credenciales incorrectamente codificadas en base64."
|
||||
|
||||
#: authentication.py:97
|
||||
#: authentication.py:99
|
||||
msgid "Invalid username/password."
|
||||
msgstr "Nombre de usuario/contraseña inválidos."
|
||||
|
||||
#: authentication.py:100 authentication.py:195
|
||||
#: authentication.py:102 authentication.py:198
|
||||
msgid "User inactive or deleted."
|
||||
msgstr "Usuario inactivo o borrado."
|
||||
|
||||
#: authentication.py:173
|
||||
#: authentication.py:176
|
||||
msgid "Invalid token header. No credentials provided."
|
||||
msgstr "Cabecera token inválida. Las credenciales no fueron suministradas."
|
||||
|
||||
#: authentication.py:176
|
||||
#: authentication.py:179
|
||||
msgid "Invalid token header. Token string should not contain spaces."
|
||||
msgstr "Cabecera token inválida. La cadena token no debe contener espacios."
|
||||
|
||||
#: authentication.py:182
|
||||
#: authentication.py:185
|
||||
msgid ""
|
||||
"Invalid token header. Token string should not contain invalid characters."
|
||||
msgstr "Cabecera token inválida. La cadena token no debe contener caracteres inválidos."
|
||||
|
||||
#: authentication.py:192
|
||||
#: authentication.py:195
|
||||
msgid "Invalid token."
|
||||
msgstr "Token inválido."
|
||||
|
||||
|
@ -63,23 +63,23 @@ msgstr "Token inválido."
|
|||
msgid "Auth Token"
|
||||
msgstr "Token de autenticación"
|
||||
|
||||
#: authtoken/models.py:21
|
||||
#: authtoken/models.py:15
|
||||
msgid "Key"
|
||||
msgstr "Clave"
|
||||
|
||||
#: authtoken/models.py:23
|
||||
#: authtoken/models.py:18
|
||||
msgid "User"
|
||||
msgstr "Usuario"
|
||||
|
||||
#: authtoken/models.py:24
|
||||
#: authtoken/models.py:20
|
||||
msgid "Created"
|
||||
msgstr "Fecha de creación"
|
||||
|
||||
#: authtoken/models.py:33
|
||||
#: authtoken/models.py:29
|
||||
msgid "Token"
|
||||
msgstr "Token"
|
||||
|
||||
#: authtoken/models.py:34
|
||||
#: authtoken/models.py:30
|
||||
msgid "Tokens"
|
||||
msgstr "Tokens"
|
||||
|
||||
|
@ -128,7 +128,6 @@ msgid "Not found."
|
|||
msgstr "No encontrado."
|
||||
|
||||
#: exceptions.py:109
|
||||
#, python-brace-format
|
||||
msgid "Method \"{method}\" not allowed."
|
||||
msgstr "Método \"{method}\" no permitido."
|
||||
|
||||
|
@ -137,7 +136,6 @@ msgid "Could not satisfy the request Accept header."
|
|||
msgstr "No se ha podido satisfacer la solicitud de cabecera de Accept."
|
||||
|
||||
#: exceptions.py:132
|
||||
#, python-brace-format
|
||||
msgid "Unsupported media type \"{media_type}\" in request."
|
||||
msgstr "Tipo de medio \"{media_type}\" incompatible en la solicitud."
|
||||
|
||||
|
@ -145,214 +143,201 @@ msgstr "Tipo de medio \"{media_type}\" incompatible en la solicitud."
|
|||
msgid "Request was throttled."
|
||||
msgstr "Solicitud fue regulada (throttled)."
|
||||
|
||||
#: fields.py:266 relations.py:206 relations.py:239 validators.py:79
|
||||
#: validators.py:162
|
||||
#: fields.py:269 relations.py:206 relations.py:239 validators.py:98
|
||||
#: validators.py:181
|
||||
msgid "This field is required."
|
||||
msgstr "Este campo es requerido."
|
||||
|
||||
#: fields.py:267
|
||||
#: fields.py:270
|
||||
msgid "This field may not be null."
|
||||
msgstr "Este campo no puede ser nulo."
|
||||
|
||||
#: fields.py:603 fields.py:634
|
||||
#, python-brace-format
|
||||
#: fields.py:608 fields.py:639
|
||||
msgid "\"{input}\" is not a valid boolean."
|
||||
msgstr "\"{input}\" no es un booleano válido."
|
||||
|
||||
#: fields.py:669
|
||||
#: fields.py:674
|
||||
msgid "This field may not be blank."
|
||||
msgstr "Este campo no puede estar en blanco."
|
||||
|
||||
#: fields.py:670 fields.py:1664
|
||||
#, python-brace-format
|
||||
#: fields.py:675 fields.py:1675
|
||||
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."
|
||||
|
||||
#: fields.py:671
|
||||
#, python-brace-format
|
||||
#: fields.py:676
|
||||
msgid "Ensure this field has at least {min_length} characters."
|
||||
msgstr "Asegúrese de que este campo tenga al menos {min_length} caracteres."
|
||||
|
||||
#: fields.py:708
|
||||
#: fields.py:713
|
||||
msgid "Enter a valid email address."
|
||||
msgstr "Introduzca una dirección de correo electrónico válida."
|
||||
|
||||
#: fields.py:719
|
||||
#: fields.py:724
|
||||
msgid "This value does not match the required pattern."
|
||||
msgstr "Este valor no coincide con el patrón requerido."
|
||||
|
||||
#: fields.py:730
|
||||
#: fields.py:735
|
||||
msgid ""
|
||||
"Enter a valid \"slug\" consisting of letters, numbers, underscores or "
|
||||
"hyphens."
|
||||
msgstr "Introduzca un \"slug\" válido consistente en letras, números, guiones o guiones bajos."
|
||||
|
||||
#: fields.py:742
|
||||
#: fields.py:747
|
||||
msgid "Enter a valid URL."
|
||||
msgstr "Introduzca una URL válida."
|
||||
|
||||
#: fields.py:755
|
||||
#, python-brace-format
|
||||
#: fields.py:760
|
||||
msgid "\"{value}\" is not a valid UUID."
|
||||
msgstr "\"{value}\" no es un UUID válido."
|
||||
|
||||
#: fields.py:791
|
||||
#: fields.py:796
|
||||
msgid "Enter a valid IPv4 or IPv6 address."
|
||||
msgstr "Introduzca una dirección IPv4 o IPv6 válida."
|
||||
|
||||
#: fields.py:816
|
||||
#: fields.py:821
|
||||
msgid "A valid integer is required."
|
||||
msgstr "Introduzca un número entero válido."
|
||||
|
||||
#: fields.py:817 fields.py:852 fields.py:885
|
||||
#, python-brace-format
|
||||
#: fields.py:822 fields.py:857 fields.py:891
|
||||
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}."
|
||||
|
||||
#: fields.py:818 fields.py:853 fields.py:886
|
||||
#, python-brace-format
|
||||
#: fields.py:823 fields.py:858 fields.py:892
|
||||
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}."
|
||||
|
||||
#: fields.py:819 fields.py:854 fields.py:890
|
||||
#: fields.py:824 fields.py:859 fields.py:896
|
||||
msgid "String value too large."
|
||||
msgstr "Cadena demasiado larga."
|
||||
|
||||
#: fields.py:851 fields.py:884
|
||||
#: fields.py:856 fields.py:890
|
||||
msgid "A valid number is required."
|
||||
msgstr "Se requiere un número válido."
|
||||
|
||||
#: fields.py:887
|
||||
#, python-brace-format
|
||||
#: fields.py:893
|
||||
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."
|
||||
|
||||
#: fields.py:888
|
||||
#, python-brace-format
|
||||
#: fields.py:894
|
||||
msgid ""
|
||||
"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."
|
||||
|
||||
#: fields.py:889
|
||||
#, python-brace-format
|
||||
#: fields.py:895
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_whole_digits} digits before the "
|
||||
"decimal point."
|
||||
msgstr "Asegúrese de que no haya más de {max_whole_digits} dígitos en la parte entera."
|
||||
|
||||
#: fields.py:1004
|
||||
#, python-brace-format
|
||||
#: fields.py:1025
|
||||
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}."
|
||||
|
||||
#: fields.py:1005
|
||||
#: fields.py:1026
|
||||
msgid "Expected a datetime but got a date."
|
||||
msgstr "Se esperaba un fecha/hora en vez de una fecha."
|
||||
|
||||
#: fields.py:1082
|
||||
#, python-brace-format
|
||||
#: fields.py:1103
|
||||
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}."
|
||||
|
||||
#: fields.py:1083
|
||||
#: fields.py:1104
|
||||
msgid "Expected a date but got a datetime."
|
||||
msgstr "Se esperaba una fecha en vez de una fecha/hora."
|
||||
|
||||
#: fields.py:1151
|
||||
#, python-brace-format
|
||||
#: fields.py:1170
|
||||
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}."
|
||||
|
||||
#: fields.py:1215
|
||||
#, python-brace-format
|
||||
#: fields.py:1232
|
||||
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}."
|
||||
|
||||
#: fields.py:1240 fields.py:1289
|
||||
#, python-brace-format
|
||||
#: fields.py:1251 fields.py:1300
|
||||
msgid "\"{input}\" is not a valid choice."
|
||||
msgstr "\"{input}\" no es una elección válida."
|
||||
|
||||
#: fields.py:1243 relations.py:71 relations.py:442
|
||||
#, python-brace-format
|
||||
#: fields.py:1254 relations.py:71 relations.py:441
|
||||
msgid "More than {count} items..."
|
||||
msgstr "Más de {count} elementos..."
|
||||
|
||||
#: fields.py:1290 fields.py:1437 relations.py:438 serializers.py:520
|
||||
#, python-brace-format
|
||||
#: fields.py:1301 fields.py:1448 relations.py:437 serializers.py:524
|
||||
msgid "Expected a list of items but got type \"{input_type}\"."
|
||||
msgstr "Se esperaba una lista de elementos en vez del tipo \"{input_type}\"."
|
||||
|
||||
#: fields.py:1291
|
||||
#: fields.py:1302
|
||||
msgid "This selection may not be empty."
|
||||
msgstr "Esta selección no puede estar vacía."
|
||||
|
||||
#: fields.py:1328
|
||||
#, python-brace-format
|
||||
#: fields.py:1339
|
||||
msgid "\"{input}\" is not a valid path choice."
|
||||
msgstr "\"{input}\" no es una elección de ruta válida."
|
||||
|
||||
#: fields.py:1347
|
||||
#: fields.py:1358
|
||||
msgid "No file was submitted."
|
||||
msgstr "No se envió ningún archivo."
|
||||
|
||||
#: fields.py:1348
|
||||
#: fields.py:1359
|
||||
msgid ""
|
||||
"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."
|
||||
|
||||
#: fields.py:1349
|
||||
#: fields.py:1360
|
||||
msgid "No filename could be determined."
|
||||
msgstr "No se pudo determinar un nombre de archivo."
|
||||
|
||||
#: fields.py:1350
|
||||
#: fields.py:1361
|
||||
msgid "The submitted file is empty."
|
||||
msgstr "El archivo enviado está vació."
|
||||
|
||||
#: fields.py:1351
|
||||
#, python-brace-format
|
||||
#: fields.py:1362
|
||||
msgid ""
|
||||
"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})."
|
||||
|
||||
#: fields.py:1399
|
||||
#: fields.py:1410
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr "Adjunte una imagen válida. El archivo adjunto o bien no es una imagen o bien está dañado."
|
||||
|
||||
#: fields.py:1438 relations.py:439 serializers.py:521
|
||||
#: fields.py:1449 relations.py:438 serializers.py:525
|
||||
msgid "This list may not be empty."
|
||||
msgstr "Esta lista no puede estar vacía."
|
||||
|
||||
#: fields.py:1491
|
||||
#, python-brace-format
|
||||
#: fields.py:1502
|
||||
msgid "Expected a dictionary of items but got type \"{input_type}\"."
|
||||
msgstr "Se esperaba un diccionario de elementos en vez del tipo \"{input_type}\"."
|
||||
|
||||
#: fields.py:1538
|
||||
#: fields.py:1549
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "El valor debe ser JSON válido."
|
||||
|
||||
#: filters.py:35 templates/rest_framework/filters/django_filter.html.py:5
|
||||
#: filters.py:36 templates/rest_framework/filters/django_filter.html:5
|
||||
msgid "Submit"
|
||||
msgstr "Enviar"
|
||||
|
||||
#: pagination.py:189
|
||||
#: filters.py:336
|
||||
msgid "ascending"
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:337
|
||||
msgid "descending"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:193
|
||||
msgid "Invalid page."
|
||||
msgstr "Página inválida."
|
||||
|
||||
#: pagination.py:407
|
||||
#: pagination.py:427
|
||||
msgid "Invalid cursor"
|
||||
msgstr "Cursor inválido"
|
||||
|
||||
#: relations.py:207
|
||||
#, python-brace-format
|
||||
msgid "Invalid pk \"{pk_value}\" - object does not exist."
|
||||
msgstr "Clave primaria \"{pk_value}\" inválida - objeto no existe."
|
||||
|
||||
#: relations.py:208
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected pk value, received {data_type}."
|
||||
msgstr "Tipo incorrecto. Se esperaba valor de clave primaria y se recibió {data_type}."
|
||||
|
||||
|
@ -369,25 +354,22 @@ msgid "Invalid hyperlink - Object does not exist."
|
|||
msgstr "Hiperenlace inválido - Objeto no existe."
|
||||
|
||||
#: relations.py:243
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected URL string, received {data_type}."
|
||||
msgstr "Tipo incorrecto. Se esperaba una URL y se recibió {data_type}."
|
||||
|
||||
#: relations.py:402
|
||||
#, python-brace-format
|
||||
#: relations.py:401
|
||||
msgid "Object with {slug_name}={value} does not exist."
|
||||
msgstr "Objeto con {slug_name}={value} no existe."
|
||||
|
||||
#: relations.py:403
|
||||
#: relations.py:402
|
||||
msgid "Invalid value."
|
||||
msgstr "Valor inválido."
|
||||
|
||||
#: serializers.py:326
|
||||
#, python-brace-format
|
||||
msgid "Invalid data. Expected a dictionary, but got {datatype}."
|
||||
msgstr "Datos inválidos. Se esperaba un diccionario pero es un {datatype}."
|
||||
|
||||
#: templates/rest_framework/admin.html:118
|
||||
#: templates/rest_framework/admin.html:116
|
||||
#: templates/rest_framework/base.html:128
|
||||
msgid "Filters"
|
||||
msgstr "Filtros"
|
||||
|
@ -417,27 +399,23 @@ msgstr "Ninguno"
|
|||
msgid "No items to select."
|
||||
msgstr "No hay elementos para seleccionar."
|
||||
|
||||
#: validators.py:24
|
||||
#: validators.py:43
|
||||
msgid "This field must be unique."
|
||||
msgstr "Este campo debe ser único."
|
||||
|
||||
#: validators.py:78
|
||||
#, python-brace-format
|
||||
#: validators.py:97
|
||||
msgid "The fields {field_names} must make a unique set."
|
||||
msgstr "Los campos {field_names} deben formar un conjunto único."
|
||||
|
||||
#: validators.py:226
|
||||
#, python-brace-format
|
||||
#: validators.py:245
|
||||
msgid "This field must be unique for the \"{date_field}\" date."
|
||||
msgstr "Este campo debe ser único para el día \"{date_field}\"."
|
||||
|
||||
#: validators.py:241
|
||||
#, python-brace-format
|
||||
#: validators.py:260
|
||||
msgid "This field must be unique for the \"{date_field}\" month."
|
||||
msgstr "Este campo debe ser único para el mes \"{date_field}\"."
|
||||
|
||||
#: validators.py:254
|
||||
#, python-brace-format
|
||||
#: validators.py:273
|
||||
msgid "This field must be unique for the \"{date_field}\" year."
|
||||
msgstr "Este campo debe ser único para el año \"{date_field}\"."
|
||||
|
||||
|
@ -445,15 +423,19 @@ msgstr "Este campo debe ser único para el año \"{date_field}\"."
|
|||
msgid "Invalid version in \"Accept\" header."
|
||||
msgstr "Versión inválida en la cabecera \"Accept\"."
|
||||
|
||||
#: versioning.py:73 versioning.py:115
|
||||
#: versioning.py:73
|
||||
msgid "Invalid version in URL path."
|
||||
msgstr "Versión inválida en la ruta de la URL."
|
||||
|
||||
#: versioning.py:144
|
||||
#: versioning.py:115
|
||||
msgid "Invalid version in URL path. Does not match any version namespace."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:147
|
||||
msgid "Invalid version in hostname."
|
||||
msgstr "Versión inválida en el nombre de host."
|
||||
|
||||
#: versioning.py:166
|
||||
#: versioning.py:169
|
||||
msgid "Invalid version in query parameter."
|
||||
msgstr "Versión inválida en el parámetro de consulta."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -8,9 +8,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Django REST framework\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-01 18:38+0100\n"
|
||||
"PO-Revision-Date: 2016-03-01 17:38+0000\n"
|
||||
"Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
|
||||
"POT-Creation-Date: 2016-07-12 16:13+0100\n"
|
||||
"PO-Revision-Date: 2016-07-12 15:14+0000\n"
|
||||
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n"
|
||||
"Language-Team: Estonian (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/et/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -18,40 +18,40 @@ msgstr ""
|
|||
"Language: et\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: authentication.py:71
|
||||
#: authentication.py:73
|
||||
msgid "Invalid basic header. No credentials provided."
|
||||
msgstr "Sobimatu lihtpäis. Kasutajatunnus on esitamata."
|
||||
|
||||
#: authentication.py:74
|
||||
#: authentication.py:76
|
||||
msgid "Invalid basic header. Credentials string should not contain spaces."
|
||||
msgstr "Sobimatu lihtpäis. Kasutajatunnus ei tohi sisaldada tühikuid."
|
||||
|
||||
#: authentication.py:80
|
||||
#: authentication.py:82
|
||||
msgid "Invalid basic header. Credentials not correctly base64 encoded."
|
||||
msgstr "Sobimatu lihtpäis. Kasutajatunnus pole korrektselt base64-kodeeritud."
|
||||
|
||||
#: authentication.py:97
|
||||
#: authentication.py:99
|
||||
msgid "Invalid username/password."
|
||||
msgstr "Sobimatu kasutajatunnus/salasõna."
|
||||
|
||||
#: authentication.py:100 authentication.py:195
|
||||
#: authentication.py:102 authentication.py:198
|
||||
msgid "User inactive or deleted."
|
||||
msgstr "Kasutaja on inaktiivne või kustutatud."
|
||||
|
||||
#: authentication.py:173
|
||||
#: authentication.py:176
|
||||
msgid "Invalid token header. No credentials provided."
|
||||
msgstr "Sobimatu lubakaardi päis. Kasutajatunnus on esitamata."
|
||||
|
||||
#: authentication.py:176
|
||||
#: authentication.py:179
|
||||
msgid "Invalid token header. Token string should not contain spaces."
|
||||
msgstr "Sobimatu lubakaardi päis. Loa sõne ei tohi sisaldada tühikuid."
|
||||
|
||||
#: authentication.py:182
|
||||
#: authentication.py:185
|
||||
msgid ""
|
||||
"Invalid token header. Token string should not contain invalid characters."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:192
|
||||
#: authentication.py:195
|
||||
msgid "Invalid token."
|
||||
msgstr "Sobimatu lubakaart."
|
||||
|
||||
|
@ -59,23 +59,23 @@ msgstr "Sobimatu lubakaart."
|
|||
msgid "Auth Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:21
|
||||
#: authtoken/models.py:15
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:23
|
||||
#: authtoken/models.py:18
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:24
|
||||
#: authtoken/models.py:20
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:33
|
||||
#: authtoken/models.py:29
|
||||
msgid "Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:34
|
||||
#: authtoken/models.py:30
|
||||
msgid "Tokens"
|
||||
msgstr ""
|
||||
|
||||
|
@ -124,7 +124,6 @@ msgid "Not found."
|
|||
msgstr "Ei leidnud."
|
||||
|
||||
#: exceptions.py:109
|
||||
#, python-brace-format
|
||||
msgid "Method \"{method}\" not allowed."
|
||||
msgstr "Meetod \"{method}\" pole lubatud."
|
||||
|
||||
|
@ -133,7 +132,6 @@ msgid "Could not satisfy the request Accept header."
|
|||
msgstr "Päringu Accept-päist ei suutnud täita."
|
||||
|
||||
#: exceptions.py:132
|
||||
#, python-brace-format
|
||||
msgid "Unsupported media type \"{media_type}\" in request."
|
||||
msgstr "Meedia tüüpi {media_type} päringus ei toetata."
|
||||
|
||||
|
@ -141,214 +139,201 @@ msgstr "Meedia tüüpi {media_type} päringus ei toetata."
|
|||
msgid "Request was throttled."
|
||||
msgstr "Liiga palju päringuid."
|
||||
|
||||
#: fields.py:266 relations.py:206 relations.py:239 validators.py:79
|
||||
#: validators.py:162
|
||||
#: fields.py:269 relations.py:206 relations.py:239 validators.py:98
|
||||
#: validators.py:181
|
||||
msgid "This field is required."
|
||||
msgstr "Väli on kohustuslik."
|
||||
|
||||
#: fields.py:267
|
||||
#: fields.py:270
|
||||
msgid "This field may not be null."
|
||||
msgstr "Väli ei tohi olla tühi."
|
||||
|
||||
#: fields.py:603 fields.py:634
|
||||
#, python-brace-format
|
||||
#: fields.py:608 fields.py:639
|
||||
msgid "\"{input}\" is not a valid boolean."
|
||||
msgstr "\"{input}\" pole kehtiv kahendarv."
|
||||
|
||||
#: fields.py:669
|
||||
#: fields.py:674
|
||||
msgid "This field may not be blank."
|
||||
msgstr "See väli ei tohi olla tühi."
|
||||
|
||||
#: fields.py:670 fields.py:1664
|
||||
#, python-brace-format
|
||||
#: fields.py:675 fields.py:1675
|
||||
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."
|
||||
|
||||
#: fields.py:671
|
||||
#, python-brace-format
|
||||
#: fields.py:676
|
||||
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."
|
||||
|
||||
#: fields.py:708
|
||||
#: fields.py:713
|
||||
msgid "Enter a valid email address."
|
||||
msgstr "Sisestage kehtiv e-posti aadress."
|
||||
|
||||
#: fields.py:719
|
||||
#: fields.py:724
|
||||
msgid "This value does not match the required pattern."
|
||||
msgstr "Väärtus ei ühti etteantud mustriga."
|
||||
|
||||
#: fields.py:730
|
||||
#: fields.py:735
|
||||
msgid ""
|
||||
"Enter a valid \"slug\" consisting of letters, numbers, underscores or "
|
||||
"hyphens."
|
||||
msgstr "Sisestage kehtiv \"slug\", mis koosneks tähtedest, numbritest, ala- või sidekriipsudest."
|
||||
|
||||
#: fields.py:742
|
||||
#: fields.py:747
|
||||
msgid "Enter a valid URL."
|
||||
msgstr "Sisestage korrektne URL."
|
||||
|
||||
#: fields.py:755
|
||||
#, python-brace-format
|
||||
#: fields.py:760
|
||||
msgid "\"{value}\" is not a valid UUID."
|
||||
msgstr "\"{value}\" pole kehtiv UUID."
|
||||
|
||||
#: fields.py:791
|
||||
#: fields.py:796
|
||||
msgid "Enter a valid IPv4 or IPv6 address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:816
|
||||
#: fields.py:821
|
||||
msgid "A valid integer is required."
|
||||
msgstr "Sisendiks peab olema täisarv."
|
||||
|
||||
#: fields.py:817 fields.py:852 fields.py:885
|
||||
#, python-brace-format
|
||||
#: fields.py:822 fields.py:857 fields.py:891
|
||||
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}. "
|
||||
|
||||
#: fields.py:818 fields.py:853 fields.py:886
|
||||
#, python-brace-format
|
||||
#: fields.py:823 fields.py:858 fields.py:892
|
||||
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}."
|
||||
|
||||
#: fields.py:819 fields.py:854 fields.py:890
|
||||
#: fields.py:824 fields.py:859 fields.py:896
|
||||
msgid "String value too large."
|
||||
msgstr "Sõne on liiga pikk."
|
||||
|
||||
#: fields.py:851 fields.py:884
|
||||
#: fields.py:856 fields.py:890
|
||||
msgid "A valid number is required."
|
||||
msgstr "Sisendiks peab olema arv."
|
||||
|
||||
#: fields.py:887
|
||||
#, python-brace-format
|
||||
#: fields.py:893
|
||||
msgid "Ensure that there are no more than {max_digits} digits in total."
|
||||
msgstr "Veenduge, et kokku pole rohkem kui {max_digits} numbit."
|
||||
|
||||
#: fields.py:888
|
||||
#, python-brace-format
|
||||
#: fields.py:894
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_decimal_places} decimal places."
|
||||
msgstr "Veenduge, et komakohti pole rohkem kui {max_decimal_places}. "
|
||||
|
||||
#: fields.py:889
|
||||
#, python-brace-format
|
||||
#: fields.py:895
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_whole_digits} digits before the "
|
||||
"decimal point."
|
||||
msgstr "Veenduge, et täiskohti poleks rohkem kui {max_whole_digits}."
|
||||
|
||||
#: fields.py:1004
|
||||
#, python-brace-format
|
||||
#: fields.py:1025
|
||||
msgid "Datetime has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr "Valesti formaaditud kuupäev-kellaaeg. Kasutage mõnda neist: {format}."
|
||||
|
||||
#: fields.py:1005
|
||||
#: fields.py:1026
|
||||
msgid "Expected a datetime but got a date."
|
||||
msgstr "Ootasin kuupäev-kellaaeg andmetüüpi, kuid sain hoopis kuupäeva."
|
||||
|
||||
#: fields.py:1082
|
||||
#, python-brace-format
|
||||
#: fields.py:1103
|
||||
msgid "Date has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr "Valesti formaaditud kuupäev. Kasutage mõnda neist: {format}."
|
||||
|
||||
#: fields.py:1083
|
||||
#: fields.py:1104
|
||||
msgid "Expected a date but got a datetime."
|
||||
msgstr "Ootasin kuupäeva andmetüüpi, kuid sain hoopis kuupäev-kellaaja."
|
||||
|
||||
#: fields.py:1151
|
||||
#, python-brace-format
|
||||
#: fields.py:1170
|
||||
msgid "Time has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr "Valesti formaaditud kellaaeg. Kasutage mõnda neist: {format}."
|
||||
|
||||
#: fields.py:1215
|
||||
#, python-brace-format
|
||||
#: fields.py:1232
|
||||
msgid "Duration has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1240 fields.py:1289
|
||||
#, python-brace-format
|
||||
#: fields.py:1251 fields.py:1300
|
||||
msgid "\"{input}\" is not a valid choice."
|
||||
msgstr "\"{input}\" on sobimatu valik."
|
||||
|
||||
#: fields.py:1243 relations.py:71 relations.py:442
|
||||
#, python-brace-format
|
||||
#: fields.py:1254 relations.py:71 relations.py:441
|
||||
msgid "More than {count} items..."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1290 fields.py:1437 relations.py:438 serializers.py:520
|
||||
#, python-brace-format
|
||||
#: fields.py:1301 fields.py:1448 relations.py:437 serializers.py:524
|
||||
msgid "Expected a list of items but got type \"{input_type}\"."
|
||||
msgstr "Ootasin kirjete järjendit, kuid sain \"{input_type}\" - tüübi."
|
||||
|
||||
#: fields.py:1291
|
||||
#: fields.py:1302
|
||||
msgid "This selection may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1328
|
||||
#, python-brace-format
|
||||
#: fields.py:1339
|
||||
msgid "\"{input}\" is not a valid path choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1347
|
||||
#: fields.py:1358
|
||||
msgid "No file was submitted."
|
||||
msgstr "Ühtegi faili ei esitatud."
|
||||
|
||||
#: fields.py:1348
|
||||
#: fields.py:1359
|
||||
msgid ""
|
||||
"The submitted data was not a file. Check the encoding type on the form."
|
||||
msgstr "Esitatud andmetes ei olnud faili. Kontrollige vormi kodeeringut."
|
||||
|
||||
#: fields.py:1349
|
||||
#: fields.py:1360
|
||||
msgid "No filename could be determined."
|
||||
msgstr "Ei suutnud tuvastada failinime."
|
||||
|
||||
#: fields.py:1350
|
||||
#: fields.py:1361
|
||||
msgid "The submitted file is empty."
|
||||
msgstr "Esitatud fail oli tühi."
|
||||
|
||||
#: fields.py:1351
|
||||
#, python-brace-format
|
||||
#: fields.py:1362
|
||||
msgid ""
|
||||
"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})."
|
||||
|
||||
#: fields.py:1399
|
||||
#: fields.py:1410
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr "Laadige üles kehtiv pildifail. Üles laetud fail ei olnud pilt või oli see katki."
|
||||
|
||||
#: fields.py:1438 relations.py:439 serializers.py:521
|
||||
#: fields.py:1449 relations.py:438 serializers.py:525
|
||||
msgid "This list may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1491
|
||||
#, python-brace-format
|
||||
#: fields.py:1502
|
||||
msgid "Expected a dictionary of items but got type \"{input_type}\"."
|
||||
msgstr "Ootasin kirjete sõnastikku, kuid sain \"{input_type}\"."
|
||||
|
||||
#: fields.py:1538
|
||||
#: fields.py:1549
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:35 templates/rest_framework/filters/django_filter.html.py:5
|
||||
#: filters.py:36 templates/rest_framework/filters/django_filter.html:5
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:189
|
||||
#: filters.py:336
|
||||
msgid "ascending"
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:337
|
||||
msgid "descending"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:193
|
||||
msgid "Invalid page."
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:407
|
||||
#: pagination.py:427
|
||||
msgid "Invalid cursor"
|
||||
msgstr "Sobimatu kursor."
|
||||
|
||||
#: relations.py:207
|
||||
#, python-brace-format
|
||||
msgid "Invalid pk \"{pk_value}\" - object does not exist."
|
||||
msgstr "Sobimatu primaarvõti \"{pk_value}\" - objekti pole olemas."
|
||||
|
||||
#: relations.py:208
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected pk value, received {data_type}."
|
||||
msgstr "Sobimatu andmetüüp. Ootasin primaarvõtit, sain {data_type}."
|
||||
|
||||
|
@ -365,25 +350,22 @@ msgid "Invalid hyperlink - Object does not exist."
|
|||
msgstr "Sobimatu hüperlink - objekti ei eksisteeri."
|
||||
|
||||
#: relations.py:243
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected URL string, received {data_type}."
|
||||
msgstr "Sobimatu andmetüüp. Ootasin URLi sõne, sain {data_type}."
|
||||
|
||||
#: relations.py:402
|
||||
#, python-brace-format
|
||||
#: relations.py:401
|
||||
msgid "Object with {slug_name}={value} does not exist."
|
||||
msgstr "Objekti {slug_name}={value} ei eksisteeri."
|
||||
|
||||
#: relations.py:403
|
||||
#: relations.py:402
|
||||
msgid "Invalid value."
|
||||
msgstr "Sobimatu väärtus."
|
||||
|
||||
#: serializers.py:326
|
||||
#, python-brace-format
|
||||
msgid "Invalid data. Expected a dictionary, but got {datatype}."
|
||||
msgstr "Sobimatud andmed. Ootasin sõnastikku, kuid sain {datatype}."
|
||||
|
||||
#: templates/rest_framework/admin.html:118
|
||||
#: templates/rest_framework/admin.html:116
|
||||
#: templates/rest_framework/base.html:128
|
||||
msgid "Filters"
|
||||
msgstr ""
|
||||
|
@ -413,27 +395,23 @@ msgstr ""
|
|||
msgid "No items to select."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:24
|
||||
#: validators.py:43
|
||||
msgid "This field must be unique."
|
||||
msgstr "Selle välja väärtus peab olema unikaalne."
|
||||
|
||||
#: validators.py:78
|
||||
#, python-brace-format
|
||||
#: validators.py:97
|
||||
msgid "The fields {field_names} must make a unique set."
|
||||
msgstr "Veerud {field_names} peavad moodustama unikaalse hulga."
|
||||
|
||||
#: validators.py:226
|
||||
#, python-brace-format
|
||||
#: validators.py:245
|
||||
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."
|
||||
|
||||
#: validators.py:241
|
||||
#, python-brace-format
|
||||
#: validators.py:260
|
||||
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."
|
||||
|
||||
#: validators.py:254
|
||||
#, python-brace-format
|
||||
#: validators.py:273
|
||||
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."
|
||||
|
||||
|
@ -441,15 +419,19 @@ msgstr "Selle välja väärtus peab olema unikaalneveerus \"{date_field}\" märg
|
|||
msgid "Invalid version in \"Accept\" header."
|
||||
msgstr "Sobimatu versioon \"Accept\" päises."
|
||||
|
||||
#: versioning.py:73 versioning.py:115
|
||||
#: versioning.py:73
|
||||
msgid "Invalid version in URL path."
|
||||
msgstr "Sobimatu versioon URLi rajas."
|
||||
|
||||
#: versioning.py:144
|
||||
#: versioning.py:115
|
||||
msgid "Invalid version in URL path. Does not match any version namespace."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:147
|
||||
msgid "Invalid version in hostname."
|
||||
msgstr "Sobimatu versioon hostinimes."
|
||||
|
||||
#: versioning.py:166
|
||||
#: versioning.py:169
|
||||
msgid "Invalid version in query parameter."
|
||||
msgstr "Sobimatu versioon päringu parameetris."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -7,9 +7,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Django REST framework\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-01 18:38+0100\n"
|
||||
"PO-Revision-Date: 2016-03-01 17:38+0000\n"
|
||||
"Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
|
||||
"POT-Creation-Date: 2016-07-12 16:13+0100\n"
|
||||
"PO-Revision-Date: 2016-07-12 15:14+0000\n"
|
||||
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n"
|
||||
"Language-Team: Persian (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/fa/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -17,40 +17,40 @@ msgstr ""
|
|||
"Language: fa\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#: authentication.py:71
|
||||
#: authentication.py:73
|
||||
msgid "Invalid basic header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:74
|
||||
#: authentication.py:76
|
||||
msgid "Invalid basic header. Credentials string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:80
|
||||
#: authentication.py:82
|
||||
msgid "Invalid basic header. Credentials not correctly base64 encoded."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:97
|
||||
#: authentication.py:99
|
||||
msgid "Invalid username/password."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:100 authentication.py:195
|
||||
#: authentication.py:102 authentication.py:198
|
||||
msgid "User inactive or deleted."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:173
|
||||
#: authentication.py:176
|
||||
msgid "Invalid token header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:176
|
||||
#: authentication.py:179
|
||||
msgid "Invalid token header. Token string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:182
|
||||
#: authentication.py:185
|
||||
msgid ""
|
||||
"Invalid token header. Token string should not contain invalid characters."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:192
|
||||
#: authentication.py:195
|
||||
msgid "Invalid token."
|
||||
msgstr ""
|
||||
|
||||
|
@ -58,23 +58,23 @@ msgstr ""
|
|||
msgid "Auth Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:21
|
||||
#: authtoken/models.py:15
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:23
|
||||
#: authtoken/models.py:18
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:24
|
||||
#: authtoken/models.py:20
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:33
|
||||
#: authtoken/models.py:29
|
||||
msgid "Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:34
|
||||
#: authtoken/models.py:30
|
||||
msgid "Tokens"
|
||||
msgstr ""
|
||||
|
||||
|
@ -123,7 +123,6 @@ msgid "Not found."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:109
|
||||
#, python-brace-format
|
||||
msgid "Method \"{method}\" not allowed."
|
||||
msgstr ""
|
||||
|
||||
|
@ -132,7 +131,6 @@ msgid "Could not satisfy the request Accept header."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:132
|
||||
#, python-brace-format
|
||||
msgid "Unsupported media type \"{media_type}\" in request."
|
||||
msgstr ""
|
||||
|
||||
|
@ -140,214 +138,201 @@ msgstr ""
|
|||
msgid "Request was throttled."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:266 relations.py:206 relations.py:239 validators.py:79
|
||||
#: validators.py:162
|
||||
#: fields.py:269 relations.py:206 relations.py:239 validators.py:98
|
||||
#: validators.py:181
|
||||
msgid "This field is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:267
|
||||
#: fields.py:270
|
||||
msgid "This field may not be null."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:603 fields.py:634
|
||||
#, python-brace-format
|
||||
#: fields.py:608 fields.py:639
|
||||
msgid "\"{input}\" is not a valid boolean."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:669
|
||||
#: fields.py:674
|
||||
msgid "This field may not be blank."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:670 fields.py:1664
|
||||
#, python-brace-format
|
||||
#: fields.py:675 fields.py:1675
|
||||
msgid "Ensure this field has no more than {max_length} characters."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:671
|
||||
#, python-brace-format
|
||||
#: fields.py:676
|
||||
msgid "Ensure this field has at least {min_length} characters."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:708
|
||||
#: fields.py:713
|
||||
msgid "Enter a valid email address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:719
|
||||
#: fields.py:724
|
||||
msgid "This value does not match the required pattern."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:730
|
||||
#: fields.py:735
|
||||
msgid ""
|
||||
"Enter a valid \"slug\" consisting of letters, numbers, underscores or "
|
||||
"hyphens."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:742
|
||||
#: fields.py:747
|
||||
msgid "Enter a valid URL."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:755
|
||||
#, python-brace-format
|
||||
#: fields.py:760
|
||||
msgid "\"{value}\" is not a valid UUID."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:791
|
||||
#: fields.py:796
|
||||
msgid "Enter a valid IPv4 or IPv6 address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:816
|
||||
#: fields.py:821
|
||||
msgid "A valid integer is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:817 fields.py:852 fields.py:885
|
||||
#, python-brace-format
|
||||
#: fields.py:822 fields.py:857 fields.py:891
|
||||
msgid "Ensure this value is less than or equal to {max_value}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:818 fields.py:853 fields.py:886
|
||||
#, python-brace-format
|
||||
#: fields.py:823 fields.py:858 fields.py:892
|
||||
msgid "Ensure this value is greater than or equal to {min_value}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:819 fields.py:854 fields.py:890
|
||||
#: fields.py:824 fields.py:859 fields.py:896
|
||||
msgid "String value too large."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:851 fields.py:884
|
||||
#: fields.py:856 fields.py:890
|
||||
msgid "A valid number is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:887
|
||||
#, python-brace-format
|
||||
#: fields.py:893
|
||||
msgid "Ensure that there are no more than {max_digits} digits in total."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:888
|
||||
#, python-brace-format
|
||||
#: fields.py:894
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_decimal_places} decimal places."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:889
|
||||
#, python-brace-format
|
||||
#: fields.py:895
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_whole_digits} digits before the "
|
||||
"decimal point."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1004
|
||||
#, python-brace-format
|
||||
#: fields.py:1025
|
||||
msgid "Datetime has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1005
|
||||
#: fields.py:1026
|
||||
msgid "Expected a datetime but got a date."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1082
|
||||
#, python-brace-format
|
||||
#: fields.py:1103
|
||||
msgid "Date has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1083
|
||||
#: fields.py:1104
|
||||
msgid "Expected a date but got a datetime."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1151
|
||||
#, python-brace-format
|
||||
#: fields.py:1170
|
||||
msgid "Time has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1215
|
||||
#, python-brace-format
|
||||
#: fields.py:1232
|
||||
msgid "Duration has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1240 fields.py:1289
|
||||
#, python-brace-format
|
||||
#: fields.py:1251 fields.py:1300
|
||||
msgid "\"{input}\" is not a valid choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1243 relations.py:71 relations.py:442
|
||||
#, python-brace-format
|
||||
#: fields.py:1254 relations.py:71 relations.py:441
|
||||
msgid "More than {count} items..."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1290 fields.py:1437 relations.py:438 serializers.py:520
|
||||
#, python-brace-format
|
||||
#: fields.py:1301 fields.py:1448 relations.py:437 serializers.py:524
|
||||
msgid "Expected a list of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1291
|
||||
#: fields.py:1302
|
||||
msgid "This selection may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1328
|
||||
#, python-brace-format
|
||||
#: fields.py:1339
|
||||
msgid "\"{input}\" is not a valid path choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1347
|
||||
#: fields.py:1358
|
||||
msgid "No file was submitted."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1348
|
||||
#: fields.py:1359
|
||||
msgid ""
|
||||
"The submitted data was not a file. Check the encoding type on the form."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1349
|
||||
#: fields.py:1360
|
||||
msgid "No filename could be determined."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1350
|
||||
#: fields.py:1361
|
||||
msgid "The submitted file is empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1351
|
||||
#, python-brace-format
|
||||
#: fields.py:1362
|
||||
msgid ""
|
||||
"Ensure this filename has at most {max_length} characters (it has {length})."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1399
|
||||
#: fields.py:1410
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1438 relations.py:439 serializers.py:521
|
||||
#: fields.py:1449 relations.py:438 serializers.py:525
|
||||
msgid "This list may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1491
|
||||
#, python-brace-format
|
||||
#: fields.py:1502
|
||||
msgid "Expected a dictionary of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1538
|
||||
#: fields.py:1549
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:35 templates/rest_framework/filters/django_filter.html.py:5
|
||||
#: filters.py:36 templates/rest_framework/filters/django_filter.html:5
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:189
|
||||
#: filters.py:336
|
||||
msgid "ascending"
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:337
|
||||
msgid "descending"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:193
|
||||
msgid "Invalid page."
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:407
|
||||
#: pagination.py:427
|
||||
msgid "Invalid cursor"
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:207
|
||||
#, python-brace-format
|
||||
msgid "Invalid pk \"{pk_value}\" - object does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:208
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected pk value, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
|
@ -364,25 +349,22 @@ msgid "Invalid hyperlink - Object does not exist."
|
|||
msgstr ""
|
||||
|
||||
#: relations.py:243
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected URL string, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:402
|
||||
#, python-brace-format
|
||||
#: relations.py:401
|
||||
msgid "Object with {slug_name}={value} does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:403
|
||||
#: relations.py:402
|
||||
msgid "Invalid value."
|
||||
msgstr ""
|
||||
|
||||
#: serializers.py:326
|
||||
#, python-brace-format
|
||||
msgid "Invalid data. Expected a dictionary, but got {datatype}."
|
||||
msgstr ""
|
||||
|
||||
#: templates/rest_framework/admin.html:118
|
||||
#: templates/rest_framework/admin.html:116
|
||||
#: templates/rest_framework/base.html:128
|
||||
msgid "Filters"
|
||||
msgstr ""
|
||||
|
@ -412,27 +394,23 @@ msgstr ""
|
|||
msgid "No items to select."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:24
|
||||
#: validators.py:43
|
||||
msgid "This field must be unique."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:78
|
||||
#, python-brace-format
|
||||
#: validators.py:97
|
||||
msgid "The fields {field_names} must make a unique set."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:226
|
||||
#, python-brace-format
|
||||
#: validators.py:245
|
||||
msgid "This field must be unique for the \"{date_field}\" date."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:241
|
||||
#, python-brace-format
|
||||
#: validators.py:260
|
||||
msgid "This field must be unique for the \"{date_field}\" month."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:254
|
||||
#, python-brace-format
|
||||
#: validators.py:273
|
||||
msgid "This field must be unique for the \"{date_field}\" year."
|
||||
msgstr ""
|
||||
|
||||
|
@ -440,15 +418,19 @@ msgstr ""
|
|||
msgid "Invalid version in \"Accept\" header."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:73 versioning.py:115
|
||||
#: versioning.py:73
|
||||
msgid "Invalid version in URL path."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:144
|
||||
#: versioning.py:115
|
||||
msgid "Invalid version in URL path. Does not match any version namespace."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:147
|
||||
msgid "Invalid version in hostname."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:166
|
||||
#: versioning.py:169
|
||||
msgid "Invalid version in query parameter."
|
||||
msgstr ""
|
||||
|
||||
|
|
Binary file not shown.
|
@ -7,9 +7,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Django REST framework\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-01 18:38+0100\n"
|
||||
"PO-Revision-Date: 2016-03-01 17:38+0000\n"
|
||||
"Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
|
||||
"POT-Creation-Date: 2016-07-12 16:13+0100\n"
|
||||
"PO-Revision-Date: 2016-07-12 15:14+0000\n"
|
||||
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n"
|
||||
"Language-Team: Persian (Iran) (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/fa_IR/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -17,40 +17,40 @@ msgstr ""
|
|||
"Language: fa_IR\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#: authentication.py:71
|
||||
#: authentication.py:73
|
||||
msgid "Invalid basic header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:74
|
||||
#: authentication.py:76
|
||||
msgid "Invalid basic header. Credentials string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:80
|
||||
#: authentication.py:82
|
||||
msgid "Invalid basic header. Credentials not correctly base64 encoded."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:97
|
||||
#: authentication.py:99
|
||||
msgid "Invalid username/password."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:100 authentication.py:195
|
||||
#: authentication.py:102 authentication.py:198
|
||||
msgid "User inactive or deleted."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:173
|
||||
#: authentication.py:176
|
||||
msgid "Invalid token header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:176
|
||||
#: authentication.py:179
|
||||
msgid "Invalid token header. Token string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:182
|
||||
#: authentication.py:185
|
||||
msgid ""
|
||||
"Invalid token header. Token string should not contain invalid characters."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:192
|
||||
#: authentication.py:195
|
||||
msgid "Invalid token."
|
||||
msgstr ""
|
||||
|
||||
|
@ -58,23 +58,23 @@ msgstr ""
|
|||
msgid "Auth Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:21
|
||||
#: authtoken/models.py:15
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:23
|
||||
#: authtoken/models.py:18
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:24
|
||||
#: authtoken/models.py:20
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:33
|
||||
#: authtoken/models.py:29
|
||||
msgid "Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:34
|
||||
#: authtoken/models.py:30
|
||||
msgid "Tokens"
|
||||
msgstr ""
|
||||
|
||||
|
@ -123,7 +123,6 @@ msgid "Not found."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:109
|
||||
#, python-brace-format
|
||||
msgid "Method \"{method}\" not allowed."
|
||||
msgstr ""
|
||||
|
||||
|
@ -132,7 +131,6 @@ msgid "Could not satisfy the request Accept header."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:132
|
||||
#, python-brace-format
|
||||
msgid "Unsupported media type \"{media_type}\" in request."
|
||||
msgstr ""
|
||||
|
||||
|
@ -140,214 +138,201 @@ msgstr ""
|
|||
msgid "Request was throttled."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:266 relations.py:206 relations.py:239 validators.py:79
|
||||
#: validators.py:162
|
||||
#: fields.py:269 relations.py:206 relations.py:239 validators.py:98
|
||||
#: validators.py:181
|
||||
msgid "This field is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:267
|
||||
#: fields.py:270
|
||||
msgid "This field may not be null."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:603 fields.py:634
|
||||
#, python-brace-format
|
||||
#: fields.py:608 fields.py:639
|
||||
msgid "\"{input}\" is not a valid boolean."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:669
|
||||
#: fields.py:674
|
||||
msgid "This field may not be blank."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:670 fields.py:1664
|
||||
#, python-brace-format
|
||||
#: fields.py:675 fields.py:1675
|
||||
msgid "Ensure this field has no more than {max_length} characters."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:671
|
||||
#, python-brace-format
|
||||
#: fields.py:676
|
||||
msgid "Ensure this field has at least {min_length} characters."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:708
|
||||
#: fields.py:713
|
||||
msgid "Enter a valid email address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:719
|
||||
#: fields.py:724
|
||||
msgid "This value does not match the required pattern."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:730
|
||||
#: fields.py:735
|
||||
msgid ""
|
||||
"Enter a valid \"slug\" consisting of letters, numbers, underscores or "
|
||||
"hyphens."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:742
|
||||
#: fields.py:747
|
||||
msgid "Enter a valid URL."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:755
|
||||
#, python-brace-format
|
||||
#: fields.py:760
|
||||
msgid "\"{value}\" is not a valid UUID."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:791
|
||||
#: fields.py:796
|
||||
msgid "Enter a valid IPv4 or IPv6 address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:816
|
||||
#: fields.py:821
|
||||
msgid "A valid integer is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:817 fields.py:852 fields.py:885
|
||||
#, python-brace-format
|
||||
#: fields.py:822 fields.py:857 fields.py:891
|
||||
msgid "Ensure this value is less than or equal to {max_value}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:818 fields.py:853 fields.py:886
|
||||
#, python-brace-format
|
||||
#: fields.py:823 fields.py:858 fields.py:892
|
||||
msgid "Ensure this value is greater than or equal to {min_value}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:819 fields.py:854 fields.py:890
|
||||
#: fields.py:824 fields.py:859 fields.py:896
|
||||
msgid "String value too large."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:851 fields.py:884
|
||||
#: fields.py:856 fields.py:890
|
||||
msgid "A valid number is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:887
|
||||
#, python-brace-format
|
||||
#: fields.py:893
|
||||
msgid "Ensure that there are no more than {max_digits} digits in total."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:888
|
||||
#, python-brace-format
|
||||
#: fields.py:894
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_decimal_places} decimal places."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:889
|
||||
#, python-brace-format
|
||||
#: fields.py:895
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_whole_digits} digits before the "
|
||||
"decimal point."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1004
|
||||
#, python-brace-format
|
||||
#: fields.py:1025
|
||||
msgid "Datetime has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1005
|
||||
#: fields.py:1026
|
||||
msgid "Expected a datetime but got a date."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1082
|
||||
#, python-brace-format
|
||||
#: fields.py:1103
|
||||
msgid "Date has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1083
|
||||
#: fields.py:1104
|
||||
msgid "Expected a date but got a datetime."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1151
|
||||
#, python-brace-format
|
||||
#: fields.py:1170
|
||||
msgid "Time has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1215
|
||||
#, python-brace-format
|
||||
#: fields.py:1232
|
||||
msgid "Duration has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1240 fields.py:1289
|
||||
#, python-brace-format
|
||||
#: fields.py:1251 fields.py:1300
|
||||
msgid "\"{input}\" is not a valid choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1243 relations.py:71 relations.py:442
|
||||
#, python-brace-format
|
||||
#: fields.py:1254 relations.py:71 relations.py:441
|
||||
msgid "More than {count} items..."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1290 fields.py:1437 relations.py:438 serializers.py:520
|
||||
#, python-brace-format
|
||||
#: fields.py:1301 fields.py:1448 relations.py:437 serializers.py:524
|
||||
msgid "Expected a list of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1291
|
||||
#: fields.py:1302
|
||||
msgid "This selection may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1328
|
||||
#, python-brace-format
|
||||
#: fields.py:1339
|
||||
msgid "\"{input}\" is not a valid path choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1347
|
||||
#: fields.py:1358
|
||||
msgid "No file was submitted."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1348
|
||||
#: fields.py:1359
|
||||
msgid ""
|
||||
"The submitted data was not a file. Check the encoding type on the form."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1349
|
||||
#: fields.py:1360
|
||||
msgid "No filename could be determined."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1350
|
||||
#: fields.py:1361
|
||||
msgid "The submitted file is empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1351
|
||||
#, python-brace-format
|
||||
#: fields.py:1362
|
||||
msgid ""
|
||||
"Ensure this filename has at most {max_length} characters (it has {length})."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1399
|
||||
#: fields.py:1410
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1438 relations.py:439 serializers.py:521
|
||||
#: fields.py:1449 relations.py:438 serializers.py:525
|
||||
msgid "This list may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1491
|
||||
#, python-brace-format
|
||||
#: fields.py:1502
|
||||
msgid "Expected a dictionary of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1538
|
||||
#: fields.py:1549
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:35 templates/rest_framework/filters/django_filter.html.py:5
|
||||
#: filters.py:36 templates/rest_framework/filters/django_filter.html:5
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:189
|
||||
#: filters.py:336
|
||||
msgid "ascending"
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:337
|
||||
msgid "descending"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:193
|
||||
msgid "Invalid page."
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:407
|
||||
#: pagination.py:427
|
||||
msgid "Invalid cursor"
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:207
|
||||
#, python-brace-format
|
||||
msgid "Invalid pk \"{pk_value}\" - object does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:208
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected pk value, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
|
@ -364,25 +349,22 @@ msgid "Invalid hyperlink - Object does not exist."
|
|||
msgstr ""
|
||||
|
||||
#: relations.py:243
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected URL string, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:402
|
||||
#, python-brace-format
|
||||
#: relations.py:401
|
||||
msgid "Object with {slug_name}={value} does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:403
|
||||
#: relations.py:402
|
||||
msgid "Invalid value."
|
||||
msgstr ""
|
||||
|
||||
#: serializers.py:326
|
||||
#, python-brace-format
|
||||
msgid "Invalid data. Expected a dictionary, but got {datatype}."
|
||||
msgstr ""
|
||||
|
||||
#: templates/rest_framework/admin.html:118
|
||||
#: templates/rest_framework/admin.html:116
|
||||
#: templates/rest_framework/base.html:128
|
||||
msgid "Filters"
|
||||
msgstr ""
|
||||
|
@ -412,27 +394,23 @@ msgstr ""
|
|||
msgid "No items to select."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:24
|
||||
#: validators.py:43
|
||||
msgid "This field must be unique."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:78
|
||||
#, python-brace-format
|
||||
#: validators.py:97
|
||||
msgid "The fields {field_names} must make a unique set."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:226
|
||||
#, python-brace-format
|
||||
#: validators.py:245
|
||||
msgid "This field must be unique for the \"{date_field}\" date."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:241
|
||||
#, python-brace-format
|
||||
#: validators.py:260
|
||||
msgid "This field must be unique for the \"{date_field}\" month."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:254
|
||||
#, python-brace-format
|
||||
#: validators.py:273
|
||||
msgid "This field must be unique for the \"{date_field}\" year."
|
||||
msgstr ""
|
||||
|
||||
|
@ -440,15 +418,19 @@ msgstr ""
|
|||
msgid "Invalid version in \"Accept\" header."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:73 versioning.py:115
|
||||
#: versioning.py:73
|
||||
msgid "Invalid version in URL path."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:144
|
||||
#: versioning.py:115
|
||||
msgid "Invalid version in URL path. Does not match any version namespace."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:147
|
||||
msgid "Invalid version in hostname."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:166
|
||||
#: versioning.py:169
|
||||
msgid "Invalid version in query parameter."
|
||||
msgstr ""
|
||||
|
||||
|
|
Binary file not shown.
|
@ -9,9 +9,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Django REST framework\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-01 18:38+0100\n"
|
||||
"PO-Revision-Date: 2016-03-01 17:38+0000\n"
|
||||
"Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
|
||||
"POT-Creation-Date: 2016-07-12 16:13+0100\n"
|
||||
"PO-Revision-Date: 2016-07-12 15:14+0000\n"
|
||||
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n"
|
||||
"Language-Team: Finnish (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/fi/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -19,40 +19,40 @@ msgstr ""
|
|||
"Language: fi\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: authentication.py:71
|
||||
#: authentication.py:73
|
||||
msgid "Invalid basic header. No credentials provided."
|
||||
msgstr "Epäkelpo perusotsake. Ei annettuja tunnuksia."
|
||||
|
||||
#: authentication.py:74
|
||||
#: authentication.py:76
|
||||
msgid "Invalid basic header. Credentials string should not contain spaces."
|
||||
msgstr "Epäkelpo perusotsake. Tunnusmerkkijono ei saa sisältää välilyöntejä."
|
||||
|
||||
#: authentication.py:80
|
||||
#: authentication.py:82
|
||||
msgid "Invalid basic header. Credentials not correctly base64 encoded."
|
||||
msgstr "Epäkelpo perusotsake. Tunnukset eivät ole base64-koodattu."
|
||||
|
||||
#: authentication.py:97
|
||||
#: authentication.py:99
|
||||
msgid "Invalid username/password."
|
||||
msgstr "Epäkelpo käyttäjänimi tai salasana."
|
||||
|
||||
#: authentication.py:100 authentication.py:195
|
||||
#: authentication.py:102 authentication.py:198
|
||||
msgid "User inactive or deleted."
|
||||
msgstr "Käyttäjä ei-aktiivinen tai poistettu."
|
||||
|
||||
#: authentication.py:173
|
||||
#: authentication.py:176
|
||||
msgid "Invalid token header. No credentials provided."
|
||||
msgstr "Epäkelpo Token-otsake. Ei annettuja tunnuksia."
|
||||
|
||||
#: authentication.py:176
|
||||
#: authentication.py:179
|
||||
msgid "Invalid token header. Token string should not contain spaces."
|
||||
msgstr "Epäkelpo Token-otsake. Tunnusmerkkijono ei saa sisältää välilyöntejä."
|
||||
|
||||
#: authentication.py:182
|
||||
#: authentication.py:185
|
||||
msgid ""
|
||||
"Invalid token header. Token string should not contain invalid characters."
|
||||
msgstr "Epäkelpo Token-otsake. Tunnusmerkkijono ei saa sisältää epäkelpoja merkkejä."
|
||||
|
||||
#: authentication.py:192
|
||||
#: authentication.py:195
|
||||
msgid "Invalid token."
|
||||
msgstr "Epäkelpo Token."
|
||||
|
||||
|
@ -60,23 +60,23 @@ msgstr "Epäkelpo Token."
|
|||
msgid "Auth Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:21
|
||||
#: authtoken/models.py:15
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:23
|
||||
#: authtoken/models.py:18
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:24
|
||||
#: authtoken/models.py:20
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:33
|
||||
#: authtoken/models.py:29
|
||||
msgid "Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:34
|
||||
#: authtoken/models.py:30
|
||||
msgid "Tokens"
|
||||
msgstr ""
|
||||
|
||||
|
@ -125,7 +125,6 @@ msgid "Not found."
|
|||
msgstr "Ei löydy."
|
||||
|
||||
#: exceptions.py:109
|
||||
#, python-brace-format
|
||||
msgid "Method \"{method}\" not allowed."
|
||||
msgstr "Metodi \"{method}\" ei ole sallittu."
|
||||
|
||||
|
@ -134,7 +133,6 @@ msgid "Could not satisfy the request Accept header."
|
|||
msgstr "Ei voitu vastata pyynnön Accept-otsakkeen mukaisesti."
|
||||
|
||||
#: exceptions.py:132
|
||||
#, python-brace-format
|
||||
msgid "Unsupported media type \"{media_type}\" in request."
|
||||
msgstr "Pyynnön mediatyyppiä \"{media_type}\" ei tueta."
|
||||
|
||||
|
@ -142,214 +140,201 @@ msgstr "Pyynnön mediatyyppiä \"{media_type}\" ei tueta."
|
|||
msgid "Request was throttled."
|
||||
msgstr "Pyyntö hidastettu."
|
||||
|
||||
#: fields.py:266 relations.py:206 relations.py:239 validators.py:79
|
||||
#: validators.py:162
|
||||
#: fields.py:269 relations.py:206 relations.py:239 validators.py:98
|
||||
#: validators.py:181
|
||||
msgid "This field is required."
|
||||
msgstr "Tämä kenttä vaaditaan."
|
||||
|
||||
#: fields.py:267
|
||||
#: fields.py:270
|
||||
msgid "This field may not be null."
|
||||
msgstr "Tämän kentän arvo ei voi olla \"null\"."
|
||||
|
||||
#: fields.py:603 fields.py:634
|
||||
#, python-brace-format
|
||||
#: fields.py:608 fields.py:639
|
||||
msgid "\"{input}\" is not a valid boolean."
|
||||
msgstr "\"{input}\" ei ole kelvollinen totuusarvo."
|
||||
|
||||
#: fields.py:669
|
||||
#: fields.py:674
|
||||
msgid "This field may not be blank."
|
||||
msgstr "Tämä kenttä ei voi olla tyhjä."
|
||||
|
||||
#: fields.py:670 fields.py:1664
|
||||
#, python-brace-format
|
||||
#: fields.py:675 fields.py:1675
|
||||
msgid "Ensure this field has no more than {max_length} characters."
|
||||
msgstr "Arvo saa olla enintään {max_length} merkkiä pitkä."
|
||||
|
||||
#: fields.py:671
|
||||
#, python-brace-format
|
||||
#: fields.py:676
|
||||
msgid "Ensure this field has at least {min_length} characters."
|
||||
msgstr "Arvo tulee olla vähintään {min_length} merkkiä pitkä."
|
||||
|
||||
#: fields.py:708
|
||||
#: fields.py:713
|
||||
msgid "Enter a valid email address."
|
||||
msgstr "Syötä kelvollinen sähköpostiosoite."
|
||||
|
||||
#: fields.py:719
|
||||
#: fields.py:724
|
||||
msgid "This value does not match the required pattern."
|
||||
msgstr "Arvo ei täsmää vaadittuun kuvioon."
|
||||
|
||||
#: fields.py:730
|
||||
#: fields.py:735
|
||||
msgid ""
|
||||
"Enter a valid \"slug\" consisting of letters, numbers, underscores or "
|
||||
"hyphens."
|
||||
msgstr "Tässä voidaan käyttää vain kirjaimia (a-z), numeroita (0-9) sekä ala- ja tavuviivoja (_ -)."
|
||||
|
||||
#: fields.py:742
|
||||
#: fields.py:747
|
||||
msgid "Enter a valid URL."
|
||||
msgstr "Syötä oikea URL-osoite."
|
||||
|
||||
#: fields.py:755
|
||||
#, python-brace-format
|
||||
#: fields.py:760
|
||||
msgid "\"{value}\" is not a valid UUID."
|
||||
msgstr "{value} ei ole kelvollinen UUID."
|
||||
|
||||
#: fields.py:791
|
||||
#: fields.py:796
|
||||
msgid "Enter a valid IPv4 or IPv6 address."
|
||||
msgstr "Syötä kelvollinen IPv4- tai IPv6-osoite."
|
||||
|
||||
#: fields.py:816
|
||||
#: fields.py:821
|
||||
msgid "A valid integer is required."
|
||||
msgstr "Syötä kelvollinen kokonaisluku."
|
||||
|
||||
#: fields.py:817 fields.py:852 fields.py:885
|
||||
#, python-brace-format
|
||||
#: fields.py:822 fields.py:857 fields.py:891
|
||||
msgid "Ensure this value is less than or equal to {max_value}."
|
||||
msgstr "Tämän arvon on oltava enintään {max_value}."
|
||||
|
||||
#: fields.py:818 fields.py:853 fields.py:886
|
||||
#, python-brace-format
|
||||
#: fields.py:823 fields.py:858 fields.py:892
|
||||
msgid "Ensure this value is greater than or equal to {min_value}."
|
||||
msgstr "Tämän luvun on oltava vähintään {min_value}."
|
||||
|
||||
#: fields.py:819 fields.py:854 fields.py:890
|
||||
#: fields.py:824 fields.py:859 fields.py:896
|
||||
msgid "String value too large."
|
||||
msgstr "Liian suuri merkkijonoarvo."
|
||||
|
||||
#: fields.py:851 fields.py:884
|
||||
#: fields.py:856 fields.py:890
|
||||
msgid "A valid number is required."
|
||||
msgstr "Kelvollinen luku vaaditaan."
|
||||
|
||||
#: fields.py:887
|
||||
#, python-brace-format
|
||||
#: fields.py:893
|
||||
msgid "Ensure that there are no more than {max_digits} digits in total."
|
||||
msgstr "Tässä luvussa voi olla yhteensä enintään {max_digits} numeroa."
|
||||
|
||||
#: fields.py:888
|
||||
#, python-brace-format
|
||||
#: fields.py:894
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_decimal_places} decimal places."
|
||||
msgstr "Tässä luvussa saa olla enintään {max_decimal_places} desimaalia."
|
||||
|
||||
#: fields.py:889
|
||||
#, python-brace-format
|
||||
#: fields.py:895
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_whole_digits} digits before the "
|
||||
"decimal point."
|
||||
msgstr "Tässä luvussa saa olla enintään {max_whole_digits} numeroa ennen desimaalipilkkua."
|
||||
|
||||
#: fields.py:1004
|
||||
#, python-brace-format
|
||||
#: fields.py:1025
|
||||
msgid "Datetime has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr "Virheellinen päivämäärän/ajan muotoilu. Käytä jotain näistä muodoista: {format}"
|
||||
|
||||
#: fields.py:1005
|
||||
#: fields.py:1026
|
||||
msgid "Expected a datetime but got a date."
|
||||
msgstr "Odotettiin päivämäärää ja aikaa, saatiin vain päivämäärä."
|
||||
|
||||
#: fields.py:1082
|
||||
#, python-brace-format
|
||||
#: fields.py:1103
|
||||
msgid "Date has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr "Virheellinen päivämäärän muotoilu. Käytä jotain näistä muodoista: {format}"
|
||||
|
||||
#: fields.py:1083
|
||||
#: fields.py:1104
|
||||
msgid "Expected a date but got a datetime."
|
||||
msgstr "Odotettiin päivämäärää, saatiin päivämäärä ja aika."
|
||||
|
||||
#: fields.py:1151
|
||||
#, python-brace-format
|
||||
#: fields.py:1170
|
||||
msgid "Time has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr "Virheellinen kellonajan muotoilu. Käytä jotain näistä muodoista: {format}"
|
||||
|
||||
#: fields.py:1215
|
||||
#, python-brace-format
|
||||
#: fields.py:1232
|
||||
msgid "Duration has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr "Virheellinen keston muotoilu. Käytä jotain näistä muodoista: {format}"
|
||||
|
||||
#: fields.py:1240 fields.py:1289
|
||||
#, python-brace-format
|
||||
#: fields.py:1251 fields.py:1300
|
||||
msgid "\"{input}\" is not a valid choice."
|
||||
msgstr "\"{input}\" ei ole kelvollinen valinta."
|
||||
|
||||
#: fields.py:1243 relations.py:71 relations.py:442
|
||||
#, python-brace-format
|
||||
#: fields.py:1254 relations.py:71 relations.py:441
|
||||
msgid "More than {count} items..."
|
||||
msgstr "Enemmän kuin {count} kappaletta..."
|
||||
|
||||
#: fields.py:1290 fields.py:1437 relations.py:438 serializers.py:520
|
||||
#, python-brace-format
|
||||
#: fields.py:1301 fields.py:1448 relations.py:437 serializers.py:524
|
||||
msgid "Expected a list of items but got type \"{input_type}\"."
|
||||
msgstr "Odotettiin listaa, saatiin tyyppi {input_type}."
|
||||
|
||||
#: fields.py:1291
|
||||
#: fields.py:1302
|
||||
msgid "This selection may not be empty."
|
||||
msgstr "Valinta ei saa olla tyhjä."
|
||||
|
||||
#: fields.py:1328
|
||||
#, python-brace-format
|
||||
#: fields.py:1339
|
||||
msgid "\"{input}\" is not a valid path choice."
|
||||
msgstr "\"{input}\" ei ole kelvollinen polku."
|
||||
|
||||
#: fields.py:1347
|
||||
#: fields.py:1358
|
||||
msgid "No file was submitted."
|
||||
msgstr "Yhtään tiedostoa ei ole lähetetty."
|
||||
|
||||
#: fields.py:1348
|
||||
#: fields.py:1359
|
||||
msgid ""
|
||||
"The submitted data was not a file. Check the encoding type on the form."
|
||||
msgstr "Tiedostoa ei lähetetty. Tarkista lomakkeen koodaus (encoding)."
|
||||
|
||||
#: fields.py:1349
|
||||
#: fields.py:1360
|
||||
msgid "No filename could be determined."
|
||||
msgstr "Tiedostonimeä ei voitu päätellä."
|
||||
|
||||
#: fields.py:1350
|
||||
#: fields.py:1361
|
||||
msgid "The submitted file is empty."
|
||||
msgstr "Lähetetty tiedosto on tyhjä."
|
||||
|
||||
#: fields.py:1351
|
||||
#, python-brace-format
|
||||
#: fields.py:1362
|
||||
msgid ""
|
||||
"Ensure this filename has at most {max_length} characters (it has {length})."
|
||||
msgstr "Varmista että tiedostonimi on enintään {max_length} merkkiä pitkä (nyt {length})."
|
||||
|
||||
#: fields.py:1399
|
||||
#: fields.py:1410
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr "Kuva ei kelpaa. Lähettämäsi tiedosto ei ole kuva, tai tiedosto on vioittunut."
|
||||
|
||||
#: fields.py:1438 relations.py:439 serializers.py:521
|
||||
#: fields.py:1449 relations.py:438 serializers.py:525
|
||||
msgid "This list may not be empty."
|
||||
msgstr "Lista ei saa olla tyhjä."
|
||||
|
||||
#: fields.py:1491
|
||||
#, python-brace-format
|
||||
#: fields.py:1502
|
||||
msgid "Expected a dictionary of items but got type \"{input_type}\"."
|
||||
msgstr "Odotettiin sanakirjaa, saatiin tyyppi {input_type}."
|
||||
|
||||
#: fields.py:1538
|
||||
#: fields.py:1549
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Arvon pitää olla kelvollista JSONia."
|
||||
|
||||
#: filters.py:35 templates/rest_framework/filters/django_filter.html.py:5
|
||||
#: filters.py:36 templates/rest_framework/filters/django_filter.html:5
|
||||
msgid "Submit"
|
||||
msgstr "Lähetä"
|
||||
|
||||
#: pagination.py:189
|
||||
#: filters.py:336
|
||||
msgid "ascending"
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:337
|
||||
msgid "descending"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:193
|
||||
msgid "Invalid page."
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:407
|
||||
#: pagination.py:427
|
||||
msgid "Invalid cursor"
|
||||
msgstr "Epäkelpo kursori"
|
||||
|
||||
#: relations.py:207
|
||||
#, python-brace-format
|
||||
msgid "Invalid pk \"{pk_value}\" - object does not exist."
|
||||
msgstr "Epäkelpo pääavain {pk_value} - objektia ei ole olemassa."
|
||||
|
||||
#: relations.py:208
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected pk value, received {data_type}."
|
||||
msgstr "Väärä tyyppi. Odotettiin pääavainarvoa, saatiin {data_type}."
|
||||
|
||||
|
@ -366,25 +351,22 @@ msgid "Invalid hyperlink - Object does not exist."
|
|||
msgstr "Epäkelpo linkki - objektia ei ole."
|
||||
|
||||
#: relations.py:243
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected URL string, received {data_type}."
|
||||
msgstr "Epäkelpo tyyppi. Odotettiin URL-merkkijonoa, saatiin {data_type}."
|
||||
|
||||
#: relations.py:402
|
||||
#, python-brace-format
|
||||
#: relations.py:401
|
||||
msgid "Object with {slug_name}={value} does not exist."
|
||||
msgstr "Objektia ({slug_name}={value}) ei ole."
|
||||
|
||||
#: relations.py:403
|
||||
#: relations.py:402
|
||||
msgid "Invalid value."
|
||||
msgstr "Epäkelpo arvo."
|
||||
|
||||
#: serializers.py:326
|
||||
#, python-brace-format
|
||||
msgid "Invalid data. Expected a dictionary, but got {datatype}."
|
||||
msgstr "Odotettiin sanakirjaa, saatiin tyyppi {datatype}."
|
||||
|
||||
#: templates/rest_framework/admin.html:118
|
||||
#: templates/rest_framework/admin.html:116
|
||||
#: templates/rest_framework/base.html:128
|
||||
msgid "Filters"
|
||||
msgstr "Suotimet"
|
||||
|
@ -414,27 +396,23 @@ msgstr "Ei mitään"
|
|||
msgid "No items to select."
|
||||
msgstr "Ei valittavia kohteita."
|
||||
|
||||
#: validators.py:24
|
||||
#: validators.py:43
|
||||
msgid "This field must be unique."
|
||||
msgstr "Arvon tulee olla uniikki."
|
||||
|
||||
#: validators.py:78
|
||||
#, python-brace-format
|
||||
#: validators.py:97
|
||||
msgid "The fields {field_names} must make a unique set."
|
||||
msgstr "Kenttien {field_names} tulee muodostaa uniikki joukko."
|
||||
|
||||
#: validators.py:226
|
||||
#, python-brace-format
|
||||
#: validators.py:245
|
||||
msgid "This field must be unique for the \"{date_field}\" date."
|
||||
msgstr "Kentän tulee olla uniikki päivämäärän {date_field} suhteen."
|
||||
|
||||
#: validators.py:241
|
||||
#, python-brace-format
|
||||
#: validators.py:260
|
||||
msgid "This field must be unique for the \"{date_field}\" month."
|
||||
msgstr "Kentän tulee olla uniikki kuukauden {date_field} suhteen."
|
||||
|
||||
#: validators.py:254
|
||||
#, python-brace-format
|
||||
#: validators.py:273
|
||||
msgid "This field must be unique for the \"{date_field}\" year."
|
||||
msgstr "Kentän tulee olla uniikki vuoden {date_field} suhteen."
|
||||
|
||||
|
@ -442,15 +420,19 @@ msgstr "Kentän tulee olla uniikki vuoden {date_field} suhteen."
|
|||
msgid "Invalid version in \"Accept\" header."
|
||||
msgstr "Epäkelpo versio Accept-otsakkeessa."
|
||||
|
||||
#: versioning.py:73 versioning.py:115
|
||||
#: versioning.py:73
|
||||
msgid "Invalid version in URL path."
|
||||
msgstr "Epäkelpo versio URL-polussa."
|
||||
|
||||
#: versioning.py:144
|
||||
#: versioning.py:115
|
||||
msgid "Invalid version in URL path. Does not match any version namespace."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:147
|
||||
msgid "Invalid version in hostname."
|
||||
msgstr "Epäkelpo versio palvelinosoitteessa."
|
||||
|
||||
#: versioning.py:166
|
||||
#: versioning.py:169
|
||||
msgid "Invalid version in query parameter."
|
||||
msgstr "Epäkelpo versio kyselyparametrissa."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -11,9 +11,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Django REST framework\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-01 18:38+0100\n"
|
||||
"PO-Revision-Date: 2016-03-01 17:40+0000\n"
|
||||
"Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
|
||||
"POT-Creation-Date: 2016-07-12 16:13+0100\n"
|
||||
"PO-Revision-Date: 2016-07-12 15:14+0000\n"
|
||||
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n"
|
||||
"Language-Team: French (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -21,40 +21,40 @@ msgstr ""
|
|||
"Language: fr\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: authentication.py:71
|
||||
#: authentication.py:73
|
||||
msgid "Invalid basic header. No credentials provided."
|
||||
msgstr "En-tête « basic » non valide. Informations d'identification non fournies."
|
||||
|
||||
#: authentication.py:74
|
||||
#: authentication.py:76
|
||||
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."
|
||||
|
||||
#: authentication.py:80
|
||||
#: authentication.py:82
|
||||
msgid "Invalid basic header. Credentials not correctly base64 encoded."
|
||||
msgstr "En-tête « basic » non valide. Encodage base64 des informations d'identification incorrect."
|
||||
|
||||
#: authentication.py:97
|
||||
#: authentication.py:99
|
||||
msgid "Invalid username/password."
|
||||
msgstr "Nom d'utilisateur et/ou mot de passe non valide(s)."
|
||||
|
||||
#: authentication.py:100 authentication.py:195
|
||||
#: authentication.py:102 authentication.py:198
|
||||
msgid "User inactive or deleted."
|
||||
msgstr "Utilisateur inactif ou supprimé."
|
||||
|
||||
#: authentication.py:173
|
||||
#: authentication.py:176
|
||||
msgid "Invalid token header. No credentials provided."
|
||||
msgstr "En-tête « token » non valide. Informations d'identification non fournies."
|
||||
|
||||
#: authentication.py:176
|
||||
#: authentication.py:179
|
||||
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."
|
||||
|
||||
#: authentication.py:182
|
||||
#: authentication.py:185
|
||||
msgid ""
|
||||
"Invalid token header. Token string should not contain invalid characters."
|
||||
msgstr "En-tête « token » non valide. Un token ne doit pas contenir de caractères invalides."
|
||||
|
||||
#: authentication.py:192
|
||||
#: authentication.py:195
|
||||
msgid "Invalid token."
|
||||
msgstr "Token non valide."
|
||||
|
||||
|
@ -62,23 +62,23 @@ msgstr "Token non valide."
|
|||
msgid "Auth Token"
|
||||
msgstr "Jeton d'authentification"
|
||||
|
||||
#: authtoken/models.py:21
|
||||
#: authtoken/models.py:15
|
||||
msgid "Key"
|
||||
msgstr "Clef"
|
||||
|
||||
#: authtoken/models.py:23
|
||||
#: authtoken/models.py:18
|
||||
msgid "User"
|
||||
msgstr "Utilisateur"
|
||||
|
||||
#: authtoken/models.py:24
|
||||
#: authtoken/models.py:20
|
||||
msgid "Created"
|
||||
msgstr "Création"
|
||||
|
||||
#: authtoken/models.py:33
|
||||
#: authtoken/models.py:29
|
||||
msgid "Token"
|
||||
msgstr "Jeton"
|
||||
|
||||
#: authtoken/models.py:34
|
||||
#: authtoken/models.py:30
|
||||
msgid "Tokens"
|
||||
msgstr "Jetons"
|
||||
|
||||
|
@ -127,7 +127,6 @@ msgid "Not found."
|
|||
msgstr "Pas trouvé."
|
||||
|
||||
#: exceptions.py:109
|
||||
#, python-brace-format
|
||||
msgid "Method \"{method}\" not allowed."
|
||||
msgstr "Méthode \"{method}\" non autorisée."
|
||||
|
||||
|
@ -136,7 +135,6 @@ msgid "Could not satisfy the request Accept header."
|
|||
msgstr "L'en-tête « Accept » n'a pas pu être satisfaite."
|
||||
|
||||
#: exceptions.py:132
|
||||
#, python-brace-format
|
||||
msgid "Unsupported media type \"{media_type}\" in request."
|
||||
msgstr "Type de média \"{media_type}\" non supporté."
|
||||
|
||||
|
@ -144,214 +142,201 @@ msgstr "Type de média \"{media_type}\" non supporté."
|
|||
msgid "Request was throttled."
|
||||
msgstr "Requête ralentie."
|
||||
|
||||
#: fields.py:266 relations.py:206 relations.py:239 validators.py:79
|
||||
#: validators.py:162
|
||||
#: fields.py:269 relations.py:206 relations.py:239 validators.py:98
|
||||
#: validators.py:181
|
||||
msgid "This field is required."
|
||||
msgstr "Ce champ est obligatoire."
|
||||
|
||||
#: fields.py:267
|
||||
#: fields.py:270
|
||||
msgid "This field may not be null."
|
||||
msgstr "Ce champ ne peut être nul."
|
||||
|
||||
#: fields.py:603 fields.py:634
|
||||
#, python-brace-format
|
||||
#: fields.py:608 fields.py:639
|
||||
msgid "\"{input}\" is not a valid boolean."
|
||||
msgstr "\"{input}\" n'est pas un booléen valide."
|
||||
|
||||
#: fields.py:669
|
||||
#: fields.py:674
|
||||
msgid "This field may not be blank."
|
||||
msgstr "Ce champ ne peut être vide."
|
||||
|
||||
#: fields.py:670 fields.py:1664
|
||||
#, python-brace-format
|
||||
#: fields.py:675 fields.py:1675
|
||||
msgid "Ensure this field has no more than {max_length} characters."
|
||||
msgstr "Assurez-vous que ce champ comporte au plus {max_length} caractères."
|
||||
|
||||
#: fields.py:671
|
||||
#, python-brace-format
|
||||
#: fields.py:676
|
||||
msgid "Ensure this field has at least {min_length} characters."
|
||||
msgstr "Assurez-vous que ce champ comporte au moins {min_length} caractères."
|
||||
|
||||
#: fields.py:708
|
||||
#: fields.py:713
|
||||
msgid "Enter a valid email address."
|
||||
msgstr "Saisissez une adresse email valable."
|
||||
|
||||
#: fields.py:719
|
||||
#: fields.py:724
|
||||
msgid "This value does not match the required pattern."
|
||||
msgstr "Cette valeur ne satisfait pas le motif imposé."
|
||||
|
||||
#: fields.py:730
|
||||
#: fields.py:735
|
||||
msgid ""
|
||||
"Enter a valid \"slug\" consisting of letters, numbers, underscores or "
|
||||
"hyphens."
|
||||
msgstr "Ce champ ne doit contenir que des lettres, des nombres, des tirets bas _ et des traits d'union."
|
||||
|
||||
#: fields.py:742
|
||||
#: fields.py:747
|
||||
msgid "Enter a valid URL."
|
||||
msgstr "Saisissez une URL valide."
|
||||
|
||||
#: fields.py:755
|
||||
#, python-brace-format
|
||||
#: fields.py:760
|
||||
msgid "\"{value}\" is not a valid UUID."
|
||||
msgstr "\"{value}\" n'est pas un UUID valide."
|
||||
|
||||
#: fields.py:791
|
||||
#: fields.py:796
|
||||
msgid "Enter a valid IPv4 or IPv6 address."
|
||||
msgstr "Saisissez une adresse IPv4 ou IPv6 valide."
|
||||
|
||||
#: fields.py:816
|
||||
#: fields.py:821
|
||||
msgid "A valid integer is required."
|
||||
msgstr "Un nombre entier valide est requis."
|
||||
|
||||
#: fields.py:817 fields.py:852 fields.py:885
|
||||
#, python-brace-format
|
||||
#: fields.py:822 fields.py:857 fields.py:891
|
||||
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}."
|
||||
|
||||
#: fields.py:818 fields.py:853 fields.py:886
|
||||
#, python-brace-format
|
||||
#: fields.py:823 fields.py:858 fields.py:892
|
||||
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}."
|
||||
|
||||
#: fields.py:819 fields.py:854 fields.py:890
|
||||
#: fields.py:824 fields.py:859 fields.py:896
|
||||
msgid "String value too large."
|
||||
msgstr "Chaîne de caractères trop longue."
|
||||
|
||||
#: fields.py:851 fields.py:884
|
||||
#: fields.py:856 fields.py:890
|
||||
msgid "A valid number is required."
|
||||
msgstr "Un nombre valide est requis."
|
||||
|
||||
#: fields.py:887
|
||||
#, python-brace-format
|
||||
#: fields.py:893
|
||||
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."
|
||||
|
||||
#: fields.py:888
|
||||
#, python-brace-format
|
||||
#: fields.py:894
|
||||
msgid ""
|
||||
"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."
|
||||
|
||||
#: fields.py:889
|
||||
#, python-brace-format
|
||||
#: fields.py:895
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_whole_digits} digits before the "
|
||||
"decimal point."
|
||||
msgstr "Assurez-vous qu'il n'y a pas plus de {max_whole_digits} chiffres avant la virgule."
|
||||
|
||||
#: fields.py:1004
|
||||
#, python-brace-format
|
||||
#: fields.py:1025
|
||||
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}."
|
||||
|
||||
#: fields.py:1005
|
||||
#: fields.py:1026
|
||||
msgid "Expected a datetime but got a date."
|
||||
msgstr "Attendait une date + heure mais a reçu une date."
|
||||
|
||||
#: fields.py:1082
|
||||
#, python-brace-format
|
||||
#: fields.py:1103
|
||||
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}."
|
||||
|
||||
#: fields.py:1083
|
||||
#: fields.py:1104
|
||||
msgid "Expected a date but got a datetime."
|
||||
msgstr "Attendait une date mais a reçu une date + heure."
|
||||
|
||||
#: fields.py:1151
|
||||
#, python-brace-format
|
||||
#: fields.py:1170
|
||||
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}."
|
||||
|
||||
#: fields.py:1215
|
||||
#, python-brace-format
|
||||
#: fields.py:1232
|
||||
msgid "Duration has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr "La durée n'a pas le bon format. Utilisez l'un des formats suivants: {format}."
|
||||
|
||||
#: fields.py:1240 fields.py:1289
|
||||
#, python-brace-format
|
||||
#: fields.py:1251 fields.py:1300
|
||||
msgid "\"{input}\" is not a valid choice."
|
||||
msgstr "\"{input}\" n'est pas un choix valide."
|
||||
|
||||
#: fields.py:1243 relations.py:71 relations.py:442
|
||||
#, python-brace-format
|
||||
#: fields.py:1254 relations.py:71 relations.py:441
|
||||
msgid "More than {count} items..."
|
||||
msgstr "Plus de {count} éléments..."
|
||||
|
||||
#: fields.py:1290 fields.py:1437 relations.py:438 serializers.py:520
|
||||
#, python-brace-format
|
||||
#: fields.py:1301 fields.py:1448 relations.py:437 serializers.py:524
|
||||
msgid "Expected a list of items but got type \"{input_type}\"."
|
||||
msgstr "Attendait une liste d'éléments mais a reçu \"{input_type}\"."
|
||||
|
||||
#: fields.py:1291
|
||||
#: fields.py:1302
|
||||
msgid "This selection may not be empty."
|
||||
msgstr "Cette sélection ne peut être vide."
|
||||
|
||||
#: fields.py:1328
|
||||
#, python-brace-format
|
||||
#: fields.py:1339
|
||||
msgid "\"{input}\" is not a valid path choice."
|
||||
msgstr "\"{input}\" n'est pas un choix de chemin valide."
|
||||
|
||||
#: fields.py:1347
|
||||
#: fields.py:1358
|
||||
msgid "No file was submitted."
|
||||
msgstr "Aucun fichier n'a été soumis."
|
||||
|
||||
#: fields.py:1348
|
||||
#: fields.py:1359
|
||||
msgid ""
|
||||
"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."
|
||||
|
||||
#: fields.py:1349
|
||||
#: fields.py:1360
|
||||
msgid "No filename could be determined."
|
||||
msgstr "Le nom de fichier n'a pu être déterminé."
|
||||
|
||||
#: fields.py:1350
|
||||
#: fields.py:1361
|
||||
msgid "The submitted file is empty."
|
||||
msgstr "Le fichier soumis est vide."
|
||||
|
||||
#: fields.py:1351
|
||||
#, python-brace-format
|
||||
#: fields.py:1362
|
||||
msgid ""
|
||||
"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})."
|
||||
|
||||
#: fields.py:1399
|
||||
#: fields.py:1410
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr "Transférez une image valide. Le fichier que vous avez transféré n'est pas une image, ou il est corrompu."
|
||||
|
||||
#: fields.py:1438 relations.py:439 serializers.py:521
|
||||
#: fields.py:1449 relations.py:438 serializers.py:525
|
||||
msgid "This list may not be empty."
|
||||
msgstr "Cette liste ne peut pas être vide."
|
||||
|
||||
#: fields.py:1491
|
||||
#, python-brace-format
|
||||
#: fields.py:1502
|
||||
msgid "Expected a dictionary of items but got type \"{input_type}\"."
|
||||
msgstr "Attendait un dictionnaire d'éléments mais a reçu \"{input_type}\"."
|
||||
|
||||
#: fields.py:1538
|
||||
#: fields.py:1549
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "La valeur doit être un JSON valide."
|
||||
|
||||
#: filters.py:35 templates/rest_framework/filters/django_filter.html.py:5
|
||||
#: filters.py:36 templates/rest_framework/filters/django_filter.html:5
|
||||
msgid "Submit"
|
||||
msgstr "Envoyer"
|
||||
|
||||
#: pagination.py:189
|
||||
#: filters.py:336
|
||||
msgid "ascending"
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:337
|
||||
msgid "descending"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:193
|
||||
msgid "Invalid page."
|
||||
msgstr "Page invalide."
|
||||
|
||||
#: pagination.py:407
|
||||
#: pagination.py:427
|
||||
msgid "Invalid cursor"
|
||||
msgstr "Curseur non valide"
|
||||
|
||||
#: relations.py:207
|
||||
#, python-brace-format
|
||||
msgid "Invalid pk \"{pk_value}\" - object does not exist."
|
||||
msgstr "Clé primaire \"{pk_value}\" non valide - l'objet n'existe pas."
|
||||
|
||||
#: relations.py:208
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected pk value, received {data_type}."
|
||||
msgstr "Type incorrect. Attendait une clé primaire, a reçu {data_type}."
|
||||
|
||||
|
@ -368,25 +353,22 @@ msgid "Invalid hyperlink - Object does not exist."
|
|||
msgstr "Lien non valide : l'objet n'existe pas."
|
||||
|
||||
#: relations.py:243
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected URL string, received {data_type}."
|
||||
msgstr "Type incorrect. Attendait une URL, a reçu {data_type}."
|
||||
|
||||
#: relations.py:402
|
||||
#, python-brace-format
|
||||
#: relations.py:401
|
||||
msgid "Object with {slug_name}={value} does not exist."
|
||||
msgstr "L'object avec {slug_name}={value} n'existe pas."
|
||||
|
||||
#: relations.py:403
|
||||
#: relations.py:402
|
||||
msgid "Invalid value."
|
||||
msgstr "Valeur non valide."
|
||||
|
||||
#: serializers.py:326
|
||||
#, python-brace-format
|
||||
msgid "Invalid data. Expected a dictionary, but got {datatype}."
|
||||
msgstr "Donnée non valide. Attendait un dictionnaire, a reçu {datatype}."
|
||||
|
||||
#: templates/rest_framework/admin.html:118
|
||||
#: templates/rest_framework/admin.html:116
|
||||
#: templates/rest_framework/base.html:128
|
||||
msgid "Filters"
|
||||
msgstr "Filtres"
|
||||
|
@ -416,27 +398,23 @@ msgstr "Aucune"
|
|||
msgid "No items to select."
|
||||
msgstr "Aucun élément à sélectionner."
|
||||
|
||||
#: validators.py:24
|
||||
#: validators.py:43
|
||||
msgid "This field must be unique."
|
||||
msgstr "Ce champ doit être unique."
|
||||
|
||||
#: validators.py:78
|
||||
#, python-brace-format
|
||||
#: validators.py:97
|
||||
msgid "The fields {field_names} must make a unique set."
|
||||
msgstr "Les champs {field_names} doivent former un ensemble unique."
|
||||
|
||||
#: validators.py:226
|
||||
#, python-brace-format
|
||||
#: validators.py:245
|
||||
msgid "This field must be unique for the \"{date_field}\" date."
|
||||
msgstr "Ce champ doit être unique pour la date \"{date_field}\"."
|
||||
|
||||
#: validators.py:241
|
||||
#, python-brace-format
|
||||
#: validators.py:260
|
||||
msgid "This field must be unique for the \"{date_field}\" month."
|
||||
msgstr "Ce champ doit être unique pour le mois \"{date_field}\"."
|
||||
|
||||
#: validators.py:254
|
||||
#, python-brace-format
|
||||
#: validators.py:273
|
||||
msgid "This field must be unique for the \"{date_field}\" year."
|
||||
msgstr "Ce champ doit être unique pour l'année \"{date_field}\"."
|
||||
|
||||
|
@ -444,15 +422,19 @@ msgstr "Ce champ doit être unique pour l'année \"{date_field}\"."
|
|||
msgid "Invalid version in \"Accept\" header."
|
||||
msgstr "Version non valide dans l'en-tête « Accept »."
|
||||
|
||||
#: versioning.py:73 versioning.py:115
|
||||
#: versioning.py:73
|
||||
msgid "Invalid version in URL path."
|
||||
msgstr "Version non valide dans l'URL."
|
||||
|
||||
#: versioning.py:144
|
||||
#: versioning.py:115
|
||||
msgid "Invalid version in URL path. Does not match any version namespace."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:147
|
||||
msgid "Invalid version in hostname."
|
||||
msgstr "Version non valide dans le nom d'hôte."
|
||||
|
||||
#: versioning.py:166
|
||||
#: versioning.py:169
|
||||
msgid "Invalid version in query parameter."
|
||||
msgstr "Version non valide dans le paramètre de requête."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -7,9 +7,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Django REST framework\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-01 18:38+0100\n"
|
||||
"PO-Revision-Date: 2016-03-01 17:38+0000\n"
|
||||
"Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
|
||||
"POT-Creation-Date: 2016-07-12 16:13+0100\n"
|
||||
"PO-Revision-Date: 2016-07-12 15:14+0000\n"
|
||||
"Last-Translator: Thomas Christie <tom@tomchristie.com>\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"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -17,40 +17,40 @@ msgstr ""
|
|||
"Language: fr_CA\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: authentication.py:71
|
||||
#: authentication.py:73
|
||||
msgid "Invalid basic header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:74
|
||||
#: authentication.py:76
|
||||
msgid "Invalid basic header. Credentials string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:80
|
||||
#: authentication.py:82
|
||||
msgid "Invalid basic header. Credentials not correctly base64 encoded."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:97
|
||||
#: authentication.py:99
|
||||
msgid "Invalid username/password."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:100 authentication.py:195
|
||||
#: authentication.py:102 authentication.py:198
|
||||
msgid "User inactive or deleted."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:173
|
||||
#: authentication.py:176
|
||||
msgid "Invalid token header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:176
|
||||
#: authentication.py:179
|
||||
msgid "Invalid token header. Token string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:182
|
||||
#: authentication.py:185
|
||||
msgid ""
|
||||
"Invalid token header. Token string should not contain invalid characters."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:192
|
||||
#: authentication.py:195
|
||||
msgid "Invalid token."
|
||||
msgstr ""
|
||||
|
||||
|
@ -58,23 +58,23 @@ msgstr ""
|
|||
msgid "Auth Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:21
|
||||
#: authtoken/models.py:15
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:23
|
||||
#: authtoken/models.py:18
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:24
|
||||
#: authtoken/models.py:20
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:33
|
||||
#: authtoken/models.py:29
|
||||
msgid "Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:34
|
||||
#: authtoken/models.py:30
|
||||
msgid "Tokens"
|
||||
msgstr ""
|
||||
|
||||
|
@ -123,7 +123,6 @@ msgid "Not found."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:109
|
||||
#, python-brace-format
|
||||
msgid "Method \"{method}\" not allowed."
|
||||
msgstr ""
|
||||
|
||||
|
@ -132,7 +131,6 @@ msgid "Could not satisfy the request Accept header."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:132
|
||||
#, python-brace-format
|
||||
msgid "Unsupported media type \"{media_type}\" in request."
|
||||
msgstr ""
|
||||
|
||||
|
@ -140,214 +138,201 @@ msgstr ""
|
|||
msgid "Request was throttled."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:266 relations.py:206 relations.py:239 validators.py:79
|
||||
#: validators.py:162
|
||||
#: fields.py:269 relations.py:206 relations.py:239 validators.py:98
|
||||
#: validators.py:181
|
||||
msgid "This field is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:267
|
||||
#: fields.py:270
|
||||
msgid "This field may not be null."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:603 fields.py:634
|
||||
#, python-brace-format
|
||||
#: fields.py:608 fields.py:639
|
||||
msgid "\"{input}\" is not a valid boolean."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:669
|
||||
#: fields.py:674
|
||||
msgid "This field may not be blank."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:670 fields.py:1664
|
||||
#, python-brace-format
|
||||
#: fields.py:675 fields.py:1675
|
||||
msgid "Ensure this field has no more than {max_length} characters."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:671
|
||||
#, python-brace-format
|
||||
#: fields.py:676
|
||||
msgid "Ensure this field has at least {min_length} characters."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:708
|
||||
#: fields.py:713
|
||||
msgid "Enter a valid email address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:719
|
||||
#: fields.py:724
|
||||
msgid "This value does not match the required pattern."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:730
|
||||
#: fields.py:735
|
||||
msgid ""
|
||||
"Enter a valid \"slug\" consisting of letters, numbers, underscores or "
|
||||
"hyphens."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:742
|
||||
#: fields.py:747
|
||||
msgid "Enter a valid URL."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:755
|
||||
#, python-brace-format
|
||||
#: fields.py:760
|
||||
msgid "\"{value}\" is not a valid UUID."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:791
|
||||
#: fields.py:796
|
||||
msgid "Enter a valid IPv4 or IPv6 address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:816
|
||||
#: fields.py:821
|
||||
msgid "A valid integer is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:817 fields.py:852 fields.py:885
|
||||
#, python-brace-format
|
||||
#: fields.py:822 fields.py:857 fields.py:891
|
||||
msgid "Ensure this value is less than or equal to {max_value}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:818 fields.py:853 fields.py:886
|
||||
#, python-brace-format
|
||||
#: fields.py:823 fields.py:858 fields.py:892
|
||||
msgid "Ensure this value is greater than or equal to {min_value}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:819 fields.py:854 fields.py:890
|
||||
#: fields.py:824 fields.py:859 fields.py:896
|
||||
msgid "String value too large."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:851 fields.py:884
|
||||
#: fields.py:856 fields.py:890
|
||||
msgid "A valid number is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:887
|
||||
#, python-brace-format
|
||||
#: fields.py:893
|
||||
msgid "Ensure that there are no more than {max_digits} digits in total."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:888
|
||||
#, python-brace-format
|
||||
#: fields.py:894
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_decimal_places} decimal places."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:889
|
||||
#, python-brace-format
|
||||
#: fields.py:895
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_whole_digits} digits before the "
|
||||
"decimal point."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1004
|
||||
#, python-brace-format
|
||||
#: fields.py:1025
|
||||
msgid "Datetime has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1005
|
||||
#: fields.py:1026
|
||||
msgid "Expected a datetime but got a date."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1082
|
||||
#, python-brace-format
|
||||
#: fields.py:1103
|
||||
msgid "Date has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1083
|
||||
#: fields.py:1104
|
||||
msgid "Expected a date but got a datetime."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1151
|
||||
#, python-brace-format
|
||||
#: fields.py:1170
|
||||
msgid "Time has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1215
|
||||
#, python-brace-format
|
||||
#: fields.py:1232
|
||||
msgid "Duration has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1240 fields.py:1289
|
||||
#, python-brace-format
|
||||
#: fields.py:1251 fields.py:1300
|
||||
msgid "\"{input}\" is not a valid choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1243 relations.py:71 relations.py:442
|
||||
#, python-brace-format
|
||||
#: fields.py:1254 relations.py:71 relations.py:441
|
||||
msgid "More than {count} items..."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1290 fields.py:1437 relations.py:438 serializers.py:520
|
||||
#, python-brace-format
|
||||
#: fields.py:1301 fields.py:1448 relations.py:437 serializers.py:524
|
||||
msgid "Expected a list of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1291
|
||||
#: fields.py:1302
|
||||
msgid "This selection may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1328
|
||||
#, python-brace-format
|
||||
#: fields.py:1339
|
||||
msgid "\"{input}\" is not a valid path choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1347
|
||||
#: fields.py:1358
|
||||
msgid "No file was submitted."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1348
|
||||
#: fields.py:1359
|
||||
msgid ""
|
||||
"The submitted data was not a file. Check the encoding type on the form."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1349
|
||||
#: fields.py:1360
|
||||
msgid "No filename could be determined."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1350
|
||||
#: fields.py:1361
|
||||
msgid "The submitted file is empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1351
|
||||
#, python-brace-format
|
||||
#: fields.py:1362
|
||||
msgid ""
|
||||
"Ensure this filename has at most {max_length} characters (it has {length})."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1399
|
||||
#: fields.py:1410
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1438 relations.py:439 serializers.py:521
|
||||
#: fields.py:1449 relations.py:438 serializers.py:525
|
||||
msgid "This list may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1491
|
||||
#, python-brace-format
|
||||
#: fields.py:1502
|
||||
msgid "Expected a dictionary of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1538
|
||||
#: fields.py:1549
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:35 templates/rest_framework/filters/django_filter.html.py:5
|
||||
#: filters.py:36 templates/rest_framework/filters/django_filter.html:5
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:189
|
||||
#: filters.py:336
|
||||
msgid "ascending"
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:337
|
||||
msgid "descending"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:193
|
||||
msgid "Invalid page."
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:407
|
||||
#: pagination.py:427
|
||||
msgid "Invalid cursor"
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:207
|
||||
#, python-brace-format
|
||||
msgid "Invalid pk \"{pk_value}\" - object does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:208
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected pk value, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
|
@ -364,25 +349,22 @@ msgid "Invalid hyperlink - Object does not exist."
|
|||
msgstr ""
|
||||
|
||||
#: relations.py:243
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected URL string, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:402
|
||||
#, python-brace-format
|
||||
#: relations.py:401
|
||||
msgid "Object with {slug_name}={value} does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:403
|
||||
#: relations.py:402
|
||||
msgid "Invalid value."
|
||||
msgstr ""
|
||||
|
||||
#: serializers.py:326
|
||||
#, python-brace-format
|
||||
msgid "Invalid data. Expected a dictionary, but got {datatype}."
|
||||
msgstr ""
|
||||
|
||||
#: templates/rest_framework/admin.html:118
|
||||
#: templates/rest_framework/admin.html:116
|
||||
#: templates/rest_framework/base.html:128
|
||||
msgid "Filters"
|
||||
msgstr ""
|
||||
|
@ -412,27 +394,23 @@ msgstr ""
|
|||
msgid "No items to select."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:24
|
||||
#: validators.py:43
|
||||
msgid "This field must be unique."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:78
|
||||
#, python-brace-format
|
||||
#: validators.py:97
|
||||
msgid "The fields {field_names} must make a unique set."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:226
|
||||
#, python-brace-format
|
||||
#: validators.py:245
|
||||
msgid "This field must be unique for the \"{date_field}\" date."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:241
|
||||
#, python-brace-format
|
||||
#: validators.py:260
|
||||
msgid "This field must be unique for the \"{date_field}\" month."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:254
|
||||
#, python-brace-format
|
||||
#: validators.py:273
|
||||
msgid "This field must be unique for the \"{date_field}\" year."
|
||||
msgstr ""
|
||||
|
||||
|
@ -440,15 +418,19 @@ msgstr ""
|
|||
msgid "Invalid version in \"Accept\" header."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:73 versioning.py:115
|
||||
#: versioning.py:73
|
||||
msgid "Invalid version in URL path."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:144
|
||||
#: versioning.py:115
|
||||
msgid "Invalid version in URL path. Does not match any version namespace."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:147
|
||||
msgid "Invalid version in hostname."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:166
|
||||
#: versioning.py:169
|
||||
msgid "Invalid version in query parameter."
|
||||
msgstr ""
|
||||
|
||||
|
|
Binary file not shown.
|
@ -7,9 +7,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Django REST framework\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-01 18:38+0100\n"
|
||||
"PO-Revision-Date: 2016-03-01 17:38+0000\n"
|
||||
"Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
|
||||
"POT-Creation-Date: 2016-07-12 16:13+0100\n"
|
||||
"PO-Revision-Date: 2016-07-12 15:14+0000\n"
|
||||
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n"
|
||||
"Language-Team: Galician (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/gl/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -17,40 +17,40 @@ msgstr ""
|
|||
"Language: gl\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: authentication.py:71
|
||||
#: authentication.py:73
|
||||
msgid "Invalid basic header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:74
|
||||
#: authentication.py:76
|
||||
msgid "Invalid basic header. Credentials string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:80
|
||||
#: authentication.py:82
|
||||
msgid "Invalid basic header. Credentials not correctly base64 encoded."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:97
|
||||
#: authentication.py:99
|
||||
msgid "Invalid username/password."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:100 authentication.py:195
|
||||
#: authentication.py:102 authentication.py:198
|
||||
msgid "User inactive or deleted."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:173
|
||||
#: authentication.py:176
|
||||
msgid "Invalid token header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:176
|
||||
#: authentication.py:179
|
||||
msgid "Invalid token header. Token string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:182
|
||||
#: authentication.py:185
|
||||
msgid ""
|
||||
"Invalid token header. Token string should not contain invalid characters."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:192
|
||||
#: authentication.py:195
|
||||
msgid "Invalid token."
|
||||
msgstr ""
|
||||
|
||||
|
@ -58,23 +58,23 @@ msgstr ""
|
|||
msgid "Auth Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:21
|
||||
#: authtoken/models.py:15
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:23
|
||||
#: authtoken/models.py:18
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:24
|
||||
#: authtoken/models.py:20
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:33
|
||||
#: authtoken/models.py:29
|
||||
msgid "Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:34
|
||||
#: authtoken/models.py:30
|
||||
msgid "Tokens"
|
||||
msgstr ""
|
||||
|
||||
|
@ -123,7 +123,6 @@ msgid "Not found."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:109
|
||||
#, python-brace-format
|
||||
msgid "Method \"{method}\" not allowed."
|
||||
msgstr ""
|
||||
|
||||
|
@ -132,7 +131,6 @@ msgid "Could not satisfy the request Accept header."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:132
|
||||
#, python-brace-format
|
||||
msgid "Unsupported media type \"{media_type}\" in request."
|
||||
msgstr ""
|
||||
|
||||
|
@ -140,214 +138,201 @@ msgstr ""
|
|||
msgid "Request was throttled."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:266 relations.py:206 relations.py:239 validators.py:79
|
||||
#: validators.py:162
|
||||
#: fields.py:269 relations.py:206 relations.py:239 validators.py:98
|
||||
#: validators.py:181
|
||||
msgid "This field is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:267
|
||||
#: fields.py:270
|
||||
msgid "This field may not be null."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:603 fields.py:634
|
||||
#, python-brace-format
|
||||
#: fields.py:608 fields.py:639
|
||||
msgid "\"{input}\" is not a valid boolean."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:669
|
||||
#: fields.py:674
|
||||
msgid "This field may not be blank."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:670 fields.py:1664
|
||||
#, python-brace-format
|
||||
#: fields.py:675 fields.py:1675
|
||||
msgid "Ensure this field has no more than {max_length} characters."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:671
|
||||
#, python-brace-format
|
||||
#: fields.py:676
|
||||
msgid "Ensure this field has at least {min_length} characters."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:708
|
||||
#: fields.py:713
|
||||
msgid "Enter a valid email address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:719
|
||||
#: fields.py:724
|
||||
msgid "This value does not match the required pattern."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:730
|
||||
#: fields.py:735
|
||||
msgid ""
|
||||
"Enter a valid \"slug\" consisting of letters, numbers, underscores or "
|
||||
"hyphens."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:742
|
||||
#: fields.py:747
|
||||
msgid "Enter a valid URL."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:755
|
||||
#, python-brace-format
|
||||
#: fields.py:760
|
||||
msgid "\"{value}\" is not a valid UUID."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:791
|
||||
#: fields.py:796
|
||||
msgid "Enter a valid IPv4 or IPv6 address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:816
|
||||
#: fields.py:821
|
||||
msgid "A valid integer is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:817 fields.py:852 fields.py:885
|
||||
#, python-brace-format
|
||||
#: fields.py:822 fields.py:857 fields.py:891
|
||||
msgid "Ensure this value is less than or equal to {max_value}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:818 fields.py:853 fields.py:886
|
||||
#, python-brace-format
|
||||
#: fields.py:823 fields.py:858 fields.py:892
|
||||
msgid "Ensure this value is greater than or equal to {min_value}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:819 fields.py:854 fields.py:890
|
||||
#: fields.py:824 fields.py:859 fields.py:896
|
||||
msgid "String value too large."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:851 fields.py:884
|
||||
#: fields.py:856 fields.py:890
|
||||
msgid "A valid number is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:887
|
||||
#, python-brace-format
|
||||
#: fields.py:893
|
||||
msgid "Ensure that there are no more than {max_digits} digits in total."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:888
|
||||
#, python-brace-format
|
||||
#: fields.py:894
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_decimal_places} decimal places."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:889
|
||||
#, python-brace-format
|
||||
#: fields.py:895
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_whole_digits} digits before the "
|
||||
"decimal point."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1004
|
||||
#, python-brace-format
|
||||
#: fields.py:1025
|
||||
msgid "Datetime has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1005
|
||||
#: fields.py:1026
|
||||
msgid "Expected a datetime but got a date."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1082
|
||||
#, python-brace-format
|
||||
#: fields.py:1103
|
||||
msgid "Date has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1083
|
||||
#: fields.py:1104
|
||||
msgid "Expected a date but got a datetime."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1151
|
||||
#, python-brace-format
|
||||
#: fields.py:1170
|
||||
msgid "Time has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1215
|
||||
#, python-brace-format
|
||||
#: fields.py:1232
|
||||
msgid "Duration has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1240 fields.py:1289
|
||||
#, python-brace-format
|
||||
#: fields.py:1251 fields.py:1300
|
||||
msgid "\"{input}\" is not a valid choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1243 relations.py:71 relations.py:442
|
||||
#, python-brace-format
|
||||
#: fields.py:1254 relations.py:71 relations.py:441
|
||||
msgid "More than {count} items..."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1290 fields.py:1437 relations.py:438 serializers.py:520
|
||||
#, python-brace-format
|
||||
#: fields.py:1301 fields.py:1448 relations.py:437 serializers.py:524
|
||||
msgid "Expected a list of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1291
|
||||
#: fields.py:1302
|
||||
msgid "This selection may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1328
|
||||
#, python-brace-format
|
||||
#: fields.py:1339
|
||||
msgid "\"{input}\" is not a valid path choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1347
|
||||
#: fields.py:1358
|
||||
msgid "No file was submitted."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1348
|
||||
#: fields.py:1359
|
||||
msgid ""
|
||||
"The submitted data was not a file. Check the encoding type on the form."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1349
|
||||
#: fields.py:1360
|
||||
msgid "No filename could be determined."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1350
|
||||
#: fields.py:1361
|
||||
msgid "The submitted file is empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1351
|
||||
#, python-brace-format
|
||||
#: fields.py:1362
|
||||
msgid ""
|
||||
"Ensure this filename has at most {max_length} characters (it has {length})."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1399
|
||||
#: fields.py:1410
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1438 relations.py:439 serializers.py:521
|
||||
#: fields.py:1449 relations.py:438 serializers.py:525
|
||||
msgid "This list may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1491
|
||||
#, python-brace-format
|
||||
#: fields.py:1502
|
||||
msgid "Expected a dictionary of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1538
|
||||
#: fields.py:1549
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:35 templates/rest_framework/filters/django_filter.html.py:5
|
||||
#: filters.py:36 templates/rest_framework/filters/django_filter.html:5
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:189
|
||||
#: filters.py:336
|
||||
msgid "ascending"
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:337
|
||||
msgid "descending"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:193
|
||||
msgid "Invalid page."
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:407
|
||||
#: pagination.py:427
|
||||
msgid "Invalid cursor"
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:207
|
||||
#, python-brace-format
|
||||
msgid "Invalid pk \"{pk_value}\" - object does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:208
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected pk value, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
|
@ -364,25 +349,22 @@ msgid "Invalid hyperlink - Object does not exist."
|
|||
msgstr ""
|
||||
|
||||
#: relations.py:243
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected URL string, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:402
|
||||
#, python-brace-format
|
||||
#: relations.py:401
|
||||
msgid "Object with {slug_name}={value} does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:403
|
||||
#: relations.py:402
|
||||
msgid "Invalid value."
|
||||
msgstr ""
|
||||
|
||||
#: serializers.py:326
|
||||
#, python-brace-format
|
||||
msgid "Invalid data. Expected a dictionary, but got {datatype}."
|
||||
msgstr ""
|
||||
|
||||
#: templates/rest_framework/admin.html:118
|
||||
#: templates/rest_framework/admin.html:116
|
||||
#: templates/rest_framework/base.html:128
|
||||
msgid "Filters"
|
||||
msgstr ""
|
||||
|
@ -412,27 +394,23 @@ msgstr ""
|
|||
msgid "No items to select."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:24
|
||||
#: validators.py:43
|
||||
msgid "This field must be unique."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:78
|
||||
#, python-brace-format
|
||||
#: validators.py:97
|
||||
msgid "The fields {field_names} must make a unique set."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:226
|
||||
#, python-brace-format
|
||||
#: validators.py:245
|
||||
msgid "This field must be unique for the \"{date_field}\" date."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:241
|
||||
#, python-brace-format
|
||||
#: validators.py:260
|
||||
msgid "This field must be unique for the \"{date_field}\" month."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:254
|
||||
#, python-brace-format
|
||||
#: validators.py:273
|
||||
msgid "This field must be unique for the \"{date_field}\" year."
|
||||
msgstr ""
|
||||
|
||||
|
@ -440,15 +418,19 @@ msgstr ""
|
|||
msgid "Invalid version in \"Accept\" header."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:73 versioning.py:115
|
||||
#: versioning.py:73
|
||||
msgid "Invalid version in URL path."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:144
|
||||
#: versioning.py:115
|
||||
msgid "Invalid version in URL path. Does not match any version namespace."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:147
|
||||
msgid "Invalid version in hostname."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:166
|
||||
#: versioning.py:169
|
||||
msgid "Invalid version in query parameter."
|
||||
msgstr ""
|
||||
|
||||
|
|
Binary file not shown.
|
@ -8,9 +8,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Django REST framework\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-01 18:38+0100\n"
|
||||
"PO-Revision-Date: 2016-03-01 17:38+0000\n"
|
||||
"Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
|
||||
"POT-Creation-Date: 2016-07-12 16:13+0100\n"
|
||||
"PO-Revision-Date: 2016-07-12 15:14+0000\n"
|
||||
"Last-Translator: Thomas Christie <tom@tomchristie.com>\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"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -18,40 +18,40 @@ msgstr ""
|
|||
"Language: gl_ES\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: authentication.py:71
|
||||
#: authentication.py:73
|
||||
msgid "Invalid basic header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:74
|
||||
#: authentication.py:76
|
||||
msgid "Invalid basic header. Credentials string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:80
|
||||
#: authentication.py:82
|
||||
msgid "Invalid basic header. Credentials not correctly base64 encoded."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:97
|
||||
#: authentication.py:99
|
||||
msgid "Invalid username/password."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:100 authentication.py:195
|
||||
#: authentication.py:102 authentication.py:198
|
||||
msgid "User inactive or deleted."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:173
|
||||
#: authentication.py:176
|
||||
msgid "Invalid token header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:176
|
||||
#: authentication.py:179
|
||||
msgid "Invalid token header. Token string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:182
|
||||
#: authentication.py:185
|
||||
msgid ""
|
||||
"Invalid token header. Token string should not contain invalid characters."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:192
|
||||
#: authentication.py:195
|
||||
msgid "Invalid token."
|
||||
msgstr ""
|
||||
|
||||
|
@ -59,23 +59,23 @@ msgstr ""
|
|||
msgid "Auth Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:21
|
||||
#: authtoken/models.py:15
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:23
|
||||
#: authtoken/models.py:18
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:24
|
||||
#: authtoken/models.py:20
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:33
|
||||
#: authtoken/models.py:29
|
||||
msgid "Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:34
|
||||
#: authtoken/models.py:30
|
||||
msgid "Tokens"
|
||||
msgstr ""
|
||||
|
||||
|
@ -124,7 +124,6 @@ msgid "Not found."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:109
|
||||
#, python-brace-format
|
||||
msgid "Method \"{method}\" not allowed."
|
||||
msgstr ""
|
||||
|
||||
|
@ -133,7 +132,6 @@ msgid "Could not satisfy the request Accept header."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:132
|
||||
#, python-brace-format
|
||||
msgid "Unsupported media type \"{media_type}\" in request."
|
||||
msgstr ""
|
||||
|
||||
|
@ -141,214 +139,201 @@ msgstr ""
|
|||
msgid "Request was throttled."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:266 relations.py:206 relations.py:239 validators.py:79
|
||||
#: validators.py:162
|
||||
#: fields.py:269 relations.py:206 relations.py:239 validators.py:98
|
||||
#: validators.py:181
|
||||
msgid "This field is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:267
|
||||
#: fields.py:270
|
||||
msgid "This field may not be null."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:603 fields.py:634
|
||||
#, python-brace-format
|
||||
#: fields.py:608 fields.py:639
|
||||
msgid "\"{input}\" is not a valid boolean."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:669
|
||||
#: fields.py:674
|
||||
msgid "This field may not be blank."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:670 fields.py:1664
|
||||
#, python-brace-format
|
||||
#: fields.py:675 fields.py:1675
|
||||
msgid "Ensure this field has no more than {max_length} characters."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:671
|
||||
#, python-brace-format
|
||||
#: fields.py:676
|
||||
msgid "Ensure this field has at least {min_length} characters."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:708
|
||||
#: fields.py:713
|
||||
msgid "Enter a valid email address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:719
|
||||
#: fields.py:724
|
||||
msgid "This value does not match the required pattern."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:730
|
||||
#: fields.py:735
|
||||
msgid ""
|
||||
"Enter a valid \"slug\" consisting of letters, numbers, underscores or "
|
||||
"hyphens."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:742
|
||||
#: fields.py:747
|
||||
msgid "Enter a valid URL."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:755
|
||||
#, python-brace-format
|
||||
#: fields.py:760
|
||||
msgid "\"{value}\" is not a valid UUID."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:791
|
||||
#: fields.py:796
|
||||
msgid "Enter a valid IPv4 or IPv6 address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:816
|
||||
#: fields.py:821
|
||||
msgid "A valid integer is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:817 fields.py:852 fields.py:885
|
||||
#, python-brace-format
|
||||
#: fields.py:822 fields.py:857 fields.py:891
|
||||
msgid "Ensure this value is less than or equal to {max_value}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:818 fields.py:853 fields.py:886
|
||||
#, python-brace-format
|
||||
#: fields.py:823 fields.py:858 fields.py:892
|
||||
msgid "Ensure this value is greater than or equal to {min_value}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:819 fields.py:854 fields.py:890
|
||||
#: fields.py:824 fields.py:859 fields.py:896
|
||||
msgid "String value too large."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:851 fields.py:884
|
||||
#: fields.py:856 fields.py:890
|
||||
msgid "A valid number is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:887
|
||||
#, python-brace-format
|
||||
#: fields.py:893
|
||||
msgid "Ensure that there are no more than {max_digits} digits in total."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:888
|
||||
#, python-brace-format
|
||||
#: fields.py:894
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_decimal_places} decimal places."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:889
|
||||
#, python-brace-format
|
||||
#: fields.py:895
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_whole_digits} digits before the "
|
||||
"decimal point."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1004
|
||||
#, python-brace-format
|
||||
#: fields.py:1025
|
||||
msgid "Datetime has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1005
|
||||
#: fields.py:1026
|
||||
msgid "Expected a datetime but got a date."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1082
|
||||
#, python-brace-format
|
||||
#: fields.py:1103
|
||||
msgid "Date has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1083
|
||||
#: fields.py:1104
|
||||
msgid "Expected a date but got a datetime."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1151
|
||||
#, python-brace-format
|
||||
#: fields.py:1170
|
||||
msgid "Time has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1215
|
||||
#, python-brace-format
|
||||
#: fields.py:1232
|
||||
msgid "Duration has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1240 fields.py:1289
|
||||
#, python-brace-format
|
||||
#: fields.py:1251 fields.py:1300
|
||||
msgid "\"{input}\" is not a valid choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1243 relations.py:71 relations.py:442
|
||||
#, python-brace-format
|
||||
#: fields.py:1254 relations.py:71 relations.py:441
|
||||
msgid "More than {count} items..."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1290 fields.py:1437 relations.py:438 serializers.py:520
|
||||
#, python-brace-format
|
||||
#: fields.py:1301 fields.py:1448 relations.py:437 serializers.py:524
|
||||
msgid "Expected a list of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1291
|
||||
#: fields.py:1302
|
||||
msgid "This selection may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1328
|
||||
#, python-brace-format
|
||||
#: fields.py:1339
|
||||
msgid "\"{input}\" is not a valid path choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1347
|
||||
#: fields.py:1358
|
||||
msgid "No file was submitted."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1348
|
||||
#: fields.py:1359
|
||||
msgid ""
|
||||
"The submitted data was not a file. Check the encoding type on the form."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1349
|
||||
#: fields.py:1360
|
||||
msgid "No filename could be determined."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1350
|
||||
#: fields.py:1361
|
||||
msgid "The submitted file is empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1351
|
||||
#, python-brace-format
|
||||
#: fields.py:1362
|
||||
msgid ""
|
||||
"Ensure this filename has at most {max_length} characters (it has {length})."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1399
|
||||
#: fields.py:1410
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1438 relations.py:439 serializers.py:521
|
||||
#: fields.py:1449 relations.py:438 serializers.py:525
|
||||
msgid "This list may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1491
|
||||
#, python-brace-format
|
||||
#: fields.py:1502
|
||||
msgid "Expected a dictionary of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1538
|
||||
#: fields.py:1549
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:35 templates/rest_framework/filters/django_filter.html.py:5
|
||||
#: filters.py:36 templates/rest_framework/filters/django_filter.html:5
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:189
|
||||
#: filters.py:336
|
||||
msgid "ascending"
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:337
|
||||
msgid "descending"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:193
|
||||
msgid "Invalid page."
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:407
|
||||
#: pagination.py:427
|
||||
msgid "Invalid cursor"
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:207
|
||||
#, python-brace-format
|
||||
msgid "Invalid pk \"{pk_value}\" - object does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:208
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected pk value, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
|
@ -365,25 +350,22 @@ msgid "Invalid hyperlink - Object does not exist."
|
|||
msgstr ""
|
||||
|
||||
#: relations.py:243
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected URL string, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:402
|
||||
#, python-brace-format
|
||||
#: relations.py:401
|
||||
msgid "Object with {slug_name}={value} does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:403
|
||||
#: relations.py:402
|
||||
msgid "Invalid value."
|
||||
msgstr "Valor non válido."
|
||||
|
||||
#: serializers.py:326
|
||||
#, python-brace-format
|
||||
msgid "Invalid data. Expected a dictionary, but got {datatype}."
|
||||
msgstr ""
|
||||
|
||||
#: templates/rest_framework/admin.html:118
|
||||
#: templates/rest_framework/admin.html:116
|
||||
#: templates/rest_framework/base.html:128
|
||||
msgid "Filters"
|
||||
msgstr ""
|
||||
|
@ -413,27 +395,23 @@ msgstr "Ningún"
|
|||
msgid "No items to select."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:24
|
||||
#: validators.py:43
|
||||
msgid "This field must be unique."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:78
|
||||
#, python-brace-format
|
||||
#: validators.py:97
|
||||
msgid "The fields {field_names} must make a unique set."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:226
|
||||
#, python-brace-format
|
||||
#: validators.py:245
|
||||
msgid "This field must be unique for the \"{date_field}\" date."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:241
|
||||
#, python-brace-format
|
||||
#: validators.py:260
|
||||
msgid "This field must be unique for the \"{date_field}\" month."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:254
|
||||
#, python-brace-format
|
||||
#: validators.py:273
|
||||
msgid "This field must be unique for the \"{date_field}\" year."
|
||||
msgstr ""
|
||||
|
||||
|
@ -441,15 +419,19 @@ msgstr ""
|
|||
msgid "Invalid version in \"Accept\" header."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:73 versioning.py:115
|
||||
#: versioning.py:73
|
||||
msgid "Invalid version in URL path."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:144
|
||||
#: versioning.py:115
|
||||
msgid "Invalid version in URL path. Does not match any version namespace."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:147
|
||||
msgid "Invalid version in hostname."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:166
|
||||
#: versioning.py:169
|
||||
msgid "Invalid version in query parameter."
|
||||
msgstr ""
|
||||
|
||||
|
|
Binary file not shown.
|
@ -7,9 +7,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Django REST framework\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-01 18:38+0100\n"
|
||||
"PO-Revision-Date: 2016-03-01 17:38+0000\n"
|
||||
"Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
|
||||
"POT-Creation-Date: 2016-07-12 16:13+0100\n"
|
||||
"PO-Revision-Date: 2016-07-12 15:14+0000\n"
|
||||
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n"
|
||||
"Language-Team: Hebrew (Israel) (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/he_IL/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -17,40 +17,40 @@ msgstr ""
|
|||
"Language: he_IL\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: authentication.py:71
|
||||
#: authentication.py:73
|
||||
msgid "Invalid basic header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:74
|
||||
#: authentication.py:76
|
||||
msgid "Invalid basic header. Credentials string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:80
|
||||
#: authentication.py:82
|
||||
msgid "Invalid basic header. Credentials not correctly base64 encoded."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:97
|
||||
#: authentication.py:99
|
||||
msgid "Invalid username/password."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:100 authentication.py:195
|
||||
#: authentication.py:102 authentication.py:198
|
||||
msgid "User inactive or deleted."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:173
|
||||
#: authentication.py:176
|
||||
msgid "Invalid token header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:176
|
||||
#: authentication.py:179
|
||||
msgid "Invalid token header. Token string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:182
|
||||
#: authentication.py:185
|
||||
msgid ""
|
||||
"Invalid token header. Token string should not contain invalid characters."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:192
|
||||
#: authentication.py:195
|
||||
msgid "Invalid token."
|
||||
msgstr ""
|
||||
|
||||
|
@ -58,23 +58,23 @@ msgstr ""
|
|||
msgid "Auth Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:21
|
||||
#: authtoken/models.py:15
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:23
|
||||
#: authtoken/models.py:18
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:24
|
||||
#: authtoken/models.py:20
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:33
|
||||
#: authtoken/models.py:29
|
||||
msgid "Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:34
|
||||
#: authtoken/models.py:30
|
||||
msgid "Tokens"
|
||||
msgstr ""
|
||||
|
||||
|
@ -123,7 +123,6 @@ msgid "Not found."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:109
|
||||
#, python-brace-format
|
||||
msgid "Method \"{method}\" not allowed."
|
||||
msgstr ""
|
||||
|
||||
|
@ -132,7 +131,6 @@ msgid "Could not satisfy the request Accept header."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:132
|
||||
#, python-brace-format
|
||||
msgid "Unsupported media type \"{media_type}\" in request."
|
||||
msgstr ""
|
||||
|
||||
|
@ -140,214 +138,201 @@ msgstr ""
|
|||
msgid "Request was throttled."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:266 relations.py:206 relations.py:239 validators.py:79
|
||||
#: validators.py:162
|
||||
#: fields.py:269 relations.py:206 relations.py:239 validators.py:98
|
||||
#: validators.py:181
|
||||
msgid "This field is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:267
|
||||
#: fields.py:270
|
||||
msgid "This field may not be null."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:603 fields.py:634
|
||||
#, python-brace-format
|
||||
#: fields.py:608 fields.py:639
|
||||
msgid "\"{input}\" is not a valid boolean."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:669
|
||||
#: fields.py:674
|
||||
msgid "This field may not be blank."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:670 fields.py:1664
|
||||
#, python-brace-format
|
||||
#: fields.py:675 fields.py:1675
|
||||
msgid "Ensure this field has no more than {max_length} characters."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:671
|
||||
#, python-brace-format
|
||||
#: fields.py:676
|
||||
msgid "Ensure this field has at least {min_length} characters."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:708
|
||||
#: fields.py:713
|
||||
msgid "Enter a valid email address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:719
|
||||
#: fields.py:724
|
||||
msgid "This value does not match the required pattern."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:730
|
||||
#: fields.py:735
|
||||
msgid ""
|
||||
"Enter a valid \"slug\" consisting of letters, numbers, underscores or "
|
||||
"hyphens."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:742
|
||||
#: fields.py:747
|
||||
msgid "Enter a valid URL."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:755
|
||||
#, python-brace-format
|
||||
#: fields.py:760
|
||||
msgid "\"{value}\" is not a valid UUID."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:791
|
||||
#: fields.py:796
|
||||
msgid "Enter a valid IPv4 or IPv6 address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:816
|
||||
#: fields.py:821
|
||||
msgid "A valid integer is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:817 fields.py:852 fields.py:885
|
||||
#, python-brace-format
|
||||
#: fields.py:822 fields.py:857 fields.py:891
|
||||
msgid "Ensure this value is less than or equal to {max_value}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:818 fields.py:853 fields.py:886
|
||||
#, python-brace-format
|
||||
#: fields.py:823 fields.py:858 fields.py:892
|
||||
msgid "Ensure this value is greater than or equal to {min_value}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:819 fields.py:854 fields.py:890
|
||||
#: fields.py:824 fields.py:859 fields.py:896
|
||||
msgid "String value too large."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:851 fields.py:884
|
||||
#: fields.py:856 fields.py:890
|
||||
msgid "A valid number is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:887
|
||||
#, python-brace-format
|
||||
#: fields.py:893
|
||||
msgid "Ensure that there are no more than {max_digits} digits in total."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:888
|
||||
#, python-brace-format
|
||||
#: fields.py:894
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_decimal_places} decimal places."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:889
|
||||
#, python-brace-format
|
||||
#: fields.py:895
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_whole_digits} digits before the "
|
||||
"decimal point."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1004
|
||||
#, python-brace-format
|
||||
#: fields.py:1025
|
||||
msgid "Datetime has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1005
|
||||
#: fields.py:1026
|
||||
msgid "Expected a datetime but got a date."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1082
|
||||
#, python-brace-format
|
||||
#: fields.py:1103
|
||||
msgid "Date has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1083
|
||||
#: fields.py:1104
|
||||
msgid "Expected a date but got a datetime."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1151
|
||||
#, python-brace-format
|
||||
#: fields.py:1170
|
||||
msgid "Time has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1215
|
||||
#, python-brace-format
|
||||
#: fields.py:1232
|
||||
msgid "Duration has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1240 fields.py:1289
|
||||
#, python-brace-format
|
||||
#: fields.py:1251 fields.py:1300
|
||||
msgid "\"{input}\" is not a valid choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1243 relations.py:71 relations.py:442
|
||||
#, python-brace-format
|
||||
#: fields.py:1254 relations.py:71 relations.py:441
|
||||
msgid "More than {count} items..."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1290 fields.py:1437 relations.py:438 serializers.py:520
|
||||
#, python-brace-format
|
||||
#: fields.py:1301 fields.py:1448 relations.py:437 serializers.py:524
|
||||
msgid "Expected a list of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1291
|
||||
#: fields.py:1302
|
||||
msgid "This selection may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1328
|
||||
#, python-brace-format
|
||||
#: fields.py:1339
|
||||
msgid "\"{input}\" is not a valid path choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1347
|
||||
#: fields.py:1358
|
||||
msgid "No file was submitted."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1348
|
||||
#: fields.py:1359
|
||||
msgid ""
|
||||
"The submitted data was not a file. Check the encoding type on the form."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1349
|
||||
#: fields.py:1360
|
||||
msgid "No filename could be determined."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1350
|
||||
#: fields.py:1361
|
||||
msgid "The submitted file is empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1351
|
||||
#, python-brace-format
|
||||
#: fields.py:1362
|
||||
msgid ""
|
||||
"Ensure this filename has at most {max_length} characters (it has {length})."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1399
|
||||
#: fields.py:1410
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1438 relations.py:439 serializers.py:521
|
||||
#: fields.py:1449 relations.py:438 serializers.py:525
|
||||
msgid "This list may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1491
|
||||
#, python-brace-format
|
||||
#: fields.py:1502
|
||||
msgid "Expected a dictionary of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1538
|
||||
#: fields.py:1549
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:35 templates/rest_framework/filters/django_filter.html.py:5
|
||||
#: filters.py:36 templates/rest_framework/filters/django_filter.html:5
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:189
|
||||
#: filters.py:336
|
||||
msgid "ascending"
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:337
|
||||
msgid "descending"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:193
|
||||
msgid "Invalid page."
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:407
|
||||
#: pagination.py:427
|
||||
msgid "Invalid cursor"
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:207
|
||||
#, python-brace-format
|
||||
msgid "Invalid pk \"{pk_value}\" - object does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:208
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected pk value, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
|
@ -364,25 +349,22 @@ msgid "Invalid hyperlink - Object does not exist."
|
|||
msgstr ""
|
||||
|
||||
#: relations.py:243
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected URL string, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:402
|
||||
#, python-brace-format
|
||||
#: relations.py:401
|
||||
msgid "Object with {slug_name}={value} does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:403
|
||||
#: relations.py:402
|
||||
msgid "Invalid value."
|
||||
msgstr ""
|
||||
|
||||
#: serializers.py:326
|
||||
#, python-brace-format
|
||||
msgid "Invalid data. Expected a dictionary, but got {datatype}."
|
||||
msgstr ""
|
||||
|
||||
#: templates/rest_framework/admin.html:118
|
||||
#: templates/rest_framework/admin.html:116
|
||||
#: templates/rest_framework/base.html:128
|
||||
msgid "Filters"
|
||||
msgstr ""
|
||||
|
@ -412,27 +394,23 @@ msgstr ""
|
|||
msgid "No items to select."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:24
|
||||
#: validators.py:43
|
||||
msgid "This field must be unique."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:78
|
||||
#, python-brace-format
|
||||
#: validators.py:97
|
||||
msgid "The fields {field_names} must make a unique set."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:226
|
||||
#, python-brace-format
|
||||
#: validators.py:245
|
||||
msgid "This field must be unique for the \"{date_field}\" date."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:241
|
||||
#, python-brace-format
|
||||
#: validators.py:260
|
||||
msgid "This field must be unique for the \"{date_field}\" month."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:254
|
||||
#, python-brace-format
|
||||
#: validators.py:273
|
||||
msgid "This field must be unique for the \"{date_field}\" year."
|
||||
msgstr ""
|
||||
|
||||
|
@ -440,15 +418,19 @@ msgstr ""
|
|||
msgid "Invalid version in \"Accept\" header."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:73 versioning.py:115
|
||||
#: versioning.py:73
|
||||
msgid "Invalid version in URL path."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:144
|
||||
#: versioning.py:115
|
||||
msgid "Invalid version in URL path. Does not match any version namespace."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:147
|
||||
msgid "Invalid version in hostname."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:166
|
||||
#: versioning.py:169
|
||||
msgid "Invalid version in query parameter."
|
||||
msgstr ""
|
||||
|
||||
|
|
Binary file not shown.
|
@ -8,9 +8,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Django REST framework\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-01 18:38+0100\n"
|
||||
"PO-Revision-Date: 2016-03-01 17:38+0000\n"
|
||||
"Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
|
||||
"POT-Creation-Date: 2016-07-12 16:13+0100\n"
|
||||
"PO-Revision-Date: 2016-07-12 15:14+0000\n"
|
||||
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n"
|
||||
"Language-Team: Hungarian (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/hu/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -18,40 +18,40 @@ msgstr ""
|
|||
"Language: hu\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: authentication.py:71
|
||||
#: authentication.py:73
|
||||
msgid "Invalid basic header. No credentials provided."
|
||||
msgstr "Érvénytelen basic fejlécmező. Nem voltak megadva azonosítók."
|
||||
|
||||
#: authentication.py:74
|
||||
#: authentication.py:76
|
||||
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."
|
||||
|
||||
#: authentication.py:80
|
||||
#: authentication.py:82
|
||||
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ő."
|
||||
|
||||
#: authentication.py:97
|
||||
#: authentication.py:99
|
||||
msgid "Invalid username/password."
|
||||
msgstr "Érvénytelen felhasználónév/jelszó."
|
||||
|
||||
#: authentication.py:100 authentication.py:195
|
||||
#: authentication.py:102 authentication.py:198
|
||||
msgid "User inactive or deleted."
|
||||
msgstr "A felhasználó nincs aktiválva vagy törölve lett."
|
||||
|
||||
#: authentication.py:173
|
||||
#: authentication.py:176
|
||||
msgid "Invalid token header. No credentials provided."
|
||||
msgstr "Érvénytelen token fejlécmező. Nem voltak megadva azonosítók."
|
||||
|
||||
#: authentication.py:176
|
||||
#: authentication.py:179
|
||||
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."
|
||||
|
||||
#: authentication.py:182
|
||||
#: authentication.py:185
|
||||
msgid ""
|
||||
"Invalid token header. Token string should not contain invalid characters."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:192
|
||||
#: authentication.py:195
|
||||
msgid "Invalid token."
|
||||
msgstr "Érvénytelen token."
|
||||
|
||||
|
@ -59,23 +59,23 @@ msgstr "Érvénytelen token."
|
|||
msgid "Auth Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:21
|
||||
#: authtoken/models.py:15
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:23
|
||||
#: authtoken/models.py:18
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:24
|
||||
#: authtoken/models.py:20
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:33
|
||||
#: authtoken/models.py:29
|
||||
msgid "Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:34
|
||||
#: authtoken/models.py:30
|
||||
msgid "Tokens"
|
||||
msgstr ""
|
||||
|
||||
|
@ -124,7 +124,6 @@ msgid "Not found."
|
|||
msgstr "Nem található."
|
||||
|
||||
#: exceptions.py:109
|
||||
#, python-brace-format
|
||||
msgid "Method \"{method}\" not allowed."
|
||||
msgstr "A \"{method}\" metódus nem megengedett."
|
||||
|
||||
|
@ -133,7 +132,6 @@ msgid "Could not satisfy the request Accept header."
|
|||
msgstr "A kérés Accept fejlécmezőjét nem lehetett kiszolgálni."
|
||||
|
||||
#: exceptions.py:132
|
||||
#, python-brace-format
|
||||
msgid "Unsupported media type \"{media_type}\" in request."
|
||||
msgstr "Nem támogatott média típus \"{media_type}\" a kérésben."
|
||||
|
||||
|
@ -141,214 +139,201 @@ msgstr "Nem támogatott média típus \"{media_type}\" a kérésben."
|
|||
msgid "Request was throttled."
|
||||
msgstr "A kérés korlátozva lett."
|
||||
|
||||
#: fields.py:266 relations.py:206 relations.py:239 validators.py:79
|
||||
#: validators.py:162
|
||||
#: fields.py:269 relations.py:206 relations.py:239 validators.py:98
|
||||
#: validators.py:181
|
||||
msgid "This field is required."
|
||||
msgstr "Ennek a mezőnek a megadása kötelező."
|
||||
|
||||
#: fields.py:267
|
||||
#: fields.py:270
|
||||
msgid "This field may not be null."
|
||||
msgstr "Ez a mező nem lehet null értékű."
|
||||
|
||||
#: fields.py:603 fields.py:634
|
||||
#, python-brace-format
|
||||
#: fields.py:608 fields.py:639
|
||||
msgid "\"{input}\" is not a valid boolean."
|
||||
msgstr "Az \"{input}\" nem egy érvényes logikai érték."
|
||||
|
||||
#: fields.py:669
|
||||
#: fields.py:674
|
||||
msgid "This field may not be blank."
|
||||
msgstr "Ez a mező nem lehet üres."
|
||||
|
||||
#: fields.py:670 fields.py:1664
|
||||
#, python-brace-format
|
||||
#: fields.py:675 fields.py:1675
|
||||
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."
|
||||
|
||||
#: fields.py:671
|
||||
#, python-brace-format
|
||||
#: fields.py:676
|
||||
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."
|
||||
|
||||
#: fields.py:708
|
||||
#: fields.py:713
|
||||
msgid "Enter a valid email address."
|
||||
msgstr "Adjon meg egy érvényes e-mail címet!"
|
||||
|
||||
#: fields.py:719
|
||||
#: fields.py:724
|
||||
msgid "This value does not match the required pattern."
|
||||
msgstr "Ez az érték nem illeszkedik a szükséges mintázatra."
|
||||
|
||||
#: fields.py:730
|
||||
#: fields.py:735
|
||||
msgid ""
|
||||
"Enter a valid \"slug\" consisting of letters, numbers, underscores or "
|
||||
"hyphens."
|
||||
msgstr "Az URL barát cím csak betűket, számokat, aláhúzásokat és kötőjeleket tartalmazhat."
|
||||
|
||||
#: fields.py:742
|
||||
#: fields.py:747
|
||||
msgid "Enter a valid URL."
|
||||
msgstr "Adjon meg egy érvényes URL-t!"
|
||||
|
||||
#: fields.py:755
|
||||
#, python-brace-format
|
||||
#: fields.py:760
|
||||
msgid "\"{value}\" is not a valid UUID."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:791
|
||||
#: fields.py:796
|
||||
msgid "Enter a valid IPv4 or IPv6 address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:816
|
||||
#: fields.py:821
|
||||
msgid "A valid integer is required."
|
||||
msgstr "Egy érvényes egész szám megadása szükséges."
|
||||
|
||||
#: fields.py:817 fields.py:852 fields.py:885
|
||||
#, python-brace-format
|
||||
#: fields.py:822 fields.py:857 fields.py:891
|
||||
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}."
|
||||
|
||||
#: fields.py:818 fields.py:853 fields.py:886
|
||||
#, python-brace-format
|
||||
#: fields.py:823 fields.py:858 fields.py:892
|
||||
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}."
|
||||
|
||||
#: fields.py:819 fields.py:854 fields.py:890
|
||||
#: fields.py:824 fields.py:859 fields.py:896
|
||||
msgid "String value too large."
|
||||
msgstr "A karakterlánc túl hosszú."
|
||||
|
||||
#: fields.py:851 fields.py:884
|
||||
#: fields.py:856 fields.py:890
|
||||
msgid "A valid number is required."
|
||||
msgstr "Egy érvényes szám megadása szükséges."
|
||||
|
||||
#: fields.py:887
|
||||
#, python-brace-format
|
||||
#: fields.py:893
|
||||
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}."
|
||||
|
||||
#: fields.py:888
|
||||
#, python-brace-format
|
||||
#: fields.py:894
|
||||
msgid ""
|
||||
"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}."
|
||||
|
||||
#: fields.py:889
|
||||
#, python-brace-format
|
||||
#: fields.py:895
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_whole_digits} digits before the "
|
||||
"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}."
|
||||
|
||||
#: fields.py:1004
|
||||
#, python-brace-format
|
||||
#: fields.py:1025
|
||||
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}."
|
||||
|
||||
#: fields.py:1005
|
||||
#: fields.py:1026
|
||||
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."
|
||||
|
||||
#: fields.py:1082
|
||||
#, python-brace-format
|
||||
#: fields.py:1103
|
||||
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}."
|
||||
|
||||
#: fields.py:1083
|
||||
#: fields.py:1104
|
||||
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."
|
||||
|
||||
#: fields.py:1151
|
||||
#, python-brace-format
|
||||
#: fields.py:1170
|
||||
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}."
|
||||
|
||||
#: fields.py:1215
|
||||
#, python-brace-format
|
||||
#: fields.py:1232
|
||||
msgid "Duration has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1240 fields.py:1289
|
||||
#, python-brace-format
|
||||
#: fields.py:1251 fields.py:1300
|
||||
msgid "\"{input}\" is not a valid choice."
|
||||
msgstr "Az \"{input}\" nem egy érvényes elem."
|
||||
|
||||
#: fields.py:1243 relations.py:71 relations.py:442
|
||||
#, python-brace-format
|
||||
#: fields.py:1254 relations.py:71 relations.py:441
|
||||
msgid "More than {count} items..."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1290 fields.py:1437 relations.py:438 serializers.py:520
|
||||
#, python-brace-format
|
||||
#: fields.py:1301 fields.py:1448 relations.py:437 serializers.py:524
|
||||
msgid "Expected a list of items but got type \"{input_type}\"."
|
||||
msgstr "Elemek listája helyett \"{input_type}\" lett elküldve."
|
||||
|
||||
#: fields.py:1291
|
||||
#: fields.py:1302
|
||||
msgid "This selection may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1328
|
||||
#, python-brace-format
|
||||
#: fields.py:1339
|
||||
msgid "\"{input}\" is not a valid path choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1347
|
||||
#: fields.py:1358
|
||||
msgid "No file was submitted."
|
||||
msgstr "Semmilyen fájl sem került feltöltésre."
|
||||
|
||||
#: fields.py:1348
|
||||
#: fields.py:1359
|
||||
msgid ""
|
||||
"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!"
|
||||
|
||||
#: fields.py:1349
|
||||
#: fields.py:1360
|
||||
msgid "No filename could be determined."
|
||||
msgstr "A fájlnév nem megállapítható."
|
||||
|
||||
#: fields.py:1350
|
||||
#: fields.py:1361
|
||||
msgid "The submitted file is empty."
|
||||
msgstr "A küldött fájl üres."
|
||||
|
||||
#: fields.py:1351
|
||||
#, python-brace-format
|
||||
#: fields.py:1362
|
||||
msgid ""
|
||||
"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})."
|
||||
|
||||
#: fields.py:1399
|
||||
#: fields.py:1410
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"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."
|
||||
|
||||
#: fields.py:1438 relations.py:439 serializers.py:521
|
||||
#: fields.py:1449 relations.py:438 serializers.py:525
|
||||
msgid "This list may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1491
|
||||
#, python-brace-format
|
||||
#: fields.py:1502
|
||||
msgid "Expected a dictionary of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1538
|
||||
#: fields.py:1549
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:35 templates/rest_framework/filters/django_filter.html.py:5
|
||||
#: filters.py:36 templates/rest_framework/filters/django_filter.html:5
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:189
|
||||
#: filters.py:336
|
||||
msgid "ascending"
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:337
|
||||
msgid "descending"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:193
|
||||
msgid "Invalid page."
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:407
|
||||
#: pagination.py:427
|
||||
msgid "Invalid cursor"
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:207
|
||||
#, python-brace-format
|
||||
msgid "Invalid pk \"{pk_value}\" - object does not exist."
|
||||
msgstr "Érvénytelen pk \"{pk_value}\" - az objektum nem létezik."
|
||||
|
||||
#: relations.py:208
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected pk value, received {data_type}."
|
||||
msgstr "Helytelen típus. pk érték helyett {data_type} lett elküldve."
|
||||
|
||||
|
@ -365,25 +350,22 @@ msgid "Invalid hyperlink - Object does not exist."
|
|||
msgstr "Érvénytelen link - Az objektum nem létezik."
|
||||
|
||||
#: relations.py:243
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected URL string, received {data_type}."
|
||||
msgstr "Helytelen típus. URL karakterlánc helyett {data_type} lett elküldve."
|
||||
|
||||
#: relations.py:402
|
||||
#, python-brace-format
|
||||
#: relations.py:401
|
||||
msgid "Object with {slug_name}={value} does not exist."
|
||||
msgstr "Nem létezik olyan objektum, amelynél {slug_name}={value}."
|
||||
|
||||
#: relations.py:403
|
||||
#: relations.py:402
|
||||
msgid "Invalid value."
|
||||
msgstr "Érvénytelen érték."
|
||||
|
||||
#: serializers.py:326
|
||||
#, python-brace-format
|
||||
msgid "Invalid data. Expected a dictionary, but got {datatype}."
|
||||
msgstr "Érvénytelen adat. Egy dictionary helyett {datatype} lett elküldve."
|
||||
|
||||
#: templates/rest_framework/admin.html:118
|
||||
#: templates/rest_framework/admin.html:116
|
||||
#: templates/rest_framework/base.html:128
|
||||
msgid "Filters"
|
||||
msgstr ""
|
||||
|
@ -413,27 +395,23 @@ msgstr ""
|
|||
msgid "No items to select."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:24
|
||||
#: validators.py:43
|
||||
msgid "This field must be unique."
|
||||
msgstr "Ennek a mezőnek egyedinek kell lennie."
|
||||
|
||||
#: validators.py:78
|
||||
#, python-brace-format
|
||||
#: validators.py:97
|
||||
msgid "The fields {field_names} must make a unique set."
|
||||
msgstr "A {field_names} mezőnevek nem tartalmazhatnak duplikátumot."
|
||||
|
||||
#: validators.py:226
|
||||
#, python-brace-format
|
||||
#: validators.py:245
|
||||
msgid "This field must be unique for the \"{date_field}\" date."
|
||||
msgstr "A mezőnek egyedinek kell lennie a \"{date_field}\" dátumra."
|
||||
|
||||
#: validators.py:241
|
||||
#, python-brace-format
|
||||
#: validators.py:260
|
||||
msgid "This field must be unique for the \"{date_field}\" month."
|
||||
msgstr "A mezőnek egyedinek kell lennie a \"{date_field}\" hónapra."
|
||||
|
||||
#: validators.py:254
|
||||
#, python-brace-format
|
||||
#: validators.py:273
|
||||
msgid "This field must be unique for the \"{date_field}\" year."
|
||||
msgstr "A mezőnek egyedinek kell lennie a \"{date_field}\" évre."
|
||||
|
||||
|
@ -441,15 +419,19 @@ msgstr "A mezőnek egyedinek kell lennie a \"{date_field}\" évre."
|
|||
msgid "Invalid version in \"Accept\" header."
|
||||
msgstr "Érvénytelen verzió az \"Accept\" fejlécmezőben."
|
||||
|
||||
#: versioning.py:73 versioning.py:115
|
||||
#: versioning.py:73
|
||||
msgid "Invalid version in URL path."
|
||||
msgstr "Érvénytelen verzió az URL elérési útban."
|
||||
|
||||
#: versioning.py:144
|
||||
#: versioning.py:115
|
||||
msgid "Invalid version in URL path. Does not match any version namespace."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:147
|
||||
msgid "Invalid version in hostname."
|
||||
msgstr "Érvénytelen verzió a hosztnévben."
|
||||
|
||||
#: versioning.py:166
|
||||
#: versioning.py:169
|
||||
msgid "Invalid version in query parameter."
|
||||
msgstr "Érvénytelen verzió a lekérdezési paraméterben."
|
||||
|
||||
|
|
Binary file not shown.
|
@ -7,9 +7,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Django REST framework\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-01 18:38+0100\n"
|
||||
"PO-Revision-Date: 2016-03-01 17:38+0000\n"
|
||||
"Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
|
||||
"POT-Creation-Date: 2016-07-12 16:13+0100\n"
|
||||
"PO-Revision-Date: 2016-07-12 15:14+0000\n"
|
||||
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n"
|
||||
"Language-Team: Indonesian (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/id/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -17,40 +17,40 @@ msgstr ""
|
|||
"Language: id\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#: authentication.py:71
|
||||
#: authentication.py:73
|
||||
msgid "Invalid basic header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:74
|
||||
#: authentication.py:76
|
||||
msgid "Invalid basic header. Credentials string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:80
|
||||
#: authentication.py:82
|
||||
msgid "Invalid basic header. Credentials not correctly base64 encoded."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:97
|
||||
#: authentication.py:99
|
||||
msgid "Invalid username/password."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:100 authentication.py:195
|
||||
#: authentication.py:102 authentication.py:198
|
||||
msgid "User inactive or deleted."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:173
|
||||
#: authentication.py:176
|
||||
msgid "Invalid token header. No credentials provided."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:176
|
||||
#: authentication.py:179
|
||||
msgid "Invalid token header. Token string should not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:182
|
||||
#: authentication.py:185
|
||||
msgid ""
|
||||
"Invalid token header. Token string should not contain invalid characters."
|
||||
msgstr ""
|
||||
|
||||
#: authentication.py:192
|
||||
#: authentication.py:195
|
||||
msgid "Invalid token."
|
||||
msgstr ""
|
||||
|
||||
|
@ -58,23 +58,23 @@ msgstr ""
|
|||
msgid "Auth Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:21
|
||||
#: authtoken/models.py:15
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:23
|
||||
#: authtoken/models.py:18
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:24
|
||||
#: authtoken/models.py:20
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:33
|
||||
#: authtoken/models.py:29
|
||||
msgid "Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:34
|
||||
#: authtoken/models.py:30
|
||||
msgid "Tokens"
|
||||
msgstr ""
|
||||
|
||||
|
@ -123,7 +123,6 @@ msgid "Not found."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:109
|
||||
#, python-brace-format
|
||||
msgid "Method \"{method}\" not allowed."
|
||||
msgstr ""
|
||||
|
||||
|
@ -132,7 +131,6 @@ msgid "Could not satisfy the request Accept header."
|
|||
msgstr ""
|
||||
|
||||
#: exceptions.py:132
|
||||
#, python-brace-format
|
||||
msgid "Unsupported media type \"{media_type}\" in request."
|
||||
msgstr ""
|
||||
|
||||
|
@ -140,214 +138,201 @@ msgstr ""
|
|||
msgid "Request was throttled."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:266 relations.py:206 relations.py:239 validators.py:79
|
||||
#: validators.py:162
|
||||
#: fields.py:269 relations.py:206 relations.py:239 validators.py:98
|
||||
#: validators.py:181
|
||||
msgid "This field is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:267
|
||||
#: fields.py:270
|
||||
msgid "This field may not be null."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:603 fields.py:634
|
||||
#, python-brace-format
|
||||
#: fields.py:608 fields.py:639
|
||||
msgid "\"{input}\" is not a valid boolean."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:669
|
||||
#: fields.py:674
|
||||
msgid "This field may not be blank."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:670 fields.py:1664
|
||||
#, python-brace-format
|
||||
#: fields.py:675 fields.py:1675
|
||||
msgid "Ensure this field has no more than {max_length} characters."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:671
|
||||
#, python-brace-format
|
||||
#: fields.py:676
|
||||
msgid "Ensure this field has at least {min_length} characters."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:708
|
||||
#: fields.py:713
|
||||
msgid "Enter a valid email address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:719
|
||||
#: fields.py:724
|
||||
msgid "This value does not match the required pattern."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:730
|
||||
#: fields.py:735
|
||||
msgid ""
|
||||
"Enter a valid \"slug\" consisting of letters, numbers, underscores or "
|
||||
"hyphens."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:742
|
||||
#: fields.py:747
|
||||
msgid "Enter a valid URL."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:755
|
||||
#, python-brace-format
|
||||
#: fields.py:760
|
||||
msgid "\"{value}\" is not a valid UUID."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:791
|
||||
#: fields.py:796
|
||||
msgid "Enter a valid IPv4 or IPv6 address."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:816
|
||||
#: fields.py:821
|
||||
msgid "A valid integer is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:817 fields.py:852 fields.py:885
|
||||
#, python-brace-format
|
||||
#: fields.py:822 fields.py:857 fields.py:891
|
||||
msgid "Ensure this value is less than or equal to {max_value}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:818 fields.py:853 fields.py:886
|
||||
#, python-brace-format
|
||||
#: fields.py:823 fields.py:858 fields.py:892
|
||||
msgid "Ensure this value is greater than or equal to {min_value}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:819 fields.py:854 fields.py:890
|
||||
#: fields.py:824 fields.py:859 fields.py:896
|
||||
msgid "String value too large."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:851 fields.py:884
|
||||
#: fields.py:856 fields.py:890
|
||||
msgid "A valid number is required."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:887
|
||||
#, python-brace-format
|
||||
#: fields.py:893
|
||||
msgid "Ensure that there are no more than {max_digits} digits in total."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:888
|
||||
#, python-brace-format
|
||||
#: fields.py:894
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_decimal_places} decimal places."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:889
|
||||
#, python-brace-format
|
||||
#: fields.py:895
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_whole_digits} digits before the "
|
||||
"decimal point."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1004
|
||||
#, python-brace-format
|
||||
#: fields.py:1025
|
||||
msgid "Datetime has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1005
|
||||
#: fields.py:1026
|
||||
msgid "Expected a datetime but got a date."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1082
|
||||
#, python-brace-format
|
||||
#: fields.py:1103
|
||||
msgid "Date has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1083
|
||||
#: fields.py:1104
|
||||
msgid "Expected a date but got a datetime."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1151
|
||||
#, python-brace-format
|
||||
#: fields.py:1170
|
||||
msgid "Time has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1215
|
||||
#, python-brace-format
|
||||
#: fields.py:1232
|
||||
msgid "Duration has wrong format. Use one of these formats instead: {format}."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1240 fields.py:1289
|
||||
#, python-brace-format
|
||||
#: fields.py:1251 fields.py:1300
|
||||
msgid "\"{input}\" is not a valid choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1243 relations.py:71 relations.py:442
|
||||
#, python-brace-format
|
||||
#: fields.py:1254 relations.py:71 relations.py:441
|
||||
msgid "More than {count} items..."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1290 fields.py:1437 relations.py:438 serializers.py:520
|
||||
#, python-brace-format
|
||||
#: fields.py:1301 fields.py:1448 relations.py:437 serializers.py:524
|
||||
msgid "Expected a list of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1291
|
||||
#: fields.py:1302
|
||||
msgid "This selection may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1328
|
||||
#, python-brace-format
|
||||
#: fields.py:1339
|
||||
msgid "\"{input}\" is not a valid path choice."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1347
|
||||
#: fields.py:1358
|
||||
msgid "No file was submitted."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1348
|
||||
#: fields.py:1359
|
||||
msgid ""
|
||||
"The submitted data was not a file. Check the encoding type on the form."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1349
|
||||
#: fields.py:1360
|
||||
msgid "No filename could be determined."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1350
|
||||
#: fields.py:1361
|
||||
msgid "The submitted file is empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1351
|
||||
#, python-brace-format
|
||||
#: fields.py:1362
|
||||
msgid ""
|
||||
"Ensure this filename has at most {max_length} characters (it has {length})."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1399
|
||||
#: fields.py:1410
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1438 relations.py:439 serializers.py:521
|
||||
#: fields.py:1449 relations.py:438 serializers.py:525
|
||||
msgid "This list may not be empty."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1491
|
||||
#, python-brace-format
|
||||
#: fields.py:1502
|
||||
msgid "Expected a dictionary of items but got type \"{input_type}\"."
|
||||
msgstr ""
|
||||
|
||||
#: fields.py:1538
|
||||
#: fields.py:1549
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:35 templates/rest_framework/filters/django_filter.html.py:5
|
||||
#: filters.py:36 templates/rest_framework/filters/django_filter.html:5
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:189
|
||||
#: filters.py:336
|
||||
msgid "ascending"
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:337
|
||||
msgid "descending"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:193
|
||||
msgid "Invalid page."
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:407
|
||||
#: pagination.py:427
|
||||
msgid "Invalid cursor"
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:207
|
||||
#, python-brace-format
|
||||
msgid "Invalid pk \"{pk_value}\" - object does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:208
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected pk value, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
|
@ -364,25 +349,22 @@ msgid "Invalid hyperlink - Object does not exist."
|
|||
msgstr ""
|
||||
|
||||
#: relations.py:243
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected URL string, received {data_type}."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:402
|
||||
#, python-brace-format
|
||||
#: relations.py:401
|
||||
msgid "Object with {slug_name}={value} does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: relations.py:403
|
||||
#: relations.py:402
|
||||
msgid "Invalid value."
|
||||
msgstr ""
|
||||
|
||||
#: serializers.py:326
|
||||
#, python-brace-format
|
||||
msgid "Invalid data. Expected a dictionary, but got {datatype}."
|
||||
msgstr ""
|
||||
|
||||
#: templates/rest_framework/admin.html:118
|
||||
#: templates/rest_framework/admin.html:116
|
||||
#: templates/rest_framework/base.html:128
|
||||
msgid "Filters"
|
||||
msgstr ""
|
||||
|
@ -412,27 +394,23 @@ msgstr ""
|
|||
msgid "No items to select."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:24
|
||||
#: validators.py:43
|
||||
msgid "This field must be unique."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:78
|
||||
#, python-brace-format
|
||||
#: validators.py:97
|
||||
msgid "The fields {field_names} must make a unique set."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:226
|
||||
#, python-brace-format
|
||||
#: validators.py:245
|
||||
msgid "This field must be unique for the \"{date_field}\" date."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:241
|
||||
#, python-brace-format
|
||||
#: validators.py:260
|
||||
msgid "This field must be unique for the \"{date_field}\" month."
|
||||
msgstr ""
|
||||
|
||||
#: validators.py:254
|
||||
#, python-brace-format
|
||||
#: validators.py:273
|
||||
msgid "This field must be unique for the \"{date_field}\" year."
|
||||
msgstr ""
|
||||
|
||||
|
@ -440,15 +418,19 @@ msgstr ""
|
|||
msgid "Invalid version in \"Accept\" header."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:73 versioning.py:115
|
||||
#: versioning.py:73
|
||||
msgid "Invalid version in URL path."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:144
|
||||
#: versioning.py:115
|
||||
msgid "Invalid version in URL path. Does not match any version namespace."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:147
|
||||
msgid "Invalid version in hostname."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:166
|
||||
#: versioning.py:169
|
||||
msgid "Invalid version in query parameter."
|
||||
msgstr ""
|
||||
|
||||
|
|
Binary file not shown.
|
@ -11,9 +11,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Django REST framework\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-01 18:38+0100\n"
|
||||
"PO-Revision-Date: 2016-03-01 17:38+0000\n"
|
||||
"Last-Translator: Xavier Ordoquy <xordoquy@linovia.com>\n"
|
||||
"POT-Creation-Date: 2016-07-12 16:13+0100\n"
|
||||
"PO-Revision-Date: 2016-07-12 15:14+0000\n"
|
||||
"Last-Translator: Thomas Christie <tom@tomchristie.com>\n"
|
||||
"Language-Team: Italian (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/it/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -21,40 +21,40 @@ msgstr ""
|
|||
"Language: it\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: authentication.py:71
|
||||
#: authentication.py:73
|
||||
msgid "Invalid basic header. No credentials provided."
|
||||
msgstr "Header di base invalido. Credenziali non fornite."
|
||||
|
||||
#: authentication.py:74
|
||||
#: authentication.py:76
|
||||
msgid "Invalid basic header. Credentials string should not contain spaces."
|
||||
msgstr "Header di base invalido. Le credenziali non dovrebbero contenere spazi."
|
||||
|
||||
#: authentication.py:80
|
||||
#: authentication.py:82
|
||||
msgid "Invalid basic header. Credentials not correctly base64 encoded."
|
||||
msgstr "Credenziali non correttamente codificate in base64."
|
||||
|
||||
#: authentication.py:97
|
||||
#: authentication.py:99
|
||||
msgid "Invalid username/password."
|
||||
msgstr "Nome utente/password non validi"
|
||||
|
||||
#: authentication.py:100 authentication.py:195
|
||||
#: authentication.py:102 authentication.py:198
|
||||
msgid "User inactive or deleted."
|
||||
msgstr "Utente inattivo o eliminato."
|
||||
|
||||
#: authentication.py:173
|
||||
#: authentication.py:176
|
||||
msgid "Invalid token header. No credentials provided."
|
||||
msgstr "Header del token non valido. Credenziali non fornite."
|
||||
|
||||
#: authentication.py:176
|
||||
#: authentication.py:179
|
||||
msgid "Invalid token header. Token string should not contain spaces."
|
||||
msgstr "Header del token non valido. Il contenuto del token non dovrebbe contenere spazi."
|
||||
|
||||
#: authentication.py:182
|
||||
#: authentication.py:185
|
||||
msgid ""
|
||||
"Invalid token header. Token string should not contain invalid characters."
|
||||
msgstr "Header del token invalido. La stringa del token non dovrebbe contenere caratteri illegali."
|
||||
|
||||
#: authentication.py:192
|
||||
#: authentication.py:195
|
||||
msgid "Invalid token."
|
||||
msgstr "Token invalido."
|
||||
|
||||
|
@ -62,23 +62,23 @@ msgstr "Token invalido."
|
|||
msgid "Auth Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:21
|
||||
#: authtoken/models.py:15
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:23
|
||||
#: authtoken/models.py:18
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:24
|
||||
#: authtoken/models.py:20
|
||||
msgid "Created"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:33
|
||||
#: authtoken/models.py:29
|
||||
msgid "Token"
|
||||
msgstr ""
|
||||
|
||||
#: authtoken/models.py:34
|
||||
#: authtoken/models.py:30
|
||||
msgid "Tokens"
|
||||
msgstr ""
|
||||
|
||||
|
@ -127,7 +127,6 @@ msgid "Not found."
|
|||
msgstr "Non trovato."
|
||||
|
||||
#: exceptions.py:109
|
||||
#, python-brace-format
|
||||
msgid "Method \"{method}\" not allowed."
|
||||
msgstr "Metodo \"{method}\" non consentito"
|
||||
|
||||
|
@ -136,7 +135,6 @@ msgid "Could not satisfy the request Accept header."
|
|||
msgstr "Impossibile soddisfare l'header \"Accept\" presente nella richiesta."
|
||||
|
||||
#: exceptions.py:132
|
||||
#, python-brace-format
|
||||
msgid "Unsupported media type \"{media_type}\" in request."
|
||||
msgstr "Tipo di media \"{media_type}\"non supportato."
|
||||
|
||||
|
@ -144,214 +142,201 @@ msgstr "Tipo di media \"{media_type}\"non supportato."
|
|||
msgid "Request was throttled."
|
||||
msgstr "La richiesta è stata limitata (throttled)."
|
||||
|
||||
#: fields.py:266 relations.py:206 relations.py:239 validators.py:79
|
||||
#: validators.py:162
|
||||
#: fields.py:269 relations.py:206 relations.py:239 validators.py:98
|
||||
#: validators.py:181
|
||||
msgid "This field is required."
|
||||
msgstr "Campo obbligatorio."
|
||||
|
||||
#: fields.py:267
|
||||
#: fields.py:270
|
||||
msgid "This field may not be null."
|
||||
msgstr "Il campo non può essere nullo."
|
||||
|
||||
#: fields.py:603 fields.py:634
|
||||
#, python-brace-format
|
||||
#: fields.py:608 fields.py:639
|
||||
msgid "\"{input}\" is not a valid boolean."
|
||||
msgstr "\"{input}\" non è un valido valore booleano."
|
||||
|
||||
#: fields.py:669
|
||||
#: fields.py:674
|
||||
msgid "This field may not be blank."
|
||||
msgstr "Questo campo non può essere omesso."
|
||||
|
||||
#: fields.py:670 fields.py:1664
|
||||
#, python-brace-format
|
||||
#: fields.py:675 fields.py:1675
|
||||
msgid "Ensure this field has no more than {max_length} characters."
|
||||
msgstr "Assicurati che questo campo non abbia più di {max_length} caratteri."
|
||||
|
||||
#: fields.py:671
|
||||
#, python-brace-format
|
||||
#: fields.py:676
|
||||
msgid "Ensure this field has at least {min_length} characters."
|
||||
msgstr "Assicurati che questo campo abbia almeno {min_length} caratteri."
|
||||
|
||||
#: fields.py:708
|
||||
#: fields.py:713
|
||||
msgid "Enter a valid email address."
|
||||
msgstr "Inserisci un indirizzo email valido."
|
||||
|
||||
#: fields.py:719
|
||||
#: fields.py:724
|
||||
msgid "This value does not match the required pattern."
|
||||
msgstr "Questo valore non corrisponde alla sequenza richiesta."
|
||||
|
||||
#: fields.py:730
|
||||
#: fields.py:735
|
||||
msgid ""
|
||||
"Enter a valid \"slug\" consisting of letters, numbers, underscores or "
|
||||
"hyphens."
|
||||
msgstr "Immetti uno \"slug\" valido che consista di lettere, numeri, underscore o trattini."
|
||||
|
||||
#: fields.py:742
|
||||
#: fields.py:747
|
||||
msgid "Enter a valid URL."
|
||||
msgstr "Inserisci un URL valido"
|
||||
|
||||
#: fields.py:755
|
||||
#, python-brace-format
|
||||
#: fields.py:760
|
||||
msgid "\"{value}\" is not a valid UUID."
|
||||
msgstr "\"{value}\" non è un UUID valido."
|
||||
|
||||
#: fields.py:791
|
||||
#: fields.py:796
|
||||
msgid "Enter a valid IPv4 or IPv6 address."
|
||||
msgstr "Inserisci un indirizzo IPv4 o IPv6 valido."
|
||||
|
||||
#: fields.py:816
|
||||
#: fields.py:821
|
||||
msgid "A valid integer is required."
|
||||
msgstr "È richiesto un numero intero valido."
|
||||
|
||||
#: fields.py:817 fields.py:852 fields.py:885
|
||||
#, python-brace-format
|
||||
#: fields.py:822 fields.py:857 fields.py:891
|
||||
msgid "Ensure this value is less than or equal to {max_value}."
|
||||
msgstr "Assicurati che il valore sia minore o uguale a {max_value}."
|
||||
|
||||
#: fields.py:818 fields.py:853 fields.py:886
|
||||
#, python-brace-format
|
||||
#: fields.py:823 fields.py:858 fields.py:892
|
||||
msgid "Ensure this value is greater than or equal to {min_value}."
|
||||
msgstr "Assicurati che il valore sia maggiore o uguale a {min_value}."
|
||||
|
||||
#: fields.py:819 fields.py:854 fields.py:890
|
||||
#: fields.py:824 fields.py:859 fields.py:896
|
||||
msgid "String value too large."
|
||||
msgstr "Stringa troppo lunga."
|
||||
|
||||
#: fields.py:851 fields.py:884
|
||||
#: fields.py:856 fields.py:890
|
||||
msgid "A valid number is required."
|
||||
msgstr "È richiesto un numero valido."
|
||||
|
||||
#: fields.py:887
|
||||
#, python-brace-format
|
||||
#: fields.py:893
|
||||
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."
|
||||
|
||||
#: fields.py:888
|
||||
#, python-brace-format
|
||||
#: fields.py:894
|
||||
msgid ""
|
||||
"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."
|
||||
|
||||
#: fields.py:889
|
||||
#, python-brace-format
|
||||
#: fields.py:895
|
||||
msgid ""
|
||||
"Ensure that there are no more than {max_whole_digits} digits before the "
|
||||
"decimal point."
|
||||
msgstr "Assicurati che non ci siano più di {max_whole_digits} cifre prima del separatore decimale."
|
||||
|
||||
#: fields.py:1004
|
||||
#, python-brace-format
|
||||
#: fields.py:1025
|
||||
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}."
|
||||
|
||||
#: fields.py:1005
|
||||
#: fields.py:1026
|
||||
msgid "Expected a datetime but got a date."
|
||||
msgstr "Atteso un oggetto di tipo datetime ma l'oggetto ricevuto è di tipo date."
|
||||
|
||||
#: fields.py:1082
|
||||
#, python-brace-format
|
||||
#: fields.py:1103
|
||||
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}."
|
||||
|
||||
#: fields.py:1083
|
||||
#: fields.py:1104
|
||||
msgid "Expected a date but got a datetime."
|
||||
msgstr "Atteso un oggetto di tipo date ma l'oggetto ricevuto è di tipo datetime."
|
||||
|
||||
#: fields.py:1151
|
||||
#, python-brace-format
|
||||
#: fields.py:1170
|
||||
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}."
|
||||
|
||||
#: fields.py:1215
|
||||
#, python-brace-format
|
||||
#: fields.py:1232
|
||||
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}."
|
||||
|
||||
#: fields.py:1240 fields.py:1289
|
||||
#, python-brace-format
|
||||
#: fields.py:1251 fields.py:1300
|
||||
msgid "\"{input}\" is not a valid choice."
|
||||
msgstr "\"{input}\" non è una scelta valida."
|
||||
|
||||
#: fields.py:1243 relations.py:71 relations.py:442
|
||||
#, python-brace-format
|
||||
#: fields.py:1254 relations.py:71 relations.py:441
|
||||
msgid "More than {count} items..."
|
||||
msgstr "Più di {count} oggetti..."
|
||||
|
||||
#: fields.py:1290 fields.py:1437 relations.py:438 serializers.py:520
|
||||
#, python-brace-format
|
||||
#: fields.py:1301 fields.py:1448 relations.py:437 serializers.py:524
|
||||
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}\"."
|
||||
|
||||
#: fields.py:1291
|
||||
#: fields.py:1302
|
||||
msgid "This selection may not be empty."
|
||||
msgstr "Questa selezione potrebbe non essere vuota."
|
||||
|
||||
#: fields.py:1328
|
||||
#, python-brace-format
|
||||
#: fields.py:1339
|
||||
msgid "\"{input}\" is not a valid path choice."
|
||||
msgstr "\"{input}\" non è un percorso valido."
|
||||
|
||||
#: fields.py:1347
|
||||
#: fields.py:1358
|
||||
msgid "No file was submitted."
|
||||
msgstr "Non è stato inviato alcun file."
|
||||
|
||||
#: fields.py:1348
|
||||
#: fields.py:1359
|
||||
msgid ""
|
||||
"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."
|
||||
|
||||
#: fields.py:1349
|
||||
#: fields.py:1360
|
||||
msgid "No filename could be determined."
|
||||
msgstr "Il nome del file non può essere determinato."
|
||||
|
||||
#: fields.py:1350
|
||||
#: fields.py:1361
|
||||
msgid "The submitted file is empty."
|
||||
msgstr "Il file inviato è vuoto."
|
||||
|
||||
#: fields.py:1351
|
||||
#, python-brace-format
|
||||
#: fields.py:1362
|
||||
msgid ""
|
||||
"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})."
|
||||
|
||||
#: fields.py:1399
|
||||
#: fields.py:1410
|
||||
msgid ""
|
||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||
"corrupted image."
|
||||
msgstr "Invia un'immagine valida. Il file che hai inviato non era un'immagine o era corrotto."
|
||||
|
||||
#: fields.py:1438 relations.py:439 serializers.py:521
|
||||
#: fields.py:1449 relations.py:438 serializers.py:525
|
||||
msgid "This list may not be empty."
|
||||
msgstr "Questa lista potrebbe non essere vuota."
|
||||
|
||||
#: fields.py:1491
|
||||
#, python-brace-format
|
||||
#: fields.py:1502
|
||||
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}\"."
|
||||
|
||||
#: fields.py:1538
|
||||
#: fields.py:1549
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Il valore deve essere un JSON valido."
|
||||
|
||||
#: filters.py:35 templates/rest_framework/filters/django_filter.html.py:5
|
||||
#: filters.py:36 templates/rest_framework/filters/django_filter.html:5
|
||||
msgid "Submit"
|
||||
msgstr "Invia"
|
||||
|
||||
#: pagination.py:189
|
||||
#: filters.py:336
|
||||
msgid "ascending"
|
||||
msgstr ""
|
||||
|
||||
#: filters.py:337
|
||||
msgid "descending"
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:193
|
||||
msgid "Invalid page."
|
||||
msgstr ""
|
||||
|
||||
#: pagination.py:407
|
||||
#: pagination.py:427
|
||||
msgid "Invalid cursor"
|
||||
msgstr "Cursore non valido"
|
||||
|
||||
#: relations.py:207
|
||||
#, python-brace-format
|
||||
msgid "Invalid pk \"{pk_value}\" - object does not exist."
|
||||
msgstr "Pk \"{pk_value}\" non valido - l'oggetto non esiste."
|
||||
|
||||
#: relations.py:208
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected pk value, received {data_type}."
|
||||
msgstr "Tipo non corretto. Era atteso un valore pk, ma è stato ricevuto {data_type}."
|
||||
|
||||
|
@ -368,25 +353,22 @@ msgid "Invalid hyperlink - Object does not exist."
|
|||
msgstr "Collegamento non valido - L'oggetto non esiste."
|
||||
|
||||
#: relations.py:243
|
||||
#, python-brace-format
|
||||
msgid "Incorrect type. Expected URL string, received {data_type}."
|
||||
msgstr "Tipo non corretto. Era attesa una stringa URL, ma è stato ricevuto {data_type}."
|
||||
|
||||
#: relations.py:402
|
||||
#, python-brace-format
|
||||
#: relations.py:401
|
||||
msgid "Object with {slug_name}={value} does not exist."
|
||||
msgstr "L'oggetto con {slug_name}={value} non esiste."
|
||||
|
||||
#: relations.py:403
|
||||
#: relations.py:402
|
||||
msgid "Invalid value."
|
||||
msgstr "Valore non valido."
|
||||
|
||||
#: serializers.py:326
|
||||
#, python-brace-format
|
||||
msgid "Invalid data. Expected a dictionary, but got {datatype}."
|
||||
msgstr "Dati non validi. Era atteso un dizionario, ma si è ricevuto {datatype}."
|
||||
|
||||
#: templates/rest_framework/admin.html:118
|
||||
#: templates/rest_framework/admin.html:116
|
||||
#: templates/rest_framework/base.html:128
|
||||
msgid "Filters"
|
||||
msgstr "Filtri"
|
||||
|
@ -416,27 +398,23 @@ msgstr "Nessuno"
|
|||
msgid "No items to select."
|
||||
msgstr "Nessun elemento da selezionare."
|
||||
|
||||
#: validators.py:24
|
||||
#: validators.py:43
|
||||
msgid "This field must be unique."
|
||||
msgstr "Questo campo deve essere unico."
|
||||
|
||||
#: validators.py:78
|
||||
#, python-brace-format
|
||||
#: validators.py:97
|
||||
msgid "The fields {field_names} must make a unique set."
|
||||
msgstr "I campi {field_names} devono costituire un insieme unico."
|
||||
|
||||
#: validators.py:226
|
||||
#, python-brace-format
|
||||
#: validators.py:245
|
||||
msgid "This field must be unique for the \"{date_field}\" date."
|
||||
msgstr "Questo campo deve essere unico per la data \"{date_field}\"."
|
||||
|
||||
#: validators.py:241
|
||||
#, python-brace-format
|
||||
#: validators.py:260
|
||||
msgid "This field must be unique for the \"{date_field}\" month."
|
||||
msgstr "Questo campo deve essere unico per il mese \"{date_field}\"."
|
||||
|
||||
#: validators.py:254
|
||||
#, python-brace-format
|
||||
#: validators.py:273
|
||||
msgid "This field must be unique for the \"{date_field}\" year."
|
||||
msgstr "Questo campo deve essere unico per l'anno \"{date_field}\"."
|
||||
|
||||
|
@ -444,15 +422,19 @@ msgstr "Questo campo deve essere unico per l'anno \"{date_field}\"."
|
|||
msgid "Invalid version in \"Accept\" header."
|
||||
msgstr "Versione non valida nell'header \"Accept\"."
|
||||
|
||||
#: versioning.py:73 versioning.py:115
|
||||
#: versioning.py:73
|
||||
msgid "Invalid version in URL path."
|
||||
msgstr "Versione non valida nella sequenza URL."
|
||||
|
||||
#: versioning.py:144
|
||||
#: versioning.py:115
|
||||
msgid "Invalid version in URL path. Does not match any version namespace."
|
||||
msgstr ""
|
||||
|
||||
#: versioning.py:147
|
||||
msgid "Invalid version in hostname."
|
||||
msgstr "Versione non valida nel nome dell'host."
|
||||
|
||||
#: versioning.py:166
|
||||
#: versioning.py:169
|
||||
msgid "Invalid version in query parameter."
|
||||
msgstr "Versione non valida nel parametro della query."
|
||||
|
||||
|
|
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user