From 7df03268a467a9aec9c4c574c85317a738ca33ae Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 18 Dec 2012 06:39:23 -0500 Subject: Fixed #17312 - Warned about database side effects in tests. Thanks jcspray for the suggestion. --- docs/topics/testing.txt | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'docs') diff --git a/docs/topics/testing.txt b/docs/topics/testing.txt index 8c11e32a55..b4645c236b 100644 --- a/docs/topics/testing.txt +++ b/docs/topics/testing.txt @@ -115,8 +115,8 @@ Here is an example :class:`unittest.TestCase` subclass:: class AnimalTestCase(unittest.TestCase): def setUp(self): - self.lion = Animal.objects.create(name="lion", sound="roar") - self.cat = Animal.objects.create(name="cat", sound="meow") + self.lion = Animal(name="lion", sound="roar") + self.cat = Animal(name="cat", sound="meow") def test_animals_can_speak(self): """Animals that can speak are correctly identified""" @@ -139,6 +139,18 @@ For more details about :mod:`unittest`, see the Python documentation. .. _suggested organization: http://docs.python.org/library/unittest.html#organizing-tests +.. warning:: + + If your tests rely on database access such as creating or querying models, + be sure to create your test classes as subclasses of + :class:`django.test.TestCase` rather than :class:`unittest.TestCase`. + + In the example above, we instantiate some models but do not save them to + the database. Using :class:`unittest.TestCase` avoids the cost of running + each test in a transaction and flushing the database, but for most + applications the scope of tests you will be able to write this way will + be fairly limited, so it's easiest to use :class:`django.test.TestCase`. + Writing doctests ---------------- @@ -343,7 +355,7 @@ This convenience method sets up the test database, and puts other Django features into modes that allow for repeatable testing. The call to :meth:`~django.test.utils.setup_test_environment` is made -automatically as part of the setup of `./manage.py test`. You only +automatically as part of the setup of ``./manage.py test``. You only need to manually invoke this method if you're not using running your tests via Django's test runner. @@ -1191,6 +1203,8 @@ Normal Python unit test classes extend a base class of :width: 508 :height: 391 + Hierarchy of Django unit testing classes + Regardless of the version of Python you're using, if you've installed :mod:`unittest2`, :mod:`django.utils.unittest` will point to that library. @@ -1385,6 +1399,7 @@ attribute:: def test_my_stuff(self): # Here self.client is an instance of MyTestClient... + call_some_test_code() .. _topics-testing-fixtures: -- cgit v1.3 From 31f49f1396c4cc565017066e9f17c6b850a89687 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 18 Dec 2012 07:04:17 -0500 Subject: Fixed #19442 - Clarified that raw SQL must be committed. Thanks startup.canada for the suggestion. --- docs/topics/db/transactions.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/topics/db/transactions.txt b/docs/topics/db/transactions.txt index 65944abb8b..e3c2cadf6d 100644 --- a/docs/topics/db/transactions.txt +++ b/docs/topics/db/transactions.txt @@ -199,7 +199,8 @@ Requirements for transaction handling Django requires that every transaction that is opened is closed before the completion of a request. If you are using :func:`autocommit` (the default commit mode) or :func:`commit_on_success`, this will be done -for you automatically. However, if you are manually managing +for you automatically (with the exception of :ref:`executing custom SQL +`). However, if you are manually managing transactions (using the :func:`commit_manually` decorator), you must ensure that the transaction is either committed or rolled back before a request is completed. -- cgit v1.3 From 6534a95ac3142ff79f8152b0d5dcbf9330d8abde Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 18 Dec 2012 06:52:30 -0500 Subject: Fixed #19470 - Clarified widthratio example. Thanks orblivion for the suggestion. --- django/template/defaulttags.py | 8 ++++---- docs/ref/templates/builtins.txt | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) (limited to 'docs') diff --git a/django/template/defaulttags.py b/django/template/defaulttags.py index aca2f41f2d..b5c8cf2d36 100644 --- a/django/template/defaulttags.py +++ b/django/template/defaulttags.py @@ -1319,11 +1319,11 @@ def widthratio(parser, token): For example:: - + - Above, if ``this_value`` is 175 and ``max_value`` is 200, the image in - the above example will be 88 pixels wide (because 175/200 = .875; - .875 * 100 = 87.5 which is rounded up to 88). + If ``this_value`` is 175, ``max_value`` is 200, and ``max_width`` is 100, + the image in the above example will be 88 pixels wide + (because 175/200 = .875; .875 * 100 = 87.5 which is rounded up to 88). """ bits = token.contents.split() if len(bits) != 4: diff --git a/docs/ref/templates/builtins.txt b/docs/ref/templates/builtins.txt index 57ef0cfb27..dd288ababc 100644 --- a/docs/ref/templates/builtins.txt +++ b/docs/ref/templates/builtins.txt @@ -1079,11 +1079,11 @@ value to a maximum value, and then applies that ratio to a constant. For example:: Bar + height="10" width="{% widthratio this_value max_value max_width %}" /> -Above, if ``this_value`` is 175 and ``max_value`` is 200, the image in the -above example will be 88 pixels wide (because 175/200 = .875; .875 * 100 = 87.5 -which is rounded up to 88). +If ``this_value`` is 175, ``max_value`` is 200, and ``max_width`` is 100, the +image in the above example will be 88 pixels wide +(because 175/200 = .875; .875 * 100 = 87.5 which is rounded up to 88). .. templatetag:: with -- cgit v1.3 From abd0f304b162b3120b1c7321fbfc3090e5f3c92c Mon Sep 17 00:00:00 2001 From: Ramiro Morales Date: Wed, 19 Dec 2012 15:07:52 -0300 Subject: Added PASSWORD_HASHERS to settings reference document. --- docs/ref/settings.txt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'docs') diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt index daa4ee9a46..135cddae25 100644 --- a/docs/ref/settings.txt +++ b/docs/ref/settings.txt @@ -1450,6 +1450,25 @@ format has higher precedence and will be applied instead. See also :setting:`DECIMAL_SEPARATOR`, :setting:`THOUSAND_SEPARATOR` and :setting:`USE_THOUSAND_SEPARATOR`. +.. setting:: PASSWORD_HASHERS + +PASSWORD_HASHERS +---------------- + +.. versionadded:: 1.4 + +See :ref:`auth_password_storage`. + +Default:: + + ('django.contrib.auth.hashers.PBKDF2PasswordHasher', + 'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher', + 'django.contrib.auth.hashers.BCryptPasswordHasher', + 'django.contrib.auth.hashers.SHA1PasswordHasher', + 'django.contrib.auth.hashers.MD5PasswordHasher', + 'django.contrib.auth.hashers.UnsaltedMD5PasswordHasher', + 'django.contrib.auth.hashers.CryptPasswordHasher',) + .. setting:: PASSWORD_RESET_TIMEOUT_DAYS PASSWORD_RESET_TIMEOUT_DAYS -- cgit v1.3 From 52a2588df69e5252bee98e76e8d3a2aa37bce23c Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Fri, 21 Dec 2012 15:52:06 -0500 Subject: Fixed #19506 - Remove 'mysite' prefix in model example. Thanks Mike O'Connor for the report. --- docs/topics/db/models.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/topics/db/models.txt b/docs/topics/db/models.txt index 2f1676ac1a..cfa794ca92 100644 --- a/docs/topics/db/models.txt +++ b/docs/topics/db/models.txt @@ -66,13 +66,13 @@ those models. Do this by editing your settings file and changing the your ``models.py``. For example, if the models for your application live in the module -``mysite.myapp.models`` (the package structure that is created for an +``myapp.models`` (the package structure that is created for an application by the :djadmin:`manage.py startapp ` script), :setting:`INSTALLED_APPS` should read, in part:: INSTALLED_APPS = ( #... - 'mysite.myapp', + 'myapp', #... ) -- cgit v1.3 From d19109fd37e75ccf29d2ca64370102753dbc7c5b Mon Sep 17 00:00:00 2001 From: Ramiro Morales Date: Fri, 21 Dec 2012 21:59:06 -0300 Subject: Fixed #19497 -- Refactored testing docs. Thanks Tim Graham for the review and suggestions. --- docs/index.txt | 6 +- .../contributing/writing-code/unit-tests.txt | 4 +- docs/intro/contributing.txt | 2 +- docs/intro/tutorial05.txt | 2 +- docs/misc/api-stability.txt | 2 +- docs/ref/django-admin.txt | 6 +- docs/ref/settings.txt | 6 +- docs/ref/signals.txt | 2 +- docs/releases/0.96.txt | 2 +- docs/releases/1.1-alpha-1.txt | 2 +- docs/releases/1.1-beta-1.txt | 2 +- docs/releases/1.1.txt | 4 +- .../django_unittest_classes_hierarchy.graffle | 883 -------- .../_images/django_unittest_classes_hierarchy.pdf | Bin 51979 -> 0 bytes .../_images/django_unittest_classes_hierarchy.svg | 3 - docs/topics/index.txt | 2 +- docs/topics/install.txt | 2 +- docs/topics/testing.txt | 2359 -------------------- .../django_unittest_classes_hierarchy.graffle | 883 ++++++++ .../_images/django_unittest_classes_hierarchy.pdf | Bin 0 -> 51979 bytes .../_images/django_unittest_classes_hierarchy.svg | 3 + docs/topics/testing/advanced.txt | 429 ++++ docs/topics/testing/doctests.txt | 81 + docs/topics/testing/index.txt | 111 + docs/topics/testing/overview.txt | 1784 +++++++++++++++ 25 files changed, 3314 insertions(+), 3266 deletions(-) delete mode 100644 docs/topics/_images/django_unittest_classes_hierarchy.graffle delete mode 100644 docs/topics/_images/django_unittest_classes_hierarchy.pdf delete mode 100644 docs/topics/_images/django_unittest_classes_hierarchy.svg delete mode 100644 docs/topics/testing.txt create mode 100644 docs/topics/testing/_images/django_unittest_classes_hierarchy.graffle create mode 100644 docs/topics/testing/_images/django_unittest_classes_hierarchy.pdf create mode 100644 docs/topics/testing/_images/django_unittest_classes_hierarchy.svg create mode 100644 docs/topics/testing/advanced.txt create mode 100644 docs/topics/testing/doctests.txt create mode 100644 docs/topics/testing/index.txt create mode 100644 docs/topics/testing/overview.txt (limited to 'docs') diff --git a/docs/index.txt b/docs/index.txt index 9fea8ff3f2..ab00da271c 100644 --- a/docs/index.txt +++ b/docs/index.txt @@ -180,7 +180,11 @@ testing of Django applications: :doc:`Overview ` | :doc:`Adding custom commands ` -* **Testing:** :doc:`Overview ` +* **Testing:** + :doc:`Overview ` | + :doc:`Writing and running tests ` | + :doc:`Advanced topics ` | + :doc:`Doctests ` * **Deployment:** :doc:`Overview ` | diff --git a/docs/internals/contributing/writing-code/unit-tests.txt b/docs/internals/contributing/writing-code/unit-tests.txt index 4e702ff83e..afef554a8c 100644 --- a/docs/internals/contributing/writing-code/unit-tests.txt +++ b/docs/internals/contributing/writing-code/unit-tests.txt @@ -15,8 +15,8 @@ The tests cover: We appreciate any and all contributions to the test suite! The Django tests all use the testing infrastructure that ships with Django for -testing applications. See :doc:`Testing Django applications ` -for an explanation of how to write new tests. +testing applications. See :doc:`Testing Django applications +` for an explanation of how to write new tests. .. _running-unit-tests: diff --git a/docs/intro/contributing.txt b/docs/intro/contributing.txt index a343814c02..c94038bc56 100644 --- a/docs/intro/contributing.txt +++ b/docs/intro/contributing.txt @@ -281,7 +281,7 @@ correctly in a couple different situations. computer programming, so there's lots of information out there: * A good first look at writing tests for Django can be found in the - documentation on :doc:`Testing Django applications`. + documentation on :doc:`Testing Django applications `. * Dive Into Python (a free online book for beginning Python developers) includes a great `introduction to Unit Testing`__. * After reading those, if you want something a little meatier to sink diff --git a/docs/intro/tutorial05.txt b/docs/intro/tutorial05.txt index 163b7cdd0f..d1f95176ed 100644 --- a/docs/intro/tutorial05.txt +++ b/docs/intro/tutorial05.txt @@ -632,7 +632,7 @@ a piece of code, it usually means that code should be refactored or removed. Coverage will help to identify dead code. See :ref:`topics-testing-code-coverage` for details. -:doc:`Testing Django applications ` has comprehensive +:doc:`Testing Django applications ` has comprehensive information about testing. .. _Selenium: http://seleniumhq.org/ diff --git a/docs/misc/api-stability.txt b/docs/misc/api-stability.txt index 4f232e795b..a13cb5de69 100644 --- a/docs/misc/api-stability.txt +++ b/docs/misc/api-stability.txt @@ -71,7 +71,7 @@ of 1.0. This includes these APIs: external template tags. Before adding any such tags, we'll ensure that Django raises an error if it tries to load tags with duplicate names. -- :doc:`Testing ` +- :doc:`Testing ` - :doc:`django-admin utility `. diff --git a/docs/ref/django-admin.txt b/docs/ref/django-admin.txt index 306db8439e..6ab3b1d133 100644 --- a/docs/ref/django-admin.txt +++ b/docs/ref/django-admin.txt @@ -1036,7 +1036,7 @@ test .. django-admin:: test -Runs tests for all installed models. See :doc:`/topics/testing` for more +Runs tests for all installed models. See :doc:`/topics/testing/index` for more information. .. django-admin-option:: --failfast @@ -1072,7 +1072,7 @@ For example, this command:: ...would perform the following steps: -1. Create a test database, as described in :doc:`/topics/testing`. +1. Create a test database, as described in :ref:`the-test-database`. 2. Populate the test database with fixture data from the given fixtures. (For more on fixtures, see the documentation for ``loaddata`` above.) 3. Runs the Django development server (as in ``runserver``), pointed at @@ -1080,7 +1080,7 @@ For example, this command:: This is useful in a number of ways: -* When you're writing :doc:`unit tests ` of how your views +* When you're writing :doc:`unit tests ` of how your views act with certain fixture data, you can use ``testserver`` to interact with the views in a Web browser, manually. diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt index 135cddae25..5ecc221039 100644 --- a/docs/ref/settings.txt +++ b/docs/ref/settings.txt @@ -562,7 +562,7 @@ If the default value (``None``) is used with the SQLite database engine, the tests will use a memory resident database. For all other database engines the test database will use the name ``'test_' + DATABASE_NAME``. -See :doc:`/topics/testing`. +See :ref:`the-test-database`. .. setting:: TEST_CREATE @@ -1982,9 +1982,7 @@ TEST_RUNNER Default: ``'django.test.simple.DjangoTestSuiteRunner'`` The name of the class to use for starting the test suite. See -:doc:`/topics/testing`. - -.. _Testing Django Applications: ../testing/ +:ref:`other-testing-frameworks`. .. setting:: THOUSAND_SEPARATOR diff --git a/docs/ref/signals.txt b/docs/ref/signals.txt index 0db540370d..3315f9781b 100644 --- a/docs/ref/signals.txt +++ b/docs/ref/signals.txt @@ -476,7 +476,7 @@ Test signals .. module:: django.test.signals :synopsis: Signals sent during testing. -Signals only sent when :doc:`running tests `. +Signals only sent when :ref:`running tests `. setting_changed --------------- diff --git a/docs/releases/0.96.txt b/docs/releases/0.96.txt index a608629957..a00f878df3 100644 --- a/docs/releases/0.96.txt +++ b/docs/releases/0.96.txt @@ -220,7 +220,7 @@ supported :doc:`serialization formats `, that will be loaded into your database at the start of your tests. This makes testing with real data much easier. -See :doc:`the testing documentation ` for the full details. +See :doc:`the testing documentation ` for the full details. Improvements to the admin interface ----------------------------------- diff --git a/docs/releases/1.1-alpha-1.txt b/docs/releases/1.1-alpha-1.txt index 10b0d5d71e..c8ac56cf48 100644 --- a/docs/releases/1.1-alpha-1.txt +++ b/docs/releases/1.1-alpha-1.txt @@ -51,7 +51,7 @@ Performance improvements .. currentmodule:: django.test -Tests written using Django's :doc:`testing framework ` now run +Tests written using Django's :doc:`testing framework ` now run dramatically faster (as much as 10 times faster in many cases). This was accomplished through the introduction of transaction-based tests: when diff --git a/docs/releases/1.1-beta-1.txt b/docs/releases/1.1-beta-1.txt index 9bac3a53f1..1555a9464a 100644 --- a/docs/releases/1.1-beta-1.txt +++ b/docs/releases/1.1-beta-1.txt @@ -102,7 +102,7 @@ Testing improvements .. currentmodule:: django.test.client A couple of small but very useful improvements have been made to the -:doc:`testing framework `: +:doc:`testing framework `: * The test :class:`Client` now can automatically follow redirects with the ``follow`` argument to :meth:`Client.get` and :meth:`Client.post`. This diff --git a/docs/releases/1.1.txt b/docs/releases/1.1.txt index 852644dee4..84af7fc1d9 100644 --- a/docs/releases/1.1.txt +++ b/docs/releases/1.1.txt @@ -264,14 +264,14 @@ Testing improvements -------------------- A few notable improvements have been made to the :doc:`testing framework -`. +`. Test performance improvements ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. currentmodule:: django.test -Tests written using Django's :doc:`testing framework ` now run +Tests written using Django's :doc:`testing framework ` now run dramatically faster (as much as 10 times faster in many cases). This was accomplished through the introduction of transaction-based tests: when diff --git a/docs/topics/_images/django_unittest_classes_hierarchy.graffle b/docs/topics/_images/django_unittest_classes_hierarchy.graffle deleted file mode 100644 index 7211c0f3be..0000000000 --- a/docs/topics/_images/django_unittest_classes_hierarchy.graffle +++ /dev/null @@ -1,883 +0,0 @@ - - - - - ActiveLayerIndex - 0 - ApplicationVersion - - com.omnigroup.OmniGrafflePro - 139.16.0.171715 - - AutoAdjust - - BackgroundGraphic - - Bounds - {{0, 0}, {559.28997802734375, 782.8900146484375}} - Class - SolidGraphic - ID - 2 - Style - - shadow - - Draws - NO - - stroke - - Draws - NO - - - - BaseZoom - 0 - CanvasOrigin - {0, 0} - ColumnAlign - 1 - ColumnSpacing - 36 - CreationDate - 2012-12-16 18:52:14 +0000 - Creator - Aymeric Augustin - DisplayScale - 1.000 cm = 1.000 cm - GraphDocumentVersion - 8 - GraphicsList - - - Class - LineGraphic - Head - - ID - 8 - - ID - 29 - OrthogonalBarAutomatic - - OrthogonalBarPoint - {0, 0} - OrthogonalBarPosition - -1 - Points - - {369, 459} - {216, 400.5} - - Style - - stroke - - HeadArrow - UMLInheritance - HeadScale - 0.79999995231628418 - Legacy - - LineType - 2 - TailArrow - 0 - - - Tail - - ID - 6 - Info - 2 - - - - Class - LineGraphic - Head - - ID - 12 - Info - 1 - - ID - 27 - OrthogonalBarAutomatic - - OrthogonalBarPoint - {0, 0} - OrthogonalBarPosition - -1 - Points - - {135, 270} - {369, 225} - - Style - - stroke - - HeadArrow - UMLInheritance - HeadScale - 0.79999995231628418 - Legacy - - LineType - 2 - TailArrow - 0 - - - Tail - - ID - 26 - Position - 0.5 - - - - Class - LineGraphic - Head - - ID - 10 - - ID - 26 - OrthogonalBarAutomatic - - OrthogonalBarPoint - {0, 0} - OrthogonalBarPosition - -1 - Points - - {135, 315} - {135, 225} - - Style - - stroke - - HeadArrow - UMLInheritance - HeadScale - 0.79999995231628418 - Legacy - - LineType - 2 - TailArrow - 0 - - - Tail - - ID - 9 - - - - Class - LineGraphic - Head - - ID - 9 - - ID - 25 - OrthogonalBarAutomatic - - OrthogonalBarPoint - {0, 0} - OrthogonalBarPosition - -1 - Points - - {135, 387} - {135, 342} - - Style - - stroke - - HeadArrow - UMLInheritance - HeadScale - 0.79999995231628418 - Legacy - - LineType - 2 - TailArrow - 0 - - - Tail - - ID - 8 - - - - Class - LineGraphic - Head - - ID - 8 - - ID - 23 - OrthogonalBarAutomatic - - OrthogonalBarPoint - {0, 0} - OrthogonalBarPosition - -1 - Points - - {135, 459} - {135, 414} - - Style - - stroke - - HeadArrow - UMLInheritance - HeadScale - 0.79999995231628418 - Legacy - - LineType - 2 - TailArrow - 0 - - - Tail - - ID - 7 - - - - Bounds - {{378, 252}, {81, 27}} - Class - ShapedGraphic - FontInfo - - Font - Helvetica - Size - 12 - - ID - 22 - Shape - NoteShape - Style - - stroke - - Color - - b - 0 - g - 0.501961 - r - 0 - - - - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 -\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;\red0\green128\blue0;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc - -\f0\i\fs24 \cf2 Python < 2.7} - VerticalPad - 0 - - TextRelativeArea - {{0, 0}, {1, 1}} - - - Bounds - {{45, 252}, {81, 27}} - Class - ShapedGraphic - FontInfo - - Font - Helvetica - Size - 12 - - ID - 20 - Shape - NoteShape - Style - - stroke - - Color - - b - 0 - g - 0.501961 - r - 0 - - - - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 -\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;\red0\green128\blue0;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc - -\f0\i\fs24 \cf2 Python \uc0\u8805 2.7} - VerticalPad - 0 - - - - Bounds - {{288, 198}, {162, 27}} - Class - ShapedGraphic - ID - 12 - Magnets - - {0, 1} - {0, -1} - {1, 0} - {-1, 0} - - Shape - Rectangle - Style - - fill - - FillType - 2 - GradientAngle - 90 - GradientColor - - w - 0.666667 - - - stroke - - CornerRadius - 5 - - - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 -\cocoascreenfonts1{\fonttbl\f0\fmodern\fcharset0 Courier;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc - -\f0\fs24 \cf0 TestCase} - - - - Bounds - {{54, 198}, {162, 27}} - Class - ShapedGraphic - ID - 10 - Magnets - - {0, 1} - {0, -1} - {1, 0} - {-1, 0} - - Shape - Rectangle - Style - - fill - - FillType - 2 - GradientAngle - 90 - GradientColor - - w - 0.666667 - - - stroke - - CornerRadius - 5 - - - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 -\cocoascreenfonts1{\fonttbl\f0\fmodern\fcharset0 Courier;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc - -\f0\fs24 \cf0 TestCase} - - - - Bounds - {{54, 315}, {162, 27}} - Class - ShapedGraphic - ID - 9 - Magnets - - {0, 1} - {0, -1} - {1, 0} - {-1, 0} - - Shape - Rectangle - Style - - fill - - FillType - 2 - GradientAngle - 90 - GradientColor - - w - 0.666667 - - - stroke - - CornerRadius - 5 - - - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 -\cocoascreenfonts1{\fonttbl\f0\fmodern\fcharset0 Courier;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc - -\f0\fs24 \cf0 SimpleTestCase} - - - - Bounds - {{54, 387}, {162, 27}} - Class - ShapedGraphic - ID - 8 - Magnets - - {0, 1} - {0, -1} - {1, 0} - {-1, 0} - - Shape - Rectangle - Style - - fill - - FillType - 2 - GradientAngle - 90 - GradientColor - - w - 0.666667 - - - stroke - - CornerRadius - 5 - - - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 -\cocoascreenfonts1{\fonttbl\f0\fmodern\fcharset0 Courier;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc - -\f0\fs24 \cf0 TransactionTestCase} - - - - Bounds - {{54, 459}, {162, 27}} - Class - ShapedGraphic - ID - 7 - Magnets - - {0, 1} - {0, -1} - {1, 0} - {-1, 0} - - Shape - Rectangle - Style - - fill - - FillType - 2 - GradientAngle - 90 - GradientColor - - w - 0.666667 - - - stroke - - CornerRadius - 5 - - - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 -\cocoascreenfonts1{\fonttbl\f0\fmodern\fcharset0 Courier;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc - -\f0\fs24 \cf0 TestCase} - - - - Bounds - {{288, 459}, {162, 27}} - Class - ShapedGraphic - ID - 6 - Magnets - - {0, 1} - {0, -1} - {1, 0} - {-1, 0} - - Shape - Rectangle - Style - - fill - - FillType - 2 - GradientAngle - 90 - GradientColor - - w - 0.666667 - - - stroke - - CornerRadius - 5 - - - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 -\cocoascreenfonts1{\fonttbl\f0\fmodern\fcharset0 Courier;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc - -\f0\fs24 \cf0 LiveServerTestCase} - - - - Bounds - {{18, 297}, {468, 207}} - Class - ShapedGraphic - ID - 13 - Shape - Rectangle - Style - - Text - - Align - 2 - Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 -\cocoascreenfonts1{\fonttbl\f0\fmodern\fcharset0 Courier;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr - -\f0\fs24 \cf0 django.test} - - TextPlacement - 0 - - - Bounds - {{18, 153}, {225, 90}} - Class - ShapedGraphic - ID - 18 - Shape - Rectangle - Style - - Text - - Align - 2 - Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 -\cocoascreenfonts1{\fonttbl\f0\fmodern\fcharset0 Courier;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr - -\f0\fs24 \cf0 django.utils.unittest\ -= unittest (standard library)} - - TextPlacement - 0 - - - Bounds - {{261, 153}, {225, 90}} - Class - ShapedGraphic - ID - 19 - Shape - Rectangle - Style - - Text - - Align - 2 - Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 -\cocoascreenfonts1{\fonttbl\f0\fmodern\fcharset0 Courier;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr - -\f0\fs24 \cf0 django.utils.unittest\ -= unittest2 (bundled copy)} - - TextPlacement - 0 - - - GridInfo - - ShowsGrid - YES - SnapsToGrid - YES - - GuidesLocked - NO - GuidesVisible - YES - HPages - 1 - ImageCounter - 1 - KeepToScale - - Layers - - - Lock - NO - Name - Calque 1 - Print - YES - View - YES - - - LayoutInfo - - Animate - NO - circoMinDist - 18 - circoSeparation - 0.0 - layoutEngine - dot - neatoSeparation - 0.0 - twopiSeparation - 0.0 - - LinksVisible - NO - MagnetsVisible - NO - MasterSheets - - ModificationDate - 2012-12-16 19:08:28 +0000 - Modifier - Aymeric Augustin - NotesVisible - NO - Orientation - 2 - OriginVisible - NO - PageBreaks - YES - PrintInfo - - NSBottomMargin - - float - 41 - - NSHorizonalPagination - - coded - BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG - - NSLeftMargin - - float - 18 - - NSPaperSize - - size - {595.28997802734375, 841.8900146484375} - - NSPrintReverseOrientation - - int - 0 - - NSRightMargin - - float - 18 - - NSTopMargin - - float - 18 - - - PrintOnePage - - ReadOnly - NO - RowAlign - 1 - RowSpacing - 36 - SheetTitle - Canevas 1 - SmartAlignmentGuidesActive - YES - SmartDistanceGuidesActive - YES - UniqueID - 1 - UseEntirePage - - VPages - 1 - WindowInfo - - CurrentSheet - 0 - ExpandedCanvases - - Frame - {{9, 4}, {694, 874}} - ListView - - OutlineWidth - 142 - RightSidebar - - ShowRuler - - Sidebar - - SidebarWidth - 120 - VisibleRegion - {{0, 0}, {559, 735}} - Zoom - 1 - ZoomValues - - - Canevas 1 - 1 - 1 - - - - - diff --git a/docs/topics/_images/django_unittest_classes_hierarchy.pdf b/docs/topics/_images/django_unittest_classes_hierarchy.pdf deleted file mode 100644 index cedaba22ac..0000000000 Binary files a/docs/topics/_images/django_unittest_classes_hierarchy.pdf and /dev/null differ diff --git a/docs/topics/_images/django_unittest_classes_hierarchy.svg b/docs/topics/_images/django_unittest_classes_hierarchy.svg deleted file mode 100644 index 0482f044dd..0000000000 --- a/docs/topics/_images/django_unittest_classes_hierarchy.svg +++ /dev/null @@ -1,3 +0,0 @@ - - -2012-12-16 19:08ZCanevas 1Calque 1django.utils.unittest= unittest2 (bundled copy)django.utils.unittest= unittest (standard library)django.testLiveServerTestCaseTestCaseTransactionTestCaseSimpleTestCaseTestCaseTestCasePython ≥ 2.7Python < 2.7 diff --git a/docs/topics/index.txt b/docs/topics/index.txt index 72f5090b15..82c5859b2c 100644 --- a/docs/topics/index.txt +++ b/docs/topics/index.txt @@ -13,7 +13,7 @@ Introductions to all the key parts of Django you'll need to know: templates class-based-views/index files - testing + testing/index auth cache conditional-view-processing diff --git a/docs/topics/install.txt b/docs/topics/install.txt index b71033f319..0c3767d3e1 100644 --- a/docs/topics/install.txt +++ b/docs/topics/install.txt @@ -135,7 +135,7 @@ table once ``syncdb`` has created it. After creating a database user with these permissions, you'll specify the details in your project's settings file, see :setting:`DATABASES` for details. -If you're using Django's :doc:`testing framework` to test +If you're using Django's :doc:`testing framework` to test database queries, Django will need permission to create a test database. .. _PostgreSQL: http://www.postgresql.org/ diff --git a/docs/topics/testing.txt b/docs/topics/testing.txt deleted file mode 100644 index b4645c236b..0000000000 --- a/docs/topics/testing.txt +++ /dev/null @@ -1,2359 +0,0 @@ -=========================== -Testing Django applications -=========================== - -.. module:: django.test - :synopsis: Testing tools for Django applications. - -Automated testing is an extremely useful bug-killing tool for the modern -Web developer. You can use a collection of tests -- a **test suite** -- to -solve, or avoid, a number of problems: - -* When you're writing new code, you can use tests to validate your code - works as expected. - -* When you're refactoring or modifying old code, you can use tests to - ensure your changes haven't affected your application's behavior - unexpectedly. - -Testing a Web application is a complex task, because a Web application is made -of several layers of logic -- from HTTP-level request handling, to form -validation and processing, to template rendering. With Django's test-execution -framework and assorted utilities, you can simulate requests, insert test data, -inspect your application's output and generally verify your code is doing what -it should be doing. - -The best part is, it's really easy. - -This document is split into two primary sections. First, we explain how to -write tests with Django. Then, we explain how to run them. - -Writing tests -============= - -There are two primary ways to write tests with Django, corresponding to the -two test frameworks that ship in the Python standard library. The two -frameworks are: - -* **Unit tests** -- tests that are expressed as methods on a Python class - that subclasses :class:`unittest.TestCase` or Django's customized - :class:`TestCase`. For example:: - - import unittest - - class MyFuncTestCase(unittest.TestCase): - def testBasic(self): - a = ['larry', 'curly', 'moe'] - self.assertEqual(my_func(a, 0), 'larry') - self.assertEqual(my_func(a, 1), 'curly') - -* **Doctests** -- tests that are embedded in your functions' docstrings and - are written in a way that emulates a session of the Python interactive - interpreter. For example:: - - def my_func(a_list, idx): - """ - >>> a = ['larry', 'curly', 'moe'] - >>> my_func(a, 0) - 'larry' - >>> my_func(a, 1) - 'curly' - """ - return a_list[idx] - -We'll discuss choosing the appropriate test framework later, however, most -experienced developers prefer unit tests. You can also use any *other* Python -test framework, as we'll explain in a bit. - -Writing unit tests ------------------- - -Django's unit tests use a Python standard library module: :mod:`unittest`. This -module defines tests in class-based approach. - -.. admonition:: unittest2 - - Python 2.7 introduced some major changes to the unittest library, - adding some extremely useful features. To ensure that every Django - project can benefit from these new features, Django ships with a - copy of unittest2_, a copy of the Python 2.7 unittest library, - backported for Python 2.5 compatibility. - - To access this library, Django provides the - :mod:`django.utils.unittest` module alias. If you are using Python - 2.7, or you have installed unittest2 locally, Django will map the - alias to the installed version of the unittest library. Otherwise, - Django will use its own bundled version of unittest2. - - To use this alias, simply use:: - - from django.utils import unittest - - wherever you would have historically used:: - - import unittest - - If you want to continue to use the base unittest library, you can -- - you just won't get any of the nice new unittest2 features. - -.. _unittest2: http://pypi.python.org/pypi/unittest2 - -For a given Django application, the test runner looks for unit tests in two -places: - -* The ``models.py`` file. The test runner looks for any subclass of - :class:`unittest.TestCase` in this module. - -* A file called ``tests.py`` in the application directory -- i.e., the - directory that holds ``models.py``. Again, the test runner looks for any - subclass of :class:`unittest.TestCase` in this module. - -Here is an example :class:`unittest.TestCase` subclass:: - - from django.utils import unittest - from myapp.models import Animal - - class AnimalTestCase(unittest.TestCase): - def setUp(self): - self.lion = Animal(name="lion", sound="roar") - self.cat = Animal(name="cat", sound="meow") - - def test_animals_can_speak(self): - """Animals that can speak are correctly identified""" - self.assertEqual(self.lion.speak(), 'The lion says "roar"') - self.assertEqual(self.cat.speak(), 'The cat says "meow"') - -When you :ref:`run your tests `, the default behavior of the test -utility is to find all the test cases (that is, subclasses of -:class:`unittest.TestCase`) in ``models.py`` and ``tests.py``, automatically -build a test suite out of those test cases, and run that suite. - -There is a second way to define the test suite for a module: if you define a -function called ``suite()`` in either ``models.py`` or ``tests.py``, the -Django test runner will use that function to construct the test suite for that -module. This follows the `suggested organization`_ for unit tests. See the -Python documentation for more details on how to construct a complex test -suite. - -For more details about :mod:`unittest`, see the Python documentation. - -.. _suggested organization: http://docs.python.org/library/unittest.html#organizing-tests - -.. warning:: - - If your tests rely on database access such as creating or querying models, - be sure to create your test classes as subclasses of - :class:`django.test.TestCase` rather than :class:`unittest.TestCase`. - - In the example above, we instantiate some models but do not save them to - the database. Using :class:`unittest.TestCase` avoids the cost of running - each test in a transaction and flushing the database, but for most - applications the scope of tests you will be able to write this way will - be fairly limited, so it's easiest to use :class:`django.test.TestCase`. - -Writing doctests ----------------- - -Doctests use Python's standard :mod:`doctest` module, which searches your -docstrings for statements that resemble a session of the Python interactive -interpreter. A full explanation of how :mod:`doctest` works is out of the scope -of this document; read Python's official documentation for the details. - -.. admonition:: What's a **docstring**? - - A good explanation of docstrings (and some guidelines for using them - effectively) can be found in :pep:`257`: - - A docstring is a string literal that occurs as the first statement in - a module, function, class, or method definition. Such a docstring - becomes the ``__doc__`` special attribute of that object. - - For example, this function has a docstring that describes what it does:: - - def add_two(num): - "Return the result of adding two to the provided number." - return num + 2 - - Because tests often make great documentation, putting tests directly in - your docstrings is an effective way to document *and* test your code. - -As with unit tests, for a given Django application, the test runner looks for -doctests in two places: - -* The ``models.py`` file. You can define module-level doctests and/or a - doctest for individual models. It's common practice to put - application-level doctests in the module docstring and model-level - doctests in the model docstrings. - -* A file called ``tests.py`` in the application directory -- i.e., the - directory that holds ``models.py``. This file is a hook for any and all - doctests you want to write that aren't necessarily related to models. - -This example doctest is equivalent to the example given in the unittest section -above:: - - # models.py - - from django.db import models - - class Animal(models.Model): - """ - An animal that knows how to make noise - - # Create some animals - >>> lion = Animal.objects.create(name="lion", sound="roar") - >>> cat = Animal.objects.create(name="cat", sound="meow") - - # Make 'em speak - >>> lion.speak() - 'The lion says "roar"' - >>> cat.speak() - 'The cat says "meow"' - """ - name = models.CharField(max_length=20) - sound = models.CharField(max_length=20) - - def speak(self): - return 'The %s says "%s"' % (self.name, self.sound) - -When you :ref:`run your tests `, the test runner will find this -docstring, notice that portions of it look like an interactive Python session, -and execute those lines while checking that the results match. - -In the case of model tests, note that the test runner takes care of creating -its own test database. That is, any test that accesses a database -- by -creating and saving model instances, for example -- will not affect your -production database. However, the database is not refreshed between doctests, -so if your doctest requires a certain state you should consider flushing the -database or loading a fixture. (See the section on fixtures, below, for more -on this.) Note that to use this feature, the database user Django is connecting -as must have ``CREATE DATABASE`` rights. - -For more details about :mod:`doctest`, see the Python documentation. - -Which should I use? -------------------- - -Because Django supports both of the standard Python test frameworks, it's up to -you and your tastes to decide which one to use. You can even decide to use -*both*. - -For developers new to testing, however, this choice can seem confusing. Here, -then, are a few key differences to help you decide which approach is right for -you: - -* If you've been using Python for a while, :mod:`doctest` will probably feel - more "pythonic". It's designed to make writing tests as easy as possible, - so it requires no overhead of writing classes or methods. You simply put - tests in docstrings. This has the added advantage of serving as - documentation (and correct documentation, at that!). However, while - doctests are good for some simple example code, they are not very good if - you want to produce either high quality, comprehensive tests or high - quality documentation. Test failures are often difficult to debug - as it can be unclear exactly why the test failed. Thus, doctests should - generally be avoided and used primarily for documentation examples only. - -* The :mod:`unittest` framework will probably feel very familiar to - developers coming from Java. :mod:`unittest` is inspired by Java's JUnit, - so you'll feel at home with this method if you've used JUnit or any test - framework inspired by JUnit. - -* If you need to write a bunch of tests that share similar code, then - you'll appreciate the :mod:`unittest` framework's organization around - classes and methods. This makes it easy to abstract common tasks into - common methods. The framework also supports explicit setup and/or cleanup - routines, which give you a high level of control over the environment - in which your test cases are run. - -* If you're writing tests for Django itself, you should use :mod:`unittest`. - -.. _running-tests: - -Running tests -============= - -Once you've written tests, run them using the :djadmin:`test` command of -your project's ``manage.py`` utility:: - - $ ./manage.py test - -By default, this will run every test in every application in -:setting:`INSTALLED_APPS`. If you only want to run tests for a particular -application, add the application name to the command line. For example, if your -:setting:`INSTALLED_APPS` contains ``'myproject.polls'`` and -``'myproject.animals'``, you can run the ``myproject.animals`` unit tests alone -with this command:: - - $ ./manage.py test animals - -Note that we used ``animals``, not ``myproject.animals``. - -You can be even *more* specific by naming an individual test case. To -run a single test case in an application (for example, the -``AnimalTestCase`` described in the "Writing unit tests" section), add -the name of the test case to the label on the command line:: - - $ ./manage.py test animals.AnimalTestCase - -And it gets even more granular than that! To run a *single* test -method inside a test case, add the name of the test method to the -label:: - - $ ./manage.py test animals.AnimalTestCase.test_animals_can_speak - -You can use the same rules if you're using doctests. Django will use the -test label as a path to the test method or class that you want to run. -If your ``models.py`` or ``tests.py`` has a function with a doctest, or -class with a class-level doctest, you can invoke that test by appending the -name of the test method or class to the label:: - - $ ./manage.py test animals.classify - -If you want to run the doctest for a specific method in a class, add the -name of the method to the label:: - - $ ./manage.py test animals.Classifier.run - -If you're using a ``__test__`` dictionary to specify doctests for a -module, Django will use the label as a key in the ``__test__`` dictionary -for defined in ``models.py`` and ``tests.py``. - -If you press ``Ctrl-C`` while the tests are running, the test runner will -wait for the currently running test to complete and then exit gracefully. -During a graceful exit the test runner will output details of any test -failures, report on how many tests were run and how many errors and failures -were encountered, and destroy any test databases as usual. Thus pressing -``Ctrl-C`` can be very useful if you forget to pass the :djadminopt:`--failfast` -option, notice that some tests are unexpectedly failing, and want to get details -on the failures without waiting for the full test run to complete. - -If you do not want to wait for the currently running test to finish, you -can press ``Ctrl-C`` a second time and the test run will halt immediately, -but not gracefully. No details of the tests run before the interruption will -be reported, and any test databases created by the run will not be destroyed. - -.. admonition:: Test with warnings enabled - - It's a good idea to run your tests with Python warnings enabled: - ``python -Wall manage.py test``. The ``-Wall`` flag tells Python to - display deprecation warnings. Django, like many other Python libraries, - uses these warnings to flag when features are going away. It also might - flag areas in your code that aren't strictly wrong but could benefit - from a better implementation. - -Running tests outside the test runner -------------------------------------- - -If you want to run tests outside of ``./manage.py test`` -- for example, -from a shell prompt -- you will need to set up the test -environment first. Django provides a convenience method to do this:: - - >>> from django.test.utils import setup_test_environment - >>> setup_test_environment() - -This convenience method sets up the test database, and puts other -Django features into modes that allow for repeatable testing. - -The call to :meth:`~django.test.utils.setup_test_environment` is made -automatically as part of the setup of ``./manage.py test``. You only -need to manually invoke this method if you're not using running your -tests via Django's test runner. - -The test database ------------------ - -Tests that require a database (namely, model tests) will not use your "real" -(production) database. Separate, blank databases are created for the tests. - -Regardless of whether the tests pass or fail, the test databases are destroyed -when all the tests have been executed. - -By default the test databases get their names by prepending ``test_`` -to the value of the :setting:`NAME` settings for the databases -defined in :setting:`DATABASES`. When using the SQLite database engine -the tests will by default use an in-memory database (i.e., the -database will be created in memory, bypassing the filesystem -entirely!). If you want to use a different database name, specify -:setting:`TEST_NAME` in the dictionary for any given database in -:setting:`DATABASES`. - -Aside from using a separate database, the test runner will otherwise -use all of the same database settings you have in your settings file: -:setting:`ENGINE`, :setting:`USER`, :setting:`HOST`, etc. The test -database is created by the user specified by :setting:`USER`, so you'll need -to make sure that the given user account has sufficient privileges to -create a new database on the system. - -For fine-grained control over the character encoding of your test -database, use the :setting:`TEST_CHARSET` option. If you're using -MySQL, you can also use the :setting:`TEST_COLLATION` option to -control the particular collation used by the test database. See the -:doc:`settings documentation ` for details of these -advanced settings. - -.. admonition:: Finding data from your production database when running tests? - - If your code attempts to access the database when its modules are compiled, - this will occur *before* the test database is set up, with potentially - unexpected results. For example, if you have a database query in - module-level code and a real database exists, production data could pollute - your tests. *It is a bad idea to have such import-time database queries in - your code* anyway - rewrite your code so that it doesn't do this. - -.. _topics-testing-masterslave: - -Testing master/slave configurations -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -If you're testing a multiple database configuration with master/slave -replication, this strategy of creating test databases poses a problem. -When the test databases are created, there won't be any replication, -and as a result, data created on the master won't be seen on the -slave. - -To compensate for this, Django allows you to define that a database is -a *test mirror*. Consider the following (simplified) example database -configuration:: - - DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.mysql', - 'NAME': 'myproject', - 'HOST': 'dbmaster', - # ... plus some other settings - }, - 'slave': { - 'ENGINE': 'django.db.backends.mysql', - 'NAME': 'myproject', - 'HOST': 'dbslave', - 'TEST_MIRROR': 'default' - # ... plus some other settings - } - } - -In this setup, we have two database servers: ``dbmaster``, described -by the database alias ``default``, and ``dbslave`` described by the -alias ``slave``. As you might expect, ``dbslave`` has been configured -by the database administrator as a read slave of ``dbmaster``, so in -normal activity, any write to ``default`` will appear on ``slave``. - -If Django created two independent test databases, this would break any -tests that expected replication to occur. However, the ``slave`` -database has been configured as a test mirror (using the -:setting:`TEST_MIRROR` setting), indicating that under testing, -``slave`` should be treated as a mirror of ``default``. - -When the test environment is configured, a test version of ``slave`` -will *not* be created. Instead the connection to ``slave`` -will be redirected to point at ``default``. As a result, writes to -``default`` will appear on ``slave`` -- but because they are actually -the same database, not because there is data replication between the -two databases. - -.. _topics-testing-creation-dependencies: - -Controlling creation order for test databases -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -By default, Django will always create the ``default`` database first. -However, no guarantees are made on the creation order of any other -databases in your test setup. - -If your database configuration requires a specific creation order, you -can specify the dependencies that exist using the -:setting:`TEST_DEPENDENCIES` setting. Consider the following -(simplified) example database configuration:: - - DATABASES = { - 'default': { - # ... db settings - 'TEST_DEPENDENCIES': ['diamonds'] - }, - 'diamonds': { - # ... db settings - }, - 'clubs': { - # ... db settings - 'TEST_DEPENDENCIES': ['diamonds'] - }, - 'spades': { - # ... db settings - 'TEST_DEPENDENCIES': ['diamonds','hearts'] - }, - 'hearts': { - # ... db settings - 'TEST_DEPENDENCIES': ['diamonds','clubs'] - } - } - -Under this configuration, the ``diamonds`` database will be created first, -as it is the only database alias without dependencies. The ``default`` and -``clubs`` alias will be created next (although the order of creation of this -pair is not guaranteed); then ``hearts``; and finally ``spades``. - -If there are any circular dependencies in the -:setting:`TEST_DEPENDENCIES` definition, an ``ImproperlyConfigured`` -exception will be raised. - -Order in which tests are executed ---------------------------------- - -In order to guarantee that all ``TestCase`` code starts with a clean database, -the Django test runner reorders tests in the following way: - -* First, all unittests (including :class:`unittest.TestCase`, - :class:`~django.test.SimpleTestCase`, :class:`~django.test.TestCase` and - :class:`~django.test.TransactionTestCase`) are run with no particular ordering - guaranteed nor enforced among them. - -* Then any other tests (e.g. doctests) that may alter the database without - restoring it to its original state are run. - -.. versionchanged:: 1.5 - Before Django 1.5, the only guarantee was that - :class:`~django.test.TestCase` tests were always ran first, before any other - tests. - -.. note:: - - The new ordering of tests may reveal unexpected dependencies on test case - ordering. This is the case with doctests that relied on state left in the - database by a given :class:`~django.test.TransactionTestCase` test, they - must be updated to be able to run independently. - -Other test conditions ---------------------- - -Regardless of the value of the :setting:`DEBUG` setting in your configuration -file, all Django tests run with :setting:`DEBUG`\=False. This is to ensure that -the observed output of your code matches what will be seen in a production -setting. - -Caches are not cleared after each test, and running "manage.py test fooapp" can -insert data from the tests into the cache of a live system if you run your -tests in production because, unlike databases, a separate "test cache" is not -used. This behavior `may change`_ in the future. - -.. _may change: https://code.djangoproject.com/ticket/11505 - -Understanding the test output ------------------------------ - -When you run your tests, you'll see a number of messages as the test runner -prepares itself. You can control the level of detail of these messages with the -``verbosity`` option on the command line:: - - Creating test database... - Creating table myapp_animal - Creating table myapp_mineral - Loading 'initial_data' fixtures... - No fixtures found. - -This tells you that the test runner is creating a test database, as described -in the previous section. - -Once the test database has been created, Django will run your tests. -If everything goes well, you'll see something like this:: - - ---------------------------------------------------------------------- - Ran 22 tests in 0.221s - - OK - -If there are test failures, however, you'll see full details about which tests -failed:: - - ====================================================================== - FAIL: Doctest: ellington.core.throttle.models - ---------------------------------------------------------------------- - Traceback (most recent call last): - File "/dev/django/test/doctest.py", line 2153, in runTest - raise self.failureException(self.format_failure(new.getvalue())) - AssertionError: Failed doctest test for myapp.models - File "/dev/myapp/models.py", line 0, in models - - ---------------------------------------------------------------------- - File "/dev/myapp/models.py", line 14, in myapp.models - Failed example: - throttle.check("actor A", "action one", limit=2, hours=1) - Expected: - True - Got: - False - - ---------------------------------------------------------------------- - Ran 2 tests in 0.048s - - FAILED (failures=1) - -A full explanation of this error output is beyond the scope of this document, -but it's pretty intuitive. You can consult the documentation of Python's -:mod:`unittest` library for details. - -Note that the return code for the test-runner script is 1 for any number of -failed and erroneous tests. If all the tests pass, the return code is 0. This -feature is useful if you're using the test-runner script in a shell script and -need to test for success or failure at that level. - -Speeding up the tests ---------------------- - -In recent versions of Django, the default password hasher is rather slow by -design. If during your tests you are authenticating many users, you may want -to use a custom settings file and set the :setting:`PASSWORD_HASHERS` setting -to a faster hashing algorithm:: - - PASSWORD_HASHERS = ( - 'django.contrib.auth.hashers.MD5PasswordHasher', - ) - -Don't forget to also include in :setting:`PASSWORD_HASHERS` any hashing -algorithm used in fixtures, if any. - -.. _topics-testing-code-coverage: - -Integration with coverage.py ----------------------------- - -Code coverage describes how much source code has been tested. It shows which -parts of your code are being exercised by tests and which are not. It's an -important part of testing applications, so it's strongly recommended to check -the coverage of your tests. - -Django can be easily integrated with `coverage.py`_, a tool for measuring code -coverage of Python programs. First, `install coverage.py`_. Next, run the -following from your project folder containing ``manage.py``:: - - coverage run --source='.' manage.py test myapp - -This runs your tests and collects coverage data of the executed files in your -project. You can see a report of this data by typing following command:: - - coverage report - -Note that some Django code was executed while running tests, but it is not -listed here because of the ``source`` flag passed to the previous command. - -For more options like annotated HTML listings detailing missed lines, see the -`coverage.py`_ docs. - -.. _coverage.py: http://nedbatchelder.com/code/coverage/ -.. _install coverage.py: http://pypi.python.org/pypi/coverage - -Testing tools -============= - -Django provides a small set of tools that come in handy when writing tests. - -.. _test-client: - -The test client ---------------- - -.. module:: django.test.client - :synopsis: Django's test client. - -The test client is a Python class that acts as a dummy Web browser, allowing -you to test your views and interact with your Django-powered application -programmatically. - -Some of the things you can do with the test client are: - -* Simulate GET and POST requests on a URL and observe the response -- - everything from low-level HTTP (result headers and status codes) to - page content. - -* Test that the correct view is executed for a given URL. - -* Test that a given request is rendered by a given Django template, with - a template context that contains certain values. - -Note that the test client is not intended to be a replacement for Selenium_ or -other "in-browser" frameworks. Django's test client has a different focus. In -short: - -* Use Django's test client to establish that the correct view is being - called and that the view is collecting the correct context data. - -* Use in-browser frameworks like Selenium_ to test *rendered* HTML and the - *behavior* of Web pages, namely JavaScript functionality. Django also - provides special support for those frameworks; see the section on - :class:`~django.test.LiveServerTestCase` for more details. - -A comprehensive test suite should use a combination of both test types. - -Overview and a quick example -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -To use the test client, instantiate ``django.test.client.Client`` and retrieve -Web pages:: - - >>> from django.test.client import Client - >>> c = Client() - >>> response = c.post('/login/', {'username': 'john', 'password': 'smith'}) - >>> response.status_code - 200 - >>> response = c.get('/customer/details/') - >>> response.content - '>> c.get('/login/') - - This is incorrect:: - - >>> c.get('http://www.example.com/login/') - - The test client is not capable of retrieving Web pages that are not - powered by your Django project. If you need to retrieve other Web pages, - use a Python standard library module such as :mod:`urllib` or - :mod:`urllib2`. - -* To resolve URLs, the test client uses whatever URLconf is pointed-to by - your :setting:`ROOT_URLCONF` setting. - -* Although the above example would work in the Python interactive - interpreter, some of the test client's functionality, notably the - template-related functionality, is only available *while tests are - running*. - - The reason for this is that Django's test runner performs a bit of black - magic in order to determine which template was loaded by a given view. - This black magic (essentially a patching of Django's template system in - memory) only happens during test running. - -* By default, the test client will disable any CSRF checks - performed by your site. - - If, for some reason, you *want* the test client to perform CSRF - checks, you can create an instance of the test client that - enforces CSRF checks. To do this, pass in the - ``enforce_csrf_checks`` argument when you construct your - client:: - - >>> from django.test import Client - >>> csrf_client = Client(enforce_csrf_checks=True) - -Making requests -~~~~~~~~~~~~~~~ - -Use the ``django.test.client.Client`` class to make requests. - -.. class:: Client(enforce_csrf_checks=False, **defaults) - - It requires no arguments at time of construction. However, you can use - keywords arguments to specify some default headers. For example, this will - send a ``User-Agent`` HTTP header in each request:: - - >>> c = Client(HTTP_USER_AGENT='Mozilla/5.0') - - The values from the ``extra`` keywords arguments passed to - :meth:`~django.test.client.Client.get()`, - :meth:`~django.test.client.Client.post()`, etc. have precedence over - the defaults passed to the class constructor. - - The ``enforce_csrf_checks`` argument can be used to test CSRF - protection (see above). - - Once you have a ``Client`` instance, you can call any of the following - methods: - - .. method:: Client.get(path, data={}, follow=False, **extra) - - - Makes a GET request on the provided ``path`` and returns a ``Response`` - object, which is documented below. - - The key-value pairs in the ``data`` dictionary are used to create a GET - data payload. For example:: - - >>> c = Client() - >>> c.get('/customers/details/', {'name': 'fred', 'age': 7}) - - ...will result in the evaluation of a GET request equivalent to:: - - /customers/details/?name=fred&age=7 - - The ``extra`` keyword arguments parameter can be used to specify - headers to be sent in the request. For example:: - - >>> c = Client() - >>> c.get('/customers/details/', {'name': 'fred', 'age': 7}, - ... HTTP_X_REQUESTED_WITH='XMLHttpRequest') - - ...will send the HTTP header ``HTTP_X_REQUESTED_WITH`` to the - details view, which is a good way to test code paths that use the - :meth:`django.http.HttpRequest.is_ajax()` method. - - .. admonition:: CGI specification - - The headers sent via ``**extra`` should follow CGI_ specification. - For example, emulating a different "Host" header as sent in the - HTTP request from the browser to the server should be passed - as ``HTTP_HOST``. - - .. _CGI: http://www.w3.org/CGI/ - - If you already have the GET arguments in URL-encoded form, you can - use that encoding instead of using the data argument. For example, - the previous GET request could also be posed as:: - - >>> c = Client() - >>> c.get('/customers/details/?name=fred&age=7') - - If you provide a URL with both an encoded GET data and a data argument, - the data argument will take precedence. - - If you set ``follow`` to ``True`` the client will follow any redirects - and a ``redirect_chain`` attribute will be set in the response object - containing tuples of the intermediate urls and status codes. - - If you had a URL ``/redirect_me/`` that redirected to ``/next/``, that - redirected to ``/final/``, this is what you'd see:: - - >>> response = c.get('/redirect_me/', follow=True) - >>> response.redirect_chain - [(u'http://testserver/next/', 302), (u'http://testserver/final/', 302)] - - .. method:: Client.post(path, data={}, content_type=MULTIPART_CONTENT, follow=False, **extra) - - Makes a POST request on the provided ``path`` and returns a - ``Response`` object, which is documented below. - - The key-value pairs in the ``data`` dictionary are used to submit POST - data. For example:: - - >>> c = Client() - >>> c.post('/login/', {'name': 'fred', 'passwd': 'secret'}) - - ...will result in the evaluation of a POST request to this URL:: - - /login/ - - ...with this POST data:: - - name=fred&passwd=secret - - If you provide ``content_type`` (e.g. :mimetype:`text/xml` for an XML - payload), the contents of ``data`` will be sent as-is in the POST - request, using ``content_type`` in the HTTP ``Content-Type`` header. - - If you don't provide a value for ``content_type``, the values in - ``data`` will be transmitted with a content type of - :mimetype:`multipart/form-data`. In this case, the key-value pairs in - ``data`` will be encoded as a multipart message and used to create the - POST data payload. - - To submit multiple values for a given key -- for example, to specify - the selections for a ``', - '') - - ``html1`` and ``html2`` must be valid HTML. An ``AssertionError`` will be - raised if one of them cannot be parsed. - -.. method:: SimpleTestCase.assertHTMLNotEqual(html1, html2, msg=None) - - .. versionadded:: 1.4 - - Asserts that the strings ``html1`` and ``html2`` are *not* equal. The - comparison is based on HTML semantics. See - :meth:`~SimpleTestCase.assertHTMLEqual` for details. - - ``html1`` and ``html2`` must be valid HTML. An ``AssertionError`` will be - raised if one of them cannot be parsed. - -.. method:: SimpleTestCase.assertXMLEqual(xml1, xml2, msg=None) - - .. versionadded:: 1.5 - - Asserts that the strings ``xml1`` and ``xml2`` are equal. The - comparison is based on XML semantics. Similarily to - :meth:`~SimpleTestCase.assertHTMLEqual`, the comparison is - made on parsed content, hence only semantic differences are considered, not - syntax differences. When unvalid XML is passed in any parameter, an - ``AssertionError`` is always raised, even if both string are identical. - -.. method:: SimpleTestCase.assertXMLNotEqual(xml1, xml2, msg=None) - - .. versionadded:: 1.5 - - Asserts that the strings ``xml1`` and ``xml2`` are *not* equal. The - comparison is based on XML semantics. See - :meth:`~SimpleTestCase.assertXMLEqual` for details. - -.. _topics-testing-email: - -Email services --------------- - -If any of your Django views send email using :doc:`Django's email -functionality `, you probably don't want to send email each time -you run a test using that view. For this reason, Django's test runner -automatically redirects all Django-sent email to a dummy outbox. This lets you -test every aspect of sending email -- from the number of messages sent to the -contents of each message -- without actually sending the messages. - -The test runner accomplishes this by transparently replacing the normal -email backend with a testing backend. -(Don't worry -- this has no effect on any other email senders outside of -Django, such as your machine's mail server, if you're running one.) - -.. currentmodule:: django.core.mail - -.. data:: django.core.mail.outbox - -During test running, each outgoing email is saved in -``django.core.mail.outbox``. This is a simple list of all -:class:`~django.core.mail.EmailMessage` instances that have been sent. -The ``outbox`` attribute is a special attribute that is created *only* when -the ``locmem`` email backend is used. It doesn't normally exist as part of the -:mod:`django.core.mail` module and you can't import it directly. The code -below shows how to access this attribute correctly. - -Here's an example test that examines ``django.core.mail.outbox`` for length -and contents:: - - from django.core import mail - from django.test import TestCase - - class EmailTest(TestCase): - def test_send_email(self): - # Send message. - mail.send_mail('Subject here', 'Here is the message.', - 'from@example.com', ['to@example.com'], - fail_silently=False) - - # Test that one message has been sent. - self.assertEqual(len(mail.outbox), 1) - - # Verify that the subject of the first message is correct. - self.assertEqual(mail.outbox[0].subject, 'Subject here') - -As noted :ref:`previously `, the test outbox is emptied -at the start of every test in a Django ``TestCase``. To empty the outbox -manually, assign the empty list to ``mail.outbox``:: - - from django.core import mail - - # Empty the test outbox - mail.outbox = [] - -.. _skipping-tests: - -Skipping tests --------------- - -.. currentmodule:: django.test - -The unittest library provides the :func:`@skipIf ` and -:func:`@skipUnless ` decorators to allow you to skip tests -if you know ahead of time that those tests are going to fail under certain -conditions. - -For example, if your test requires a particular optional library in order to -succeed, you could decorate the test case with :func:`@skipIf -`. Then, the test runner will report that the test wasn't -executed and why, instead of failing the test or omitting the test altogether. - -To supplement these test skipping behaviors, Django provides two -additional skip decorators. Instead of testing a generic boolean, -these decorators check the capabilities of the database, and skip the -test if the database doesn't support a specific named feature. - -The decorators use a string identifier to describe database features. -This string corresponds to attributes of the database connection -features class. See :class:`~django.db.backends.BaseDatabaseFeatures` -class for a full list of database features that can be used as a basis -for skipping tests. - -.. function:: skipIfDBFeature(feature_name_string) - -Skip the decorated test if the named database feature is supported. - -For example, the following test will not be executed if the database -supports transactions (e.g., it would *not* run under PostgreSQL, but -it would under MySQL with MyISAM tables):: - - class MyTests(TestCase): - @skipIfDBFeature('supports_transactions') - def test_transaction_behavior(self): - # ... conditional test code - -.. function:: skipUnlessDBFeature(feature_name_string) - -Skip the decorated test if the named database feature is *not* -supported. - -For example, the following test will only be executed if the database -supports transactions (e.g., it would run under PostgreSQL, but *not* -under MySQL with MyISAM tables):: - - class MyTests(TestCase): - @skipUnlessDBFeature('supports_transactions') - def test_transaction_behavior(self): - # ... conditional test code - -Live test server ----------------- - -.. versionadded:: 1.4 - -.. currentmodule:: django.test - -.. class:: LiveServerTestCase() - -``LiveServerTestCase`` does basically the same as -:class:`~django.test.TransactionTestCase` with one extra feature: it launches a -live Django server in the background on setup, and shuts it down on teardown. -This allows the use of automated test clients other than the -:ref:`Django dummy client ` such as, for example, the Selenium_ -client, to execute a series of functional tests inside a browser and simulate a -real user's actions. - -By default the live server's address is `'localhost:8081'` and the full URL -can be accessed during the tests with ``self.live_server_url``. If you'd like -to change the default address (in the case, for example, where the 8081 port is -already taken) then you may pass a different one to the :djadmin:`test` command -via the :djadminopt:`--liveserver` option, for example: - -.. code-block:: bash - - ./manage.py test --liveserver=localhost:8082 - -Another way of changing the default server address is by setting the -`DJANGO_LIVE_TEST_SERVER_ADDRESS` environment variable somewhere in your -code (for example, in a :ref:`custom test runner`): - -.. code-block:: python - - import os - os.environ['DJANGO_LIVE_TEST_SERVER_ADDRESS'] = 'localhost:8082' - -In the case where the tests are run by multiple processes in parallel (for -example, in the context of several simultaneous `continuous integration`_ -builds), the processes will compete for the same address, and therefore your -tests might randomly fail with an "Address already in use" error. To avoid this -problem, you can pass a comma-separated list of ports or ranges of ports (at -least as many as the number of potential parallel processes). For example: - -.. code-block:: bash - - ./manage.py test --liveserver=localhost:8082,8090-8100,9000-9200,7041 - -Then, during test execution, each new live test server will try every specified -port until it finds one that is free and takes it. - -.. _continuous integration: http://en.wikipedia.org/wiki/Continuous_integration - -To demonstrate how to use ``LiveServerTestCase``, let's write a simple Selenium -test. First of all, you need to install the `selenium package`_ into your -Python path: - -.. code-block:: bash - - pip install selenium - -Then, add a ``LiveServerTestCase``-based test to your app's tests module -(for example: ``myapp/tests.py``). The code for this test may look as follows: - -.. code-block:: python - - from django.test import LiveServerTestCase - from selenium.webdriver.firefox.webdriver import WebDriver - - class MySeleniumTests(LiveServerTestCase): - fixtures = ['user-data.json'] - - @classmethod - def setUpClass(cls): - cls.selenium = WebDriver() - super(MySeleniumTests, cls).setUpClass() - - @classmethod - def tearDownClass(cls): - cls.selenium.quit() - super(MySeleniumTests, cls).tearDownClass() - - def test_login(self): - self.selenium.get('%s%s' % (self.live_server_url, '/login/')) - username_input = self.selenium.find_element_by_name("username") - username_input.send_keys('myuser') - password_input = self.selenium.find_element_by_name("password") - password_input.send_keys('secret') - self.selenium.find_element_by_xpath('//input[@value="Log in"]').click() - -Finally, you may run the test as follows: - -.. code-block:: bash - - ./manage.py test myapp.MySeleniumTests.test_login - -This example will automatically open Firefox then go to the login page, enter -the credentials and press the "Log in" button. Selenium offers other drivers in -case you do not have Firefox installed or wish to use another browser. The -example above is just a tiny fraction of what the Selenium client can do; check -out the `full reference`_ for more details. - -.. _Selenium: http://seleniumhq.org/ -.. _selenium package: http://pypi.python.org/pypi/selenium -.. _full reference: http://selenium-python.readthedocs.org/en/latest/api.html -.. _Firefox: http://www.mozilla.com/firefox/ - -.. note:: - - ``LiveServerTestCase`` makes use of the :doc:`staticfiles contrib app - ` so you'll need to have your project configured - accordingly (in particular by setting :setting:`STATIC_URL`). - -.. note:: - - When using an in-memory SQLite database to run the tests, the same database - connection will be shared by two threads in parallel: the thread in which - the live server is run and the thread in which the test case is run. It's - important to prevent simultaneous database queries via this shared - connection by the two threads, as that may sometimes randomly cause the - tests to fail. So you need to ensure that the two threads don't access the - database at the same time. In particular, this means that in some cases - (for example, just after clicking a link or submitting a form), you might - need to check that a response is received by Selenium and that the next - page is loaded before proceeding with further test execution. - Do this, for example, by making Selenium wait until the `` HTML tag - is found in the response (requires Selenium > 2.13): - - .. code-block:: python - - def test_login(self): - from selenium.webdriver.support.wait import WebDriverWait - timeout = 2 - ... - self.selenium.find_element_by_xpath('//input[@value="Log in"]').click() - # Wait until the response is received - WebDriverWait(self.selenium, timeout).until( - lambda driver: driver.find_element_by_tag_name('body')) - - The tricky thing here is that there's really no such thing as a "page load," - especially in modern Web apps that generate HTML dynamically after the - server generates the initial document. So, simply checking for the presence - of `` in the response might not necessarily be appropriate for all - use cases. Please refer to the `Selenium FAQ`_ and - `Selenium documentation`_ for more information. - - .. _Selenium FAQ: http://code.google.com/p/selenium/wiki/FrequentlyAskedQuestions#Q:_WebDriver_fails_to_find_elements_/_Does_not_block_on_page_loa - .. _Selenium documentation: http://seleniumhq.org/docs/04_webdriver_advanced.html#explicit-waits - -Using different testing frameworks -================================== - -Clearly, :mod:`doctest` and :mod:`unittest` are not the only Python testing -frameworks. While Django doesn't provide explicit support for alternative -frameworks, it does provide a way to invoke tests constructed for an -alternative framework as if they were normal Django tests. - -When you run ``./manage.py test``, Django looks at the :setting:`TEST_RUNNER` -setting to determine what to do. By default, :setting:`TEST_RUNNER` points to -``'django.test.simple.DjangoTestSuiteRunner'``. This class defines the default Django -testing behavior. This behavior involves: - -#. Performing global pre-test setup. - -#. Looking for unit tests and doctests in the ``models.py`` and - ``tests.py`` files in each installed application. - -#. Creating the test databases. - -#. Running ``syncdb`` to install models and initial data into the test - databases. - -#. Running the unit tests and doctests that are found. - -#. Destroying the test databases. - -#. Performing global post-test teardown. - -If you define your own test runner class and point :setting:`TEST_RUNNER` at -that class, Django will execute your test runner whenever you run -``./manage.py test``. In this way, it is possible to use any test framework -that can be executed from Python code, or to modify the Django test execution -process to satisfy whatever testing requirements you may have. - -.. _topics-testing-test_runner: - -Defining a test runner ----------------------- - -.. currentmodule:: django.test.simple - -A test runner is a class defining a ``run_tests()`` method. Django ships -with a ``DjangoTestSuiteRunner`` class that defines the default Django -testing behavior. This class defines the ``run_tests()`` entry point, -plus a selection of other methods that are used to by ``run_tests()`` to -set up, execute and tear down the test suite. - -.. class:: DjangoTestSuiteRunner(verbosity=1, interactive=True, failfast=True, **kwargs) - - ``verbosity`` determines the amount of notification and debug information - that will be printed to the console; ``0`` is no output, ``1`` is normal - output, and ``2`` is verbose output. - - If ``interactive`` is ``True``, the test suite has permission to ask the - user for instructions when the test suite is executed. An example of this - behavior would be asking for permission to delete an existing test - database. If ``interactive`` is ``False``, the test suite must be able to - run without any manual intervention. - - If ``failfast`` is ``True``, the test suite will stop running after the - first test failure is detected. - - Django will, from time to time, extend the capabilities of - the test runner by adding new arguments. The ``**kwargs`` declaration - allows for this expansion. If you subclass ``DjangoTestSuiteRunner`` or - write your own test runner, ensure accept and handle the ``**kwargs`` - parameter. - - .. versionadded:: 1.4 - - Your test runner may also define additional command-line options. - If you add an ``option_list`` attribute to a subclassed test runner, - those options will be added to the list of command-line options that - the :djadmin:`test` command can use. - -Attributes -~~~~~~~~~~ - -.. attribute:: DjangoTestSuiteRunner.option_list - - .. versionadded:: 1.4 - - This is the tuple of ``optparse`` options which will be fed into the - management command's ``OptionParser`` for parsing arguments. See the - documentation for Python's ``optparse`` module for more details. - -Methods -~~~~~~~ - -.. method:: DjangoTestSuiteRunner.run_tests(test_labels, extra_tests=None, **kwargs) - - Run the test suite. - - ``test_labels`` is a list of strings describing the tests to be run. A test - label can take one of three forms: - - * ``app.TestCase.test_method`` -- Run a single test method in a test - case. - * ``app.TestCase`` -- Run all the test methods in a test case. - * ``app`` -- Search for and run all tests in the named application. - - If ``test_labels`` has a value of ``None``, the test runner should run - search for tests in all the applications in :setting:`INSTALLED_APPS`. - - ``extra_tests`` is a list of extra ``TestCase`` instances to add to the - suite that is executed by the test runner. These extra tests are run - in addition to those discovered in the modules listed in ``test_labels``. - - This method should return the number of tests that failed. - -.. method:: DjangoTestSuiteRunner.setup_test_environment(**kwargs) - - Sets up the test environment ready for testing. - -.. method:: DjangoTestSuiteRunner.build_suite(test_labels, extra_tests=None, **kwargs) - - Constructs a test suite that matches the test labels provided. - - ``test_labels`` is a list of strings describing the tests to be run. A test - label can take one of three forms: - - * ``app.TestCase.test_method`` -- Run a single test method in a test - case. - * ``app.TestCase`` -- Run all the test methods in a test case. - * ``app`` -- Search for and run all tests in the named application. - - If ``test_labels`` has a value of ``None``, the test runner should run - search for tests in all the applications in :setting:`INSTALLED_APPS`. - - ``extra_tests`` is a list of extra ``TestCase`` instances to add to the - suite that is executed by the test runner. These extra tests are run - in addition to those discovered in the modules listed in ``test_labels``. - - Returns a ``TestSuite`` instance ready to be run. - -.. method:: DjangoTestSuiteRunner.setup_databases(**kwargs) - - Creates the test databases. - - Returns a data structure that provides enough detail to undo the changes - that have been made. This data will be provided to the ``teardown_databases()`` - function at the conclusion of testing. - -.. method:: DjangoTestSuiteRunner.run_suite(suite, **kwargs) - - Runs the test suite. - - Returns the result produced by the running the test suite. - -.. method:: DjangoTestSuiteRunner.teardown_databases(old_config, **kwargs) - - Destroys the test databases, restoring pre-test conditions. - - ``old_config`` is a data structure defining the changes in the - database configuration that need to be reversed. It is the return - value of the ``setup_databases()`` method. - -.. method:: DjangoTestSuiteRunner.teardown_test_environment(**kwargs) - - Restores the pre-test environment. - -.. method:: DjangoTestSuiteRunner.suite_result(suite, result, **kwargs) - - Computes and returns a return code based on a test suite, and the result - from that test suite. - - -Testing utilities ------------------ - -.. module:: django.test.utils - :synopsis: Helpers to write custom test runners. - -To assist in the creation of your own test runner, Django provides a number of -utility methods in the ``django.test.utils`` module. - -.. function:: setup_test_environment() - - Performs any global pre-test setup, such as the installing the - instrumentation of the template rendering system and setting up - the dummy email outbox. - -.. function:: teardown_test_environment() - - Performs any global post-test teardown, such as removing the black - magic hooks into the template system and restoring normal email - services. - -.. currentmodule:: django.db.connection.creation - -The creation module of the database backend (``connection.creation``) -also provides some utilities that can be useful during testing. - -.. function:: create_test_db([verbosity=1, autoclobber=False]) - - Creates a new test database and runs ``syncdb`` against it. - - ``verbosity`` has the same behavior as in ``run_tests()``. - - ``autoclobber`` describes the behavior that will occur if a - database with the same name as the test database is discovered: - - * If ``autoclobber`` is ``False``, the user will be asked to - approve destroying the existing database. ``sys.exit`` is - called if the user does not approve. - - * If autoclobber is ``True``, the database will be destroyed - without consulting the user. - - Returns the name of the test database that it created. - - ``create_test_db()`` has the side effect of modifying the value of - :setting:`NAME` in :setting:`DATABASES` to match the name of the test - database. - -.. function:: destroy_test_db(old_database_name, [verbosity=1]) - - Destroys the database whose name is the value of :setting:`NAME` in - :setting:`DATABASES`, and sets :setting:`NAME` to the value of - ``old_database_name``. - - The ``verbosity`` argument has the same behavior as for - :class:`~django.test.simple.DjangoTestSuiteRunner`. diff --git a/docs/topics/testing/_images/django_unittest_classes_hierarchy.graffle b/docs/topics/testing/_images/django_unittest_classes_hierarchy.graffle new file mode 100644 index 0000000000..7211c0f3be --- /dev/null +++ b/docs/topics/testing/_images/django_unittest_classes_hierarchy.graffle @@ -0,0 +1,883 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGrafflePro + 139.16.0.171715 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {559.28997802734375, 782.8900146484375}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + BaseZoom + 0 + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2012-12-16 18:52:14 +0000 + Creator + Aymeric Augustin + DisplayScale + 1.000 cm = 1.000 cm + GraphDocumentVersion + 8 + GraphicsList + + + Class + LineGraphic + Head + + ID + 8 + + ID + 29 + OrthogonalBarAutomatic + + OrthogonalBarPoint + {0, 0} + OrthogonalBarPosition + -1 + Points + + {369, 459} + {216, 400.5} + + Style + + stroke + + HeadArrow + UMLInheritance + HeadScale + 0.79999995231628418 + Legacy + + LineType + 2 + TailArrow + 0 + + + Tail + + ID + 6 + Info + 2 + + + + Class + LineGraphic + Head + + ID + 12 + Info + 1 + + ID + 27 + OrthogonalBarAutomatic + + OrthogonalBarPoint + {0, 0} + OrthogonalBarPosition + -1 + Points + + {135, 270} + {369, 225} + + Style + + stroke + + HeadArrow + UMLInheritance + HeadScale + 0.79999995231628418 + Legacy + + LineType + 2 + TailArrow + 0 + + + Tail + + ID + 26 + Position + 0.5 + + + + Class + LineGraphic + Head + + ID + 10 + + ID + 26 + OrthogonalBarAutomatic + + OrthogonalBarPoint + {0, 0} + OrthogonalBarPosition + -1 + Points + + {135, 315} + {135, 225} + + Style + + stroke + + HeadArrow + UMLInheritance + HeadScale + 0.79999995231628418 + Legacy + + LineType + 2 + TailArrow + 0 + + + Tail + + ID + 9 + + + + Class + LineGraphic + Head + + ID + 9 + + ID + 25 + OrthogonalBarAutomatic + + OrthogonalBarPoint + {0, 0} + OrthogonalBarPosition + -1 + Points + + {135, 387} + {135, 342} + + Style + + stroke + + HeadArrow + UMLInheritance + HeadScale + 0.79999995231628418 + Legacy + + LineType + 2 + TailArrow + 0 + + + Tail + + ID + 8 + + + + Class + LineGraphic + Head + + ID + 8 + + ID + 23 + OrthogonalBarAutomatic + + OrthogonalBarPoint + {0, 0} + OrthogonalBarPosition + -1 + Points + + {135, 459} + {135, 414} + + Style + + stroke + + HeadArrow + UMLInheritance + HeadScale + 0.79999995231628418 + Legacy + + LineType + 2 + TailArrow + 0 + + + Tail + + ID + 7 + + + + Bounds + {{378, 252}, {81, 27}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 22 + Shape + NoteShape + Style + + stroke + + Color + + b + 0 + g + 0.501961 + r + 0 + + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;\red0\green128\blue0;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\i\fs24 \cf2 Python < 2.7} + VerticalPad + 0 + + TextRelativeArea + {{0, 0}, {1, 1}} + + + Bounds + {{45, 252}, {81, 27}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 20 + Shape + NoteShape + Style + + stroke + + Color + + b + 0 + g + 0.501961 + r + 0 + + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;\red0\green128\blue0;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\i\fs24 \cf2 Python \uc0\u8805 2.7} + VerticalPad + 0 + + + + Bounds + {{288, 198}, {162, 27}} + Class + ShapedGraphic + ID + 12 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + fill + + FillType + 2 + GradientAngle + 90 + GradientColor + + w + 0.666667 + + + stroke + + CornerRadius + 5 + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 TestCase} + + + + Bounds + {{54, 198}, {162, 27}} + Class + ShapedGraphic + ID + 10 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + fill + + FillType + 2 + GradientAngle + 90 + GradientColor + + w + 0.666667 + + + stroke + + CornerRadius + 5 + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 TestCase} + + + + Bounds + {{54, 315}, {162, 27}} + Class + ShapedGraphic + ID + 9 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + fill + + FillType + 2 + GradientAngle + 90 + GradientColor + + w + 0.666667 + + + stroke + + CornerRadius + 5 + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 SimpleTestCase} + + + + Bounds + {{54, 387}, {162, 27}} + Class + ShapedGraphic + ID + 8 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + fill + + FillType + 2 + GradientAngle + 90 + GradientColor + + w + 0.666667 + + + stroke + + CornerRadius + 5 + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 TransactionTestCase} + + + + Bounds + {{54, 459}, {162, 27}} + Class + ShapedGraphic + ID + 7 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + fill + + FillType + 2 + GradientAngle + 90 + GradientColor + + w + 0.666667 + + + stroke + + CornerRadius + 5 + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 TestCase} + + + + Bounds + {{288, 459}, {162, 27}} + Class + ShapedGraphic + ID + 6 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + fill + + FillType + 2 + GradientAngle + 90 + GradientColor + + w + 0.666667 + + + stroke + + CornerRadius + 5 + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 LiveServerTestCase} + + + + Bounds + {{18, 297}, {468, 207}} + Class + ShapedGraphic + ID + 13 + Shape + Rectangle + Style + + Text + + Align + 2 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr + +\f0\fs24 \cf0 django.test} + + TextPlacement + 0 + + + Bounds + {{18, 153}, {225, 90}} + Class + ShapedGraphic + ID + 18 + Shape + Rectangle + Style + + Text + + Align + 2 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr + +\f0\fs24 \cf0 django.utils.unittest\ += unittest (standard library)} + + TextPlacement + 0 + + + Bounds + {{261, 153}, {225, 90}} + Class + ShapedGraphic + ID + 19 + Shape + Rectangle + Style + + Text + + Align + 2 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr + +\f0\fs24 \cf0 django.utils.unittest\ += unittest2 (bundled copy)} + + TextPlacement + 0 + + + GridInfo + + ShowsGrid + YES + SnapsToGrid + YES + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + Calque 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2012-12-16 19:08:28 +0000 + Modifier + Aymeric Augustin + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSHorizonalPagination + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {595.28997802734375, 841.8900146484375} + + NSPrintReverseOrientation + + int + 0 + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Canevas 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + Frame + {{9, 4}, {694, 874}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{0, 0}, {559, 735}} + Zoom + 1 + ZoomValues + + + Canevas 1 + 1 + 1 + + + + + diff --git a/docs/topics/testing/_images/django_unittest_classes_hierarchy.pdf b/docs/topics/testing/_images/django_unittest_classes_hierarchy.pdf new file mode 100644 index 0000000000..cedaba22ac Binary files /dev/null and b/docs/topics/testing/_images/django_unittest_classes_hierarchy.pdf differ diff --git a/docs/topics/testing/_images/django_unittest_classes_hierarchy.svg b/docs/topics/testing/_images/django_unittest_classes_hierarchy.svg new file mode 100644 index 0000000000..0482f044dd --- /dev/null +++ b/docs/topics/testing/_images/django_unittest_classes_hierarchy.svg @@ -0,0 +1,3 @@ + + +2012-12-16 19:08ZCanevas 1Calque 1django.utils.unittest= unittest2 (bundled copy)django.utils.unittest= unittest (standard library)django.testLiveServerTestCaseTestCaseTransactionTestCaseSimpleTestCaseTestCaseTestCasePython ≥ 2.7Python < 2.7 diff --git a/docs/topics/testing/advanced.txt b/docs/topics/testing/advanced.txt new file mode 100644 index 0000000000..0674b2e41b --- /dev/null +++ b/docs/topics/testing/advanced.txt @@ -0,0 +1,429 @@ +======================= +Advanced testing topics +======================= + +The request factory +=================== + +.. module:: django.test.client + +.. class:: RequestFactory + +The :class:`~django.test.client.RequestFactory` shares the same API as +the test client. However, instead of behaving like a browser, the +RequestFactory provides a way to generate a request instance that can +be used as the first argument to any view. This means you can test a +view function the same way as you would test any other function -- as +a black box, with exactly known inputs, testing for specific outputs. + +The API for the :class:`~django.test.client.RequestFactory` is a slightly +restricted subset of the test client API: + +* It only has access to the HTTP methods :meth:`~Client.get()`, + :meth:`~Client.post()`, :meth:`~Client.put()`, + :meth:`~Client.delete()`, :meth:`~Client.head()` and + :meth:`~Client.options()`. + +* These methods accept all the same arguments *except* for + ``follows``. Since this is just a factory for producing + requests, it's up to you to handle the response. + +* It does not support middleware. Session and authentication + attributes must be supplied by the test itself if required + for the view to function properly. + +Example +------- + +The following is a simple unit test using the request factory:: + + from django.utils import unittest + from django.test.client import RequestFactory + + class SimpleTest(unittest.TestCase): + def setUp(self): + # Every test needs access to the request factory. + self.factory = RequestFactory() + + def test_details(self): + # Create an instance of a GET request. + request = self.factory.get('/customer/details') + + # Test my_view() as if it were deployed at /customer/details + response = my_view(request) + self.assertEqual(response.status_code, 200) + +.. _topics-testing-advanced-multidb: + +Tests and multiple databases +============================ + +.. _topics-testing-masterslave: + +Testing master/slave configurations +----------------------------------- + +If you're testing a multiple database configuration with master/slave +replication, this strategy of creating test databases poses a problem. +When the test databases are created, there won't be any replication, +and as a result, data created on the master won't be seen on the +slave. + +To compensate for this, Django allows you to define that a database is +a *test mirror*. Consider the following (simplified) example database +configuration:: + + DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.mysql', + 'NAME': 'myproject', + 'HOST': 'dbmaster', + # ... plus some other settings + }, + 'slave': { + 'ENGINE': 'django.db.backends.mysql', + 'NAME': 'myproject', + 'HOST': 'dbslave', + 'TEST_MIRROR': 'default' + # ... plus some other settings + } + } + +In this setup, we have two database servers: ``dbmaster``, described +by the database alias ``default``, and ``dbslave`` described by the +alias ``slave``. As you might expect, ``dbslave`` has been configured +by the database administrator as a read slave of ``dbmaster``, so in +normal activity, any write to ``default`` will appear on ``slave``. + +If Django created two independent test databases, this would break any +tests that expected replication to occur. However, the ``slave`` +database has been configured as a test mirror (using the +:setting:`TEST_MIRROR` setting), indicating that under testing, +``slave`` should be treated as a mirror of ``default``. + +When the test environment is configured, a test version of ``slave`` +will *not* be created. Instead the connection to ``slave`` +will be redirected to point at ``default``. As a result, writes to +``default`` will appear on ``slave`` -- but because they are actually +the same database, not because there is data replication between the +two databases. + +.. _topics-testing-creation-dependencies: + +Controlling creation order for test databases +--------------------------------------------- + +By default, Django will always create the ``default`` database first. +However, no guarantees are made on the creation order of any other +databases in your test setup. + +If your database configuration requires a specific creation order, you +can specify the dependencies that exist using the +:setting:`TEST_DEPENDENCIES` setting. Consider the following +(simplified) example database configuration:: + + DATABASES = { + 'default': { + # ... db settings + 'TEST_DEPENDENCIES': ['diamonds'] + }, + 'diamonds': { + # ... db settings + }, + 'clubs': { + # ... db settings + 'TEST_DEPENDENCIES': ['diamonds'] + }, + 'spades': { + # ... db settings + 'TEST_DEPENDENCIES': ['diamonds','hearts'] + }, + 'hearts': { + # ... db settings + 'TEST_DEPENDENCIES': ['diamonds','clubs'] + } + } + +Under this configuration, the ``diamonds`` database will be created first, +as it is the only database alias without dependencies. The ``default`` and +``clubs`` alias will be created next (although the order of creation of this +pair is not guaranteed); then ``hearts``; and finally ``spades``. + +If there are any circular dependencies in the +:setting:`TEST_DEPENDENCIES` definition, an ``ImproperlyConfigured`` +exception will be raised. + +Running tests outside the test runner +===================================== + +If you want to run tests outside of ``./manage.py test`` -- for example, +from a shell prompt -- you will need to set up the test +environment first. Django provides a convenience method to do this:: + + >>> from django.test.utils import setup_test_environment + >>> setup_test_environment() + +This convenience method sets up the test database, and puts other +Django features into modes that allow for repeatable testing. + +The call to :meth:`~django.test.utils.setup_test_environment` is made +automatically as part of the setup of ``./manage.py test``. You only +need to manually invoke this method if you're not using running your +tests via Django's test runner. + +.. _other-testing-frameworks: + +Using different testing frameworks +================================== + +Clearly, :mod:`doctest` and :mod:`unittest` are not the only Python testing +frameworks. While Django doesn't provide explicit support for alternative +frameworks, it does provide a way to invoke tests constructed for an +alternative framework as if they were normal Django tests. + +When you run ``./manage.py test``, Django looks at the :setting:`TEST_RUNNER` +setting to determine what to do. By default, :setting:`TEST_RUNNER` points to +``'django.test.simple.DjangoTestSuiteRunner'``. This class defines the default Django +testing behavior. This behavior involves: + +#. Performing global pre-test setup. + +#. Looking for unit tests and doctests in the ``models.py`` and + ``tests.py`` files in each installed application. + +#. Creating the test databases. + +#. Running ``syncdb`` to install models and initial data into the test + databases. + +#. Running the unit tests and doctests that are found. + +#. Destroying the test databases. + +#. Performing global post-test teardown. + +If you define your own test runner class and point :setting:`TEST_RUNNER` at +that class, Django will execute your test runner whenever you run +``./manage.py test``. In this way, it is possible to use any test framework +that can be executed from Python code, or to modify the Django test execution +process to satisfy whatever testing requirements you may have. + +.. _topics-testing-test_runner: + +Defining a test runner +---------------------- + +.. currentmodule:: django.test.simple + +A test runner is a class defining a ``run_tests()`` method. Django ships +with a ``DjangoTestSuiteRunner`` class that defines the default Django +testing behavior. This class defines the ``run_tests()`` entry point, +plus a selection of other methods that are used to by ``run_tests()`` to +set up, execute and tear down the test suite. + +.. class:: DjangoTestSuiteRunner(verbosity=1, interactive=True, failfast=True, **kwargs) + + ``verbosity`` determines the amount of notification and debug information + that will be printed to the console; ``0`` is no output, ``1`` is normal + output, and ``2`` is verbose output. + + If ``interactive`` is ``True``, the test suite has permission to ask the + user for instructions when the test suite is executed. An example of this + behavior would be asking for permission to delete an existing test + database. If ``interactive`` is ``False``, the test suite must be able to + run without any manual intervention. + + If ``failfast`` is ``True``, the test suite will stop running after the + first test failure is detected. + + Django will, from time to time, extend the capabilities of + the test runner by adding new arguments. The ``**kwargs`` declaration + allows for this expansion. If you subclass ``DjangoTestSuiteRunner`` or + write your own test runner, ensure accept and handle the ``**kwargs`` + parameter. + + .. versionadded:: 1.4 + + Your test runner may also define additional command-line options. + If you add an ``option_list`` attribute to a subclassed test runner, + those options will be added to the list of command-line options that + the :djadmin:`test` command can use. + +Attributes +~~~~~~~~~~ + +.. attribute:: DjangoTestSuiteRunner.option_list + + .. versionadded:: 1.4 + + This is the tuple of ``optparse`` options which will be fed into the + management command's ``OptionParser`` for parsing arguments. See the + documentation for Python's ``optparse`` module for more details. + +Methods +~~~~~~~ + +.. method:: DjangoTestSuiteRunner.run_tests(test_labels, extra_tests=None, **kwargs) + + Run the test suite. + + ``test_labels`` is a list of strings describing the tests to be run. A test + label can take one of three forms: + + * ``app.TestCase.test_method`` -- Run a single test method in a test + case. + * ``app.TestCase`` -- Run all the test methods in a test case. + * ``app`` -- Search for and run all tests in the named application. + + If ``test_labels`` has a value of ``None``, the test runner should run + search for tests in all the applications in :setting:`INSTALLED_APPS`. + + ``extra_tests`` is a list of extra ``TestCase`` instances to add to the + suite that is executed by the test runner. These extra tests are run + in addition to those discovered in the modules listed in ``test_labels``. + + This method should return the number of tests that failed. + +.. method:: DjangoTestSuiteRunner.setup_test_environment(**kwargs) + + Sets up the test environment ready for testing. + +.. method:: DjangoTestSuiteRunner.build_suite(test_labels, extra_tests=None, **kwargs) + + Constructs a test suite that matches the test labels provided. + + ``test_labels`` is a list of strings describing the tests to be run. A test + label can take one of three forms: + + * ``app.TestCase.test_method`` -- Run a single test method in a test + case. + * ``app.TestCase`` -- Run all the test methods in a test case. + * ``app`` -- Search for and run all tests in the named application. + + If ``test_labels`` has a value of ``None``, the test runner should run + search for tests in all the applications in :setting:`INSTALLED_APPS`. + + ``extra_tests`` is a list of extra ``TestCase`` instances to add to the + suite that is executed by the test runner. These extra tests are run + in addition to those discovered in the modules listed in ``test_labels``. + + Returns a ``TestSuite`` instance ready to be run. + +.. method:: DjangoTestSuiteRunner.setup_databases(**kwargs) + + Creates the test databases. + + Returns a data structure that provides enough detail to undo the changes + that have been made. This data will be provided to the ``teardown_databases()`` + function at the conclusion of testing. + +.. method:: DjangoTestSuiteRunner.run_suite(suite, **kwargs) + + Runs the test suite. + + Returns the result produced by the running the test suite. + +.. method:: DjangoTestSuiteRunner.teardown_databases(old_config, **kwargs) + + Destroys the test databases, restoring pre-test conditions. + + ``old_config`` is a data structure defining the changes in the + database configuration that need to be reversed. It is the return + value of the ``setup_databases()`` method. + +.. method:: DjangoTestSuiteRunner.teardown_test_environment(**kwargs) + + Restores the pre-test environment. + +.. method:: DjangoTestSuiteRunner.suite_result(suite, result, **kwargs) + + Computes and returns a return code based on a test suite, and the result + from that test suite. + + +Testing utilities +----------------- + +.. module:: django.test.utils + :synopsis: Helpers to write custom test runners. + +To assist in the creation of your own test runner, Django provides a number of +utility methods in the ``django.test.utils`` module. + +.. function:: setup_test_environment() + + Performs any global pre-test setup, such as the installing the + instrumentation of the template rendering system and setting up + the dummy email outbox. + +.. function:: teardown_test_environment() + + Performs any global post-test teardown, such as removing the black + magic hooks into the template system and restoring normal email + services. + +.. currentmodule:: django.db.connection.creation + +The creation module of the database backend (``connection.creation``) +also provides some utilities that can be useful during testing. + +.. function:: create_test_db([verbosity=1, autoclobber=False]) + + Creates a new test database and runs ``syncdb`` against it. + + ``verbosity`` has the same behavior as in ``run_tests()``. + + ``autoclobber`` describes the behavior that will occur if a + database with the same name as the test database is discovered: + + * If ``autoclobber`` is ``False``, the user will be asked to + approve destroying the existing database. ``sys.exit`` is + called if the user does not approve. + + * If autoclobber is ``True``, the database will be destroyed + without consulting the user. + + Returns the name of the test database that it created. + + ``create_test_db()`` has the side effect of modifying the value of + :setting:`NAME` in :setting:`DATABASES` to match the name of the test + database. + +.. function:: destroy_test_db(old_database_name, [verbosity=1]) + + Destroys the database whose name is the value of :setting:`NAME` in + :setting:`DATABASES`, and sets :setting:`NAME` to the value of + ``old_database_name``. + + The ``verbosity`` argument has the same behavior as for + :class:`~django.test.simple.DjangoTestSuiteRunner`. + +.. _topics-testing-code-coverage: + +Integration with coverage.py +============================ + +Code coverage describes how much source code has been tested. It shows which +parts of your code are being exercised by tests and which are not. It's an +important part of testing applications, so it's strongly recommended to check +the coverage of your tests. + +Django can be easily integrated with `coverage.py`_, a tool for measuring code +coverage of Python programs. First, `install coverage.py`_. Next, run the +following from your project folder containing ``manage.py``:: + + coverage run --source='.' manage.py test myapp + +This runs your tests and collects coverage data of the executed files in your +project. You can see a report of this data by typing following command:: + + coverage report + +Note that some Django code was executed while running tests, but it is not +listed here because of the ``source`` flag passed to the previous command. + +For more options like annotated HTML listings detailing missed lines, see the +`coverage.py`_ docs. + +.. _coverage.py: http://nedbatchelder.com/code/coverage/ +.. _install coverage.py: http://pypi.python.org/pypi/coverage diff --git a/docs/topics/testing/doctests.txt b/docs/topics/testing/doctests.txt new file mode 100644 index 0000000000..5036e946a9 --- /dev/null +++ b/docs/topics/testing/doctests.txt @@ -0,0 +1,81 @@ +=================== +Django and doctests +=================== + +Doctests use Python's standard :mod:`doctest` module, which searches your +docstrings for statements that resemble a session of the Python interactive +interpreter. A full explanation of how :mod:`doctest` works is out of the scope +of this document; read Python's official documentation for the details. + +.. admonition:: What's a **docstring**? + + A good explanation of docstrings (and some guidelines for using them + effectively) can be found in :pep:`257`: + + A docstring is a string literal that occurs as the first statement in + a module, function, class, or method definition. Such a docstring + becomes the ``__doc__`` special attribute of that object. + + For example, this function has a docstring that describes what it does:: + + def add_two(num): + "Return the result of adding two to the provided number." + return num + 2 + + Because tests often make great documentation, putting tests directly in + your docstrings is an effective way to document *and* test your code. + +As with unit tests, for a given Django application, the test runner looks for +doctests in two places: + +* The ``models.py`` file. You can define module-level doctests and/or a + doctest for individual models. It's common practice to put + application-level doctests in the module docstring and model-level + doctests in the model docstrings. + +* A file called ``tests.py`` in the application directory -- i.e., the + directory that holds ``models.py``. This file is a hook for any and all + doctests you want to write that aren't necessarily related to models. + +This example doctest is equivalent to the example given in the unittest section +above:: + + # models.py + + from django.db import models + + class Animal(models.Model): + """ + An animal that knows how to make noise + + # Create some animals + >>> lion = Animal.objects.create(name="lion", sound="roar") + >>> cat = Animal.objects.create(name="cat", sound="meow") + + # Make 'em speak + >>> lion.speak() + 'The lion says "roar"' + >>> cat.speak() + 'The cat says "meow"' + """ + name = models.CharField(max_length=20) + sound = models.CharField(max_length=20) + + def speak(self): + return 'The %s says "%s"' % (self.name, self.sound) + +When you :ref:`run your tests `, the test runner will find this +docstring, notice that portions of it look like an interactive Python session, +and execute those lines while checking that the results match. + +In the case of model tests, note that the test runner takes care of creating +its own test database. That is, any test that accesses a database -- by +creating and saving model instances, for example -- will not affect your +production database. However, the database is not refreshed between doctests, +so if your doctest requires a certain state you should consider flushing the +database or loading a fixture. (See the section on :ref:`fixtures +` for more on this.) Note that to use this feature, +the database user Django is connecting as must have ``CREATE DATABASE`` +rights. + +For more details about :mod:`doctest`, see the Python documentation. diff --git a/docs/topics/testing/index.txt b/docs/topics/testing/index.txt new file mode 100644 index 0000000000..0345b72703 --- /dev/null +++ b/docs/topics/testing/index.txt @@ -0,0 +1,111 @@ +================= +Testing in Django +================= + +.. toctree:: + :hidden: + + overview + doctests + advanced + +Automated testing is an extremely useful bug-killing tool for the modern +Web developer. You can use a collection of tests -- a **test suite** -- to +solve, or avoid, a number of problems: + +* When you're writing new code, you can use tests to validate your code + works as expected. + +* When you're refactoring or modifying old code, you can use tests to + ensure your changes haven't affected your application's behavior + unexpectedly. + +Testing a Web application is a complex task, because a Web application is made +of several layers of logic -- from HTTP-level request handling, to form +validation and processing, to template rendering. With Django's test-execution +framework and assorted utilities, you can simulate requests, insert test data, +inspect your application's output and generally verify your code is doing what +it should be doing. + +The best part is, it's really easy. + +Unit tests v. doctests +====================== + +There are two primary ways to write tests with Django, corresponding to the +two test frameworks that ship in the Python standard library. The two +frameworks are: + +* **Unit tests** -- tests that are expressed as methods on a Python class + that subclasses :class:`unittest.TestCase` or Django's customized + :class:`TestCase`. For example:: + + import unittest + + class MyFuncTestCase(unittest.TestCase): + def testBasic(self): + a = ['larry', 'curly', 'moe'] + self.assertEqual(my_func(a, 0), 'larry') + self.assertEqual(my_func(a, 1), 'curly') + +* **Doctests** -- tests that are embedded in your functions' docstrings and + are written in a way that emulates a session of the Python interactive + interpreter. For example:: + + def my_func(a_list, idx): + """ + >>> a = ['larry', 'curly', 'moe'] + >>> my_func(a, 0) + 'larry' + >>> my_func(a, 1) + 'curly' + """ + return a_list[idx] + +Which should I use? +------------------- + +Because Django supports both of the standard Python test frameworks, it's up to +you and your tastes to decide which one to use. You can even decide to use +*both*. + +For developers new to testing, however, this choice can seem confusing. Here, +then, are a few key differences to help you decide which approach is right for +you: + +* If you've been using Python for a while, :mod:`doctest` will probably feel + more "pythonic". It's designed to make writing tests as easy as possible, + so it requires no overhead of writing classes or methods. You simply put + tests in docstrings. This has the added advantage of serving as + documentation (and correct documentation, at that!). However, while + doctests are good for some simple example code, they are not very good if + you want to produce either high quality, comprehensive tests or high + quality documentation. Test failures are often difficult to debug + as it can be unclear exactly why the test failed. Thus, doctests should + generally be avoided and used primarily for documentation examples only. + +* The :mod:`unittest` framework will probably feel very familiar to + developers coming from Java. :mod:`unittest` is inspired by Java's JUnit, + so you'll feel at home with this method if you've used JUnit or any test + framework inspired by JUnit. + +* If you need to write a bunch of tests that share similar code, then + you'll appreciate the :mod:`unittest` framework's organization around + classes and methods. This makes it easy to abstract common tasks into + common methods. The framework also supports explicit setup and/or cleanup + routines, which give you a high level of control over the environment + in which your test cases are run. + +* If you're writing tests for Django itself, you should use :mod:`unittest`. + +Where to go from here +===================== + +As unit tests are preferred in Django, we treat them in detail in the +:doc:`overview` document. + +:doc:`doctests` describes Django-specific features when using doctests. + +You can also use any *other* Python test framework, Django provides an API and +tools for that kind of integration. They are described in the +:ref:`other-testing-frameworks` section of :doc:`advanced`. diff --git a/docs/topics/testing/overview.txt b/docs/topics/testing/overview.txt new file mode 100644 index 0000000000..5f64789019 --- /dev/null +++ b/docs/topics/testing/overview.txt @@ -0,0 +1,1784 @@ +=========================== +Testing Django applications +=========================== + +.. module:: django.test + :synopsis: Testing tools for Django applications. + +.. seealso:: + + The :doc:`testing tutorial ` and the + :doc:`advanced testing topics `. + +This document is split into two primary sections. First, we explain how to write +tests with Django. Then, we explain how to run them. + +Writing tests +============= + +Django's unit tests use a Python standard library module: :mod:`unittest`. This +module defines tests in class-based approach. + +.. admonition:: unittest2 + + Python 2.7 introduced some major changes to the unittest library, + adding some extremely useful features. To ensure that every Django + project can benefit from these new features, Django ships with a + copy of unittest2_, a copy of the Python 2.7 unittest library, + backported for Python 2.5 compatibility. + + To access this library, Django provides the + :mod:`django.utils.unittest` module alias. If you are using Python + 2.7, or you have installed unittest2 locally, Django will map the + alias to the installed version of the unittest library. Otherwise, + Django will use its own bundled version of unittest2. + + To use this alias, simply use:: + + from django.utils import unittest + + wherever you would have historically used:: + + import unittest + + If you want to continue to use the base unittest library, you can -- + you just won't get any of the nice new unittest2 features. + +.. _unittest2: http://pypi.python.org/pypi/unittest2 + +For a given Django application, the test runner looks for unit tests in two +places: + +* The ``models.py`` file. The test runner looks for any subclass of + :class:`unittest.TestCase` in this module. + +* A file called ``tests.py`` in the application directory -- i.e., the + directory that holds ``models.py``. Again, the test runner looks for any + subclass of :class:`unittest.TestCase` in this module. + +Here is an example :class:`unittest.TestCase` subclass:: + + from django.utils import unittest + from myapp.models import Animal + + class AnimalTestCase(unittest.TestCase): + def setUp(self): + self.lion = Animal(name="lion", sound="roar") + self.cat = Animal(name="cat", sound="meow") + + def test_animals_can_speak(self): + """Animals that can speak are correctly identified""" + self.assertEqual(self.lion.speak(), 'The lion says "roar"') + self.assertEqual(self.cat.speak(), 'The cat says "meow"') + +When you :ref:`run your tests `, the default behavior of the test +utility is to find all the test cases (that is, subclasses of +:class:`unittest.TestCase`) in ``models.py`` and ``tests.py``, automatically +build a test suite out of those test cases, and run that suite. + +There is a second way to define the test suite for a module: if you define a +function called ``suite()`` in either ``models.py`` or ``tests.py``, the +Django test runner will use that function to construct the test suite for that +module. This follows the `suggested organization`_ for unit tests. See the +Python documentation for more details on how to construct a complex test +suite. + +For more details about :mod:`unittest`, see the Python documentation. + +.. _suggested organization: http://docs.python.org/library/unittest.html#organizing-tests + +.. warning:: + + If your tests rely on database access such as creating or querying models, + be sure to create your test classes as subclasses of + :class:`django.test.TestCase` rather than :class:`unittest.TestCase`. + + In the example above, we instantiate some models but do not save them to + the database. Using :class:`unittest.TestCase` avoids the cost of running + each test in a transaction and flushing the database, but for most + applications the scope of tests you will be able to write this way will + be fairly limited, so it's easiest to use :class:`django.test.TestCase`. + +.. _running-tests: + +Running tests +============= + +Once you've written tests, run them using the :djadmin:`test` command of +your project's ``manage.py`` utility:: + + $ ./manage.py test + +By default, this will run every test in every application in +:setting:`INSTALLED_APPS`. If you only want to run tests for a particular +application, add the application name to the command line. For example, if your +:setting:`INSTALLED_APPS` contains ``'myproject.polls'`` and +``'myproject.animals'``, you can run the ``myproject.animals`` unit tests alone +with this command:: + + $ ./manage.py test animals + +Note that we used ``animals``, not ``myproject.animals``. + +You can be even *more* specific by naming an individual test case. To +run a single test case in an application (for example, the +``AnimalTestCase`` described in the "Writing unit tests" section), add +the name of the test case to the label on the command line:: + + $ ./manage.py test animals.AnimalTestCase + +And it gets even more granular than that! To run a *single* test +method inside a test case, add the name of the test method to the +label:: + + $ ./manage.py test animals.AnimalTestCase.test_animals_can_speak + +You can use the same rules if you're using doctests. Django will use the +test label as a path to the test method or class that you want to run. +If your ``models.py`` or ``tests.py`` has a function with a doctest, or +class with a class-level doctest, you can invoke that test by appending the +name of the test method or class to the label:: + + $ ./manage.py test animals.classify + +If you want to run the doctest for a specific method in a class, add the +name of the method to the label:: + + $ ./manage.py test animals.Classifier.run + +If you're using a ``__test__`` dictionary to specify doctests for a +module, Django will use the label as a key in the ``__test__`` dictionary +for defined in ``models.py`` and ``tests.py``. + +If you press ``Ctrl-C`` while the tests are running, the test runner will +wait for the currently running test to complete and then exit gracefully. +During a graceful exit the test runner will output details of any test +failures, report on how many tests were run and how many errors and failures +were encountered, and destroy any test databases as usual. Thus pressing +``Ctrl-C`` can be very useful if you forget to pass the :djadminopt:`--failfast` +option, notice that some tests are unexpectedly failing, and want to get details +on the failures without waiting for the full test run to complete. + +If you do not want to wait for the currently running test to finish, you +can press ``Ctrl-C`` a second time and the test run will halt immediately, +but not gracefully. No details of the tests run before the interruption will +be reported, and any test databases created by the run will not be destroyed. + +.. admonition:: Test with warnings enabled + + It's a good idea to run your tests with Python warnings enabled: + ``python -Wall manage.py test``. The ``-Wall`` flag tells Python to + display deprecation warnings. Django, like many other Python libraries, + uses these warnings to flag when features are going away. It also might + flag areas in your code that aren't strictly wrong but could benefit + from a better implementation. + +.. _the-test-database: + +The test database +----------------- + +Tests that require a database (namely, model tests) will not use your "real" +(production) database. Separate, blank databases are created for the tests. + +Regardless of whether the tests pass or fail, the test databases are destroyed +when all the tests have been executed. + +By default the test databases get their names by prepending ``test_`` +to the value of the :setting:`NAME` settings for the databases +defined in :setting:`DATABASES`. When using the SQLite database engine +the tests will by default use an in-memory database (i.e., the +database will be created in memory, bypassing the filesystem +entirely!). If you want to use a different database name, specify +:setting:`TEST_NAME` in the dictionary for any given database in +:setting:`DATABASES`. + +Aside from using a separate database, the test runner will otherwise +use all of the same database settings you have in your settings file: +:setting:`ENGINE`, :setting:`USER`, :setting:`HOST`, etc. The test +database is created by the user specified by :setting:`USER`, so you'll need +to make sure that the given user account has sufficient privileges to +create a new database on the system. + +For fine-grained control over the character encoding of your test +database, use the :setting:`TEST_CHARSET` option. If you're using +MySQL, you can also use the :setting:`TEST_COLLATION` option to +control the particular collation used by the test database. See the +:doc:`settings documentation ` for details of these +advanced settings. + +.. admonition:: Finding data from your production database when running tests? + + If your code attempts to access the database when its modules are compiled, + this will occur *before* the test database is set up, with potentially + unexpected results. For example, if you have a database query in + module-level code and a real database exists, production data could pollute + your tests. *It is a bad idea to have such import-time database queries in + your code* anyway - rewrite your code so that it doesn't do this. + +.. seealso:: + + The :ref:`advanced multi-db testing topics `. + +Order in which tests are executed +--------------------------------- + +In order to guarantee that all ``TestCase`` code starts with a clean database, +the Django test runner reorders tests in the following way: + +* First, all unittests (including :class:`unittest.TestCase`, + :class:`~django.test.SimpleTestCase`, :class:`~django.test.TestCase` and + :class:`~django.test.TransactionTestCase`) are run with no particular ordering + guaranteed nor enforced among them. + +* Then any other tests (e.g. doctests) that may alter the database without + restoring it to its original state are run. + +.. versionchanged:: 1.5 + Before Django 1.5, the only guarantee was that + :class:`~django.test.TestCase` tests were always ran first, before any other + tests. + +.. note:: + + The new ordering of tests may reveal unexpected dependencies on test case + ordering. This is the case with doctests that relied on state left in the + database by a given :class:`~django.test.TransactionTestCase` test, they + must be updated to be able to run independently. + +Other test conditions +--------------------- + +Regardless of the value of the :setting:`DEBUG` setting in your configuration +file, all Django tests run with :setting:`DEBUG`\=False. This is to ensure that +the observed output of your code matches what will be seen in a production +setting. + +Caches are not cleared after each test, and running "manage.py test fooapp" can +insert data from the tests into the cache of a live system if you run your +tests in production because, unlike databases, a separate "test cache" is not +used. This behavior `may change`_ in the future. + +.. _may change: https://code.djangoproject.com/ticket/11505 + +Understanding the test output +----------------------------- + +When you run your tests, you'll see a number of messages as the test runner +prepares itself. You can control the level of detail of these messages with the +``verbosity`` option on the command line:: + + Creating test database... + Creating table myapp_animal + Creating table myapp_mineral + Loading 'initial_data' fixtures... + No fixtures found. + +This tells you that the test runner is creating a test database, as described +in the previous section. + +Once the test database has been created, Django will run your tests. +If everything goes well, you'll see something like this:: + + ---------------------------------------------------------------------- + Ran 22 tests in 0.221s + + OK + +If there are test failures, however, you'll see full details about which tests +failed:: + + ====================================================================== + FAIL: Doctest: ellington.core.throttle.models + ---------------------------------------------------------------------- + Traceback (most recent call last): + File "/dev/django/test/doctest.py", line 2153, in runTest + raise self.failureException(self.format_failure(new.getvalue())) + AssertionError: Failed doctest test for myapp.models + File "/dev/myapp/models.py", line 0, in models + + ---------------------------------------------------------------------- + File "/dev/myapp/models.py", line 14, in myapp.models + Failed example: + throttle.check("actor A", "action one", limit=2, hours=1) + Expected: + True + Got: + False + + ---------------------------------------------------------------------- + Ran 2 tests in 0.048s + + FAILED (failures=1) + +A full explanation of this error output is beyond the scope of this document, +but it's pretty intuitive. You can consult the documentation of Python's +:mod:`unittest` library for details. + +Note that the return code for the test-runner script is 1 for any number of +failed and erroneous tests. If all the tests pass, the return code is 0. This +feature is useful if you're using the test-runner script in a shell script and +need to test for success or failure at that level. + +Speeding up the tests +--------------------- + +In recent versions of Django, the default password hasher is rather slow by +design. If during your tests you are authenticating many users, you may want +to use a custom settings file and set the :setting:`PASSWORD_HASHERS` setting +to a faster hashing algorithm:: + + PASSWORD_HASHERS = ( + 'django.contrib.auth.hashers.MD5PasswordHasher', + ) + +Don't forget to also include in :setting:`PASSWORD_HASHERS` any hashing +algorithm used in fixtures, if any. + +Testing tools +============= + +Django provides a small set of tools that come in handy when writing tests. + +.. _test-client: + +The test client +--------------- + +.. module:: django.test.client + :synopsis: Django's test client. + +The test client is a Python class that acts as a dummy Web browser, allowing +you to test your views and interact with your Django-powered application +programmatically. + +Some of the things you can do with the test client are: + +* Simulate GET and POST requests on a URL and observe the response -- + everything from low-level HTTP (result headers and status codes) to + page content. + +* Test that the correct view is executed for a given URL. + +* Test that a given request is rendered by a given Django template, with + a template context that contains certain values. + +Note that the test client is not intended to be a replacement for Selenium_ or +other "in-browser" frameworks. Django's test client has a different focus. In +short: + +* Use Django's test client to establish that the correct view is being + called and that the view is collecting the correct context data. + +* Use in-browser frameworks like Selenium_ to test *rendered* HTML and the + *behavior* of Web pages, namely JavaScript functionality. Django also + provides special support for those frameworks; see the section on + :class:`~django.test.LiveServerTestCase` for more details. + +A comprehensive test suite should use a combination of both test types. + +Overview and a quick example +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To use the test client, instantiate ``django.test.client.Client`` and retrieve +Web pages:: + + >>> from django.test.client import Client + >>> c = Client() + >>> response = c.post('/login/', {'username': 'john', 'password': 'smith'}) + >>> response.status_code + 200 + >>> response = c.get('/customer/details/') + >>> response.content + '>> c.get('/login/') + + This is incorrect:: + + >>> c.get('http://www.example.com/login/') + + The test client is not capable of retrieving Web pages that are not + powered by your Django project. If you need to retrieve other Web pages, + use a Python standard library module such as :mod:`urllib` or + :mod:`urllib2`. + +* To resolve URLs, the test client uses whatever URLconf is pointed-to by + your :setting:`ROOT_URLCONF` setting. + +* Although the above example would work in the Python interactive + interpreter, some of the test client's functionality, notably the + template-related functionality, is only available *while tests are + running*. + + The reason for this is that Django's test runner performs a bit of black + magic in order to determine which template was loaded by a given view. + This black magic (essentially a patching of Django's template system in + memory) only happens during test running. + +* By default, the test client will disable any CSRF checks + performed by your site. + + If, for some reason, you *want* the test client to perform CSRF + checks, you can create an instance of the test client that + enforces CSRF checks. To do this, pass in the + ``enforce_csrf_checks`` argument when you construct your + client:: + + >>> from django.test import Client + >>> csrf_client = Client(enforce_csrf_checks=True) + +Making requests +~~~~~~~~~~~~~~~ + +Use the ``django.test.client.Client`` class to make requests. + +.. class:: Client(enforce_csrf_checks=False, **defaults) + + It requires no arguments at time of construction. However, you can use + keywords arguments to specify some default headers. For example, this will + send a ``User-Agent`` HTTP header in each request:: + + >>> c = Client(HTTP_USER_AGENT='Mozilla/5.0') + + The values from the ``extra`` keywords arguments passed to + :meth:`~django.test.client.Client.get()`, + :meth:`~django.test.client.Client.post()`, etc. have precedence over + the defaults passed to the class constructor. + + The ``enforce_csrf_checks`` argument can be used to test CSRF + protection (see above). + + Once you have a ``Client`` instance, you can call any of the following + methods: + + .. method:: Client.get(path, data={}, follow=False, **extra) + + + Makes a GET request on the provided ``path`` and returns a ``Response`` + object, which is documented below. + + The key-value pairs in the ``data`` dictionary are used to create a GET + data payload. For example:: + + >>> c = Client() + >>> c.get('/customers/details/', {'name': 'fred', 'age': 7}) + + ...will result in the evaluation of a GET request equivalent to:: + + /customers/details/?name=fred&age=7 + + The ``extra`` keyword arguments parameter can be used to specify + headers to be sent in the request. For example:: + + >>> c = Client() + >>> c.get('/customers/details/', {'name': 'fred', 'age': 7}, + ... HTTP_X_REQUESTED_WITH='XMLHttpRequest') + + ...will send the HTTP header ``HTTP_X_REQUESTED_WITH`` to the + details view, which is a good way to test code paths that use the + :meth:`django.http.HttpRequest.is_ajax()` method. + + .. admonition:: CGI specification + + The headers sent via ``**extra`` should follow CGI_ specification. + For example, emulating a different "Host" header as sent in the + HTTP request from the browser to the server should be passed + as ``HTTP_HOST``. + + .. _CGI: http://www.w3.org/CGI/ + + If you already have the GET arguments in URL-encoded form, you can + use that encoding instead of using the data argument. For example, + the previous GET request could also be posed as:: + + >>> c = Client() + >>> c.get('/customers/details/?name=fred&age=7') + + If you provide a URL with both an encoded GET data and a data argument, + the data argument will take precedence. + + If you set ``follow`` to ``True`` the client will follow any redirects + and a ``redirect_chain`` attribute will be set in the response object + containing tuples of the intermediate urls and status codes. + + If you had a URL ``/redirect_me/`` that redirected to ``/next/``, that + redirected to ``/final/``, this is what you'd see:: + + >>> response = c.get('/redirect_me/', follow=True) + >>> response.redirect_chain + [(u'http://testserver/next/', 302), (u'http://testserver/final/', 302)] + + .. method:: Client.post(path, data={}, content_type=MULTIPART_CONTENT, follow=False, **extra) + + Makes a POST request on the provided ``path`` and returns a + ``Response`` object, which is documented below. + + The key-value pairs in the ``data`` dictionary are used to submit POST + data. For example:: + + >>> c = Client() + >>> c.post('/login/', {'name': 'fred', 'passwd': 'secret'}) + + ...will result in the evaluation of a POST request to this URL:: + + /login/ + + ...with this POST data:: + + name=fred&passwd=secret + + If you provide ``content_type`` (e.g. :mimetype:`text/xml` for an XML + payload), the contents of ``data`` will be sent as-is in the POST + request, using ``content_type`` in the HTTP ``Content-Type`` header. + + If you don't provide a value for ``content_type``, the values in + ``data`` will be transmitted with a content type of + :mimetype:`multipart/form-data`. In this case, the key-value pairs in + ``data`` will be encoded as a multipart message and used to create the + POST data payload. + + To submit multiple values for a given key -- for example, to specify + the selections for a ``', + '') + + ``html1`` and ``html2`` must be valid HTML. An ``AssertionError`` will be + raised if one of them cannot be parsed. + +.. method:: SimpleTestCase.assertHTMLNotEqual(html1, html2, msg=None) + + .. versionadded:: 1.4 + + Asserts that the strings ``html1`` and ``html2`` are *not* equal. The + comparison is based on HTML semantics. See + :meth:`~SimpleTestCase.assertHTMLEqual` for details. + + ``html1`` and ``html2`` must be valid HTML. An ``AssertionError`` will be + raised if one of them cannot be parsed. + +.. method:: SimpleTestCase.assertXMLEqual(xml1, xml2, msg=None) + + .. versionadded:: 1.5 + + Asserts that the strings ``xml1`` and ``xml2`` are equal. The + comparison is based on XML semantics. Similarily to + :meth:`~SimpleTestCase.assertHTMLEqual`, the comparison is + made on parsed content, hence only semantic differences are considered, not + syntax differences. When unvalid XML is passed in any parameter, an + ``AssertionError`` is always raised, even if both string are identical. + +.. method:: SimpleTestCase.assertXMLNotEqual(xml1, xml2, msg=None) + + .. versionadded:: 1.5 + + Asserts that the strings ``xml1`` and ``xml2`` are *not* equal. The + comparison is based on XML semantics. See + :meth:`~SimpleTestCase.assertXMLEqual` for details. + +.. _topics-testing-email: + +Email services +-------------- + +If any of your Django views send email using :doc:`Django's email +functionality `, you probably don't want to send email each time +you run a test using that view. For this reason, Django's test runner +automatically redirects all Django-sent email to a dummy outbox. This lets you +test every aspect of sending email -- from the number of messages sent to the +contents of each message -- without actually sending the messages. + +The test runner accomplishes this by transparently replacing the normal +email backend with a testing backend. +(Don't worry -- this has no effect on any other email senders outside of +Django, such as your machine's mail server, if you're running one.) + +.. currentmodule:: django.core.mail + +.. data:: django.core.mail.outbox + +During test running, each outgoing email is saved in +``django.core.mail.outbox``. This is a simple list of all +:class:`~django.core.mail.EmailMessage` instances that have been sent. +The ``outbox`` attribute is a special attribute that is created *only* when +the ``locmem`` email backend is used. It doesn't normally exist as part of the +:mod:`django.core.mail` module and you can't import it directly. The code +below shows how to access this attribute correctly. + +Here's an example test that examines ``django.core.mail.outbox`` for length +and contents:: + + from django.core import mail + from django.test import TestCase + + class EmailTest(TestCase): + def test_send_email(self): + # Send message. + mail.send_mail('Subject here', 'Here is the message.', + 'from@example.com', ['to@example.com'], + fail_silently=False) + + # Test that one message has been sent. + self.assertEqual(len(mail.outbox), 1) + + # Verify that the subject of the first message is correct. + self.assertEqual(mail.outbox[0].subject, 'Subject here') + +As noted :ref:`previously `, the test outbox is emptied +at the start of every test in a Django ``TestCase``. To empty the outbox +manually, assign the empty list to ``mail.outbox``:: + + from django.core import mail + + # Empty the test outbox + mail.outbox = [] + +.. _skipping-tests: + +Skipping tests +-------------- + +.. currentmodule:: django.test + +The unittest library provides the :func:`@skipIf ` and +:func:`@skipUnless ` decorators to allow you to skip tests +if you know ahead of time that those tests are going to fail under certain +conditions. + +For example, if your test requires a particular optional library in order to +succeed, you could decorate the test case with :func:`@skipIf +`. Then, the test runner will report that the test wasn't +executed and why, instead of failing the test or omitting the test altogether. + +To supplement these test skipping behaviors, Django provides two +additional skip decorators. Instead of testing a generic boolean, +these decorators check the capabilities of the database, and skip the +test if the database doesn't support a specific named feature. + +The decorators use a string identifier to describe database features. +This string corresponds to attributes of the database connection +features class. See :class:`~django.db.backends.BaseDatabaseFeatures` +class for a full list of database features that can be used as a basis +for skipping tests. + +.. function:: skipIfDBFeature(feature_name_string) + +Skip the decorated test if the named database feature is supported. + +For example, the following test will not be executed if the database +supports transactions (e.g., it would *not* run under PostgreSQL, but +it would under MySQL with MyISAM tables):: + + class MyTests(TestCase): + @skipIfDBFeature('supports_transactions') + def test_transaction_behavior(self): + # ... conditional test code + +.. function:: skipUnlessDBFeature(feature_name_string) + +Skip the decorated test if the named database feature is *not* +supported. + +For example, the following test will only be executed if the database +supports transactions (e.g., it would run under PostgreSQL, but *not* +under MySQL with MyISAM tables):: + + class MyTests(TestCase): + @skipUnlessDBFeature('supports_transactions') + def test_transaction_behavior(self): + # ... conditional test code -- cgit v1.3 From 38f725da547f07baaa791acfe2c116a7fc6b02fe Mon Sep 17 00:00:00 2001 From: Ramiro Morales Date: Sat, 22 Dec 2012 12:08:22 -0300 Subject: Better name for a new testing documentation link. --- docs/index.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/index.txt b/docs/index.txt index ab00da271c..e8e7eadb23 100644 --- a/docs/index.txt +++ b/docs/index.txt @@ -181,7 +181,7 @@ testing of Django applications: :doc:`Adding custom commands ` * **Testing:** - :doc:`Overview ` | + :doc:`Introduction ` | :doc:`Writing and running tests ` | :doc:`Advanced topics ` | :doc:`Doctests ` -- cgit v1.3 From 9d62220e008c5e1b03e3026aaa97afac2e4eb67b Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sat, 22 Dec 2012 19:01:55 +0100 Subject: Fixed #15516 -- Updated the ticket life cycle diagram. --- docs/internals/_images/djangotickets.png | Bin 52003 -> 0 bytes docs/internals/_images/triage_process.graffle | 2652 ++++++++++++++++++++++ docs/internals/_images/triage_process.pdf | Bin 0 -> 70123 bytes docs/internals/_images/triage_process.svg | 3 + docs/internals/contributing/triaging-tickets.txt | 6 +- 5 files changed, 2658 insertions(+), 3 deletions(-) delete mode 100644 docs/internals/_images/djangotickets.png create mode 100644 docs/internals/_images/triage_process.graffle create mode 100644 docs/internals/_images/triage_process.pdf create mode 100644 docs/internals/_images/triage_process.svg (limited to 'docs') diff --git a/docs/internals/_images/djangotickets.png b/docs/internals/_images/djangotickets.png deleted file mode 100644 index 34a2a41852..0000000000 Binary files a/docs/internals/_images/djangotickets.png and /dev/null differ diff --git a/docs/internals/_images/triage_process.graffle b/docs/internals/_images/triage_process.graffle new file mode 100644 index 0000000000..cd1e89cc3a --- /dev/null +++ b/docs/internals/_images/triage_process.graffle @@ -0,0 +1,2652 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGrafflePro + 139.16.0.171715 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {1118.5799560546875, 782.8900146484375}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + BaseZoom + 0 + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2012-12-22 15:48:38 +0000 + Creator + Aymeric Augustin + DisplayScale + 1.000 cm = 1.000 cm + GraphDocumentVersion + 8 + GraphicsList + + + Class + LineGraphic + ID + 104 + OrthogonalBarAutomatic + + OrthogonalBarPoint + {0, 0} + OrthogonalBarPosition + -1 + Points + + {98.499995506345428, 441} + {45, 441} + {36, 576} + + Style + + stroke + + Color + + b + 0.6 + g + 0.6 + r + 0.6 + + HeadArrow + 0 + Legacy + + LineType + 2 + Pattern + 1 + TailArrow + 0 + + + Tail + + ID + 103 + + + + Bounds + {{99, 432}, {18, 18}} + Class + ShapedGraphic + ID + 103 + Shape + Circle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Color + + b + 0.6 + g + 0.6 + r + 0.6 + + Pattern + 1 + + + + + Bounds + {{27, 576}, {342, 36}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + HFlip + YES + ID + 102 + Shape + Rectangle + Style + + shadow + + Draws + NO + + stroke + + Color + + b + 0.6 + g + 0.6 + r + 0.6 + + Pattern + 1 + + + Text + + Pad + 4 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;\red102\green102\blue102;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\i\fs24 \cf2 The ticket has a patch which applies cleanly and includes all needed tests and docs. A core developer can commit it as is.} + + VFlip + YES + + + Bounds + {{27, 543.5}, {342, 12}} + Class + ShapedGraphic + FitText + Vertical + Flow + Resize + ID + 100 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\i\fs20 \cf0 For clarity, only the most common transitions are shown.} + VerticalPad + 0 + + + + Class + LineGraphic + ID + 98 + OrthogonalBarAutomatic + + OrthogonalBarPoint + {0, 0} + OrthogonalBarPosition + -1 + Points + + {98.499995506345428, 333} + {45, 333} + {36, 189} + + Style + + stroke + + Color + + b + 0.6 + g + 0.6 + r + 0.6 + + HeadArrow + 0 + Legacy + + LineType + 2 + Pattern + 1 + TailArrow + 0 + + + Tail + + ID + 97 + + + + Bounds + {{99, 324}, {18, 18}} + Class + ShapedGraphic + ID + 97 + Shape + Circle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Color + + b + 0.6 + g + 0.6 + r + 0.6 + + Pattern + 1 + + + + + Bounds + {{27, 135}, {108, 54}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + HFlip + YES + ID + 96 + Shape + Rectangle + Style + + shadow + + Draws + NO + + stroke + + Color + + b + 0.6 + g + 0.6 + r + 0.6 + + Pattern + 1 + + + Text + + Pad + 4 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;\red102\green102\blue102;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\i\fs24 \cf2 The ticket is a bug and obviously should be fixed.} + + VFlip + YES + + + Bounds + {{189, 306}, {18, 18}} + Class + ShapedGraphic + ID + 94 + Shape + Circle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Color + + b + 0.6 + g + 0.6 + r + 0.6 + + Pattern + 1 + + + + + Class + LineGraphic + ID + 93 + Points + + {204.18279336665475, 307.78674107223611} + {252, 252} + {252, 189} + + Style + + stroke + + Color + + b + 0.6 + g + 0.6 + r + 0.6 + + HeadArrow + 0 + Legacy + + Pattern + 1 + TailArrow + 0 + + + Tail + + ID + 94 + + + + Bounds + {{162, 135}, {180, 54}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + HFlip + YES + ID + 95 + Shape + Rectangle + Style + + shadow + + Draws + NO + + stroke + + Color + + b + 0.6 + g + 0.6 + r + 0.6 + + Pattern + 1 + + + Text + + Pad + 4 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;\red102\green102\blue102;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\i\fs24 \cf2 The ticket requires a discussion by the community and a design decision by a core developer.} + + VFlip + YES + + + Bounds + {{387, 279}, {18, 18}} + Class + ShapedGraphic + ID + 91 + Shape + Circle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Color + + b + 0.6 + g + 0.6 + r + 0.6 + + Pattern + 1 + + + + + Class + LineGraphic + ID + 90 + Points + + {396, 278.49999548261451} + {396, 189} + + Style + + stroke + + Color + + b + 0.6 + g + 0.6 + r + 0.6 + + HeadArrow + 0 + Legacy + + LineType + 1 + Pattern + 1 + TailArrow + 0 + + + Tail + + ID + 91 + + + + Bounds + {{369, 135}, {198, 54}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + HFlip + YES + ID + 89 + Shape + Rectangle + Style + + shadow + + Draws + NO + + stroke + + Color + + b + 0.6 + g + 0.6 + r + 0.6 + + Pattern + 1 + + + Text + + Pad + 4 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;\red102\green102\blue102;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\i\fs24 \cf2 The ticket was already reported, isn't a bug, doesn't provide enough information, or can't be reproduced.} + + VFlip + YES + + + Class + LineGraphic + Head + + ID + 132 + Info + 4 + + ID + 134 + Points + + {342, 342} + {393, 395} + {450, 450} + + Style + + stroke + + Color + + b + 0.501961 + g + 0.25098 + r + 0 + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + Width + 2 + + + Tail + + ID + 16 + + + + Class + LineGraphic + Head + + ID + 132 + + ID + 133 + Points + + {342, 450} + {450, 450} + + Style + + stroke + + Color + + b + 0.501961 + g + 0.25098 + r + 0 + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + Width + 2 + + + Tail + + ID + 17 + + + + Class + LineGraphic + Head + + ID + 10 + + ID + 60 + Points + + {108, 423} + {108, 477} + + Style + + stroke + + Color + + b + 0 + g + 0.501961 + r + 0 + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + Width + 2 + + + Tail + + ID + 11 + + + + Class + LineGraphic + ID + 82 + Points + + {162, 288} + {396, 288} + + Style + + stroke + + Color + + b + 0 + g + 0.501961 + r + 0 + + HeadArrow + 0 + Legacy + + TailArrow + 0 + Width + 2 + + + Tail + + ID + 12 + Info + 3 + + + + Class + LineGraphic + Head + + ID + 11 + + ID + 54 + Points + + {108, 315} + {108, 369} + + Style + + stroke + + Color + + b + 0 + g + 0.501961 + r + 0 + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + Width + 2 + + + Tail + + ID + 12 + Info + 1 + + + + Class + LineGraphic + Head + + ID + 130 + + ID + 131 + Points + + {162, 504} + {450, 504} + + Style + + stroke + + Color + + b + 0.501961 + g + 0.25098 + r + 0 + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + Width + 2 + + + Tail + + ID + 10 + Info + 3 + + + + Class + LineGraphic + Head + + ID + 11 + + ID + 58 + Points + + {234.0000000000002, 342} + {162, 396} + + Style + + stroke + + Color + + b + 0.501961 + g + 0.25098 + r + 0 + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + Width + 2 + + + Tail + + ID + 16 + + + + Class + LineGraphic + Head + + ID + 11 + + ID + 57 + Points + + {234.0000000000002, 450} + {162, 396} + + Style + + stroke + + Color + + b + 0.501961 + g + 0.25098 + r + 0 + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + Width + 2 + + + Tail + + ID + 17 + + + + Class + LineGraphic + Head + + ID + 17 + + ID + 56 + Points + + {288, 369} + {288, 423} + + Style + + stroke + + Color + + b + 0.501961 + g + 0.25098 + r + 0 + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + Width + 2 + + + Tail + + ID + 16 + + + + Class + LineGraphic + Head + + ID + 16 + + ID + 55 + Points + + {162, 288} + {234.0000000000002, 342} + + Style + + stroke + + Color + + b + 0 + g + 0.501961 + r + 0 + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + Width + 2 + + + Tail + + ID + 12 + + + + Class + LineGraphic + Head + + ID + 135 + Info + 4 + + ID + 136 + Points + + {396, 288} + {450, 405} + + Style + + stroke + + Color + + b + 0 + g + 0.501961 + r + 0 + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + Width + 2 + + + Tail + + ID + 82 + Info + 1 + + + + Class + LineGraphic + Head + + ID + 137 + + ID + 138 + Points + + {396, 288} + {450, 360} + + Style + + stroke + + Color + + b + 0 + g + 0.501961 + r + 0 + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + Width + 2 + + + Tail + + ID + 82 + Info + 1 + + + + Class + LineGraphic + Head + + ID + 139 + + ID + 140 + Points + + {396, 288} + {450, 315} + + Style + + stroke + + Color + + b + 0 + g + 0.501961 + r + 0 + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + Width + 2 + + + Tail + + ID + 82 + Info + 1 + + + + Class + LineGraphic + Head + + ID + 123 + Info + 4 + + ID + 124 + Points + + {396, 288} + {450, 270} + + Style + + stroke + + Color + + b + 0 + g + 0.501961 + r + 0 + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + Width + 2 + + + Tail + + ID + 82 + Info + 1 + + + + Bounds + {{315, 630}, {125.99999999999999, 18}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica-Bold + Size + 12 + + ID + 128 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + fill + + GradientCenter + {0, 0.15238095234285712} + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 development status} + + + + Bounds + {{26.999999999999993, 650}, {108.00000000000001, 14}} + Class + ShapedGraphic + FitText + Vertical + Flow + Resize + FontInfo + + Font + Helvetica + Size + 12 + + ID + 45 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 2 + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;\red0\green64\blue128;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr + +\f0\b\fs24 \cf2 Committers} + VerticalPad + 0 + + + + Class + LineGraphic + ID + 44 + Points + + {144, 657} + {180, 657} + + Style + + stroke + + Color + + b + 0.501961 + g + 0.25098 + r + 0 + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + Width + 2 + + + + + Bounds + {{26.999999999999993, 632}, {108.00000000000001, 14}} + Class + ShapedGraphic + FitText + Vertical + Flow + Resize + FontInfo + + Font + Helvetica + Size + 12 + + ID + 43 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 2 + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;\red0\green128\blue0;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr + +\f0\b\fs24 \cf2 Ticket triagers } + VerticalPad + 0 + + + + Class + LineGraphic + ID + 42 + Points + + {144, 639} + {180, 639} + + Style + + stroke + + Color + + b + 0 + g + 0.501961 + r + 0 + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + Width + 2 + + + + + Bounds + {{315, 648}, {125.99999999999999, 18}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica-Bold + Size + 12 + + ID + 129 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + fill + + Color + + a + 0.3 + b + 1 + g + 0.501961 + r + 0 + + GradientCenter + {0, 0.15238095234285712} + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 in progress} + + + + Bounds + {{441, 630}, {125.99999999999999, 18}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica-Bold + Size + 12 + + ID + 125 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + fill + + Color + + a + 0.3 + b + 0 + g + 0 + r + 1 + + GradientCenter + {0, 0.15238095234285712} + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 stopped} + + + + Bounds + {{441, 648}, {125.99999999999999, 18}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica-Bold + Size + 12 + + ID + 127 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + fill + + Color + + a + 0.3 + b + 0 + g + 0.501961 + r + 0 + + GradientCenter + {0, 0.15238095234285712} + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 completed} + + + + Class + LineGraphic + ID + 36 + Points + + {423, 234} + {567, 234} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + Class + LineGraphic + ID + 33 + Points + + {27, 234} + {369, 234} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + Bounds + {{450, 441}, {90.000000000000014, 18}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica-Bold + Size + 12 + + ID + 132 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + fill + + Color + + a + 0.3 + b + 0 + g + 0 + r + 1 + + GradientCenter + {0, 0.15238095234285712} + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 wontfix} + + + + Bounds + {{450, 396}, {90.000000000000014, 18}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica-Bold + Size + 12 + + ID + 135 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + fill + + Color + + a + 0.3 + b + 0 + g + 0 + r + 1 + + GradientCenter + {0, 0.15238095234285712} + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 worksforme} + + + + Bounds + {{450, 351}, {90.000000000000014, 18}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica-Bold + Size + 12 + + ID + 137 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + fill + + Color + + a + 0.3 + b + 0 + g + 0 + r + 1 + + GradientCenter + {0, 0.15238095234285712} + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 needsinfo} + + + + Bounds + {{450, 306}, {90.000000000000014, 18}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica-Bold + Size + 12 + + ID + 139 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + fill + + Color + + a + 0.3 + b + 0 + g + 0 + r + 1 + + GradientCenter + {0, 0.15238095234285712} + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 invalid} + + + + Bounds + {{450, 495}, {90.000000000000014, 18}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica-Bold + Size + 12 + + ID + 130 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + fill + + Color + + a + 0.3 + b + 0 + g + 0.501961 + r + 0 + + GradientCenter + {0, 0.15238095234285712} + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 fixed} + + + + Bounds + {{450, 261}, {90.000000000000014, 18}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica-Bold + Size + 12 + + ID + 123 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + fill + + Color + + a + 0.3 + b + 0 + g + 0 + r + 1 + + GradientCenter + {0, 0.15238095234285712} + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 duplicate} + + + + Bounds + {{234, 423}, {108, 54}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 17 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + fill + + Color + + a + 0.3 + b + 1 + g + 0.501961 + r + 0 + + + stroke + + CornerRadius + 5 + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Someday\ +/\ +Mabye} + + + + Bounds + {{234, 315}, {108, 54}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 16 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + fill + + Color + + a + 0.3 + b + 1 + g + 0.501961 + r + 0 + + + stroke + + CornerRadius + 5 + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Design\ +Decision\ +Needed} + + + + Bounds + {{54, 261}, {108, 54}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 12 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + fill + + Color + + a + 0.3 + b + 1 + g + 0.501961 + r + 0 + + + stroke + + CornerRadius + 5 + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Unreviewed} + + + + Bounds + {{54, 369}, {108, 54}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 11 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + fill + + Color + + a + 0.3 + b + 1 + g + 0.501961 + r + 0 + + + stroke + + CornerRadius + 5 + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Accepted} + + + + Bounds + {{54, 477}, {108, 54}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 10 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + fill + + Color + + a + 0.3 + b + 1 + g + 0.501961 + r + 0 + + + stroke + + CornerRadius + 5 + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Ready for Checkin} + + + + Bounds + {{27, 207}, {342, 351}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 13 + + ID + 99 + Shape + Rectangle + Style + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs28 \cf0 Open tickets\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\fs12 \cf0 \ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\fs24 \cf0 triage state} + + TextPlacement + 0 + + + Bounds + {{423, 207}, {144, 351}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 15 + + ID + 32 + Shape + Rectangle + Style + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs28 \cf0 Closed tickets\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\fs12 \cf0 \ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\fs24 \cf0 resolution} + + TextPlacement + 0 + + + Bounds + {{315, 630}, {252, 36}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica-Bold + Size + 12 + + ID + 126 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + fill + + GradientCenter + {0, 0.15238095234285712} + + stroke + + Draws + NO + + + + + Bounds + {{27, 630}, {180, 36}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 88 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + fill + + GradientCenter + {0, 0.15238095234285712} + + stroke + + Draws + NO + + + + + GridInfo + + ShowsGrid + YES + SnapsToGrid + YES + + GuidesLocked + NO + GuidesVisible + YES + HPages + 2 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + Calque 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2012-12-22 18:00:58 +0000 + Modifier + Aymeric Augustin + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSHorizonalPagination + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {595.28997802734375, 841.8900146484375} + + NSPrintReverseOrientation + + int + 0 + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Canevas 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + Frame + {{1, 4}, {1190, 874}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{0, 50.450449800270746}, {950.45043820152921, 662.1621536285536}} + Zoom + 1.1100000143051147 + ZoomValues + + + Canevas 1 + 1.1100000143051147 + 1.0499999523162842 + + + + + diff --git a/docs/internals/_images/triage_process.pdf b/docs/internals/_images/triage_process.pdf new file mode 100644 index 0000000000..a157fa8960 Binary files /dev/null and b/docs/internals/_images/triage_process.pdf differ diff --git a/docs/internals/_images/triage_process.svg b/docs/internals/_images/triage_process.svg new file mode 100644 index 0000000000..363ba41aef --- /dev/null +++ b/docs/internals/_images/triage_process.svg @@ -0,0 +1,3 @@ + + +2012-12-22 18:00ZCanevas 1Calque 1Closed ticketsresolutionOpen ticketstriage stateReady for CheckinAcceptedUnreviewedDesignDecisionNeededSomeday/Mabyeduplicatefixedinvalidneedsinfoworksformewontfixcompletedstoppedin progressTicket triagers Committersdevelopment statusThe ticket was already reported, isn't a bug, doesn't provide enough information, or can't be reproduced.The ticket requires a discussion by the community and a design decision by a core developer.The ticket is a bug and obviously should be fixed.For clarity, only the most common transitions are shown.The ticket has a patch which applies cleanly and includes all needed tests and docs. A core developer can commit it as is. diff --git a/docs/internals/contributing/triaging-tickets.txt b/docs/internals/contributing/triaging-tickets.txt index 84f70fd731..19298c55fb 100644 --- a/docs/internals/contributing/triaging-tickets.txt +++ b/docs/internals/contributing/triaging-tickets.txt @@ -50,9 +50,9 @@ attribute easily tells us what and who each ticket is waiting on. Since a picture is worth a thousand words, let's start there: -.. image:: /internals/_images/djangotickets.png - :height: 451 - :width: 590 +.. image:: /internals/_images/triage_process.* + :height: 564 + :width: 580 :alt: Django's ticket triage workflow We've got two roles in this diagram: -- cgit v1.3 From 35d1cd0b28d1d9cd7bffbfbc6cc2e02b58404415 Mon Sep 17 00:00:00 2001 From: Julien Phalip Date: Sat, 22 Dec 2012 20:00:08 +0100 Subject: Fixed #19505 -- A more flexible implementation for customizable admin redirect urls. Work by Julien Phalip. Refs #8001, #18310, #19505. See also 0b908b92a2ca4fb74a103e96bb75c53c05d0a428. --- django/contrib/admin/options.py | 167 ++++++++-------------- django/contrib/auth/admin.py | 5 +- docs/internals/deprecation.txt | 6 + tests/regressiontests/admin_custom_urls/models.py | 51 ++++--- tests/regressiontests/admin_custom_urls/tests.py | 81 ++++++----- 5 files changed, 140 insertions(+), 170 deletions(-) (limited to 'docs') diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py index 1827d40159..fa6d288f58 100644 --- a/django/contrib/admin/options.py +++ b/django/contrib/admin/options.py @@ -9,7 +9,7 @@ from django.forms.models import (modelform_factory, modelformset_factory, inlineformset_factory, BaseInlineFormSet) from django.contrib.contenttypes.models import ContentType from django.contrib.admin import widgets, helpers -from django.contrib.admin.util import quote, unquote, flatten_fieldsets, get_deleted_objects, model_format_dict +from django.contrib.admin.util import unquote, flatten_fieldsets, get_deleted_objects, model_format_dict from django.contrib.admin.templatetags.admin_static import static from django.contrib import messages from django.views.decorators.csrf import csrf_protect @@ -38,6 +38,7 @@ HORIZONTAL, VERTICAL = 1, 2 # returns the
    class for a given radio_admin field get_ul_class = lambda x: 'radiolist%s' % ((x == HORIZONTAL) and ' inline' or '') + class IncorrectLookupParameters(Exception): pass @@ -62,6 +63,7 @@ FORMFIELD_FOR_DBFIELD_DEFAULTS = { csrf_protect_m = method_decorator(csrf_protect) + class BaseModelAdmin(six.with_metaclass(forms.MediaDefiningClass)): """Functionality common to both ModelAdmin and InlineAdmin.""" @@ -150,7 +152,7 @@ class BaseModelAdmin(six.with_metaclass(forms.MediaDefiningClass)): }) if 'choices' not in kwargs: kwargs['choices'] = db_field.get_choices( - include_blank = db_field.blank, + include_blank=db_field.blank, blank_choice=[('', _('None'))] ) return db_field.formfield(**kwargs) @@ -787,49 +789,37 @@ class ModelAdmin(BaseModelAdmin): "admin/change_form.html" ], context, current_app=self.admin_site.name) - def response_add(self, request, obj, post_url_continue='../%s/', - continue_editing_url=None, add_another_url=None, - hasperm_url=None, noperm_url=None): + def response_add(self, request, obj, post_url_continue=None): """ Determines the HttpResponse for the add_view stage. - - :param request: HttpRequest instance. - :param obj: Object just added. - :param post_url_continue: Deprecated/undocumented. - :param continue_editing_url: URL where user will be redirected after - pressing 'Save and continue editing'. - :param add_another_url: URL where user will be redirected after - pressing 'Save and add another'. - :param hasperm_url: URL to redirect after a successful object creation - when the user has change permissions. - :param noperm_url: URL to redirect after a successful object creation - when the user has no change permissions. - """ - if post_url_continue != '../%s/': - warnings.warn("The undocumented 'post_url_continue' argument to " - "ModelAdmin.response_add() is deprecated, use the new " - "*_url arguments instead.", DeprecationWarning, - stacklevel=2) + """ opts = obj._meta - pk_value = obj.pk - app_label = opts.app_label - model_name = opts.module_name - site_name = self.admin_site.name + pk_value = obj._get_pk_val() msg_dict = {'name': force_text(opts.verbose_name), 'obj': force_text(obj)} - # Here, we distinguish between different save types by checking for # the presence of keys in request.POST. if "_continue" in request.POST: msg = _('The %(name)s "%(obj)s" was added successfully. You may edit it again below.') % msg_dict self.message_user(request, msg) - if continue_editing_url is None: - continue_editing_url = 'admin:%s_%s_change' % (app_label, model_name) - url = reverse(continue_editing_url, args=(quote(pk_value),), - current_app=site_name) + if post_url_continue is None: + post_url_continue = reverse('admin:%s_%s_change' % + (opts.app_label, opts.module_name), + args=(pk_value,), + current_app=self.admin_site.name) + else: + try: + post_url_continue = post_url_continue % pk_value + warnings.warn( + "The use of string formats for post_url_continue " + "in ModelAdmin.response_add() is deprecated. Provide " + "a pre-formatted url instead.", + DeprecationWarning, stacklevel=2) + except TypeError: + pass if "_popup" in request.POST: - url += "?_popup=1" - return HttpResponseRedirect(url) + post_url_continue += "?_popup=1" + return HttpResponseRedirect(post_url_continue) if "_popup" in request.POST: return HttpResponse( @@ -840,102 +830,61 @@ class ModelAdmin(BaseModelAdmin): elif "_addanother" in request.POST: msg = _('The %(name)s "%(obj)s" was added successfully. You may add another %(name)s below.') % msg_dict self.message_user(request, msg) - if add_another_url is None: - add_another_url = 'admin:%s_%s_add' % (app_label, model_name) - url = reverse(add_another_url, current_app=site_name) - return HttpResponseRedirect(url) + return HttpResponseRedirect(request.path) else: msg = _('The %(name)s "%(obj)s" was added successfully.') % msg_dict self.message_user(request, msg) + return self.response_post_save(request, obj) - # Figure out where to redirect. If the user has change permission, - # redirect to the change-list page for this object. Otherwise, - # redirect to the admin index. - if self.has_change_permission(request, None): - if hasperm_url is None: - hasperm_url = 'admin:%s_%s_changelist' % (app_label, model_name) - url = reverse(hasperm_url, current_app=site_name) - else: - if noperm_url is None: - noperm_url = 'admin:index' - url = reverse(noperm_url, current_app=site_name) - return HttpResponseRedirect(url) - - def response_change(self, request, obj, continue_editing_url=None, - save_as_new_url=None, add_another_url=None, - hasperm_url=None, noperm_url=None): + def response_change(self, request, obj): """ Determines the HttpResponse for the change_view stage. - - :param request: HttpRequest instance. - :param obj: Object just modified. - :param continue_editing_url: URL where user will be redirected after - pressing 'Save and continue editing'. - :param save_as_new_url: URL where user will be redirected after pressing - 'Save as new' (when applicable). - :param add_another_url: URL where user will be redirected after pressing - 'Save and add another'. - :param hasperm_url: URL to redirect after a successful object edition when - the user has change permissions. - :param noperm_url: URL to redirect after a successful object edition when - the user has no change permissions. """ - opts = obj._meta + opts = self.model._meta - app_label = opts.app_label - model_name = opts.module_name - site_name = self.admin_site.name - verbose_name = opts.verbose_name - # Handle proxy models automatically created by .only() or .defer(). - # Refs #14529 - if obj._deferred: - opts_ = opts.proxy_for_model._meta - verbose_name = opts_.verbose_name - model_name = opts_.module_name - - msg_dict = {'name': force_text(verbose_name), 'obj': force_text(obj)} + pk_value = obj._get_pk_val() + msg_dict = {'name': force_text(opts.verbose_name), 'obj': force_text(obj)} if "_continue" in request.POST: msg = _('The %(name)s "%(obj)s" was changed successfully. You may edit it again below.') % msg_dict self.message_user(request, msg) - if continue_editing_url is None: - continue_editing_url = 'admin:%s_%s_change' % (app_label, model_name) - url = reverse(continue_editing_url, args=(quote(obj.pk),), - current_app=site_name) - if "_popup" in request.POST: - url += "?_popup=1" - return HttpResponseRedirect(url) + if "_popup" in request.REQUEST: + return HttpResponseRedirect(request.path + "?_popup=1") + else: + return HttpResponseRedirect(request.path) elif "_saveasnew" in request.POST: msg = _('The %(name)s "%(obj)s" was added successfully. You may edit it again below.') % msg_dict self.message_user(request, msg) - if save_as_new_url is None: - save_as_new_url = 'admin:%s_%s_change' % (app_label, model_name) - url = reverse(save_as_new_url, args=(quote(obj.pk),), - current_app=site_name) - return HttpResponseRedirect(url) + return HttpResponseRedirect(reverse('admin:%s_%s_change' % + (opts.app_label, opts.module_name), + args=(pk_value,), + current_app=self.admin_site.name)) elif "_addanother" in request.POST: msg = _('The %(name)s "%(obj)s" was changed successfully. You may add another %(name)s below.') % msg_dict self.message_user(request, msg) - if add_another_url is None: - add_another_url = 'admin:%s_%s_add' % (app_label, model_name) - url = reverse(add_another_url, current_app=site_name) - return HttpResponseRedirect(url) + return HttpResponseRedirect(reverse('admin:%s_%s_add' % + (opts.app_label, opts.module_name), + current_app=self.admin_site.name)) else: msg = _('The %(name)s "%(obj)s" was changed successfully.') % msg_dict self.message_user(request, msg) - # Figure out where to redirect. If the user has change permission, - # redirect to the change-list page for this object. Otherwise, - # redirect to the admin index. - if self.has_change_permission(request, None): - if hasperm_url is None: - hasperm_url = 'admin:%s_%s_changelist' % (app_label, - model_name) - url = reverse(hasperm_url, current_app=site_name) - else: - if noperm_url is None: - noperm_url = 'admin:index' - url = reverse(noperm_url, current_app=site_name) - return HttpResponseRedirect(url) + return self.response_post_save(request, obj) + + def response_post_save(self, request, obj): + """ + Figure out where to redirect after the 'Save' button has been pressed. + If the user has change permission, redirect to the change-list page for + this object. Otherwise, redirect to the admin index. + """ + opts = self.model._meta + if self.has_change_permission(request, None): + post_url = reverse('admin:%s_%s_changelist' % + (opts.app_label, opts.module_name), + current_app=self.admin_site.name) + else: + post_url = reverse('admin:index', + current_app=self.admin_site.name) + return HttpResponseRedirect(post_url) def response_action(self, request, queryset): """ diff --git a/django/contrib/auth/admin.py b/django/contrib/auth/admin.py index d15a387a7e..7b816674d3 100644 --- a/django/contrib/auth/admin.py +++ b/django/contrib/auth/admin.py @@ -153,7 +153,7 @@ class UserAdmin(admin.ModelAdmin): 'admin/auth/user/change_password.html', context, current_app=self.admin_site.name) - def response_add(self, request, obj, **kwargs): + def response_add(self, request, obj, post_url_continue=None): """ Determines the HttpResponse for the add_view stage. It mostly defers to its superclass implementation but is customized because the User model @@ -166,7 +166,8 @@ class UserAdmin(admin.ModelAdmin): # * We are adding a user in a popup if '_addanother' not in request.POST and '_popup' not in request.POST: request.POST['_continue'] = 1 - return super(UserAdmin, self).response_add(request, obj, **kwargs) + return super(UserAdmin, self).response_add(request, obj, + post_url_continue) admin.site.register(Group, GroupAdmin) admin.site.register(User, UserAdmin) diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt index 414da30ff8..386dfc0b00 100644 --- a/docs/internals/deprecation.txt +++ b/docs/internals/deprecation.txt @@ -268,6 +268,12 @@ these changes. * ``django.contrib.markup`` will be removed following an accelerated deprecation. +* The value for the ``post_url_continue`` parameter in + ``ModelAdmin.response_add()`` will have to be either ``None`` (to redirect + to the newly created object's edit page) or a pre-formatted url. String + formats, such as the previous default ``'../%s/'``, will not be accepted any + more. + 1.7 --- diff --git a/tests/regressiontests/admin_custom_urls/models.py b/tests/regressiontests/admin_custom_urls/models.py index b9b3285463..cc8e730c26 100644 --- a/tests/regressiontests/admin_custom_urls/models.py +++ b/tests/regressiontests/admin_custom_urls/models.py @@ -1,7 +1,9 @@ from functools import update_wrapper from django.contrib import admin +from django.core.urlresolvers import reverse from django.db import models +from django.http import HttpResponseRedirect from django.utils.encoding import python_2_unicode_compatible @@ -49,41 +51,38 @@ class ActionAdmin(admin.ModelAdmin): ) + self.remove_url(view_name) -admin.site.register(Action, ActionAdmin) +class Person(models.Model): + name = models.CharField(max_length=20) +class PersonAdmin(admin.ModelAdmin): -class Person(models.Model): - nick = models.CharField(max_length=20) + def response_post_save(self, request, obj): + return HttpResponseRedirect( + reverse('admin:admin_custom_urls_person_history', args=[obj.pk])) -class PersonAdmin(admin.ModelAdmin): - """A custom ModelAdmin that customizes the deprecated post_url_continue - argument to response_add()""" - def response_add(self, request, obj, post_url_continue='../%s/continue/', - continue_url=None, add_url=None, hasperm_url=None, - noperm_url=None): - return super(PersonAdmin, self).response_add(request, obj, - post_url_continue, - continue_url, add_url, - hasperm_url, noperm_url) +class Car(models.Model): + name = models.CharField(max_length=20) +class CarAdmin(admin.ModelAdmin): -admin.site.register(Person, PersonAdmin) + def response_add(self, request, obj, post_url_continue=None): + return super(CarAdmin, self).response_add( + request, obj, post_url_continue=reverse('admin:admin_custom_urls_car_history', args=[obj.pk])) -class City(models.Model): +class CarDeprecated(models.Model): + """ This class must be removed in Django 1.6 """ name = models.CharField(max_length=20) - -class CityAdmin(admin.ModelAdmin): - """A custom ModelAdmin that redirects to the changelist when the user - presses the 'Save and add another' button when adding a model instance.""" - def response_add(self, request, obj, - add_another_url='admin:admin_custom_urls_city_changelist', - **kwargs): - return super(CityAdmin, self).response_add(request, obj, - add_another_url=add_another_url, - **kwargs) +class CarDeprecatedAdmin(admin.ModelAdmin): + """ This class must be removed in Django 1.6 """ + def response_add(self, request, obj, post_url_continue=None): + return super(CarDeprecatedAdmin, self).response_add( + request, obj, post_url_continue='../%s/history/') -admin.site.register(City, CityAdmin) +admin.site.register(Action, ActionAdmin) +admin.site.register(Person, PersonAdmin) +admin.site.register(Car, CarAdmin) +admin.site.register(CarDeprecated, CarDeprecatedAdmin) \ No newline at end of file diff --git a/tests/regressiontests/admin_custom_urls/tests.py b/tests/regressiontests/admin_custom_urls/tests.py index 87c72e2e71..d691a97557 100644 --- a/tests/regressiontests/admin_custom_urls/tests.py +++ b/tests/regressiontests/admin_custom_urls/tests.py @@ -1,5 +1,4 @@ from __future__ import absolute_import, unicode_literals - import warnings from django.contrib.admin.util import quote @@ -8,7 +7,7 @@ from django.template.response import TemplateResponse from django.test import TestCase from django.test.utils import override_settings -from .models import Action, Person, City +from .models import Action, Person, Car, CarDeprecated @override_settings(PASSWORD_HASHERS=('django.contrib.auth.hashers.SHA1PasswordHasher',)) @@ -86,8 +85,8 @@ class AdminCustomUrlsTest(TestCase): @override_settings(PASSWORD_HASHERS=('django.contrib.auth.hashers.SHA1PasswordHasher',)) -class CustomUrlsWorkflowTests(TestCase): - fixtures = ['users.json'] +class CustomRedirects(TestCase): + fixtures = ['users.json', 'actions.json'] def setUp(self): self.client.login(username='super', password='secret') @@ -95,33 +94,49 @@ class CustomUrlsWorkflowTests(TestCase): def tearDown(self): self.client.logout() - def test_old_argument_deprecation(self): - """Test reporting of post_url_continue deprecation.""" - post_data = { - 'nick': 'johndoe', - } - cnt = Person.objects.count() - with warnings.catch_warnings(record=True) as w: - warnings.simplefilter("always") - response = self.client.post(reverse('admin:admin_custom_urls_person_add'), post_data) - self.assertEqual(response.status_code, 302) - self.assertEqual(Person.objects.count(), cnt + 1) - # We should get a DeprecationWarning - self.assertEqual(len(w), 1) - self.assertTrue(isinstance(w[0].message, DeprecationWarning)) - - def test_custom_add_another_redirect(self): - """Test customizability of post-object-creation redirect URL.""" - post_data = { - 'name': 'Rome', - '_addanother': '1', - } - cnt = City.objects.count() + def test_post_save_redirect(self): + """ + Ensures that ModelAdmin.response_post_save() controls the redirection + after the 'Save' button has been pressed. + Refs 8001, 18310, 19505. + """ + post_data = { 'name': 'John Doe', } + self.assertEqual(Person.objects.count(), 0) + response = self.client.post( + reverse('admin:admin_custom_urls_person_add'), post_data) + persons = Person.objects.all() + self.assertEqual(len(persons), 1) + self.assertRedirects( + response, reverse('admin:admin_custom_urls_person_history', args=[persons[0].pk])) + + def test_post_url_continue(self): + """ + Ensures that the ModelAdmin.response_add()'s parameter `post_url_continue` + controls the redirection after an object has been created. + """ + post_data = { 'name': 'SuperFast', '_continue': '1' } + self.assertEqual(Car.objects.count(), 0) + response = self.client.post( + reverse('admin:admin_custom_urls_car_add'), post_data) + cars = Car.objects.all() + self.assertEqual(len(cars), 1) + self.assertRedirects( + response, reverse('admin:admin_custom_urls_car_history', args=[cars[0].pk])) + + def test_post_url_continue_string_formats(self): + """ + Ensures that string formats are accepted for post_url_continue. This + is a deprecated functionality that will be removed in Django 1.6 along + with this test. + """ with warnings.catch_warnings(record=True) as w: - # POST to the view whose post-object-creation redir URL argument we - # are customizing (object creation) - response = self.client.post(reverse('admin:admin_custom_urls_city_add'), post_data) - self.assertEqual(City.objects.count(), cnt + 1) - # Check that it redirected to the URL we set - self.assertRedirects(response, reverse('admin:admin_custom_urls_city_changelist')) - self.assertEqual(len(w), 0) # We should get no DeprecationWarning + post_data = { 'name': 'SuperFast', '_continue': '1' } + self.assertEqual(Car.objects.count(), 0) + response = self.client.post( + reverse('admin:admin_custom_urls_cardeprecated_add'), post_data) + cars = CarDeprecated.objects.all() + self.assertEqual(len(cars), 1) + self.assertRedirects( + response, reverse('admin:admin_custom_urls_cardeprecated_history', args=[cars[0].pk])) + self.assertEqual(len(w), 1) + self.assertTrue(isinstance(w[0].message, DeprecationWarning)) \ No newline at end of file -- cgit v1.3 From f56f6cfa58345b964ceb2614e4366639381c8f6f Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Mon, 24 Dec 2012 15:37:36 -0500 Subject: Fixed links to DATABASE ENGINE setting. refs #19516 --- docs/howto/initial-data.txt | 4 ++-- docs/howto/legacy-databases.txt | 2 +- docs/intro/tutorial01.txt | 7 ++++--- docs/releases/0.96.txt | 5 ++--- docs/releases/1.0-porting-guide.txt | 3 +-- docs/releases/1.2-alpha-1.txt | 20 ++++++++++---------- docs/releases/1.2.txt | 22 +++++++++++----------- docs/topics/testing/overview.txt | 6 +++--- 8 files changed, 34 insertions(+), 35 deletions(-) (limited to 'docs') diff --git a/docs/howto/initial-data.txt b/docs/howto/initial-data.txt index eca2e2c4f9..cea07bfea3 100644 --- a/docs/howto/initial-data.txt +++ b/docs/howto/initial-data.txt @@ -153,8 +153,8 @@ each app, Django looks for a file called ``/sql/..sql``, where ```` is your app directory, ```` is the model's name in lowercase and ```` is the last part of the module name provided for the -:setting:`ENGINE` in your settings file (e.g., if you have defined a -database with an :setting:`ENGINE` value of +:setting:`ENGINE ` in your settings file (e.g., if you have +defined a database with an :setting:`ENGINE ` value of ``django.db.backends.sqlite3``, Django will look for ``/sql/.sqlite3.sql``). diff --git a/docs/howto/legacy-databases.txt b/docs/howto/legacy-databases.txt index 1b04e6d77c..3e75ef1e5f 100644 --- a/docs/howto/legacy-databases.txt +++ b/docs/howto/legacy-databases.txt @@ -21,7 +21,7 @@ setting and assigning values to the following keys for the ``'default'`` connection: * :setting:`NAME` -* :setting:`ENGINE` +* :setting:`ENGINE ` * :setting:`USER` * :setting:`PASSWORD` * :setting:`HOST` diff --git a/docs/intro/tutorial01.txt b/docs/intro/tutorial01.txt index 9419f9c4eb..ab6c8b999f 100644 --- a/docs/intro/tutorial01.txt +++ b/docs/intro/tutorial01.txt @@ -207,9 +207,10 @@ your database connection settings. same physical machine (not used for SQLite). See :setting:`HOST` for details. If you're new to databases, we recommend simply using SQLite by setting -:setting:`ENGINE` to ``'django.db.backends.sqlite3'`` and :setting:`NAME` to -the place where you'd like to store the database. SQLite is included in Python, -so you won't need to install anything else to support your database. +:setting:`ENGINE ` to ``'django.db.backends.sqlite3'`` and +:setting:`NAME` to the place where you'd like to store the database. SQLite is +included in Python, so you won't need to install anything else to support your +database. .. note:: diff --git a/docs/releases/0.96.txt b/docs/releases/0.96.txt index a00f878df3..bbec1c3eaf 100644 --- a/docs/releases/0.96.txt +++ b/docs/releases/0.96.txt @@ -34,8 +34,7 @@ exceptions if you attempt to use an older version. If you're currently unable to upgrade your copy of ``MySQLdb`` to meet this requirement, a separate, backwards-compatible backend, called "mysql_old", has been added to Django. To use this backend, change -the :setting:`DATABASE_ENGINE` setting in your Django settings file from -this:: +the ``DATABASE_ENGINE`` setting in your Django settings file from this:: DATABASE_ENGINE = "mysql" @@ -49,7 +48,7 @@ provided only to ease this transition, and is considered deprecated; aside from any necessary security fixes, it will not be actively maintained, and it will be removed in a future release of Django. -Also, note that some features, like the new :setting:`DATABASE_OPTIONS` +Also, note that some features, like the new ``DATABASE_OPTIONS`` setting (see the :doc:`databases documentation ` for details), are only available on the "mysql" backend, and will not be made available for "mysql_old". diff --git a/docs/releases/1.0-porting-guide.txt b/docs/releases/1.0-porting-guide.txt index 29e40b2ebe..78bc7acb98 100644 --- a/docs/releases/1.0-porting-guide.txt +++ b/docs/releases/1.0-porting-guide.txt @@ -548,7 +548,7 @@ need to reload your data. Do this after you have made the change to using **Back up your database first!** For SQLite, this means making a copy of the single file that stores the - database (the name of that file is the :setting:`DATABASE_NAME` in your + database (the name of that file is the ``DATABASE_NAME`` in your settings.py file). To upgrade each application to use a ``DecimalField``, you can do the @@ -769,4 +769,3 @@ Old (0.96) New (1.0) ``backend.uses_case_insensitive_names`` ``connection.features.uses_case_insensitive_names`` ``backend.uses_custom_queryset`` ``connection.features.uses_custom_queryset`` ======================================= =================================================== - diff --git a/docs/releases/1.2-alpha-1.txt b/docs/releases/1.2-alpha-1.txt index 5a8f8fc5f5..16e1940e8f 100644 --- a/docs/releases/1.2-alpha-1.txt +++ b/docs/releases/1.2-alpha-1.txt @@ -285,16 +285,16 @@ This affects the following settings: ========================================= ========================== Old setting New Setting ========================================= ========================== -:setting:`DATABASE_ENGINE` :setting:`ENGINE` -:setting:`DATABASE_HOST` :setting:`HOST` -:setting:`DATABASE_NAME` :setting:`NAME` -:setting:`DATABASE_OPTIONS` :setting:`OPTIONS` -:setting:`DATABASE_PASSWORD` :setting:`PASSWORD` -:setting:`DATABASE_PORT` :setting:`PORT` -:setting:`DATABASE_USER` :setting:`USER` -:setting:`TEST_DATABASE_CHARSET` :setting:`TEST_CHARSET` -:setting:`TEST_DATABASE_COLLATION` :setting:`TEST_COLLATION` -:setting:`TEST_DATABASE_NAME` :setting:`TEST_NAME` +`DATABASE_ENGINE` :setting:`ENGINE ` +`DATABASE_HOST` :setting:`HOST` +`DATABASE_NAME` :setting:`NAME` +`DATABASE_OPTIONS` :setting:`OPTIONS` +`DATABASE_PASSWORD` :setting:`PASSWORD` +`DATABASE_PORT` :setting:`PORT` +`DATABASE_USER` :setting:`USER` +`TEST_DATABASE_CHARSET` :setting:`TEST_CHARSET` +`TEST_DATABASE_COLLATION` :setting:`TEST_COLLATION` +`TEST_DATABASE_NAME` :setting:`TEST_NAME` ========================================= ========================== These changes are also required if you have manually created a database diff --git a/docs/releases/1.2.txt b/docs/releases/1.2.txt index 334f9eb94b..26a9405595 100644 --- a/docs/releases/1.2.txt +++ b/docs/releases/1.2.txt @@ -819,16 +819,16 @@ This affects the following settings: ========================================= ========================== Old setting New Setting ========================================= ========================== -:setting:`DATABASE_ENGINE` :setting:`ENGINE` -:setting:`DATABASE_HOST` :setting:`HOST` -:setting:`DATABASE_NAME` :setting:`NAME` -:setting:`DATABASE_OPTIONS` :setting:`OPTIONS` -:setting:`DATABASE_PASSWORD` :setting:`PASSWORD` -:setting:`DATABASE_PORT` :setting:`PORT` -:setting:`DATABASE_USER` :setting:`USER` -:setting:`TEST_DATABASE_CHARSET` :setting:`TEST_CHARSET` -:setting:`TEST_DATABASE_COLLATION` :setting:`TEST_COLLATION` -:setting:`TEST_DATABASE_NAME` :setting:`TEST_NAME` +`DATABASE_ENGINE` :setting:`ENGINE ` +`DATABASE_HOST` :setting:`HOST` +`DATABASE_NAME` :setting:`NAME` +`DATABASE_OPTIONS` :setting:`OPTIONS` +`DATABASE_PASSWORD` :setting:`PASSWORD` +`DATABASE_PORT` :setting:`PORT` +`DATABASE_USER` :setting:`USER` +`TEST_DATABASE_CHARSET` :setting:`TEST_CHARSET` +`TEST_DATABASE_COLLATION` :setting:`TEST_COLLATION` +`TEST_DATABASE_NAME` :setting:`TEST_NAME` ========================================= ========================== These changes are also required if you have manually created a database @@ -850,7 +850,7 @@ has been deprecated. If you are currently using the ``postgresql`` backend, you should migrate to using the ``postgresql_psycopg2`` backend. To update your code, install the ``psycopg2`` library and change the -:setting:`DATABASE_ENGINE` setting to use +:setting:`ENGINE ` setting to use ``django.db.backends.postgresql_psycopg2``. CSRF response-rewriting middleware diff --git a/docs/topics/testing/overview.txt b/docs/topics/testing/overview.txt index 5f64789019..c1c2a32f55 100644 --- a/docs/topics/testing/overview.txt +++ b/docs/topics/testing/overview.txt @@ -195,9 +195,9 @@ entirely!). If you want to use a different database name, specify Aside from using a separate database, the test runner will otherwise use all of the same database settings you have in your settings file: -:setting:`ENGINE`, :setting:`USER`, :setting:`HOST`, etc. The test -database is created by the user specified by :setting:`USER`, so you'll need -to make sure that the given user account has sufficient privileges to +:setting:`ENGINE `, :setting:`USER`, :setting:`HOST`, etc. The +test database is created by the user specified by :setting:`USER`, so you'll +need to make sure that the given user account has sufficient privileges to create a new database on the system. For fine-grained control over the character encoding of your test -- cgit v1.3 From b70498d675bbd96849b466cdd45c1c189f227444 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Tue, 25 Dec 2012 00:26:46 +0100 Subject: Updated installation FAQ entry on Python versions. The 1.7 line is a reasonnable forecast, not a final decision. --- docs/faq/install.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/faq/install.txt b/docs/faq/install.txt index a92c9d87ea..5a4cab94cf 100644 --- a/docs/faq/install.txt +++ b/docs/faq/install.txt @@ -68,8 +68,10 @@ Django version Python versions 1.1 2.3, 2.4, 2.5, 2.6 1.2 2.4, 2.5, 2.6, 2.7 1.3 2.4, 2.5, 2.6, 2.7 -**1.4** **2.5, 2.6, 2.7** -*1.5 (future)* *2.6, 2.7* and *3.2.3, 3.3 (experimental)* +1.4 2.5, 2.6, 2.7 +1.5 2.6.5, 2.7 and 3.2.3, 3.3 (experimental) +**1.6** **2.6.5, 2.7** and **3.2.3, 3.3** +*1.7 (future)* *2.7, 3.3 (to be confirmed)* ============== =============== Can I use Django with Python 3? -- cgit v1.3 From 9c5a6adf3341c59efee4ca6d0037f8069185e0e3 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 25 Dec 2012 03:40:08 -0500 Subject: Fixed more broken links. refs #19516 --- docs/ref/contrib/gis/gdal.txt | 66 +++++++++++++++++++++---------------------- docs/ref/models/fields.txt | 2 +- docs/ref/models/options.txt | 6 ++-- docs/ref/models/querysets.txt | 2 +- docs/ref/settings.txt | 8 ++++-- docs/releases/1.1-alpha-1.txt | 10 ++++--- docs/releases/1.1.txt | 10 ++++--- docs/releases/1.3-alpha-1.txt | 17 ++++++----- docs/releases/1.4.txt | 4 +-- 9 files changed, 65 insertions(+), 60 deletions(-) (limited to 'docs') diff --git a/docs/ref/contrib/gis/gdal.txt b/docs/ref/contrib/gis/gdal.txt index c4b29bead7..161efa39de 100644 --- a/docs/ref/contrib/gis/gdal.txt +++ b/docs/ref/contrib/gis/gdal.txt @@ -13,7 +13,7 @@ of GDAL is the `OGR`__ Simple Features Library, which specializes in reading and writing vector geographic data in a variety of standard formats. -GeoDjango provides a high-level Python interface for some of the +GeoDjango provides a high-level Python interface for some of the capabilities of OGR, including the reading and coordinate transformation of vector spatial data. @@ -22,7 +22,7 @@ of vector spatial data. Although the module is named ``gdal``, GeoDjango only supports some of the capabilities of OGR. Thus, none of GDAL's features with respect to raster (image) data are supported at this time. - + __ http://www.gdal.org/ __ http://www.gdal.org/ogr/ @@ -68,13 +68,13 @@ each feature in that layer. also supports a variety of more complex data sources, including databases, that may be accessed by passing a special name string instead of a path. For more information, see the `OGR Vector Formats`__ - documentation. The :attr:`name` property of a ``DataSource`` + documentation. The :attr:`name` property of a ``DataSource`` instance gives the OGR name of the underlying data source that it is using. - Once you've created your ``DataSource``, you can find out how many - layers of data it contains by accessing the :attr:`layer_count` property, - or (equivalently) by using the ``len()`` function. For information on + Once you've created your ``DataSource``, you can find out how many + layers of data it contains by accessing the :attr:`layer_count` property, + or (equivalently) by using the ``len()`` function. For information on accessing the layers of data themselves, see the next section:: >>> from django.contrib.gis.gdal import DataSource @@ -105,7 +105,7 @@ __ http://www.gdal.org/ogr/ogr_formats.html Python container of ``Layer`` objects. For example, you can access a specific layer by its index (e.g. ``ds[0]`` to access the first layer), or you can iterate over all the layers in the container in a - ``for`` loop. The ``Layer`` itself acts as a container for geometric + ``for`` loop. The ``Layer`` itself acts as a container for geometric features. Typically, all the features in a given layer have the same geometry type. @@ -120,7 +120,7 @@ __ http://www.gdal.org/ogr/ogr_formats.html The example output is from the cities data source, loaded above, which evidently contains one layer, called ``"cities"``, which contains three - point features. For simplicity, the examples below assume that you've + point features. For simplicity, the examples below assume that you've stored that layer in the variable ``layer``:: >>> layer = ds[0] @@ -169,7 +169,7 @@ __ http://www.gdal.org/ogr/ogr_formats.html >>> [ft.__name__ for ft in layer.field_types] ['OFTString', 'OFTReal', 'OFTReal', 'OFTDate'] - + .. attribute:: field_widths Returns a list of the maximum field widths for each of the fields in @@ -181,7 +181,7 @@ __ http://www.gdal.org/ogr/ogr_formats.html .. attribute:: field_precisions Returns a list of the numeric precisions for each of the fields in - this layer. This is meaningless (and set to zero) for non-numeric + this layer. This is meaningless (and set to zero) for non-numeric fields:: >>> layer.field_precisions @@ -189,7 +189,7 @@ __ http://www.gdal.org/ogr/ogr_formats.html .. attribute:: extent - Returns the spatial extent of this layer, as an :class:`Envelope` + Returns the spatial extent of this layer, as an :class:`Envelope` object:: >>> layer.extent.tuple @@ -214,7 +214,7 @@ __ http://www.gdal.org/ogr/ogr_formats.html Property that may be used to retrieve or set a spatial filter for this layer. A spatial filter can only be set with an :class:`OGRGeometry` - instance, a 4-tuple extent, or ``None``. When set with something + instance, a 4-tuple extent, or ``None``. When set with something other than ``None``, only features that intersect the filter will be returned when iterating over the layer:: @@ -258,9 +258,9 @@ __ http://www.gdal.org/ogr/ogr_formats.html given capability (a string). Examples of valid capability strings include: ``'RandomRead'``, ``'SequentialWrite'``, ``'RandomWrite'``, ``'FastSpatialFilter'``, ``'FastFeatureCount'``, ``'FastGetExtent'``, - ``'CreateField'``, ``'Transactions'``, ``'DeleteFeature'``, and + ``'CreateField'``, ``'Transactions'``, ``'DeleteFeature'``, and ``'FastSetNextByIndex'``. - + ``Feature`` ----------- @@ -295,14 +295,14 @@ __ http://www.gdal.org/ogr/ogr_formats.html Returns the type of geometry for this feature, as an :class:`OGRGeomType` object. This will be the same for all features in a given layer, and - is equivalent to the :attr:`Layer.geom_type` property of the - :class:`Layer`` object the feature came from. + is equivalent to the :attr:`Layer.geom_type` property of the + :class:`Layer` object the feature came from. .. attribute:: num_fields Returns the number of fields of data associated with the feature. This will be the same for all features in a given layer, and is - equivalent to the :attr:`Layer.num_fields` property of the + equivalent to the :attr:`Layer.num_fields` property of the :class:`Layer` object the feature came from. .. attribute:: fields @@ -350,7 +350,7 @@ __ http://www.gdal.org/ogr/ogr_formats.html .. attribute:: type Returns the OGR type of this field, as an integer. The - ``FIELD_CLASSES`` dictionary maps these values onto + ``FIELD_CLASSES`` dictionary maps these values onto subclasses of ``Field``:: >>> city['Density'].type @@ -365,8 +365,8 @@ __ http://www.gdal.org/ogr/ogr_formats.html .. attribute:: value - Returns the value of this field. The ``Field`` class itself - returns the value as a string, but each subclass returns the + Returns the value of this field. The ``Field`` class itself + returns the value as a string, but each subclass returns the value in the most appropriate form:: >>> city['Population'].value @@ -433,10 +433,10 @@ OGR Geometries ``OGRGeometry`` --------------- -:class:`OGRGeometry` objects share similar functionality with +:class:`OGRGeometry` objects share similar functionality with :class:`~django.contrib.gis.geos.GEOSGeometry` objects, and are thin -wrappers around OGR's internal geometry representation. Thus, -they allow for more efficient access to data when using :class:`DataSource`. +wrappers around OGR's internal geometry representation. Thus, +they allow for more efficient access to data when using :class:`DataSource`. Unlike its GEOS counterpart, :class:`OGRGeometry` supports spatial reference systems and coordinate transformation:: @@ -446,10 +446,10 @@ systems and coordinate transformation:: .. class:: OGRGeometry(geom_input[, srs=None]) This object is a wrapper for the `OGR Geometry`__ class. - These objects are instantiated directly from the given ``geom_input`` + These objects are instantiated directly from the given ``geom_input`` parameter, which may be a string containing WKT, HEX, GeoJSON, a ``buffer`` containing WKB data, or an :class:`OGRGeomType` object. These objects - are also returned from the :class:`Feature.geom` attribute, when + are also returned from the :class:`Feature.geom` attribute, when reading vector data from :class:`Layer` (which is in turn a part of a :class:`DataSource`). @@ -557,14 +557,14 @@ systems and coordinate transformation:: .. attribute:: srid - Returns or sets the spatial reference identifier corresponding to + Returns or sets the spatial reference identifier corresponding to :class:`SpatialReference` of this geometry. Returns ``None`` if there is no spatial reference information associated with this geometry, or if an SRID cannot be determined. .. attribute:: geos - Returns a :class:`~django.contrib.gis.geos.GEOSGeometry` object + Returns a :class:`~django.contrib.gis.geos.GEOSGeometry` object corresponding to this geometry. .. attribute:: gml @@ -762,9 +762,9 @@ systems and coordinate transformation:: .. attribute:: z - Returns a list of Z coordinates in this line, or ``None`` if the + Returns a list of Z coordinates in this line, or ``None`` if the line does not have Z coordinates:: - + >>> OGRGeometry('LINESTRING (1 2 3,4 5 6)').z [3.0, 6.0] @@ -885,7 +885,7 @@ Coordinate System Objects Spatial reference objects are initialized on the given ``srs_input``, which may be one of the following: - + * OGC Well Known Text (WKT) (a string) * EPSG code (integer or string) * PROJ.4 string @@ -912,7 +912,7 @@ Coordinate System Objects .. method:: __getitem__(target) Returns the value of the given string attribute node, ``None`` if the node - doesn't exist. Can also take a tuple as a parameter, (target, child), + doesn't exist. Can also take a tuple as a parameter, (target, child), where child is the index of the attribute in the WKT. For example:: >>> wkt = 'GEOGCS["WGS 84", DATUM["WGS_1984, ... AUTHORITY["EPSG","4326"]]') @@ -1011,7 +1011,7 @@ Coordinate System Objects .. attribute:: units - Returns a 2-tuple of the units value and the units name, + Returns a 2-tuple of the units value and the units name, and will automatically determines whether to return the linear or angular units. @@ -1073,7 +1073,7 @@ Coordinate System Objects .. class:: CoordTransform(source, target) -Represents a coordinate system transform. It is initialized with two +Represents a coordinate system transform. It is initialized with two :class:`SpatialReference`, representing the source and target coordinate systems, respectively. These objects should be used when performing the same coordinate transformation repeatedly on different geometries:: diff --git a/docs/ref/models/fields.txt b/docs/ref/models/fields.txt index cd1185585c..a33c985e2c 100644 --- a/docs/ref/models/fields.txt +++ b/docs/ref/models/fields.txt @@ -919,7 +919,7 @@ A :class:`CharField` for a URL. The default form widget for this field is a :class:`~django.forms.TextInput`. Like all :class:`CharField` subclasses, :class:`URLField` takes the optional -:attr:`~CharField.max_length`argument. If you don't specify +:attr:`~CharField.max_length` argument. If you don't specify :attr:`~CharField.max_length`, a default of 200 is used. .. versionadded:: 1.5 diff --git a/docs/ref/models/options.txt b/docs/ref/models/options.txt index a577135271..ac20422915 100644 --- a/docs/ref/models/options.txt +++ b/docs/ref/models/options.txt @@ -85,14 +85,14 @@ Django quotes column and table names behind the scenes. The name of an orderable field in the model, typically a :class:`DateField`, :class:`DateTimeField`, or :class:`IntegerField`. This specifies the default - field to use in your model :class:`Manager`'s :class:`~QuerySet.latest` - method. + field to use in your model :class:`Manager`'s + :meth:`~django.db.models.query.QuerySet.latest` method. Example:: get_latest_by = "order_date" - See the docs for :meth:`~django.db.models.query.QuerySet.latest` for more. + See the :meth:`~django.db.models.query.QuerySet.latest` docs for more. ``managed`` ----------- diff --git a/docs/ref/models/querysets.txt b/docs/ref/models/querysets.txt index 40fa2d2b2f..a19d022c58 100644 --- a/docs/ref/models/querysets.txt +++ b/docs/ref/models/querysets.txt @@ -1637,7 +1637,7 @@ Finally, realize that ``update()`` does an update at the SQL level and, thus, does not call any ``save()`` methods on your models, nor does it emit the :attr:`~django.db.models.signals.pre_save` or :attr:`~django.db.models.signals.post_save` signals (which are a consequence of -calling :meth:`Model.save() <~django.db.models.Model.save()>`). If you want to +calling :meth:`Model.save() `). If you want to update a bunch of records for a model that has a custom :meth:`~django.db.models.Model.save()` method, loop over them and call :meth:`~django.db.models.Model.save()`, like this:: diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt index 5ecc221039..7cb33a038d 100644 --- a/docs/ref/settings.txt +++ b/docs/ref/settings.txt @@ -159,7 +159,7 @@ The cache backend to use. The built-in cache backends are: * ``'django.core.cache.backends.memcached.PyLibMCCache'`` You can use a cache backend that doesn't ship with Django by setting -:setting:`BACKEND ` to a fully-qualified path of a cache +:setting:`BACKEND ` to a fully-qualified path of a cache backend class (i.e. ``mypackage.backends.whatever.WhateverCache``). Writing a whole new cache backend from scratch is left as an exercise to the reader; see the other backends for examples. @@ -830,7 +830,7 @@ DEFAULT_EXCEPTION_REPORTER_FILTER Default: :class:`django.views.debug.SafeExceptionReporterFilter` Default exception reporter filter class to be used if none has been assigned to -the :class:`HttpRequest` instance yet. +the :class:`~django.http.HttpRequest` instance yet. See :ref:`Filtering error reports`. .. setting:: DEFAULT_FILE_STORAGE @@ -1070,6 +1070,8 @@ Note that these paths should use Unix-style forward slashes, even on Windows. See :ref:`initial-data-via-fixtures` and :ref:`topics-testing-fixtures`. +.. setting:: FORCE_SCRIPT_NAME + FORCE_SCRIPT_NAME ------------------ @@ -1498,7 +1500,7 @@ PROFANITIES_LIST Default: ``()`` (Empty tuple) A tuple of profanities, as strings, that will be forbidden in comments when -:setting:`COMMENTS_ALLOW_PROFANITIES` is ``False``. +``COMMENTS_ALLOW_PROFANITIES`` is ``False``. .. setting:: RESTRUCTUREDTEXT_FILTER_SETTINGS diff --git a/docs/releases/1.1-alpha-1.txt b/docs/releases/1.1-alpha-1.txt index c8ac56cf48..b20b4103b8 100644 --- a/docs/releases/1.1-alpha-1.txt +++ b/docs/releases/1.1-alpha-1.txt @@ -32,11 +32,13 @@ Aggregate support It's now possible to run SQL aggregate queries (i.e. ``COUNT()``, ``MAX()``, ``MIN()``, etc.) from within Django's ORM. You can choose to either return the results of the aggregate directly, or else annotate the objects in a -:class:`QuerySet` with the results of the aggregate query. +:class:`~django.db.models.query.QuerySet` with the results of the aggregate +query. -This feature is available as new :meth:`QuerySet.aggregate()`` and -:meth:`QuerySet.annotate()`` methods, and is covered in detail in :doc:`the ORM -aggregation documentation ` +This feature is available as new +:meth:`~django.db.models.query.QuerySet.aggregate` and +:meth:`~django.db.models.query.QuerySet.annotate` methods, and is covered in +detail in :doc:`the ORM aggregation documentation `. Query expressions ~~~~~~~~~~~~~~~~~ diff --git a/docs/releases/1.1.txt b/docs/releases/1.1.txt index 84af7fc1d9..595f59a52a 100644 --- a/docs/releases/1.1.txt +++ b/docs/releases/1.1.txt @@ -198,11 +198,13 @@ Aggregate support It's now possible to run SQL aggregate queries (i.e. ``COUNT()``, ``MAX()``, ``MIN()``, etc.) from within Django's ORM. You can choose to either return the results of the aggregate directly, or else annotate the objects in a -:class:`QuerySet` with the results of the aggregate query. +:class:`~django.db.models.query.QuerySet` with the results of the aggregate +query. -This feature is available as new :meth:`QuerySet.aggregate()`` and -:meth:`QuerySet.annotate()`` methods, and is covered in detail in :doc:`the ORM -aggregation documentation `. +This feature is available as new +:meth:`~django.db.models.query.QuerySet.aggregate` and +:meth:`~django.db.models.query.QuerySet.annotate` methods, and is covered in +detail in :doc:`the ORM aggregation documentation `. Query expressions ~~~~~~~~~~~~~~~~~ diff --git a/docs/releases/1.3-alpha-1.txt b/docs/releases/1.3-alpha-1.txt index 2f5124e52b..dac48a4363 100644 --- a/docs/releases/1.3-alpha-1.txt +++ b/docs/releases/1.3-alpha-1.txt @@ -61,15 +61,14 @@ Django 1.3 ships with a new contrib app ``'django.contrib.staticfiles'`` to help developers handle the static media files (images, CSS, Javascript, etc.) that are needed to render a complete web page. -In previous versions of Django, it was common to place static assets in -:setting:`MEDIA_ROOT` along with user-uploaded files, and serve them both at -:setting:`MEDIA_URL`. Part of the purpose of introducing the ``staticfiles`` -app is to make it easier to keep static files separate from user-uploaded -files. For this reason, you will probably want to make your -:setting:`MEDIA_ROOT` and :setting:`MEDIA_URL` different from your -:setting:`STATICFILES_ROOT` and :setting:`STATICFILES_URL`. You will need to -arrange for serving of files in :setting:`MEDIA_ROOT` yourself; -``staticfiles`` does not deal with user-uploaded media at all. +In previous versions of Django, it was common to place static assets +in :setting:`MEDIA_ROOT` along with user-uploaded files, and serve +them both at :setting:`MEDIA_URL`. Part of the purpose of introducing +the ``staticfiles`` app is to make it easier to keep static files +separate from user-uploaded files. Static assets should now go in +``static/`` subdirectories of your apps or in other static assets +directories listed in :setting:`STATICFILES_DIRS`, and will be served +at :setting:`STATIC_URL`. See the :doc:`reference documentation of the app ` for more details or learn how to :doc:`manage static files diff --git a/docs/releases/1.4.txt b/docs/releases/1.4.txt index 01532cc04c..9ff42accc5 100644 --- a/docs/releases/1.4.txt +++ b/docs/releases/1.4.txt @@ -37,8 +37,8 @@ Other notable new features in Django 1.4 include: the ability to `bulk insert <#model-objects-bulk-create-in-the-orm>`_ large datasets for improved performance, and `QuerySet.prefetch_related`_, a method to batch-load related objects - in areas where :meth:`~django.db.models.QuerySet.select_related` doesn't - work. + in areas where :meth:`~django.db.models.query.QuerySet.select_related` + doesn't work. * Some nice security additions, including `improved password hashing`_ (featuring PBKDF2_ and bcrypt_ support), new `tools for cryptographic -- cgit v1.3 From 4500d3522defd7df869756e8ee2c876a747a8fa9 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Wed, 26 Dec 2012 14:19:28 +0100 Subject: Fixed #19518 -- Documented the deprecation of localflavor. Also moved the contrib deprecations at the top of their section and made minor markup fixes. --- docs/internals/deprecation.txt | 14 +++++++++----- docs/ref/contrib/localflavor.txt | 6 ++++++ docs/releases/1.5.txt | 31 ++++++++++++++++++++++--------- 3 files changed, 37 insertions(+), 14 deletions(-) (limited to 'docs') diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt index 386dfc0b00..77f03ae2c7 100644 --- a/docs/internals/deprecation.txt +++ b/docs/internals/deprecation.txt @@ -14,7 +14,7 @@ See the :doc:`Django 1.2 release notes` for more details on these changes. * ``CsrfResponseMiddleware`` and ``CsrfMiddleware`` will be removed. Use - the {% csrf_token %} template tag inside forms to enable CSRF + the ``{% csrf_token %}`` template tag inside forms to enable CSRF protection. ``CsrfViewMiddleware`` remains and is enabled by default. * The old imports for CSRF functionality (``django.contrib.csrf.*``), @@ -200,6 +200,14 @@ these changes. See the :doc:`Django 1.4 release notes` for more details on these changes. +* ``django.contrib.databrowse`` will be removed. + +* ``django.contrib.localflavor`` will be removed following an accelerated + deprecation. + +* ``django.contrib.markup`` will be removed following an accelerated + deprecation. + * The compatibility modules ``django.utils.copycompat`` and ``django.utils.hashcompat`` as well as the functions ``django.utils.itercompat.all`` and ``django.utils.itercompat.any`` will @@ -251,8 +259,6 @@ these changes. :data:`~django.conf.urls.handler500`, are now available through :mod:`django.conf.urls` . -* The Databrowse contrib module will be removed. - * The functions :func:`~django.core.management.setup_environ` and :func:`~django.core.management.execute_manager` will be removed from :mod:`django.core.management`. This also means that the old (pre-1.4) @@ -265,8 +271,6 @@ these changes. in 1.4. The backward compatibility will be removed -- ``HttpRequest.raw_post_data`` will no longer work. -* ``django.contrib.markup`` will be removed following an accelerated - deprecation. * The value for the ``post_url_continue`` parameter in ``ModelAdmin.response_add()`` will have to be either ``None`` (to redirect diff --git a/docs/ref/contrib/localflavor.txt b/docs/ref/contrib/localflavor.txt index 9bb27e6e74..84569feebe 100644 --- a/docs/ref/contrib/localflavor.txt +++ b/docs/ref/contrib/localflavor.txt @@ -37,6 +37,8 @@ file. .. _ISO 3166 country code: http://www.iso.org/iso/country_codes.htm +.. _localflavor-how-to-migrate: + How to migrate ============== @@ -60,6 +62,8 @@ The code in the new packages is the same (it was copied directly from Django), so you don't have to worry about backwards compatibility in terms of functionality. Only the imports have changed. +.. _localflavor-deprecation-policy: + Deprecation policy ================== @@ -70,6 +74,8 @@ change it as soon as possible. In Django 1.6, importing from ``django.contrib.localflavor`` will no longer work. +.. _localflavor-packages: + Supported countries =================== diff --git a/docs/releases/1.5.txt b/docs/releases/1.5.txt index 6ac5120617..8259c12cb4 100644 --- a/docs/releases/1.5.txt +++ b/docs/releases/1.5.txt @@ -634,7 +634,26 @@ Miscellaneous Features deprecated in 1.5 ========================== -.. _simplejson-deprecation: +``django.contrib.localflavor`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The localflavor contrib app has been split into separate packages. +``django.contrib.localflavor`` itself will be removed in Django 1.6, after an +:ref:`accelerated deprecation `. The docs +provide :ref:`migration instructions `. + +The new packages are available :ref:`on Github `. The +core team cannot efficiently maintain these packages in the long term — it +spans just a dozen countries at this time; similar to translations, maintenance +will be handed over to interested members of the community. + +``django.contrib.markup`` +~~~~~~~~~~~~~~~~~~~~~~~~~ + +The markup contrib module has been deprecated and will follow an accelerated +deprecation schedule. Direct use of python markup libraries or 3rd party tag +libraries is preferred to Django maintaining this functionality in the +framework. :setting:`AUTH_PROFILE_MODULE` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -660,6 +679,8 @@ to :class:`~django.http.HttpResponse`. If you rely on this behavior, switch to In Django 1.7 and above, the iterator will be consumed immediately by :class:`~django.http.HttpResponse`. +.. _simplejson-deprecation: + ``django.utils.simplejson`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -687,14 +708,6 @@ Define a ``__str__`` method and apply the The :func:`~django.utils.itercompat.product` function has been deprecated. Use the built-in :func:`itertools.product` instead. -``django.utils.markup`` -~~~~~~~~~~~~~~~~~~~~~~~ - -The markup contrib module has been deprecated and will follow an accelerated -deprecation schedule. Direct use of python markup libraries or 3rd party tag -libraries is preferred to Django maintaining this functionality in the -framework. - ``cleanup`` management command ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- cgit v1.3 From e2ec7b47b3acb0338d971942ca7ffd36c2a4d8f4 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Wed, 26 Dec 2012 14:33:47 +0100 Subject: Updated documentation on localflavor translations to account for the removal of django.contrib.localflavor in 1.6. Refs #19482. --- docs/ref/contrib/localflavor.txt | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'docs') diff --git a/docs/ref/contrib/localflavor.txt b/docs/ref/contrib/localflavor.txt index 84569feebe..7c2e56451d 100644 --- a/docs/ref/contrib/localflavor.txt +++ b/docs/ref/contrib/localflavor.txt @@ -142,13 +142,10 @@ default formats. Here's an example of how to use them:: class MyForm(forms.Form): my_date_field = generic.forms.DateField() -Internationalization of localflavor -=================================== - -Localflavor has its own catalog of translations, in the directory -``django/contrib/localflavor/locale``, and it's not loaded automatically like -Django's general catalog in ``django/conf/locale``. If you want localflavor's -texts to be translated, like form fields error messages, you must include -:mod:`django.contrib.localflavor` in the :setting:`INSTALLED_APPS` setting, so -the internationalization system can find the catalog, as explained in -:ref:`how-django-discovers-translations`. +Internationalization of localflavors +==================================== + +To activate translations for a ``localflavor`` application, you must include +the application's name (e.g. ``django_localflavor_jp``) in the +:setting:`INSTALLED_APPS` setting, so the internationalization system can find +the catalog, as explained in :ref:`how-django-discovers-translations`. -- cgit v1.3 From b3a8c9dab87be6bc4b8096d292abe0b35c700bdd Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 25 Dec 2012 09:56:22 -0500 Subject: Fixed broken links, round 3. refs #19516 --- docs/conf.py | 1 + docs/howto/error-reporting.txt | 20 ++++++++++---------- docs/intro/tutorial02.txt | 6 +++--- docs/intro/tutorial04.txt | 7 ++++--- docs/ref/contrib/comments/models.txt | 5 ++--- docs/ref/contrib/comments/moderation.txt | 6 +++--- docs/ref/contrib/contenttypes.txt | 14 ++++++++------ docs/ref/forms/api.txt | 10 +++++----- docs/ref/forms/fields.txt | 2 +- docs/ref/forms/widgets.txt | 10 +++++----- docs/ref/models/fields.txt | 5 ++--- docs/ref/models/instances.txt | 2 +- docs/ref/models/querysets.txt | 14 +++++++------- docs/ref/signals.txt | 28 +++++++++++++++------------- docs/ref/templates/builtins.txt | 2 +- docs/ref/utils.txt | 4 ++-- docs/releases/1.0-porting-guide.txt | 11 ++++++----- docs/releases/1.1.txt | 2 +- docs/releases/1.3-alpha-1.txt | 2 +- docs/releases/1.4-alpha-1.txt | 4 ++-- docs/releases/1.4-beta-1.txt | 4 ++-- docs/releases/1.4.txt | 10 +++++----- docs/releases/1.5-alpha-1.txt | 15 ++++++++------- docs/releases/1.5-beta-1.txt | 15 ++++++++------- docs/releases/1.5.txt | 15 ++++++++------- docs/topics/auth.txt | 4 ++-- docs/topics/db/queries.txt | 4 ++-- docs/topics/i18n/timezones.txt | 5 +++-- docs/topics/i18n/translation.txt | 2 +- docs/topics/python3.txt | 4 ++-- docs/topics/security.txt | 6 +++--- docs/topics/serialization.txt | 2 +- docs/topics/signals.txt | 2 +- docs/topics/testing/index.txt | 2 +- 34 files changed, 127 insertions(+), 118 deletions(-) (limited to 'docs') diff --git a/docs/conf.py b/docs/conf.py index f58e4ecb2e..e651000f8b 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -110,6 +110,7 @@ intersphinx_mapping = { 'python': ('http://docs.python.org/2.7', None), 'sphinx': ('http://sphinx.pocoo.org/', None), 'six': ('http://packages.python.org/six/', None), + 'simplejson': ('http://simplejson.readthedocs.org/en/latest/', None), } # Python's docs don't change every week. diff --git a/docs/howto/error-reporting.txt b/docs/howto/error-reporting.txt index 78e797b607..5fbe5eda59 100644 --- a/docs/howto/error-reporting.txt +++ b/docs/howto/error-reporting.txt @@ -123,7 +123,7 @@ Error reports are really helpful for debugging errors, so it is generally useful to record as much relevant information about those errors as possible. For example, by default Django records the `full traceback`_ for the exception raised, each `traceback frame`_'s local variables, and the -:class:`HttpRequest`'s :ref:`attributes`. +:class:`~django.http.HttpRequest`'s :ref:`attributes`. However, sometimes certain types of information may be too sensitive and thus may not be appropriate to be kept track of, for example a user's password or @@ -165,11 +165,11 @@ production environment (that is, where :setting:`DEBUG` is set to ``False``): .. function:: sensitive_post_parameters(*parameters) - If one of your views receives an :class:`HttpRequest` object with - :attr:`POST parameters` susceptible to contain sensitive - information, you may prevent the values of those parameters from being - included in the error reports using the ``sensitive_post_parameters`` - decorator:: + If one of your views receives an :class:`~django.http.HttpRequest` object + with :attr:`POST parameters` susceptible to + contain sensitive information, you may prevent the values of those + parameters from being included in the error reports using the + ``sensitive_post_parameters`` decorator:: from django.views.decorators.debug import sensitive_post_parameters @@ -198,10 +198,10 @@ production environment (that is, where :setting:`DEBUG` is set to ``False``): .. versionchanged:: 1.4 Since version 1.4, all POST parameters are systematically filtered out of - error reports for certain :mod:`contrib.views.auth` views (``login``, - ``password_reset_confirm``, ``password_change``, and ``add_view`` and - ``user_change_password`` in the ``auth`` admin) to prevent the leaking of - sensitive information such as user passwords. + error reports for certain :mod:`django.contrib.auth.views` views ( + ``login``, ``password_reset_confirm``, ``password_change``, and + ``add_view`` and ``user_change_password`` in the ``auth`` admin) to prevent + the leaking of sensitive information such as user passwords. .. _custom-error-reports: diff --git a/docs/intro/tutorial02.txt b/docs/intro/tutorial02.txt index 2c8d25ae6f..38ad7d88dc 100644 --- a/docs/intro/tutorial02.txt +++ b/docs/intro/tutorial02.txt @@ -398,9 +398,9 @@ That adds a "Filter" sidebar that lets people filter the change list by the :alt: Polls change list page, updated The type of filter displayed depends on the type of field you're filtering on. -Because ``pub_date`` is a :class:`~django.db.models.fields.DateTimeField`, -Django knows to give appropriate filter options: "Any date," "Today," "Past 7 -days," "This month," "This year." +Because ``pub_date`` is a :class:`~django.db.models.DateTimeField`, Django +knows to give appropriate filter options: "Any date," "Today," "Past 7 days," +"This month," "This year." This is shaping up well. Let's add some search capability:: diff --git a/docs/intro/tutorial04.txt b/docs/intro/tutorial04.txt index 1619b599bb..333ef9fbc3 100644 --- a/docs/intro/tutorial04.txt +++ b/docs/intro/tutorial04.txt @@ -98,9 +98,10 @@ This code includes a few things we haven't covered yet in this tutorial: ` in our code, to ensure that data is only altered via a POST call. -* ``request.POST['choice']`` will raise :exc:`KeyError` if ``choice`` wasn't - provided in POST data. The above code checks for :exc:`KeyError` and - redisplays the poll form with an error message if ``choice`` isn't given. +* ``request.POST['choice']`` will raise :exc:`~exceptions.KeyError` if + ``choice`` wasn't provided in POST data. The above code checks for + :exc:`~exceptions.KeyError` and redisplays the poll form with an error + message if ``choice`` isn't given. * After incrementing the choice count, the code returns an :class:`~django.http.HttpResponseRedirect` rather than a normal diff --git a/docs/ref/contrib/comments/models.txt b/docs/ref/contrib/comments/models.txt index e773790d65..78e7b92145 100644 --- a/docs/ref/contrib/comments/models.txt +++ b/docs/ref/contrib/comments/models.txt @@ -11,12 +11,12 @@ The built-in comment models .. attribute:: content_object - A :class:`~django.contrib.contettypes.generic.GenericForeignKey` + A :class:`~django.contrib.contenttypes.generic.GenericForeignKey` attribute pointing to the object the comment is attached to. You can use this to get at the related object (i.e. ``my_comment.content_object``). Since this field is a - :class:`~django.contrib.contettypes.generic.GenericForeignKey`, it's + :class:`~django.contrib.contenttypes.generic.GenericForeignKey`, it's actually syntactic sugar on top of two underlying attributes, described below. @@ -77,4 +77,3 @@ The built-in comment models ``True`` if the comment was removed. Used to keep track of removed comments instead of just deleting them. - diff --git a/docs/ref/contrib/comments/moderation.txt b/docs/ref/contrib/comments/moderation.txt index 39b3ea7913..c042971d39 100644 --- a/docs/ref/contrib/comments/moderation.txt +++ b/docs/ref/contrib/comments/moderation.txt @@ -81,8 +81,8 @@ Built-in moderation options .. attribute:: auto_close_field If this is set to the name of a - :class:`~django.db.models.fields.DateField` or - :class:`~django.db.models.fields.DateTimeField` on the model for which + :class:`~django.db.models.DateField` or + :class:`~django.db.models.DateTimeField` on the model for which comments are being moderated, new comments for objects of that model will be disallowed (immediately deleted) when a certain number of days have passed after the date specified in that field. Must be @@ -117,7 +117,7 @@ Built-in moderation options .. attribute:: enable_field If this is set to the name of a - :class:`~django.db.models.fields.BooleanField` on the model + :class:`~django.db.models.BooleanField` on the model for which comments are being moderated, new comments on objects of that model will be disallowed (immediately deleted) whenever the value of that field is ``False`` on the object diff --git a/docs/ref/contrib/contenttypes.txt b/docs/ref/contrib/contenttypes.txt index dfbeabc302..8f329aa388 100644 --- a/docs/ref/contrib/contenttypes.txt +++ b/docs/ref/contrib/contenttypes.txt @@ -234,13 +234,15 @@ lookup:: .. versionadded:: 1.5 -Prior to Django 1.5 :meth:`~ContentTypeManager.get_for_model()` and -:meth:`~ContentTypeManager.get_for_models()` always returned the -:class:`~django.contrib.contenttypes.models.ContentType` associated with the -concrete model of the specified one(s). That means there was no way to retreive -the :class:`~django.contrib.contenttypes.models.ContentType` of a proxy model +Prior to Django 1.5, +:meth:`~django.contrib.contenttypes.models.ContentTypeManager.get_for_model` and +:meth:`~django.contrib.contenttypes.models.ContentTypeManager.get_for_models` +always returned the :class:`~django.contrib.contenttypes.models.ContentType` +associated with the concrete model of the specified one(s). That means there +was no way to retreive the +:class:`~django.contrib.contenttypes.models.ContentType` of a proxy model using those methods. As of Django 1.5 you can now pass a boolean flag – -respectively ``for_concrete_model`` and ``for_concrete_models`` – to specify +``for_concrete_model`` and ``for_concrete_models`` respectively – to specify wether or not you want to retreive the :class:`~django.contrib.contenttypes.models.ContentType` for the concrete or direct model. diff --git a/docs/ref/forms/api.txt b/docs/ref/forms/api.txt index dffef314b7..ab1f4b0eea 100644 --- a/docs/ref/forms/api.txt +++ b/docs/ref/forms/api.txt @@ -150,11 +150,11 @@ it's not necessary to include every field in your form. For example:: These values are only displayed for unbound forms, and they're not used as fallback values if a particular value isn't provided. -Note that if a :class:`~django.forms.fields.Field` defines -:attr:`~Form.initial` *and* you include ``initial`` when instantiating the -``Form``, then the latter ``initial`` will have precedence. In this example, -``initial`` is provided both at the field level and at the form instance level, -and the latter gets precedence:: +Note that if a :class:`~django.forms.Field` defines :attr:`~Form.initial` *and* +you include ``initial`` when instantiating the ``Form``, then the latter +``initial`` will have precedence. In this example, ``initial`` is provided both +at the field level and at the form instance level, and the latter gets +precedence:: >>> class CommentForm(forms.Form): ... name = forms.CharField(initial='class') diff --git a/docs/ref/forms/fields.txt b/docs/ref/forms/fields.txt index 75d05c6829..c7d9c5fbbe 100644 --- a/docs/ref/forms/fields.txt +++ b/docs/ref/forms/fields.txt @@ -885,7 +885,7 @@ Slightly complex built-in ``Field`` classes .. attribute:: MultiValueField.widget Must be a subclass of :class:`django.forms.MultiWidget`. - Default value is :class:`~django.forms.widgets.TextInput`, which + Default value is :class:`~django.forms.TextInput`, which probably is not very useful in this case. .. method:: compress(data_list) diff --git a/docs/ref/forms/widgets.txt b/docs/ref/forms/widgets.txt index a0ef0731ad..0660329eea 100644 --- a/docs/ref/forms/widgets.txt +++ b/docs/ref/forms/widgets.txt @@ -49,8 +49,8 @@ Setting arguments for widgets Many widgets have optional extra arguments; they can be set when defining the widget on the field. In the following example, the -:attr:`~SelectDateWidget.years` attribute is set for a -:class:`~django.forms.extras.widgets.SelectDateWidget`:: +:attr:`~django.forms.extras.widgets.SelectDateWidget.years` attribute is set +for a :class:`~django.forms.extras.widgets.SelectDateWidget`:: from django.forms.fields import DateField, ChoiceField, MultipleChoiceField from django.forms.widgets import RadioSelect, CheckboxSelectMultiple @@ -222,7 +222,7 @@ foundation for custom widgets. .. class:: MultiWidget(widgets, attrs=None) A widget that is composed of multiple widgets. - :class:`~django.forms.widgets.MultiWidget` works hand in hand with the + :class:`~django.forms.MultiWidget` works hand in hand with the :class:`~django.forms.MultiValueField`. :class:`MultiWidget` has one required argument: @@ -246,8 +246,8 @@ foundation for custom widgets. the combined value of the form field into the values for each widget. An example of this is how :class:`SplitDateTimeWidget` turns a - :class:`datetime` value into a list with date and time split into two - separate values:: + :class:`~datetime.datetime` value into a list with date and time split + into two separate values:: class SplitDateTimeWidget(MultiWidget): diff --git a/docs/ref/models/fields.txt b/docs/ref/models/fields.txt index a33c985e2c..45a70c66e3 100644 --- a/docs/ref/models/fields.txt +++ b/docs/ref/models/fields.txt @@ -547,8 +547,7 @@ Also has one optional argument: Optional. A storage object, which handles the storage and retrieval of your files. See :doc:`/topics/files` for details on how to provide this object. -The default form widget for this field is a -:class:`~django.forms.widgets.FileInput`. +The default form widget for this field is a :class:`~django.forms.FileInput`. Using a :class:`FileField` or an :class:`ImageField` (see below) in a model takes a few steps: @@ -590,7 +589,7 @@ topic guide. saved. The uploaded file's relative URL can be obtained using the -:attr:`~django.db.models.fields.FileField.url` attribute. Internally, +:attr:`~django.db.models.FileField.url` attribute. Internally, this calls the :meth:`~django.core.files.storage.Storage.url` method of the underlying :class:`~django.core.files.storage.Storage` class. diff --git a/docs/ref/models/instances.txt b/docs/ref/models/instances.txt index 6315985ba9..4479e4b766 100644 --- a/docs/ref/models/instances.txt +++ b/docs/ref/models/instances.txt @@ -659,7 +659,7 @@ For every :class:`~django.db.models.DateField` and `, the object will have ``get_next_by_FOO()`` and ``get_previous_by_FOO()`` methods, where ``FOO`` is the name of the field. This returns the next and previous object with respect to the date field, raising -a :exc:`~django.db.DoesNotExist` exception when appropriate. +a :exc:`~django.core.exceptions.DoesNotExist` exception when appropriate. Both methods accept optional keyword arguments, which should be in the format described in :ref:`Field lookups `. diff --git a/docs/ref/models/querysets.txt b/docs/ref/models/querysets.txt index a19d022c58..ca2e64a8c5 100644 --- a/docs/ref/models/querysets.txt +++ b/docs/ref/models/querysets.txt @@ -1112,9 +1112,9 @@ one, doing so will result in an error. .. note:: - When calling :meth:`~Model.save()` for instances with deferred fields, - only the loaded fields will be saved. See :meth:`~Model.save()` for more - details. + When calling :meth:`~django.db.models.Model.save()` for instances with + deferred fields, only the loaded fields will be saved. See + :meth:`~django.db.models.Model.save()` for more details. only @@ -1164,9 +1164,9 @@ using :meth:`select_related` is an error as well. .. note:: - When calling :meth:`~Model.save()` for instances with deferred fields, - only the loaded fields will be saved. See :meth:`~Model.save()` for more - details. + When calling :meth:`~django.db.models.Model.save()` for instances with + deferred fields, only the loaded fields will be saved. See + :meth:`~django.db.models.Model.save()` for more details. using ~~~~~ @@ -1248,7 +1248,7 @@ the format described in `Field lookups`_. ``get()`` raises :exc:`~django.core.exceptions.MultipleObjectsReturned` if more than one object was found. The -:exc:`~django.core.excpetions.MultipleObjectsReturned` exception is an +:exc:`~django.core.exceptions.MultipleObjectsReturned` exception is an attribute of the model class. ``get()`` raises a :exc:`~django.core.exceptions.DoesNotExist` exception if an diff --git a/docs/ref/signals.txt b/docs/ref/signals.txt index 3315f9781b..2eefb0ca77 100644 --- a/docs/ref/signals.txt +++ b/docs/ref/signals.txt @@ -212,24 +212,24 @@ m2m_changed .. data:: django.db.models.signals.m2m_changed :module: -Sent when a :class:`ManyToManyField` is changed on a model instance. -Strictly speaking, this is not a model signal since it is sent by the -:class:`ManyToManyField`, but since it complements the +Sent when a :class:`~django.db.models.ManyToManyField` is changed on a model +instance. Strictly speaking, this is not a model signal since it is sent by the +:class:`~django.db.models.ManyToManyField`, but since it complements the :data:`pre_save`/:data:`post_save` and :data:`pre_delete`/:data:`post_delete` when it comes to tracking changes to models, it is included here. Arguments sent with this signal: ``sender`` - The intermediate model class describing the :class:`ManyToManyField`. - This class is automatically created when a many-to-many field is - defined; you can access it using the ``through`` attribute on the - many-to-many field. + The intermediate model class describing the + :class:`~django.db.models.ManyToManyField`. This class is automatically + created when a many-to-many field is defined; you can access it using the + ``through`` attribute on the many-to-many field. ``instance`` The instance whose many-to-many relation is updated. This can be an - instance of the ``sender``, or of the class the :class:`ManyToManyField` - is related to. + instance of the ``sender``, or of the class the + :class:`~django.db.models.ManyToManyField` is related to. ``action`` A string indicating the type of update that is done on the relation. @@ -303,8 +303,9 @@ Argument Value ``action`` ``"pre_add"`` (followed by a separate signal with ``"post_add"``) -``reverse`` ``False`` (``Pizza`` contains the :class:`ManyToManyField`, - so this call modifies the forward relation) +``reverse`` ``False`` (``Pizza`` contains the + :class:`~django.db.models.ManyToManyField`, so this call + modifies the forward relation) ``model`` ``Topping`` (the class of the objects added to the ``Pizza``) @@ -329,8 +330,9 @@ Argument Value ``action`` ``"pre_remove"`` (followed by a separate signal with ``"post_remove"``) -``reverse`` ``True`` (``Pizza`` contains the :class:`ManyToManyField`, - so this call modifies the reverse relation) +``reverse`` ``True`` (``Pizza`` contains the + :class:`~django.db.models.ManyToManyField`, so this call + modifies the reverse relation) ``model`` ``Pizza`` (the class of the objects removed from the ``Topping``) diff --git a/docs/ref/templates/builtins.txt b/docs/ref/templates/builtins.txt index dd288ababc..4bbc839bea 100644 --- a/docs/ref/templates/builtins.txt +++ b/docs/ref/templates/builtins.txt @@ -864,7 +864,7 @@ an attribute "description," you could use:: {% regroup cities by country.description as country_list %} Or, if ``country`` is a field with ``choices``, it will have a -:meth:`^django.db.models.Model.get_FOO_display` method available as an +:meth:`~django.db.models.Model.get_FOO_display` method available as an attribute, allowing you to group on the display string rather than the ``choices`` key:: diff --git a/docs/ref/utils.txt b/docs/ref/utils.txt index 2f12c3a96c..4ff31591c8 100644 --- a/docs/ref/utils.txt +++ b/docs/ref/utils.txt @@ -145,8 +145,8 @@ results. Instead do:: The functions defined in this module share the following properties: -- They raise :exc:`ValueError` if their input is well formatted but isn't a - valid date or time. +- They raise :exc:`~exceptions.ValueError` if their input is well formatted but + isn't a valid date or time. - They return ``None`` if it isn't well formatted at all. - They accept up to picosecond resolution in input, but they truncate it to microseconds, since that's what Python supports. diff --git a/docs/releases/1.0-porting-guide.txt b/docs/releases/1.0-porting-guide.txt index 78bc7acb98..ae73baa072 100644 --- a/docs/releases/1.0-porting-guide.txt +++ b/docs/releases/1.0-porting-guide.txt @@ -439,9 +439,10 @@ Settings Better exceptions ~~~~~~~~~~~~~~~~~ -The old :exc:`EnvironmentError` has split into an :exc:`ImportError` when -Django fails to find the settings module and a :exc:`RuntimeError` when you try -to reconfigure settings after having already used them +The old :exc:`~exceptions.EnvironmentError` has split into an +:exc:`~exceptions.ImportError` when Django fails to find the settings module +and a :exc:`~exceptions.RuntimeError` when you try to reconfigure settings +after having already used them. :setting:`LOGIN_URL` has moved ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -476,8 +477,8 @@ Smaller model changes Different exception from ``get()`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Managers now return a :exc:`MultipleObjectsReturned` exception -instead of :exc:`AssertionError`: +Managers now return a :exc:`~django.core.exceptions.MultipleObjectsReturned` +exception instead of :exc:`~exceptions.AssertionError`: Old (0.96):: diff --git a/docs/releases/1.1.txt b/docs/releases/1.1.txt index 595f59a52a..68fc624924 100644 --- a/docs/releases/1.1.txt +++ b/docs/releases/1.1.txt @@ -132,7 +132,7 @@ public methods. Fixed the ``join`` filter's escaping behavior --------------------------------------------- -The :ttag:`join` filter no longer escapes the literal value that is +The :tfilter:`join` filter no longer escapes the literal value that is passed in for the connector. This is backwards incompatible for the special situation of the literal string diff --git a/docs/releases/1.3-alpha-1.txt b/docs/releases/1.3-alpha-1.txt index dac48a4363..bb7f2dbb73 100644 --- a/docs/releases/1.3-alpha-1.txt +++ b/docs/releases/1.3-alpha-1.txt @@ -156,7 +156,7 @@ requests. These include: requests in tests. * A new test assertion -- - :meth:`~django.test.client.Client.assertNumQueries` -- making it + :meth:`~django.test.TestCase.assertNumQueries` -- making it easier to test the database activity associated with a view. diff --git a/docs/releases/1.4-alpha-1.txt b/docs/releases/1.4-alpha-1.txt index b5ec782f09..3c6f7e9b27 100644 --- a/docs/releases/1.4-alpha-1.txt +++ b/docs/releases/1.4-alpha-1.txt @@ -357,8 +357,8 @@ Extended IPv6 support The previously added support for IPv6 addresses when using the runserver management command in Django 1.3 has now been further extended by adding -a :class:`~django.db.models.fields.GenericIPAddressField` model field, -a :class:`~django.forms.fields.GenericIPAddressField` form field and +a :class:`~django.db.models.GenericIPAddressField` model field, +a :class:`~django.forms.GenericIPAddressField` form field and the validators :data:`~django.core.validators.validate_ipv46_address` and :data:`~django.core.validators.validate_ipv6_address` diff --git a/docs/releases/1.4-beta-1.txt b/docs/releases/1.4-beta-1.txt index 88f32ea15f..2a1041bcd0 100644 --- a/docs/releases/1.4-beta-1.txt +++ b/docs/releases/1.4-beta-1.txt @@ -395,8 +395,8 @@ Extended IPv6 support The previously added support for IPv6 addresses when using the runserver management command in Django 1.3 has now been further extended by adding -a :class:`~django.db.models.fields.GenericIPAddressField` model field, -a :class:`~django.forms.fields.GenericIPAddressField` form field and +a :class:`~django.db.models.GenericIPAddressField` model field, +a :class:`~django.forms.GenericIPAddressField` form field and the validators :data:`~django.core.validators.validate_ipv46_address` and :data:`~django.core.validators.validate_ipv6_address` diff --git a/docs/releases/1.4.txt b/docs/releases/1.4.txt index 9ff42accc5..746ed58945 100644 --- a/docs/releases/1.4.txt +++ b/docs/releases/1.4.txt @@ -526,8 +526,8 @@ Extended IPv6 support ~~~~~~~~~~~~~~~~~~~~~ Django 1.4 can now better handle IPv6 addresses with the new -:class:`~django.db.models.fields.GenericIPAddressField` model field, -:class:`~django.forms.fields.GenericIPAddressField` form field and +:class:`~django.db.models.GenericIPAddressField` model field, +:class:`~django.forms.GenericIPAddressField` form field and the validators :data:`~django.core.validators.validate_ipv46_address` and :data:`~django.core.validators.validate_ipv6_address`. @@ -890,7 +890,7 @@ object, Django raises an exception. The MySQL backend historically has raised :class:`MySQLdb.OperationalError` when a query triggered an exception. We've fixed this bug, and we now raise -:class:`django.db.utils.DatabaseError` instead. If you were testing for +:exc:`django.db.DatabaseError` instead. If you were testing for :class:`MySQLdb.OperationalError`, you'll need to update your ``except`` clauses. @@ -1092,8 +1092,8 @@ wild, because they would confuse browsers too. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ It's now possible to check whether a template was used within a block of -code with :meth:`~django.test.test.TestCase.assertTemplateUsed` and -:meth:`~django.test.test.TestCase.assertTemplateNotUsed`. And they +code with :meth:`~django.test.TestCase.assertTemplateUsed` and +:meth:`~django.test.TestCase.assertTemplateNotUsed`. And they can be used as a context manager:: with self.assertTemplateUsed('index.html'): diff --git a/docs/releases/1.5-alpha-1.txt b/docs/releases/1.5-alpha-1.txt index 8fbeafc68b..b167bb1879 100644 --- a/docs/releases/1.5-alpha-1.txt +++ b/docs/releases/1.5-alpha-1.txt @@ -391,12 +391,12 @@ System version of :mod:`simplejson` no longer used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ As explained below, Django 1.5 deprecates -:mod:`django.utils.simplejson` in favor of Python 2.6's built-in :mod:`json` +``django.utils.simplejson`` in favor of Python 2.6's built-in :mod:`json` module. In theory, this change is harmless. Unfortunately, because of incompatibilities between versions of :mod:`simplejson`, it may trigger errors in some circumstances. -JSON-related features in Django 1.4 always used :mod:`django.utils.simplejson`. +JSON-related features in Django 1.4 always used ``django.utils.simplejson``. This module was actually: - A system version of :mod:`simplejson`, if one was available (ie. ``import @@ -546,8 +546,9 @@ Miscellaneous * :class:`django.forms.ModelMultipleChoiceField` now returns an empty ``QuerySet`` as the empty value instead of an empty list. -* :func:`~django.utils.http.int_to_base36` properly raises a :exc:`TypeError` - instead of :exc:`ValueError` for non-integer inputs. +* :func:`~django.utils.http.int_to_base36` properly raises a + :exc:`~exceptions.TypeError` instead of :exc:`~exceptions.ValueError` for + non-integer inputs. * The ``slugify`` template filter is now available as a standard python function at :func:`django.utils.text.slugify`. Similarly, ``remove_tags`` is @@ -584,8 +585,8 @@ the :setting:`AUTH_PROFILE_MODULE` setting, and the :meth:`~django.contrib.auth.models.User.get_profile()` method for accessing the user profile model, should not be used any longer. -Streaming behavior of :class:`HttpResponse` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Streaming behavior of :class:`~django.http.HttpResponse` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Django 1.5 deprecates the ability to stream a response by passing an iterator to :class:`~django.http.HttpResponse`. If you rely on this behavior, switch to @@ -600,7 +601,7 @@ In Django 1.7 and above, the iterator will be consumed immediately by Since Django 1.5 drops support for Python 2.5, we can now rely on the :mod:`json` module being available in Python's standard library, so we've removed our own copy of :mod:`simplejson`. You should now import :mod:`json` -instead :mod:`django.utils.simplejson`. +instead of ``django.utils.simplejson``. Unfortunately, this change might have unwanted side-effects, because of incompatibilities between versions of :mod:`simplejson` -- see the backwards- diff --git a/docs/releases/1.5-beta-1.txt b/docs/releases/1.5-beta-1.txt index f3bfc2a8fa..7208d9657c 100644 --- a/docs/releases/1.5-beta-1.txt +++ b/docs/releases/1.5-beta-1.txt @@ -416,12 +416,12 @@ System version of :mod:`simplejson` no longer used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :ref:`As explained below `, Django 1.5 deprecates -:mod:`django.utils.simplejson` in favor of Python 2.6's built-in :mod:`json` +``django.utils.simplejson`` in favor of Python 2.6's built-in :mod:`json` module. In theory, this change is harmless. Unfortunately, because of incompatibilities between versions of :mod:`simplejson`, it may trigger errors in some circumstances. -JSON-related features in Django 1.4 always used :mod:`django.utils.simplejson`. +JSON-related features in Django 1.4 always used ``django.utils.simplejson``. This module was actually: - A system version of :mod:`simplejson`, if one was available (ie. ``import @@ -585,8 +585,9 @@ Miscellaneous * :class:`django.forms.ModelMultipleChoiceField` now returns an empty ``QuerySet`` as the empty value instead of an empty list. -* :func:`~django.utils.http.int_to_base36` properly raises a :exc:`TypeError` - instead of :exc:`ValueError` for non-integer inputs. +* :func:`~django.utils.http.int_to_base36` properly raises a + :exc:`~exceptions.TypeError` instead of :exc:`~exceptions.ValueError` for + non-integer inputs. * The ``slugify`` template filter is now available as a standard python function at :func:`django.utils.text.slugify`. Similarly, ``remove_tags`` is @@ -636,8 +637,8 @@ the :setting:`AUTH_PROFILE_MODULE` setting, and the :meth:`~django.contrib.auth.models.User.get_profile()` method for accessing the user profile model, should not be used any longer. -Streaming behavior of :class:`HttpResponse` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Streaming behavior of :class:`~django.http.HttpResponse` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Django 1.5 deprecates the ability to stream a response by passing an iterator to :class:`~django.http.HttpResponse`. If you rely on this behavior, switch to @@ -653,7 +654,7 @@ In Django 1.7 and above, the iterator will be consumed immediately by Since Django 1.5 drops support for Python 2.5, we can now rely on the :mod:`json` module being available in Python's standard library, so we've removed our own copy of :mod:`simplejson`. You should now import :mod:`json` -instead :mod:`django.utils.simplejson`. +instead of ``django.utils.simplejson``. Unfortunately, this change might have unwanted side-effects, because of incompatibilities between versions of :mod:`simplejson` -- see the diff --git a/docs/releases/1.5.txt b/docs/releases/1.5.txt index 8259c12cb4..57ac983568 100644 --- a/docs/releases/1.5.txt +++ b/docs/releases/1.5.txt @@ -429,12 +429,12 @@ System version of :mod:`simplejson` no longer used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :ref:`As explained below `, Django 1.5 deprecates -:mod:`django.utils.simplejson` in favor of Python 2.6's built-in :mod:`json` +``django.utils.simplejson`` in favor of Python 2.6's built-in :mod:`json` module. In theory, this change is harmless. Unfortunately, because of incompatibilities between versions of :mod:`simplejson`, it may trigger errors in some circumstances. -JSON-related features in Django 1.4 always used :mod:`django.utils.simplejson`. +JSON-related features in Django 1.4 always used ``django.utils.simplejson``. This module was actually: - A system version of :mod:`simplejson`, if one was available (ie. ``import @@ -598,8 +598,9 @@ Miscellaneous * :class:`django.forms.ModelMultipleChoiceField` now returns an empty ``QuerySet`` as the empty value instead of an empty list. -* :func:`~django.utils.http.int_to_base36` properly raises a :exc:`TypeError` - instead of :exc:`ValueError` for non-integer inputs. +* :func:`~django.utils.http.int_to_base36` properly raises a + :exc:`~exceptions.TypeError` instead of :exc:`~exceptions.ValueError` for + non-integer inputs. * The ``slugify`` template filter is now available as a standard python function at :func:`django.utils.text.slugify`. Similarly, ``remove_tags`` is @@ -668,8 +669,8 @@ the :setting:`AUTH_PROFILE_MODULE` setting, and the :meth:`~django.contrib.auth.models.User.get_profile()` method for accessing the user profile model, should not be used any longer. -Streaming behavior of :class:`HttpResponse` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Streaming behavior of :class:`~django.http.HttpResponse` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Django 1.5 deprecates the ability to stream a response by passing an iterator to :class:`~django.http.HttpResponse`. If you rely on this behavior, switch to @@ -687,7 +688,7 @@ In Django 1.7 and above, the iterator will be consumed immediately by Since Django 1.5 drops support for Python 2.5, we can now rely on the :mod:`json` module being available in Python's standard library, so we've removed our own copy of :mod:`simplejson`. You should now import :mod:`json` -instead :mod:`django.utils.simplejson`. +instead of ``django.utils.simplejson``. Unfortunately, this change might have unwanted side-effects, because of incompatibilities between versions of :mod:`simplejson` -- see the diff --git a/docs/topics/auth.txt b/docs/topics/auth.txt index 3e2b6bbdbf..e7a0ff114e 100644 --- a/docs/topics/auth.txt +++ b/docs/topics/auth.txt @@ -284,7 +284,7 @@ Manager functions .. versionchanged:: 1.4 The ``email`` parameter was made optional. The username parameter is now checked for emptiness and raises a - :exc:`ValueError` in case of a negative result. + :exc:`~exceptions.ValueError` in case of a negative result. Creates, saves and returns a :class:`~django.contrib.auth.models.User`. @@ -558,7 +558,7 @@ Anonymous users :meth:`~django.contrib.auth.models.User.delete()`, :meth:`~django.contrib.auth.models.User.set_groups()` and :meth:`~django.contrib.auth.models.User.set_permissions()` raise - :exc:`NotImplementedError`. + :exc:`~exceptions.NotImplementedError`. In practice, you probably won't need to use :class:`~django.contrib.auth.models.AnonymousUser` objects on your own, but diff --git a/docs/topics/db/queries.txt b/docs/topics/db/queries.txt index 90c06ac66a..a869b6afad 100644 --- a/docs/topics/db/queries.txt +++ b/docs/topics/db/queries.txt @@ -327,8 +327,8 @@ a primary key of 1, Django will raise ``Entry.DoesNotExist``. Similarly, Django will complain if more than one item matches the :meth:`~django.db.models.query.QuerySet.get` query. In this case, it will raise -``MultipleObjectsReturned``, which again is an attribute of the model class -itself. +:exc:`~django.core.exceptions.MultipleObjectsReturned`, which again is an +attribute of the model class itself. Other QuerySet methods diff --git a/docs/topics/i18n/timezones.txt b/docs/topics/i18n/timezones.txt index f3bb13ab03..cefc1667ad 100644 --- a/docs/topics/i18n/timezones.txt +++ b/docs/topics/i18n/timezones.txt @@ -456,8 +456,9 @@ zone support. Fixtures generated with ``USE_TZ = False``, or before Django 1.4, use the "naive" format. If your project contains such fixtures, after you enable time -zone support, you'll see :exc:`RuntimeWarning`\ s when you load them. To get -rid of the warnings, you must convert your fixtures to the "aware" format. +zone support, you'll see :exc:`~exceptions.RuntimeWarning`\ s when you load +them. To get rid of the warnings, you must convert your fixtures to the "aware" +format. You can regenerate fixtures with :djadmin:`loaddata` then :djadmin:`dumpdata`. Or, if they're small enough, you can simply edit them to add the UTC offset diff --git a/docs/topics/i18n/translation.txt b/docs/topics/i18n/translation.txt index 65c6fe2445..0b13ea18be 100644 --- a/docs/topics/i18n/translation.txt +++ b/docs/topics/i18n/translation.txt @@ -928,7 +928,7 @@ function. Example:: :func:`~django.conf.urls.i18n.i18n_patterns` is only allowed in your root URLconf. Using it within an included URLconf will throw an - :exc:`ImproperlyConfigured` exception. + :exc:`~django.core.exceptions.ImproperlyConfigured` exception. .. warning:: diff --git a/docs/topics/python3.txt b/docs/topics/python3.txt index e6dc165399..e1d78a10e6 100644 --- a/docs/topics/python3.txt +++ b/docs/topics/python3.txt @@ -343,7 +343,7 @@ meaning of ``str`` changed. To test these types, use the following idioms:: isinstance(myvalue, bytes) # replacement for str Python ≥ 2.6 provides ``bytes`` as an alias for ``str``, so you don't need -:attr:`six.binary_type`. +:data:`six.binary_type`. ``long`` ~~~~~~~~ @@ -356,7 +356,7 @@ The ``long`` type no longer exists in Python 3. ``1L`` is a syntax error. Use ``xrange`` ~~~~~~~~~~ -Import :func:`six.moves.xrange` wherever you use ``xrange``. +Import ``six.moves.xrange`` wherever you use ``xrange``. Moved modules ~~~~~~~~~~~~~ diff --git a/docs/topics/security.txt b/docs/topics/security.txt index 169f9ac773..9c4c4bbd9e 100644 --- a/docs/topics/security.txt +++ b/docs/topics/security.txt @@ -38,7 +38,7 @@ in unauthorized JavaScript execution, depending on how the browser renders imperfect HTML. It is also important to be particularly careful when using ``is_safe`` with -custom template tags, the :ttag:`safe` template tag, :mod:`mark_safe +custom template tags, the :tfilter:`safe` template tag, :mod:`mark_safe `, and when autoescape is turned off. In addition, if you are using the template system to output something other @@ -76,8 +76,8 @@ POST to your Web site and have another logged in user unwittingly submit that form. The malicious user would have to know the nonce, which is user specific (using a cookie). -When deployed with :ref:`HTTPS `, -``CsrfViewMiddleware`` will check that the HTTP referer header is set to a +When deployed with :ref:`HTTPS `, +``CsrfViewMiddleware`` will check that the HTTP referer header is set to a URL on the same origin (including subdomain and port). Because HTTPS provides additional security, it is imperative to ensure connections use HTTPS where it is available by forwarding insecure connection requests and using diff --git a/docs/topics/serialization.txt b/docs/topics/serialization.txt index 28f600e223..e36c7587d1 100644 --- a/docs/topics/serialization.txt +++ b/docs/topics/serialization.txt @@ -193,7 +193,7 @@ This strategy works well for most objects, but it can cause difficulty in some circumstances. Consider the case of a list of objects that have a foreign key referencing -:class:`~django.contrib.conttenttypes.models.ContentType`. If you're going to +:class:`~django.contrib.contenttypes.models.ContentType`. If you're going to serialize an object that refers to a content type, then you need to have a way to refer to that content type to begin with. Since ``ContentType`` objects are automatically created by Django during the database synchronization process, diff --git a/docs/topics/signals.txt b/docs/topics/signals.txt index 1078d0372c..5ea0895c42 100644 --- a/docs/topics/signals.txt +++ b/docs/topics/signals.txt @@ -30,7 +30,7 @@ notifications: * :data:`django.db.models.signals.m2m_changed` - Sent when a :class:`ManyToManyField` on a model is changed. + Sent when a :class:`~django.db.models.ManyToManyField` on a model is changed. * :data:`django.core.signals.request_started` & :data:`django.core.signals.request_finished` diff --git a/docs/topics/testing/index.txt b/docs/topics/testing/index.txt index 0345b72703..94e88bdf04 100644 --- a/docs/topics/testing/index.txt +++ b/docs/topics/testing/index.txt @@ -38,7 +38,7 @@ frameworks are: * **Unit tests** -- tests that are expressed as methods on a Python class that subclasses :class:`unittest.TestCase` or Django's customized - :class:`TestCase`. For example:: + :class:`~django.test.TestCase`. For example:: import unittest -- cgit v1.3 From 11ded967c443087487f3872aafd86842608b4c64 Mon Sep 17 00:00:00 2001 From: Preston Holmes Date: Fri, 28 Dec 2012 11:00:11 -0800 Subject: Fixed #19498 -- refactored auth documentation The auth doc was a single page which had grown unwieldy. This refactor split and grouped the content into sub-topics. Additional corrections and cleanups were made along the way. --- docs/howto/deployment/wsgi/apache-auth.txt | 2 +- docs/index.txt | 2 +- docs/internals/git.txt | 2 +- docs/misc/api-stability.txt | 2 +- docs/ref/authbackends.txt | 33 - docs/ref/contrib/auth.txt | 428 ++++- docs/ref/contrib/index.txt | 2 +- docs/ref/django-admin.txt | 4 +- docs/ref/index.txt | 1 - docs/ref/middleware.txt | 4 +- docs/ref/request-response.txt | 2 +- docs/ref/settings.txt | 6 +- docs/ref/signals.txt | 2 +- docs/releases/1.2-beta-1.txt | 4 +- docs/releases/1.2.txt | 4 +- docs/releases/1.3-beta-1.txt | 2 +- docs/releases/1.3.txt | 2 +- docs/topics/auth.txt | 2696 ---------------------------- docs/topics/auth/customizing.txt | 1074 +++++++++++ docs/topics/auth/default.txt | 1077 +++++++++++ docs/topics/auth/index.txt | 81 + docs/topics/auth/passwords.txt | 212 +++ docs/topics/db/models.txt | 58 +- docs/topics/index.txt | 2 +- docs/topics/testing/overview.txt | 4 +- 25 files changed, 2920 insertions(+), 2786 deletions(-) delete mode 100644 docs/ref/authbackends.txt delete mode 100644 docs/topics/auth.txt create mode 100644 docs/topics/auth/customizing.txt create mode 100644 docs/topics/auth/default.txt create mode 100644 docs/topics/auth/index.txt create mode 100644 docs/topics/auth/passwords.txt (limited to 'docs') diff --git a/docs/howto/deployment/wsgi/apache-auth.txt b/docs/howto/deployment/wsgi/apache-auth.txt index 5f700f1cb3..220645947d 100644 --- a/docs/howto/deployment/wsgi/apache-auth.txt +++ b/docs/howto/deployment/wsgi/apache-auth.txt @@ -4,7 +4,7 @@ Authenticating against Django's user database from Apache Since keeping multiple authentication databases in sync is a common problem when dealing with Apache, you can configure Apache to authenticate against Django's -:doc:`authentication system ` directly. This requires Apache +:doc:`authentication system ` directly. This requires Apache version >= 2.2 and mod_wsgi >= 2.0. For example, you could: * Serve static/media files directly from Apache only to authenticated users. diff --git a/docs/index.txt b/docs/index.txt index e8e7eadb23..971c2ff479 100644 --- a/docs/index.txt +++ b/docs/index.txt @@ -246,7 +246,7 @@ Common Web application tools Django offers multiple tools commonly needed in the development of Web applications: -* :doc:`Authentication ` +* :doc:`Authentication ` * :doc:`Caching ` * :doc:`Logging ` * :doc:`Sending emails ` diff --git a/docs/internals/git.txt b/docs/internals/git.txt index 948f9a1f7e..2b1a279d89 100644 --- a/docs/internals/git.txt +++ b/docs/internals/git.txt @@ -134,7 +134,7 @@ part of Django itself, and so are no longer separately maintained: of Django since the 0.95 release. * ``multi-auth``: A refactoring of :doc:`Django's bundled - authentication framework ` which added support for + authentication framework ` which added support for :ref:`authentication backends `. This has been part of Django since the 0.95 release. diff --git a/docs/misc/api-stability.txt b/docs/misc/api-stability.txt index a13cb5de69..70e6006575 100644 --- a/docs/misc/api-stability.txt +++ b/docs/misc/api-stability.txt @@ -38,7 +38,7 @@ In general, everything covered in the documentation -- with the exception of anything in the :doc:`internals area ` is considered stable as of 1.0. This includes these APIs: -- :doc:`Authorization ` +- :doc:`Authorization ` - :doc:`Caching `. diff --git a/docs/ref/authbackends.txt b/docs/ref/authbackends.txt deleted file mode 100644 index 55a536e819..0000000000 --- a/docs/ref/authbackends.txt +++ /dev/null @@ -1,33 +0,0 @@ -======================= -Authentication backends -======================= - -.. module:: django.contrib.auth.backends - :synopsis: Django's built-in authentication backend classes. - -This document details the authentication backends that come with Django. For -information on how to use them and how to write your own authentication -backends, see the :ref:`Other authentication sources section -` of the :doc:`User authentication guide -`. - - -Available authentication backends -================================= - -The following backends are available in :mod:`django.contrib.auth.backends`: - -.. class:: ModelBackend - - This is the default authentication backend used by Django. It - authenticates using usernames and passwords stored in the - :class:`~django.contrib.auth.models.User` model. - - -.. class:: RemoteUserBackend - - Use this backend to take advantage of external-to-Django-handled - authentication. It authenticates using usernames passed in - :attr:`request.META['REMOTE_USER'] `. See - the :doc:`Authenticating against REMOTE_USER ` - documentation. diff --git a/docs/ref/contrib/auth.txt b/docs/ref/contrib/auth.txt index 619b38e5ac..41f218b0a4 100644 --- a/docs/ref/contrib/auth.txt +++ b/docs/ref/contrib/auth.txt @@ -1,4 +1,430 @@ ``django.contrib.auth`` ======================= -See :doc:`/topics/auth`. +This document provides API reference material for the components of Django's +authentication system. For more details on the usage of these components or +how to customize authentication and authorization see the :doc:`authentication +topic guide `. + +.. currentmodule:: django.contrib.auth + +User +==== + +Fields +------ + +.. class:: models.User + + :class:`~django.contrib.auth.models.User` objects have the following + fields: + + .. attribute:: username + + Required. 30 characters or fewer. Usernames may contain alphanumeric, + ``_``, ``@``, ``+``, ``.`` and ``-`` characters. + + .. attribute:: first_name + + Optional. 30 characters or fewer. + + .. attribute:: last_name + + Optional. 30 characters or fewer. + + .. attribute:: email + + Optional. Email address. + + .. attribute:: password + + Required. A hash of, and metadata about, the password. (Django doesn't + store the raw password.) Raw passwords can be arbitrarily long and can + contain any character. See the :doc:`password documentation + `. + + .. attribute:: groups + + Many-to-many relationship to :class:`~django.contrib.auth.models.Group` + + .. attribute:: user_permissions + + Many-to-many relationship to :class:`~django.contrib.auth.models.Permission` + + .. attribute:: is_staff + + Boolean. Designates whether this user can access the admin site. + + .. attribute:: is_active + + Boolean. Designates whether this user account should be considered + active. We recommend that you set this flag to ``False`` instead of + deleting accounts; that way, if your applications have any foreign keys + to users, the foreign keys won't break. + + This doesn't necessarily control whether or not the user can log in. + Authentication backends aren't required to check for the ``is_active`` + flag, and the default backends do not. If you want to reject a login + based on ``is_active`` being ``False``, it's up to you to check that in + your own login view or a custom authentication backend. However, the + :class:`~django.contrib.auth.forms.AuthenticationForm` used by the + :func:`~django.contrib.auth.views.login` view (which is the default) + *does* perform this check, as do the permission-checking methods such + as :meth:`~django.contrib.auth.models.User.has_perm` and the + authentication in the Django admin. All of those functions/methods will + return ``False`` for inactive users. + + .. attribute:: is_superuser + + Boolean. Designates that this user has all permissions without + explicitly assigning them. + + .. attribute:: last_login + + A datetime of the user's last login. Is set to the current date/time by + default. + + .. attribute:: date_joined + + A datetime designating when the account was created. Is set to the + current date/time by default when the account is created. + +Methods +------- + +.. class:: models.User + + .. method:: get_username() + + Returns the username for the user. Since the User model can be swapped + out, you should use this method instead of referencing the username + attribute directly. + + .. method:: is_anonymous() + + Always returns ``False``. This is a way of differentiating + :class:`~django.contrib.auth.models.User` and + :class:`~django.contrib.auth.models.AnonymousUser` objects. + Generally, you should prefer using + :meth:`~django.contrib.auth.models.User.is_authenticated()` to this + method. + + .. method:: is_authenticated() + + Always returns ``True``. This is a way to tell if the user has been + authenticated. This does not imply any permissions, and doesn't check + if the user is active - it only indicates that the user has provided a + valid username and password. + + .. method:: get_full_name() + + Returns the :attr:`~django.contrib.auth.models.User.first_name` plus + the :attr:`~django.contrib.auth.models.User.last_name`, with a space in + between. + + .. method:: set_password(raw_password) + + Sets the user's password to the given raw string, taking care of the + password hashing. Doesn't save the + :class:`~django.contrib.auth.models.User` object. + + .. method:: check_password(raw_password) + + Returns ``True`` if the given raw string is the correct password for + the user. (This takes care of the password hashing in making the + comparison.) + + .. method:: set_unusable_password() + + Marks the user as having no password set. This isn't the same as + having a blank string for a password. + :meth:`~django.contrib.auth.models.User.check_password()` for this user + will never return ``True``. Doesn't save the + :class:`~django.contrib.auth.models.User` object. + + You may need this if authentication for your application takes place + against an existing external source such as an LDAP directory. + + .. method:: has_usable_password() + + Returns ``False`` if + :meth:`~django.contrib.auth.models.User.set_unusable_password()` has + been called for this user. + + .. method:: get_group_permissions(obj=None) + + Returns a set of permission strings that the user has, through his/her + groups. + + If ``obj`` is passed in, only returns the group permissions for + this specific object. + + .. method:: get_all_permissions(obj=None) + + Returns a set of permission strings that the user has, both through + group and user permissions. + + If ``obj`` is passed in, only returns the permissions for this + specific object. + + .. method:: has_perm(perm, obj=None) + + Returns ``True`` if the user has the specified permission, where perm + is in the format ``"."``. (see + documentation on :ref:`permissions `). If the user is + inactive, this method will always return ``False``. + + If ``obj`` is passed in, this method won't check for a permission for + the model, but for this specific object. + + .. method:: has_perms(perm_list, obj=None) + + Returns ``True`` if the user has each of the specified permissions, + where each perm is in the format + ``"."``. If the user is inactive, + this method will always return ``False``. + + If ``obj`` is passed in, this method won't check for permissions for + the model, but for the specific object. + + .. method:: has_module_perms(package_name) + + Returns ``True`` if the user has any permissions in the given package + (the Django app label). If the user is inactive, this method will + always return ``False``. + + .. method:: email_user(subject, message, from_email=None) + + Sends an email to the user. If ``from_email`` is ``None``, Django uses + the :setting:`DEFAULT_FROM_EMAIL`. + + .. method:: get_profile() + + .. deprecated:: 1.5 + With the introduction of :ref:`custom User models `, + the use of :setting:`AUTH_PROFILE_MODULE` to define a single profile + model is no longer supported. See the + :doc:`Django 1.5 release notes` for more information. + + Returns a site-specific profile for this user. Raises + ``django.contrib.auth.models.SiteProfileNotAvailable`` if the + current site doesn't allow profiles, or + :exc:`django.core.exceptions.ObjectDoesNotExist` if the user does not + have a profile. + +Manager methods +--------------- + +.. class:: models.UserManager + + The :class:`~django.contrib.auth.models.User` model has a custom manager + that has the following helper methods: + + .. method:: create_user(username, email=None, password=None) + + .. versionchanged:: 1.4 + The ``email`` parameter was made optional. The username + parameter is now checked for emptiness and raises a + :exc:`~exceptions.ValueError` in case of a negative result. + + Creates, saves and returns a :class:`~django.contrib.auth.models.User`. + + The :attr:`~django.contrib.auth.models.User.username` and + :attr:`~django.contrib.auth.models.User.password` are set as given. The + domain portion of :attr:`~django.contrib.auth.models.User.email` is + automatically converted to lowercase, and the returned + :class:`~django.contrib.auth.models.User` object will have + :attr:`~django.contrib.auth.models.User.is_active` set to ``True``. + + If no password is provided, + :meth:`~django.contrib.auth.models.User.set_unusable_password()` will + be called. + + See :ref:`Creating users ` for example usage. + + .. method:: make_random_password(length=10, allowed_chars='abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789') + + Returns a random password with the given length and given string of + allowed characters. (Note that the default value of ``allowed_chars`` + doesn't contain letters that can cause user confusion, including: + + * ``i``, ``l``, ``I``, and ``1`` (lowercase letter i, lowercase + letter L, uppercase letter i, and the number one) + * ``o``, ``O``, and ``0`` (uppercase letter o, lowercase letter o, + and zero) + + +Anonymous users +=============== + +.. class:: models.AnonymousUser + + :class:`django.contrib.auth.models.AnonymousUser` is a class that + implements the :class:`django.contrib.auth.models.User` interface, with + these differences: + + * :ref:`id ` is always ``None``. + * :attr:`~django.contrib.auth.models.User.is_staff` and + :attr:`~django.contrib.auth.models.User.is_superuser` are always + ``False``. + * :attr:`~django.contrib.auth.models.User.is_active` is always ``False``. + * :attr:`~django.contrib.auth.models.User.groups` and + :attr:`~django.contrib.auth.models.User.user_permissions` are always + empty. + * :meth:`~django.contrib.auth.models.User.is_anonymous()` returns ``True`` + instead of ``False``. + * :meth:`~django.contrib.auth.models.User.is_authenticated()` returns + ``False`` instead of ``True``. + * :meth:`~django.contrib.auth.models.User.set_password()`, + :meth:`~django.contrib.auth.models.User.check_password()`, + :meth:`~django.db.models.Model.save` and + :meth:`~django.db.models.Model.delete()` raise + :exc:`~exceptions.NotImplementedError`. + +In practice, you probably won't need to use +:class:`~django.contrib.auth.models.AnonymousUser` objects on your own, but +they're used by Web requests, as explained in the next section. + +Permission +========== + +.. class:: models.Permission + +Fields +------ + +:class:`~django.contrib.auth.models.Permission` objects have the following +fields: + +.. attribute:: name + + Required. 50 characters or fewer. Example: ``'Can vote'``. + +.. attribute:: content_type + + Required. A reference to the ``django_content_type`` database table, which + contains a record for each installed Django model. + +.. attribute:: codename + + Required. 100 characters or fewer. Example: ``'can_vote'``. + +Methods +------- + +:class:`~django.contrib.auth.models.Permission` objects have the standard +data-access methods like any other :doc:`Django model `. + +Group +===== + +.. class:: models.Group + +Fields +------ + +:class:`~django.contrib.auth.models.Group` objects have the following fields: + +.. attribute:: name + + Required. 80 characters or fewer. Any characters are permitted. Example: + ``'Awesome Users'``. + +.. attribute:: permissions + + Many-to-many field to :class:`~django.contrib.auth.models.Permission`:: + + group.permissions = [permission_list] + group.permissions.add(permission, permission, ...) + group.permissions.remove(permission, permission, ...) + group.permissions.clear() + +.. _topics-auth-signals: + +Login and logout signals +======================== + +.. module:: django.contrib.auth.signals + +The auth framework uses two :doc:`signals ` that can be used +for notification when a user logs in or out. + +.. function:: django.contrib.auth.signals.user_logged_in + + Sent when a user logs in successfully. + + Arguments sent with this signal: + + ``sender`` + The class of the user that just logged in. + + ``request`` + The current :class:`~django.http.HttpRequest` instance. + + ``user`` + The user instance that just logged in. + +.. function:: django.contrib.auth.signals.user_logged_out + + Sent when the logout method is called. + + ``sender`` + As above: the class of the user that just logged out or ``None`` + if the user was not authenticated. + + ``request`` + The current :class:`~django.http.HttpRequest` instance. + + ``user`` + The user instance that just logged out or ``None`` if the + user was not authenticated. + +.. function:: django.contrib.auth.signals.user_login_failed + +.. versionadded:: 1.5 + + Sent when the user failed to login successfully + + ``sender`` + The name of the module used for authentication. + + ``credentials`` + A dictionary of keyword arguments containing the user credentials that were + passed to :func:`~django.contrib.auth.authenticate()` or your own custom + authentication backend. Credentials matching a set of 'sensitive' patterns, + (including password) will not be sent in the clear as part of the signal. + +.. _authentication-backends-reference: + +Authentication backends +======================= + +.. module:: django.contrib.auth.backends + :synopsis: Django's built-in authentication backend classes. + +This section details the authentication backends that come with Django. For +information on how to use them and how to write your own authentication +backends, see the :ref:`Other authentication sources section +` of the :doc:`User authentication guide +`. + + +Available authentication backends +--------------------------------- + +The following backends are available in :mod:`django.contrib.auth.backends`: + +.. class:: ModelBackend + + This is the default authentication backend used by Django. It + authenticates using usernames and passwords stored in the + :class:`~django.contrib.auth.models.User` model. + + +.. class:: RemoteUserBackend + + Use this backend to take advantage of external-to-Django-handled + authentication. It authenticates using usernames passed in + :attr:`request.META['REMOTE_USER'] `. See + the :doc:`Authenticating against REMOTE_USER ` + documentation. diff --git a/docs/ref/contrib/index.txt b/docs/ref/contrib/index.txt index efe4393f64..3bf5288ee4 100644 --- a/docs/ref/contrib/index.txt +++ b/docs/ref/contrib/index.txt @@ -56,7 +56,7 @@ auth Django's authentication framework. -See :doc:`/topics/auth`. +See :doc:`/topics/auth/index`. comments ======== diff --git a/docs/ref/django-admin.txt b/docs/ref/django-admin.txt index 6ab3b1d133..205f349e8b 100644 --- a/docs/ref/django-admin.txt +++ b/docs/ref/django-admin.txt @@ -1145,7 +1145,7 @@ changepassword .. django-admin:: changepassword This command is only available if Django's :doc:`authentication system -` (``django.contrib.auth``) is installed. +` (``django.contrib.auth``) is installed. Allows changing a user's password. It prompts you to enter twice the password of the user given as parameter. If they both match, the new password will be @@ -1167,7 +1167,7 @@ createsuperuser .. django-admin:: createsuperuser This command is only available if Django's :doc:`authentication system -` (``django.contrib.auth``) is installed. +` (``django.contrib.auth``) is installed. Creates a superuser account (a user who has all permissions). This is useful if you need to create an initial superuser account but did not diff --git a/docs/ref/index.txt b/docs/ref/index.txt index e1959d44a6..fc874a97eb 100644 --- a/docs/ref/index.txt +++ b/docs/ref/index.txt @@ -5,7 +5,6 @@ API Reference .. toctree:: :maxdepth: 1 - authbackends class-based-views/index clickjacking contrib/index diff --git a/docs/ref/middleware.txt b/docs/ref/middleware.txt index b542aee6e2..41cff346ff 100644 --- a/docs/ref/middleware.txt +++ b/docs/ref/middleware.txt @@ -179,8 +179,8 @@ Authentication middleware .. class:: AuthenticationMiddleware Adds the ``user`` attribute, representing the currently-logged-in user, to -every incoming ``HttpRequest`` object. See :doc:`Authentication in Web requests -`. +every incoming ``HttpRequest`` object. See :ref:`Authentication in Web requests +`. CSRF protection middleware -------------------------- diff --git a/docs/ref/request-response.txt b/docs/ref/request-response.txt index c3ba99168d..2775c974d0 100644 --- a/docs/ref/request-response.txt +++ b/docs/ref/request-response.txt @@ -181,7 +181,7 @@ All attributes should be considered read-only, unless stated otherwise below. ``user`` is only available if your Django installation has the ``AuthenticationMiddleware`` activated. For more, see - :doc:`/topics/auth`. + :doc:`/topics/auth/index`. .. attribute:: HttpRequest.session diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt index 7cb33a038d..5815062266 100644 --- a/docs/ref/settings.txt +++ b/docs/ref/settings.txt @@ -107,8 +107,8 @@ AUTHENTICATION_BACKENDS Default: ``('django.contrib.auth.backends.ModelBackend',)`` A tuple of authentication backend classes (as strings) to use when attempting to -authenticate a user. See the :doc:`authentication backends documentation -` for details. +authenticate a user. See the :ref:`authentication backends documentation +` for details. .. setting:: AUTH_USER_MODEL @@ -2256,7 +2256,7 @@ AUTH_PROFILE_MODULE Default: Not defined The site-specific user profile model used by this site. See -:ref:`auth-profiles`. +:ref:`User profiles `. .. setting:: IGNORABLE_404_ENDS diff --git a/docs/ref/signals.txt b/docs/ref/signals.txt index 2eefb0ca77..0671d80b7c 100644 --- a/docs/ref/signals.txt +++ b/docs/ref/signals.txt @@ -12,7 +12,7 @@ A list of all the signals that Django sends. The :doc:`comment framework ` sends a :doc:`set of comment-related signals `. - The :doc:`authentication framework ` sends :ref:`signals when + The :doc:`authentication framework ` sends :ref:`signals when a user is logged in / out `. Model signals diff --git a/docs/releases/1.2-beta-1.txt b/docs/releases/1.2-beta-1.txt index 99cd274957..3549767379 100644 --- a/docs/releases/1.2-beta-1.txt +++ b/docs/releases/1.2-beta-1.txt @@ -91,7 +91,7 @@ added in Django 1.2 alpha but not documented with the alpha release. The default authentication backends shipped with Django do not currently make use of this, but third-party authentication backends -are free to do so. See the :doc:`authentication docs ` +are free to do so. See the :doc:`authentication docs ` for more information. @@ -104,7 +104,7 @@ class will check the backend for permissions, just as the normal ``User`` does. This is intended to help centralize permission handling; apps can always delegate the question of whether something is allowed or not to the authorization/authentication system. See the -:doc:`authentication docs ` for more details. +:doc:`authentication docs ` for more details. ``select_related()`` improvements diff --git a/docs/releases/1.2.txt b/docs/releases/1.2.txt index 26a9405595..68cec91587 100644 --- a/docs/releases/1.2.txt +++ b/docs/releases/1.2.txt @@ -165,7 +165,7 @@ A foundation for specifying permissions at the per-object level has been added. Although there is no implementation of this in core, a custom authentication backend can provide this implementation and it will be used by :class:`django.contrib.auth.models.User`. See the :doc:`authentication docs -` for more information. +` for more information. Permissions for anonymous users ------------------------------- @@ -175,7 +175,7 @@ If you provide a custom auth backend with ``supports_anonymous_user`` set to User already did. This is useful for centralizing permission handling - apps can always delegate the question of whether something is allowed or not to the authorization/authentication backend. See the :doc:`authentication -docs ` for more details. +docs ` for more details. Relaxed requirements for usernames ---------------------------------- diff --git a/docs/releases/1.3-beta-1.txt b/docs/releases/1.3-beta-1.txt index 02c038f459..2729c7f2ba 100644 --- a/docs/releases/1.3-beta-1.txt +++ b/docs/releases/1.3-beta-1.txt @@ -61,7 +61,7 @@ Permissions for inactive users If you provide a custom auth backend with ``supports_inactive_user`` set to ``True``, an inactive user model will check the backend for permissions. This is useful for further centralizing the permission handling. See the -:doc:`authentication docs ` for more details. +:doc:`authentication docs ` for more details. Backwards-incompatible changes in 1.3 alpha 2 ============================================= diff --git a/docs/releases/1.3.txt b/docs/releases/1.3.txt index c507f1bed6..d6ef11d113 100644 --- a/docs/releases/1.3.txt +++ b/docs/releases/1.3.txt @@ -254,7 +254,7 @@ Permissions for inactive users If you provide a custom auth backend with ``supports_inactive_user`` set to ``True``, an inactive ``User`` instance will check the backend for permissions. This is useful for further centralizing the -permission handling. See the :doc:`authentication docs ` +permission handling. See the :doc:`authentication docs ` for more details. GeoDjango diff --git a/docs/topics/auth.txt b/docs/topics/auth.txt deleted file mode 100644 index e7a0ff114e..0000000000 --- a/docs/topics/auth.txt +++ /dev/null @@ -1,2696 +0,0 @@ -============================= -User authentication in Django -============================= - -.. module:: django.contrib.auth - :synopsis: Django's authentication framework. - -Django comes with a user authentication system. It handles user accounts, -groups, permissions and cookie-based user sessions. This document explains how -things work. - -Overview -======== - -The auth system consists of: - -* Users -* Permissions: Binary (yes/no) flags designating whether a user may perform - a certain task. -* Groups: A generic way of applying labels and permissions to more than one - user. - -Installation -============ - -Authentication support is bundled as a Django application in -``django.contrib.auth``. To install it, do the following: - -1. Put ``'django.contrib.auth'`` and ``'django.contrib.contenttypes'`` in - your :setting:`INSTALLED_APPS` setting. - (The :class:`~django.contrib.auth.models.Permission` model in - :mod:`django.contrib.auth` depends on :mod:`django.contrib.contenttypes`.) -2. Run the command ``manage.py syncdb``. - -Note that the default :file:`settings.py` file created by -:djadmin:`django-admin.py startproject ` includes -``'django.contrib.auth'`` and ``'django.contrib.contenttypes'`` in -:setting:`INSTALLED_APPS` for convenience. If your :setting:`INSTALLED_APPS` -already contains these apps, feel free to run :djadmin:`manage.py syncdb -` again; you can run that command as many times as you'd like, and each -time it'll only install what's needed. - -The :djadmin:`syncdb` command creates the necessary database tables, creates -permission objects for all installed apps that need 'em, and prompts you to -create a superuser account the first time you run it. - -Once you've taken those steps, that's it. - -Users -===== - -.. class:: models.User - -API reference -------------- - -Fields -~~~~~~ - -.. class:: models.User - - :class:`~django.contrib.auth.models.User` objects have the following - fields: - - .. attribute:: models.User.username - - Required. 30 characters or fewer. Usernames may contain alphanumeric, - ``_``, ``@``, ``+``, ``.`` and ``-`` characters. - - .. attribute:: models.User.first_name - - Optional. 30 characters or fewer. - - .. attribute:: models.User.last_name - - Optional. 30 characters or fewer. - - .. attribute:: models.User.email - - Optional. Email address. - - .. attribute:: models.User.password - - Required. A hash of, and metadata about, the password. (Django doesn't - store the raw password.) Raw passwords can be arbitrarily long and can - contain any character. See the "Passwords" section below. - - .. attribute:: models.User.is_staff - - Boolean. Designates whether this user can access the admin site. - - .. attribute:: models.User.is_active - - Boolean. Designates whether this user account should be considered - active. We recommend that you set this flag to ``False`` instead of - deleting accounts; that way, if your applications have any foreign keys - to users, the foreign keys won't break. - - This doesn't necessarily control whether or not the user can log in. - Authentication backends aren't required to check for the ``is_active`` - flag, and the default backends do not. If you want to reject a login - based on ``is_active`` being ``False``, it's up to you to check that in - your own login view or a custom authentication backend. However, the - :class:`~django.contrib.auth.forms.AuthenticationForm` used by the - :func:`~django.contrib.auth.views.login` view (which is the default) - *does* perform this check, as do the permission-checking methods such - as :meth:`~models.User.has_perm` and the authentication in the Django - admin. All of those functions/methods will return ``False`` for - inactive users. - - .. attribute:: models.User.is_superuser - - Boolean. Designates that this user has all permissions without - explicitly assigning them. - - .. attribute:: models.User.last_login - - A datetime of the user's last login. Is set to the current date/time by - default. - - .. attribute:: models.User.date_joined - - A datetime designating when the account was created. Is set to the - current date/time by default when the account is created. - -Methods -~~~~~~~ - -.. class:: models.User - - :class:`~django.contrib.auth.models.User` objects have two many-to-many - fields: ``groups`` and ``user_permissions``. - :class:`~django.contrib.auth.models.User` objects can access their related - objects in the same way as any other :doc:`Django model - `: - - .. code-block:: python - - myuser.groups = [group_list] - myuser.groups.add(group, group, ...) - myuser.groups.remove(group, group, ...) - myuser.groups.clear() - myuser.user_permissions = [permission_list] - myuser.user_permissions.add(permission, permission, ...) - myuser.user_permissions.remove(permission, permission, ...) - myuser.user_permissions.clear() - - In addition to those automatic API methods, - :class:`~django.contrib.auth.models.User` objects have the following custom - methods: - - .. method:: models.User.get_username() - - Returns the username for the user. Since the User model can be swapped - out, you should use this method instead of referencing the username - attribute directly. - - .. method:: models.User.is_anonymous() - - Always returns ``False``. This is a way of differentiating - :class:`~django.contrib.auth.models.User` and - :class:`~django.contrib.auth.models.AnonymousUser` objects. - Generally, you should prefer using - :meth:`~django.contrib.auth.models.User.is_authenticated()` to this - method. - - .. method:: models.User.is_authenticated() - - Always returns ``True``. This is a way to tell if the user has been - authenticated. This does not imply any permissions, and doesn't check - if the user is active - it only indicates that the user has provided a - valid username and password. - - .. method:: models.User.get_full_name() - - Returns the :attr:`~django.contrib.auth.models.User.first_name` plus - the :attr:`~django.contrib.auth.models.User.last_name`, with a space in - between. - - .. method:: models.User.set_password(raw_password) - - Sets the user's password to the given raw string, taking care of the - password hashing. Doesn't save the - :class:`~django.contrib.auth.models.User` object. - - .. method:: models.User.check_password(raw_password) - - Returns ``True`` if the given raw string is the correct password for - the user. (This takes care of the password hashing in making the - comparison.) - - .. method:: models.User.set_unusable_password() - - Marks the user as having no password set. This isn't the same as - having a blank string for a password. - :meth:`~django.contrib.auth.models.User.check_password()` for this user - will never return ``True``. Doesn't save the - :class:`~django.contrib.auth.models.User` object. - - You may need this if authentication for your application takes place - against an existing external source such as an LDAP directory. - - .. method:: models.User.has_usable_password() - - Returns ``False`` if - :meth:`~django.contrib.auth.models.User.set_unusable_password()` has - been called for this user. - - .. method:: models.User.get_group_permissions(obj=None) - - Returns a set of permission strings that the user has, through his/her - groups. - - If ``obj`` is passed in, only returns the group permissions for - this specific object. - - .. method:: models.User.get_all_permissions(obj=None) - - Returns a set of permission strings that the user has, both through - group and user permissions. - - If ``obj`` is passed in, only returns the permissions for this - specific object. - - .. method:: models.User.has_perm(perm, obj=None) - - Returns ``True`` if the user has the specified permission, where perm is - in the format ``"."``. (see - `permissions`_ section below). If the user is inactive, this method will - always return ``False``. - - If ``obj`` is passed in, this method won't check for a permission for - the model, but for this specific object. - - .. method:: models.User.has_perms(perm_list, obj=None) - - Returns ``True`` if the user has each of the specified permissions, - where each perm is in the format - ``"."``. If the user is inactive, - this method will always return ``False``. - - If ``obj`` is passed in, this method won't check for permissions for - the model, but for the specific object. - - .. method:: models.User.has_module_perms(package_name) - - Returns ``True`` if the user has any permissions in the given package - (the Django app label). If the user is inactive, this method will - always return ``False``. - - .. method:: models.User.email_user(subject, message, from_email=None) - - Sends an email to the user. If - :attr:`~django.contrib.auth.models.User.from_email` is ``None``, Django - uses the :setting:`DEFAULT_FROM_EMAIL`. - - .. method:: models.User.get_profile() - - .. deprecated:: 1.5 - With the introduction of :ref:`custom User models `, - the use of :setting:`AUTH_PROFILE_MODULE` to define a single profile - model is no longer supported. See the - :doc:`Django 1.5 release notes` for more information. - - Returns a site-specific profile for this user. Raises - :exc:`django.contrib.auth.models.SiteProfileNotAvailable` if the - current site doesn't allow profiles, or - :exc:`django.core.exceptions.ObjectDoesNotExist` if the user does not - have a profile. For information on how to define a site-specific user - profile, see the section on `storing additional user information`_ below. - -.. _storing additional user information: #storing-additional-information-about-users - -Manager functions -~~~~~~~~~~~~~~~~~ - -.. class:: models.UserManager - - The :class:`~django.contrib.auth.models.User` model has a custom manager - that has the following helper functions: - - .. method:: models.UserManager.create_user(username, email=None, password=None) - - .. versionchanged:: 1.4 - The ``email`` parameter was made optional. The username - parameter is now checked for emptiness and raises a - :exc:`~exceptions.ValueError` in case of a negative result. - - Creates, saves and returns a :class:`~django.contrib.auth.models.User`. - - The :attr:`~django.contrib.auth.models.User.username` and - :attr:`~django.contrib.auth.models.User.password` are set as given. The - domain portion of :attr:`~django.contrib.auth.models.User.email` is - automatically converted to lowercase, and the returned - :class:`~django.contrib.auth.models.User` object will have - :attr:`~models.User.is_active` set to ``True``. - - If no password is provided, - :meth:`~django.contrib.auth.models.User.set_unusable_password()` will - be called. - - See `Creating users`_ for example usage. - - .. method:: models.UserManager.make_random_password(length=10, allowed_chars='abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789') - - Returns a random password with the given length and given string of - allowed characters. (Note that the default value of ``allowed_chars`` - doesn't contain letters that can cause user confusion, including: - - * ``i``, ``l``, ``I``, and ``1`` (lowercase letter i, lowercase - letter L, uppercase letter i, and the number one) - * ``o``, ``O``, and ``0`` (uppercase letter o, lowercase letter o, - and zero) - -Basic usage ------------ - -.. _topics-auth-creating-users: - -Creating users -~~~~~~~~~~~~~~ - -The most basic way to create users is to use the -:meth:`~django.contrib.auth.models.UserManager.create_user` helper function -that comes with Django:: - - >>> from django.contrib.auth.models import User - >>> user = User.objects.create_user('john', 'lennon@thebeatles.com', 'johnpassword') - - # At this point, user is a User object that has already been saved - # to the database. You can continue to change its attributes - # if you want to change other fields. - >>> user.is_staff = True - >>> user.save() - -You can also create users using the Django admin site. Assuming you've enabled -the admin site and hooked it to the URL ``/admin/``, the "Add user" page is at -``/admin/auth/user/add/``. You should also see a link to "Users" in the "Auth" -section of the main admin index page. The "Add user" admin page is different -than standard admin pages in that it requires you to choose a username and -password before allowing you to edit the rest of the user's fields. - -Also note: if you want your own user account to be able to create users using -the Django admin site, you'll need to give yourself permission to add users -*and* change users (i.e., the "Add user" and "Change user" permissions). If -your account has permission to add users but not to change them, you won't be -able to add users. Why? Because if you have permission to add users, you have -the power to create superusers, which can then, in turn, change other users. So -Django requires add *and* change permissions as a slight security measure. - -Changing passwords -~~~~~~~~~~~~~~~~~~ - -:djadmin:`manage.py changepassword *username* ` offers a method -of changing a User's password from the command line. It prompts you to -change the password of a given user which you must enter twice. If -they both match, the new password will be changed immediately. If you -do not supply a user, the command will attempt to change the password -whose username matches the current user. - -You can also change a password programmatically, using -:meth:`~django.contrib.auth.models.User.set_password()`: - -.. code-block:: python - - >>> from django.contrib.auth.models import User - >>> u = User.objects.get(username__exact='john') - >>> u.set_password('new password') - >>> u.save() - -Don't set the :attr:`~django.contrib.auth.models.User.password` attribute -directly unless you know what you're doing. This is explained in the next -section. - -.. _auth_password_storage: - -How Django stores passwords ---------------------------- - -.. versionadded:: 1.4 - Django 1.4 introduces a new flexible password storage system and uses - PBKDF2 by default. Previous versions of Django used SHA1, and other - algorithms couldn't be chosen. - -The :attr:`~django.contrib.auth.models.User.password` attribute of a -:class:`~django.contrib.auth.models.User` object is a string in this format:: - - algorithm$hash - -That's a storage algorithm, and hash, separated by the dollar-sign -character. The algorithm is one of a number of one way hashing or password -storage algorithms Django can use; see below. The hash is the result of the one- -way function. - -By default, Django uses the PBKDF2_ algorithm with a SHA256 hash, a -password stretching mechanism recommended by NIST_. This should be -sufficient for most users: it's quite secure, requiring massive -amounts of computing time to break. - -However, depending on your requirements, you may choose a different -algorithm, or even use a custom algorithm to match your specific -security situation. Again, most users shouldn't need to do this -- if -you're not sure, you probably don't. If you do, please read on: - -Django chooses the an algorithm by consulting the :setting:`PASSWORD_HASHERS` -setting. This is a list of hashing algorithm classes that this Django -installation supports. The first entry in this list (that is, -``settings.PASSWORD_HASHERS[0]``) will be used to store passwords, and all the -other entries are valid hashers that can be used to check existing passwords. -This means that if you want to use a different algorithm, you'll need to modify -:setting:`PASSWORD_HASHERS` to list your preferred algorithm first in the list. - -The default for :setting:`PASSWORD_HASHERS` is:: - - PASSWORD_HASHERS = ( - 'django.contrib.auth.hashers.PBKDF2PasswordHasher', - 'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher', - 'django.contrib.auth.hashers.BCryptPasswordHasher', - 'django.contrib.auth.hashers.SHA1PasswordHasher', - 'django.contrib.auth.hashers.MD5PasswordHasher', - 'django.contrib.auth.hashers.CryptPasswordHasher', - ) - -This means that Django will use PBKDF2_ to store all passwords, but will support -checking passwords stored with PBKDF2SHA1, bcrypt_, SHA1_, etc. The next few -sections describe a couple of common ways advanced users may want to modify this -setting. - -.. _bcrypt_usage: - -Using bcrypt with Django -~~~~~~~~~~~~~~~~~~~~~~~~ - -Bcrypt_ is a popular password storage algorithm that's specifically designed -for long-term password storage. It's not the default used by Django since it -requires the use of third-party libraries, but since many people may want to -use it Django supports bcrypt with minimal effort. - -To use Bcrypt as your default storage algorithm, do the following: - -1. Install the `py-bcrypt`_ library (probably by running ``sudo pip install - py-bcrypt``, or downloading the library and installing it with ``python - setup.py install``). - -2. Modify :setting:`PASSWORD_HASHERS` to list ``BCryptPasswordHasher`` - first. That is, in your settings file, you'd put:: - - PASSWORD_HASHERS = ( - 'django.contrib.auth.hashers.BCryptPasswordHasher', - 'django.contrib.auth.hashers.PBKDF2PasswordHasher', - 'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher', - 'django.contrib.auth.hashers.SHA1PasswordHasher', - 'django.contrib.auth.hashers.MD5PasswordHasher', - 'django.contrib.auth.hashers.CryptPasswordHasher', - ) - - (You need to keep the other entries in this list, or else Django won't - be able to upgrade passwords; see below). - -That's it -- now your Django install will use Bcrypt as the default storage -algorithm. - -.. admonition:: Other bcrypt implementations - - There are several other implementations that allow bcrypt to be - used with Django. Django's bcrypt support is NOT directly - compatible with these. To upgrade, you will need to modify the - hashes in your database to be in the form `bcrypt$(raw bcrypt - output)`. For example: - `bcrypt$$2a$12$NT0I31Sa7ihGEWpka9ASYrEFkhuTNeBQ2xfZskIiiJeyFXhRgS.Sy`. - -Increasing the work factor -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The PBKDF2 and bcrypt algorithms use a number of iterations or rounds of -hashing. This deliberately slows down attackers, making attacks against hashed -passwords harder. However, as computing power increases, the number of -iterations needs to be increased. We've chosen a reasonable default (and will -increase it with each release of Django), but you may wish to tune it up or -down, depending on your security needs and available processing power. To do so, -you'll subclass the appropriate algorithm and override the ``iterations`` -parameters. For example, to increase the number of iterations used by the -default PBKDF2 algorithm: - -1. Create a subclass of ``django.contrib.auth.hashers.PBKDF2PasswordHasher``:: - - from django.contrib.auth.hashers import PBKDF2PasswordHasher - - class MyPBKDF2PasswordHasher(PBKDF2PasswordHasher): - """ - A subclass of PBKDF2PasswordHasher that uses 100 times more iterations. - """ - iterations = PBKDF2PasswordHasher.iterations * 100 - - Save this somewhere in your project. For example, you might put this in - a file like ``myproject/hashers.py``. - -2. Add your new hasher as the first entry in :setting:`PASSWORD_HASHERS`:: - - PASSWORD_HASHERS = ( - 'myproject.hashers.MyPBKDF2PasswordHasher', - 'django.contrib.auth.hashers.PBKDF2PasswordHasher', - 'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher', - 'django.contrib.auth.hashers.BCryptPasswordHasher', - 'django.contrib.auth.hashers.SHA1PasswordHasher', - 'django.contrib.auth.hashers.MD5PasswordHasher', - 'django.contrib.auth.hashers.CryptPasswordHasher', - ) - - -That's it -- now your Django install will use more iterations when it -stores passwords using PBKDF2. - -Password upgrading -~~~~~~~~~~~~~~~~~~ - -When users log in, if their passwords are stored with anything other than -the preferred algorithm, Django will automatically upgrade the algorithm -to the preferred one. This means that old installs of Django will get -automatically more secure as users log in, and it also means that you -can switch to new (and better) storage algorithms as they get invented. - -However, Django can only upgrade passwords that use algorithms mentioned in -:setting:`PASSWORD_HASHERS`, so as you upgrade to new systems you should make -sure never to *remove* entries from this list. If you do, users using un- -mentioned algorithms won't be able to upgrade. - -.. _sha1: http://en.wikipedia.org/wiki/SHA1 -.. _pbkdf2: http://en.wikipedia.org/wiki/PBKDF2 -.. _nist: http://csrc.nist.gov/publications/nistpubs/800-132/nist-sp800-132.pdf -.. _bcrypt: http://en.wikipedia.org/wiki/Bcrypt -.. _py-bcrypt: http://pypi.python.org/pypi/py-bcrypt/ - -Anonymous users ---------------- - -.. class:: models.AnonymousUser - - :class:`django.contrib.auth.models.AnonymousUser` is a class that - implements the :class:`django.contrib.auth.models.User` interface, with - these differences: - - * :attr:`~django.contrib.auth.models.User.id` is always ``None``. - * :attr:`~django.contrib.auth.models.User.is_staff` and - :attr:`~django.contrib.auth.models.User.is_superuser` are always - ``False``. - * :attr:`~django.contrib.auth.models.User.is_active` is always ``False``. - * :attr:`~django.contrib.auth.models.User.groups` and - :attr:`~django.contrib.auth.models.User.user_permissions` are always - empty. - * :meth:`~django.contrib.auth.models.User.is_anonymous()` returns ``True`` - instead of ``False``. - * :meth:`~django.contrib.auth.models.User.is_authenticated()` returns - ``False`` instead of ``True``. - * :meth:`~django.contrib.auth.models.User.set_password()`, - :meth:`~django.contrib.auth.models.User.check_password()`, - :meth:`~django.contrib.auth.models.User.save()`, - :meth:`~django.contrib.auth.models.User.delete()`, - :meth:`~django.contrib.auth.models.User.set_groups()` and - :meth:`~django.contrib.auth.models.User.set_permissions()` raise - :exc:`~exceptions.NotImplementedError`. - -In practice, you probably won't need to use -:class:`~django.contrib.auth.models.AnonymousUser` objects on your own, but -they're used by Web requests, as explained in the next section. - -.. _topics-auth-creating-superusers: - -Creating superusers -------------------- - -:djadmin:`manage.py syncdb ` prompts you to create a superuser the -first time you run it after adding ``'django.contrib.auth'`` to your -:setting:`INSTALLED_APPS`. If you need to create a superuser at a later date, -you can use a command line utility:: - - manage.py createsuperuser --username=joe --email=joe@example.com - -You will be prompted for a password. After you enter one, the user will be -created immediately. If you leave off the :djadminopt:`--username` or the -:djadminopt:`--email` options, it will prompt you for those values. - -If you're using an older release of Django, the old way of creating a superuser -on the command line still works:: - - python /path/to/django/contrib/auth/create_superuser.py - -...where :file:`/path/to` is the path to the Django codebase on your -filesystem. The ``manage.py`` command is preferred because it figures out the -correct path and environment for you. - -.. _auth-profiles: - -Storing additional information about users ------------------------------------------- - -.. deprecated:: 1.5 - With the introduction of :ref:`custom User models `, - the use of :setting:`AUTH_PROFILE_MODULE` to define a single profile - model is no longer supported. See the - :doc:`Django 1.5 release notes` for more information. - -If you'd like to store additional information related to your users, Django -provides a method to specify a site-specific related model -- termed a "user -profile" -- for this purpose. - -To make use of this feature, define a model with fields for the -additional information you'd like to store, or additional methods -you'd like to have available, and also add a -:class:`~django.db.models.Field.OneToOneField` named ``user`` from your model -to the :class:`~django.contrib.auth.models.User` model. This will ensure only -one instance of your model can be created for each -:class:`~django.contrib.auth.models.User`. For example:: - - from django.contrib.auth.models import User - - class UserProfile(models.Model): - # This field is required. - user = models.OneToOneField(User) - - # Other fields here - accepted_eula = models.BooleanField() - favorite_animal = models.CharField(max_length=20, default="Dragons.") - - -To indicate that this model is the user profile model for a given site, fill in -the setting :setting:`AUTH_PROFILE_MODULE` with a string consisting of the -following items, separated by a dot: - -1. The name of the application (case sensitive) in which the user - profile model is defined (in other words, the - name which was passed to :djadmin:`manage.py startapp ` to create - the application). - -2. The name of the model (not case sensitive) class. - -For example, if the profile model was a class named ``UserProfile`` and was -defined inside an application named ``accounts``, the appropriate setting would -be:: - - AUTH_PROFILE_MODULE = 'accounts.UserProfile' - -When a user profile model has been defined and specified in this manner, each -:class:`~django.contrib.auth.models.User` object will have a method -- -:class:`~django.contrib.auth.models.User.get_profile()` -- which returns the -instance of the user profile model associated with that -:class:`~django.contrib.auth.models.User`. - -The method :class:`~django.contrib.auth.models.User.get_profile()` -does not create a profile if one does not exist. You need to register a handler -for the User model's :attr:`django.db.models.signals.post_save` signal and, in -the handler, if ``created`` is ``True``, create the associated user profile:: - - # in models.py - - from django.contrib.auth.models import User - from django.db.models.signals import post_save - - # definition of UserProfile from above - # ... - - def create_user_profile(sender, instance, created, **kwargs): - if created: - UserProfile.objects.create(user=instance) - - post_save.connect(create_user_profile, sender=User) - -.. seealso:: :doc:`/topics/signals` for more information on Django's signal - dispatcher. - -Adding UserProfile fields to the admin --------------------------------------- - -To add the UserProfile fields to the user page in the admin, define an -:class:`~django.contrib.admin.InlineModelAdmin` (for this example, we'll use a -:class:`~django.contrib.admin.StackedInline`) in your app's ``admin.py`` and -add it to a ``UserAdmin`` class which is registered with the -:class:`~django.contrib.auth.models.User` class:: - - from django.contrib import admin - from django.contrib.auth.admin import UserAdmin - from django.contrib.auth.models import User - - from my_user_profile_app.models import UserProfile - - # Define an inline admin descriptor for UserProfile model - # which acts a bit like a singleton - class UserProfileInline(admin.StackedInline): - model = UserProfile - can_delete = False - verbose_name_plural = 'profile' - - # Define a new User admin - class UserAdmin(UserAdmin): - inlines = (UserProfileInline, ) - - # Re-register UserAdmin - admin.site.unregister(User) - admin.site.register(User, UserAdmin) - -Authentication in Web requests -============================== - -Until now, this document has dealt with the low-level APIs for manipulating -authentication-related objects. On a higher level, Django can hook this -authentication framework into its system of -:class:`request objects `. - -First, install the -:class:`~django.contrib.sessions.middleware.SessionMiddleware` and -:class:`~django.contrib.auth.middleware.AuthenticationMiddleware` -middlewares by adding them to your :setting:`MIDDLEWARE_CLASSES` setting. See -the :doc:`session documentation ` for more information. - -Once you have those middlewares installed, you'll be able to access -:attr:`request.user ` in views. -:attr:`request.user ` will give you a -:class:`~django.contrib.auth.models.User` object representing the currently -logged-in user. If a user isn't currently logged in, -:attr:`request.user ` will be set to an instance -of :class:`~django.contrib.auth.models.AnonymousUser` (see the previous -section). You can tell them apart with -:meth:`~django.contrib.auth.models.User.is_authenticated()`, like so:: - - if request.user.is_authenticated(): - # Do something for authenticated users. - else: - # Do something for anonymous users. - -.. _how-to-log-a-user-in: - -How to log a user in --------------------- - -Django provides two functions in :mod:`django.contrib.auth`: -:func:`~django.contrib.auth.authenticate()` and -:func:`~django.contrib.auth.login()`. - -.. function:: authenticate() - - To authenticate a given username and password, use - :func:`~django.contrib.auth.authenticate()`. It takes two keyword - arguments, ``username`` and ``password``, and it returns a - :class:`~django.contrib.auth.models.User` object if the password is valid - for the given username. If the password is invalid, - :func:`~django.contrib.auth.authenticate()` returns ``None``. Example:: - - from django.contrib.auth import authenticate - user = authenticate(username='john', password='secret') - if user is not None: - if user.is_active: - print("You provided a correct username and password!") - else: - print("Your account has been disabled!") - else: - print("Your username and password were incorrect.") - -.. function:: login() - - To log a user in, in a view, use :func:`~django.contrib.auth.login()`. It - takes an :class:`~django.http.HttpRequest` object and a - :class:`~django.contrib.auth.models.User` object. - :func:`~django.contrib.auth.login()` saves the user's ID in the session, - using Django's session framework, so, as mentioned above, you'll need to - make sure to have the session middleware installed. - - Note that data set during the anonymous session is retained when the user - logs in. - - This example shows how you might use both - :func:`~django.contrib.auth.authenticate()` and - :func:`~django.contrib.auth.login()`:: - - from django.contrib.auth import authenticate, login - - def my_view(request): - username = request.POST['username'] - password = request.POST['password'] - user = authenticate(username=username, password=password) - if user is not None: - if user.is_active: - login(request, user) - # Redirect to a success page. - else: - # Return a 'disabled account' error message - else: - # Return an 'invalid login' error message. - -.. admonition:: Calling ``authenticate()`` first - - When you're manually logging a user in, you *must* call - :func:`~django.contrib.auth.authenticate()` before you call - :func:`~django.contrib.auth.login()`. - :func:`~django.contrib.auth.authenticate()` - sets an attribute on the :class:`~django.contrib.auth.models.User` noting - which authentication backend successfully authenticated that user (see the - `backends documentation`_ for details), and this information is needed - later during the login process. - -.. _backends documentation: #other-authentication-sources - -Manually managing a user's password ------------------------------------ - -.. currentmodule:: django.contrib.auth.hashers - -.. versionadded:: 1.4 - The :mod:`django.contrib.auth.hashers` module provides a set of functions - to create and validate hashed password. You can use them independently - from the ``User`` model. - -.. function:: check_password(password, encoded) - - .. versionadded:: 1.4 - - If you'd like to manually authenticate a user by comparing a plain-text - password to the hashed password in the database, use the convenience - function :func:`django.contrib.auth.hashers.check_password`. It takes two - arguments: the plain-text password to check, and the full value of a - user's ``password`` field in the database to check against, and returns - ``True`` if they match, ``False`` otherwise. - -.. function:: make_password(password[, salt, hashers]) - - .. versionadded:: 1.4 - - Creates a hashed password in the format used by this application. It takes - one mandatory argument: the password in plain-text. Optionally, you can - provide a salt and a hashing algorithm to use, if you don't want to use the - defaults (first entry of ``PASSWORD_HASHERS`` setting). - Currently supported algorithms are: ``'pbkdf2_sha256'``, ``'pbkdf2_sha1'``, - ``'bcrypt'`` (see :ref:`bcrypt_usage`), ``'sha1'``, ``'md5'``, - ``'unsalted_md5'`` (only for backward compatibility) and ``'crypt'`` - if you have the ``crypt`` library installed. If the password argument is - ``None``, an unusable password is returned (a one that will be never - accepted by :func:`django.contrib.auth.hashers.check_password`). - -.. function:: is_password_usable(encoded_password) - - .. versionadded:: 1.4 - - Checks if the given string is a hashed password that has a chance - of being verified against :func:`django.contrib.auth.hashers.check_password`. - - -How to log a user out ---------------------- - -.. currentmodule:: django.contrib.auth - -.. function:: logout() - - To log out a user who has been logged in via - :func:`django.contrib.auth.login()`, use - :func:`django.contrib.auth.logout()` within your view. It takes an - :class:`~django.http.HttpRequest` object and has no return value. - Example:: - - from django.contrib.auth import logout - - def logout_view(request): - logout(request) - # Redirect to a success page. - - Note that :func:`~django.contrib.auth.logout()` doesn't throw any errors if - the user wasn't logged in. - - When you call :func:`~django.contrib.auth.logout()`, the session data for - the current request is completely cleaned out. All existing data is - removed. This is to prevent another person from using the same Web browser - to log in and have access to the previous user's session data. If you want - to put anything into the session that will be available to the user - immediately after logging out, do that *after* calling - :func:`django.contrib.auth.logout()`. - -.. _topics-auth-signals: - -Login and logout signals ------------------------- - -The auth framework uses two :doc:`signals ` that can be used -for notification when a user logs in or out. - -.. data:: django.contrib.auth.signals.user_logged_in - :module: - -Sent when a user logs in successfully. - -Arguments sent with this signal: - -``sender`` - The class of the user that just logged in. - -``request`` - The current :class:`~django.http.HttpRequest` instance. - -``user`` - The user instance that just logged in. - -.. data:: django.contrib.auth.signals.user_logged_out - :module: - -Sent when the logout method is called. - -``sender`` - As above: the class of the user that just logged out or ``None`` - if the user was not authenticated. - -``request`` - The current :class:`~django.http.HttpRequest` instance. - -``user`` - The user instance that just logged out or ``None`` if the - user was not authenticated. - -.. data:: django.contrib.auth.signals.user_login_failed - :module: -.. versionadded:: 1.5 - -Sent when the user failed to login successfully - -``sender`` - The name of the module used for authentication. - -``credentials`` - A dictonary of keyword arguments containing the user credentials that were - passed to :func:`~django.contrib.auth.authenticate()` or your own custom - authentication backend. Credentials matching a set of 'sensitive' patterns, - (including password) will not be sent in the clear as part of the signal. - -Limiting access to logged-in users ----------------------------------- - -The raw way -~~~~~~~~~~~ - -The simple, raw way to limit access to pages is to check -:meth:`request.user.is_authenticated() -` and either redirect to a -login page:: - - from django.http import HttpResponseRedirect - - def my_view(request): - if not request.user.is_authenticated(): - return HttpResponseRedirect('/login/?next=%s' % request.path) - # ... - -...or display an error message:: - - def my_view(request): - if not request.user.is_authenticated(): - return render_to_response('myapp/login_error.html') - # ... - -The login_required decorator -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. function:: decorators.login_required([redirect_field_name=REDIRECT_FIELD_NAME, login_url=None]) - - As a shortcut, you can use the convenient - :func:`~django.contrib.auth.decorators.login_required` decorator:: - - from django.contrib.auth.decorators import login_required - - @login_required - def my_view(request): - ... - - :func:`~django.contrib.auth.decorators.login_required` does the following: - - * If the user isn't logged in, redirect to - :setting:`settings.LOGIN_URL `, passing the current absolute - path in the query string. Example: ``/accounts/login/?next=/polls/3/``. - - * If the user is logged in, execute the view normally. The view code is - free to assume the user is logged in. - - By default, the path that the user should be redirected to upon - successful authentication is stored in a query string parameter called - ``"next"``. If you would prefer to use a different name for this parameter, - :func:`~django.contrib.auth.decorators.login_required` takes an - optional ``redirect_field_name`` parameter:: - - from django.contrib.auth.decorators import login_required - - @login_required(redirect_field_name='my_redirect_field') - def my_view(request): - ... - - Note that if you provide a value to ``redirect_field_name``, you will most - likely need to customize your login template as well, since the template - context variable which stores the redirect path will use the value of - ``redirect_field_name`` as its key rather than ``"next"`` (the default). - - :func:`~django.contrib.auth.decorators.login_required` also takes an - optional ``login_url`` parameter. Example:: - - from django.contrib.auth.decorators import login_required - - @login_required(login_url='/accounts/login/') - def my_view(request): - ... - - Note that if you don't specify the ``login_url`` parameter, you'll need to map - the appropriate Django view to :setting:`settings.LOGIN_URL `. For - example, using the defaults, add the following line to your URLconf:: - - (r'^accounts/login/$', 'django.contrib.auth.views.login'), - - .. versionchanged:: 1.5 - - As of version 1.5 :setting:`settings.LOGIN_URL ` now also accepts - view function names and :ref:`named URL patterns `. - This allows you to freely remap your login view within your URLconf - without having to update the setting. - -.. function:: views.login(request, [template_name, redirect_field_name, authentication_form]) - - **URL name:** ``login`` - - See :doc:`the URL documentation ` for details on using - named URL patterns. - - Here's what ``django.contrib.auth.views.login`` does: - - * If called via ``GET``, it displays a login form that POSTs to the - same URL. More on this in a bit. - - * If called via ``POST``, it tries to log the user in. If login is - successful, the view redirects to the URL specified in ``next``. If - ``next`` isn't provided, it redirects to - :setting:`settings.LOGIN_REDIRECT_URL ` (which - defaults to ``/accounts/profile/``). If login isn't successful, it - redisplays the login form. - - It's your responsibility to provide the login form in a template called - ``registration/login.html`` by default. This template gets passed four - template context variables: - - * ``form``: A :class:`~django.forms.Form` object representing the login - form. See the :doc:`forms documentation ` for - more on ``Form`` objects. - - * ``next``: The URL to redirect to after successful login. This may - contain a query string, too. - - * ``site``: The current :class:`~django.contrib.sites.models.Site`, - according to the :setting:`SITE_ID` setting. If you don't have the - site framework installed, this will be set to an instance of - :class:`~django.contrib.sites.models.RequestSite`, which derives the - site name and domain from the current - :class:`~django.http.HttpRequest`. - - * ``site_name``: An alias for ``site.name``. If you don't have the site - framework installed, this will be set to the value of - :attr:`request.META['SERVER_NAME'] `. - For more on sites, see :doc:`/ref/contrib/sites`. - - If you'd prefer not to call the template :file:`registration/login.html`, - you can pass the ``template_name`` parameter via the extra arguments to - the view in your URLconf. For example, this URLconf line would use - :file:`myapp/login.html` instead:: - - (r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name': 'myapp/login.html'}), - - You can also specify the name of the ``GET`` field which contains the URL - to redirect to after login by passing ``redirect_field_name`` to the view. - By default, the field is called ``next``. - - Here's a sample :file:`registration/login.html` template you can use as a - starting point. It assumes you have a :file:`base.html` template that - defines a ``content`` block: - - .. code-block:: html+django - - {% extends "base.html" %} - - {% block content %} - - {% if form.errors %} -

    Your username and password didn't match. Please try again.

    - {% endif %} - -
    - {% csrf_token %} - - - - - - - - - -
    {{ form.username.label_tag }}{{ form.username }}
    {{ form.password.label_tag }}{{ form.password }}
    - - - -
    - - {% endblock %} - - If you are using alternate authentication (see - :ref:`authentication-backends`) you can pass a custom authentication form - to the login view via the ``authentication_form`` parameter. This form must - accept a ``request`` keyword argument in its ``__init__`` method, and - provide a ``get_user`` method which returns the authenticated user object - (this method is only ever called after successful form validation). - - .. _forms documentation: ../forms/ - .. _site framework docs: ../sites/ - - .. versionadded:: 1.4 - - The :func:`~views.login` view and the :ref:`other-built-in-views` now all - return a :class:`~django.template.response.TemplateResponse` instance, - which allows you to easily customize the response data before rendering. - For more details, see the - :doc:`TemplateResponse documentation `. - -.. _other-built-in-views: - -Other built-in views --------------------- - -.. module:: django.contrib.auth.views - -In addition to the :func:`~views.login` view, the authentication system -includes a few other useful built-in views located in -:mod:`django.contrib.auth.views`: - -.. function:: logout(request, [next_page, template_name, redirect_field_name]) - - Logs a user out. - - **URL name:** ``logout`` - - See :doc:`the URL documentation ` for details on using - named URL patterns. - - **Optional arguments:** - - * ``next_page``: The URL to redirect to after logout. - - * ``template_name``: The full name of a template to display after - logging the user out. Defaults to - :file:`registration/logged_out.html` if no argument is supplied. - - * ``redirect_field_name``: The name of a ``GET`` field containing the - URL to redirect to after log out. Overrides ``next_page`` if the given - ``GET`` parameter is passed. - - **Template context:** - - * ``title``: The string "Logged out", localized. - - * ``site``: The current :class:`~django.contrib.sites.models.Site`, - according to the :setting:`SITE_ID` setting. If you don't have the - site framework installed, this will be set to an instance of - :class:`~django.contrib.sites.models.RequestSite`, which derives the - site name and domain from the current - :class:`~django.http.HttpRequest`. - - * ``site_name``: An alias for ``site.name``. If you don't have the site - framework installed, this will be set to the value of - :attr:`request.META['SERVER_NAME'] `. - For more on sites, see :doc:`/ref/contrib/sites`. - -.. function:: logout_then_login(request[, login_url]) - - Logs a user out, then redirects to the login page. - - **URL name:** No default URL provided - - **Optional arguments:** - - * ``login_url``: The URL of the login page to redirect to. - Defaults to :setting:`settings.LOGIN_URL ` if not supplied. - -.. function:: password_change(request[, template_name, post_change_redirect, password_change_form]) - - Allows a user to change their password. - - **URL name:** ``password_change`` - - **Optional arguments:** - - * ``template_name``: The full name of a template to use for - displaying the password change form. Defaults to - :file:`registration/password_change_form.html` if not supplied. - - * ``post_change_redirect``: The URL to redirect to after a successful - password change. - - * ``password_change_form``: A custom "change password" form which must - accept a ``user`` keyword argument. The form is responsible for - actually changing the user's password. Defaults to - :class:`~django.contrib.auth.forms.PasswordChangeForm`. - - **Template context:** - - * ``form``: The password change form (see ``password_change_form`` above). - -.. function:: password_change_done(request[, template_name]) - - The page shown after a user has changed their password. - - **URL name:** ``password_change_done`` - - **Optional arguments:** - - * ``template_name``: The full name of a template to use. - Defaults to :file:`registration/password_change_done.html` if not - supplied. - -.. function:: password_reset(request[, is_admin_site, template_name, email_template_name, password_reset_form, token_generator, post_reset_redirect, from_email]) - - Allows a user to reset their password by generating a one-time use link - that can be used to reset the password, and sending that link to the - user's registered email address. - - .. versionchanged:: 1.4 - Users flagged with an unusable password (see - :meth:`~django.contrib.auth.models.User.set_unusable_password()` - will not be able to request a password reset to prevent misuse - when using an external authentication source like LDAP. - - **URL name:** ``password_reset`` - - **Optional arguments:** - - * ``template_name``: The full name of a template to use for - displaying the password reset form. Defaults to - :file:`registration/password_reset_form.html` if not supplied. - - * ``email_template_name``: The full name of a template to use for - generating the email with the reset password link. Defaults to - :file:`registration/password_reset_email.html` if not supplied. - - * ``subject_template_name``: The full name of a template to use for - the subject of the email with the reset password link. Defaults - to :file:`registration/password_reset_subject.txt` if not supplied. - - .. versionadded:: 1.4 - - * ``password_reset_form``: Form that will be used to get the email of - the user to reset the password for. Defaults to - :class:`~django.contrib.auth.forms.PasswordResetForm`. - - * ``token_generator``: Instance of the class to check the one time link. - This will default to ``default_token_generator``, it's an instance of - ``django.contrib.auth.tokens.PasswordResetTokenGenerator``. - - * ``post_reset_redirect``: The URL to redirect to after a successful - password reset request. - - * ``from_email``: A valid email address. By default Django uses - the :setting:`DEFAULT_FROM_EMAIL`. - - **Template context:** - - * ``form``: The form (see ``password_reset_form`` above) for resetting - the user's password. - - **Email template context:** - - * ``email``: An alias for ``user.email`` - - * ``user``: The current :class:`~django.contrib.auth.models.User`, - according to the ``email`` form field. Only active users are able to - reset their passwords (``User.is_active is True``). - - * ``site_name``: An alias for ``site.name``. If you don't have the site - framework installed, this will be set to the value of - :attr:`request.META['SERVER_NAME'] `. - For more on sites, see :doc:`/ref/contrib/sites`. - - * ``domain``: An alias for ``site.domain``. If you don't have the site - framework installed, this will be set to the value of - ``request.get_host()``. - - * ``protocol``: http or https - - * ``uid``: The user's id encoded in base 36. - - * ``token``: Token to check that the reset link is valid. - - Sample ``registration/password_reset_email.html`` (email body template): - - .. code-block:: html+django - - Someone asked for password reset for email {{ email }}. Follow the link below: - {{ protocol}}://{{ domain }}{% url 'password_reset_confirm' uidb36=uid token=token %} - - The same template context is used for subject template. Subject must be - single line plain text string. - - -.. function:: password_reset_done(request[, template_name]) - - The page shown after a user has been emailed a link to reset their - password. This view is called by default if the :func:`password_reset` view - doesn't have an explicit ``post_reset_redirect`` URL set. - - **URL name:** ``password_reset_done`` - - **Optional arguments:** - - * ``template_name``: The full name of a template to use. - Defaults to :file:`registration/password_reset_done.html` if not - supplied. - -.. function:: password_reset_confirm(request[, uidb36, token, template_name, token_generator, set_password_form, post_reset_redirect]) - - Presents a form for entering a new password. - - **URL name:** ``password_reset_confirm`` - - **Optional arguments:** - - * ``uidb36``: The user's id encoded in base 36. Defaults to ``None``. - - * ``token``: Token to check that the password is valid. Defaults to - ``None``. - - * ``template_name``: The full name of a template to display the confirm - password view. Default value is :file:`registration/password_reset_confirm.html`. - - * ``token_generator``: Instance of the class to check the password. This - will default to ``default_token_generator``, it's an instance of - ``django.contrib.auth.tokens.PasswordResetTokenGenerator``. - - * ``set_password_form``: Form that will be used to set the password. - Defaults to :class:`~django.contrib.auth.forms.SetPasswordForm` - - * ``post_reset_redirect``: URL to redirect after the password reset - done. Defaults to ``None``. - - **Template context:** - - * ``form``: The form (see ``set_password_form`` above) for setting the - new user's password. - - * ``validlink``: Boolean, True if the link (combination of uidb36 and - token) is valid or unused yet. - -.. function:: password_reset_complete(request[,template_name]) - - Presents a view which informs the user that the password has been - successfully changed. - - **URL name:** ``password_reset_complete`` - - **Optional arguments:** - - * ``template_name``: The full name of a template to display the view. - Defaults to :file:`registration/password_reset_complete.html`. - -Helper functions ----------------- - -.. currentmodule:: django.contrib.auth.views - -.. function:: redirect_to_login(next[, login_url, redirect_field_name]) - - Redirects to the login page, and then back to another URL after a - successful login. - - **Required arguments:** - - * ``next``: The URL to redirect to after a successful login. - - **Optional arguments:** - - * ``login_url``: The URL of the login page to redirect to. - Defaults to :setting:`settings.LOGIN_URL ` if not supplied. - - * ``redirect_field_name``: The name of a ``GET`` field containing the - URL to redirect to after log out. Overrides ``next`` if the given - ``GET`` parameter is passed. - - -.. _built-in-auth-forms: - -Built-in forms --------------- - -.. module:: django.contrib.auth.forms - -If you don't want to use the built-in views, but want the convenience of not -having to write forms for this functionality, the authentication system -provides several built-in forms located in :mod:`django.contrib.auth.forms`: - -.. class:: AdminPasswordChangeForm - - A form used in the admin interface to change a user's password. - -.. class:: AuthenticationForm - - A form for logging a user in. - -.. class:: PasswordChangeForm - - A form for allowing a user to change their password. - -.. class:: PasswordResetForm - - A form for generating and emailing a one-time use link to reset a - user's password. - -.. class:: SetPasswordForm - - A form that lets a user change his/her password without entering the old - password. - -.. class:: UserChangeForm - - A form used in the admin interface to change a user's information and - permissions. - -.. class:: UserCreationForm - - A form for creating a new user. - -Limiting access to logged-in users that pass a test ---------------------------------------------------- - -.. currentmodule:: django.contrib.auth.decorators - -To limit access based on certain permissions or some other test, you'd do -essentially the same thing as described in the previous section. - -The simple way is to run your test on :attr:`request.user -` in the view directly. For example, this view -checks to make sure the user is logged in and has the permission -``polls.can_vote``:: - - def my_view(request): - if not request.user.has_perm('polls.can_vote'): - return HttpResponse("You can't vote in this poll.") - # ... - -.. function:: user_passes_test(func, [login_url=None]) - - As a shortcut, you can use the convenient ``user_passes_test`` decorator:: - - from django.contrib.auth.decorators import user_passes_test - - @user_passes_test(lambda u: u.has_perm('polls.can_vote')) - def my_view(request): - ... - - We're using this particular test as a relatively simple example. However, - if you just want to test whether a permission is available to a user, you - can use the :func:`~django.contrib.auth.decorators.permission_required()` - decorator, described later in this document. - - :func:`~django.contrib.auth.decorators.user_passes_test` takes a required - argument: a callable that takes a - :class:`~django.contrib.auth.models.User` object and returns ``True`` if - the user is allowed to view the page. Note that - :func:`~django.contrib.auth.decorators.user_passes_test` does not - automatically check that the :class:`~django.contrib.auth.models.User` is - not anonymous. - - :func:`~django.contrib.auth.decorators.user_passes_test()` takes an - optional ``login_url`` argument, which lets you specify the URL for your - login page (:setting:`settings.LOGIN_URL ` by default). - - For example:: - - from django.contrib.auth.decorators import user_passes_test - - @user_passes_test(lambda u: u.has_perm('polls.can_vote'), login_url='/login/') - def my_view(request): - ... - -The permission_required decorator -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. function:: permission_required([login_url=None, raise_exception=False]) - - It's a relatively common task to check whether a user has a particular - permission. For that reason, Django provides a shortcut for that case: the - :func:`~django.contrib.auth.decorators.permission_required()` decorator. - Using this decorator, the earlier example can be written as:: - - from django.contrib.auth.decorators import permission_required - - @permission_required('polls.can_vote') - def my_view(request): - ... - - As for the :meth:`User.has_perm` method, permission names take the form - ``"."`` (i.e. ``polls.can_vote`` for a - permission on a model in the ``polls`` application). - - Note that :func:`~django.contrib.auth.decorators.permission_required()` - also takes an optional ``login_url`` parameter. Example:: - - from django.contrib.auth.decorators import permission_required - - @permission_required('polls.can_vote', login_url='/loginpage/') - def my_view(request): - ... - - As in the :func:`~decorators.login_required` decorator, ``login_url`` - defaults to :setting:`settings.LOGIN_URL `. - - .. versionchanged:: 1.4 - - Added ``raise_exception`` parameter. If given, the decorator will raise - :exc:`~django.core.exceptions.PermissionDenied`, prompting - :ref:`the 403 (HTTP Forbidden) view` instead of - redirecting to the login page. - -.. currentmodule:: django.contrib.auth - -Applying permissions to generic views -------------------------------------- - -To apply a permission to a :doc:`class-based generic view -`, decorate the :meth:`View.dispatch -` method on the class. See -:ref:`decorating-class-based-views` for details. - -.. _permissions: - -Permissions -=========== - -Django comes with a simple permissions system. It provides a way to assign -permissions to specific users and groups of users. - -It's used by the Django admin site, but you're welcome to use it in your own -code. - -The Django admin site uses permissions as follows: - -* Access to view the "add" form and add an object is limited to users with - the "add" permission for that type of object. -* Access to view the change list, view the "change" form and change an - object is limited to users with the "change" permission for that type of - object. -* Access to delete an object is limited to users with the "delete" - permission for that type of object. - -Permissions can be set not only per type of object, but also per specific -object instance. By using the -:meth:`~django.contrib.admin.ModelAdmin.has_add_permission`, -:meth:`~django.contrib.admin.ModelAdmin.has_change_permission` and -:meth:`~django.contrib.admin.ModelAdmin.has_delete_permission` methods provided -by the :class:`~django.contrib.admin.ModelAdmin` class, it is possible to -customize permissions for different object instances of the same type. - -Default permissions -------------------- - -When ``django.contrib.auth`` is listed in your :setting:`INSTALLED_APPS` -setting, it will ensure that three default permissions -- add, change and -delete -- are created for each Django model defined in one of your installed -applications. - -These permissions will be created when you run :djadmin:`manage.py syncdb -`; the first time you run ``syncdb`` after adding -``django.contrib.auth`` to :setting:`INSTALLED_APPS`, the default permissions -will be created for all previously-installed models, as well as for any new -models being installed at that time. Afterward, it will create default -permissions for new models each time you run :djadmin:`manage.py syncdb -`. - -Assuming you have an application with an -:attr:`~django.db.models.Options.app_label` ``foo`` and a model named ``Bar``, -to test for basic permissions you should use: - -* add: ``user.has_perm('foo.add_bar')`` -* change: ``user.has_perm('foo.change_bar')`` -* delete: ``user.has_perm('foo.delete_bar')`` - -.. _custom-permissions: - -Custom permissions ------------------- - -To create custom permissions for a given model object, use the ``permissions`` -:ref:`model Meta attribute `. - -This example Task model creates three custom permissions, i.e., actions users -can or cannot do with Task instances, specific to your application:: - - class Task(models.Model): - ... - class Meta: - permissions = ( - ("view_task", "Can see available tasks"), - ("change_task_status", "Can change the status of tasks"), - ("close_task", "Can remove a task by setting its status as closed"), - ) - -The only thing this does is create those extra permissions when you run -:djadmin:`manage.py syncdb `. Your code is in charge of checking the -value of these permissions when an user is trying to access the functionality -provided by the application (viewing tasks, changing the status of tasks, -closing tasks.) Continuing the above example, the following checks if a user may -view tasks:: - - user.has_perm('app.view_task') - -API reference -------------- - -.. currentmodule:: django.contrib.auth.models - -.. class:: models.Permission - -Fields -~~~~~~ - -:class:`~django.contrib.auth.models.Permission` objects have the following -fields: - -.. attribute:: Permission.name - - Required. 50 characters or fewer. Example: ``'Can vote'``. - -.. attribute:: Permission.content_type - - Required. A reference to the ``django_content_type`` database table, which - contains a record for each installed Django model. - -.. attribute:: Permission.codename - - Required. 100 characters or fewer. Example: ``'can_vote'``. - -Methods -~~~~~~~ - -:class:`~django.contrib.auth.models.Permission` objects have the standard -data-access methods like any other :doc:`Django model `. - -.. currentmodule:: django.contrib.auth - -Programmatically creating permissions -------------------------------------- - -While custom permissions can be defined within a model's ``Meta`` class, you -can also create permissions directly. For example, you can create the -``can_publish`` permission for a ``BlogPost`` model in ``myapp``:: - - from django.contrib.auth.models import Group, Permission - from django.contrib.contenttypes.models import ContentType - - content_type = ContentType.objects.get(app_label='myapp', model='BlogPost') - permission = Permission.objects.create(codename='can_publish', - name='Can Publish Posts', - content_type=content_type) - -The permission can then be assigned to a -:class:`~django.contrib.auth.models.User` via its ``user_permissions`` -attribute or to a :class:`~django.contrib.auth.models.Group` via its -``permissions`` attribute. - -Authentication data in templates -================================ - -The currently logged-in user and his/her permissions are made available in the -:doc:`template context ` when you use -:class:`~django.template.context.RequestContext`. - -.. admonition:: Technicality - - Technically, these variables are only made available in the template context - if you use :class:`~django.template.context.RequestContext` *and* your - :setting:`TEMPLATE_CONTEXT_PROCESSORS` setting contains - ``"django.contrib.auth.context_processors.auth"``, which is default. For - more, see the :ref:`RequestContext docs `. - -Users ------ - -When rendering a template :class:`~django.template.context.RequestContext`, the -currently logged-in user, either a :class:`~django.contrib.auth.models.User` -instance or an :class:`~django.contrib.auth.models.AnonymousUser` instance, is -stored in the template variable ``{{ user }}``: - -.. code-block:: html+django - - {% if user.is_authenticated %} -

    Welcome, {{ user.username }}. Thanks for logging in.

    - {% else %} -

    Welcome, new user. Please log in.

    - {% endif %} - -This template context variable is not available if a ``RequestContext`` is not -being used. - -Permissions ------------ - -The currently logged-in user's permissions are stored in the template variable -``{{ perms }}``. This is an instance of -:class:`django.contrib.auth.context_processors.PermWrapper`, which is a -template-friendly proxy of permissions. - -In the ``{{ perms }}`` object, single-attribute lookup is a proxy to -:meth:`User.has_module_perms `. -This example would display ``True`` if the logged-in user had any permissions -in the ``foo`` app:: - - {{ perms.foo }} - -Two-level-attribute lookup is a proxy to -:meth:`User.has_perm `. This example -would display ``True`` if the logged-in user had the permission -``foo.can_vote``:: - - {{ perms.foo.can_vote }} - -Thus, you can check permissions in template ``{% if %}`` statements: - -.. code-block:: html+django - - {% if perms.foo %} -

    You have permission to do something in the foo app.

    - {% if perms.foo.can_vote %} -

    You can vote!

    - {% endif %} - {% if perms.foo.can_drive %} -

    You can drive!

    - {% endif %} - {% else %} -

    You don't have permission to do anything in the foo app.

    - {% endif %} - -.. versionadded:: 1.5 - Permission lookup by "if in". - -It is possible to also look permissions up by ``{% if in %}`` statements. -For example: - -.. code-block:: html+django - - {% if 'foo' in perms %} - {% if 'foo.can_vote' in perms %} -

    In lookup works, too.

    - {% endif %} - {% endif %} - -Groups -====== - -Groups are a generic way of categorizing users so you can apply permissions, or -some other label, to those users. A user can belong to any number of groups. - -A user in a group automatically has the permissions granted to that group. For -example, if the group ``Site editors`` has the permission -``can_edit_home_page``, any user in that group will have that permission. - -Beyond permissions, groups are a convenient way to categorize users to give -them some label, or extended functionality. For example, you could create a -group ``'Special users'``, and you could write code that could, say, give them -access to a members-only portion of your site, or send them members-only email -messages. - -API reference -------------- - -.. class:: models.Group - -Fields -~~~~~~ - -:class:`~django.contrib.auth.models.Group` objects have the following fields: - -.. attribute:: Group.name - - Required. 80 characters or fewer. Any characters are permitted. Example: - ``'Awesome Users'``. - -.. attribute:: Group.permissions - - Many-to-many field to :class:`~django.contrib.auth.models.Permissions`:: - - group.permissions = [permission_list] - group.permissions.add(permission, permission, ...) - group.permissions.remove(permission, permission, ...) - group.permissions.clear() - -.. _auth-custom-user: - -Customizing the User model -========================== - -.. versionadded:: 1.5 - -Some kinds of projects may have authentication requirements for which Django's -built-in :class:`~django.contrib.auth.models.User` model is not always -appropriate. For instance, on some sites it makes more sense to use an email -address as your identification token instead of a username. - -Django allows you to override the default User model by providing a value for -the :setting:`AUTH_USER_MODEL` setting that references a custom model:: - - AUTH_USER_MODEL = 'myapp.MyUser' - -This dotted pair describes the name of the Django app, and the name of the Django -model that you wish to use as your User model. - -.. admonition:: Warning - - Changing :setting:`AUTH_USER_MODEL` has a big effect on your database - structure. It changes the tables that are available, and it will affect the - construction of foreign keys and many-to-many relationships. If you intend - to set :setting:`AUTH_USER_MODEL`, you should set it before running - ``manage.py syncdb`` for the first time. - - If you have an existing project and you want to migrate to using a custom - User model, you may need to look into using a migration tool like South_ - to ease the transition. - -.. _South: http://south.aeracode.org - -Referencing the User model --------------------------- - -If you reference :class:`~django.contrib.auth.models.User` directly (for -example, by referring to it in a foreign key), your code will not work in -projects where the :setting:`AUTH_USER_MODEL` setting has been changed to a -different User model. - -Instead of referring to :class:`~django.contrib.auth.models.User` directly, -you should reference the user model using -:func:`django.contrib.auth.get_user_model()`. This method will return the -currently active User model -- the custom User model if one is specified, or -:class:`~django.contrib.auth.User` otherwise. - -When you define a foreign key or many-to-many relations to the User model, -you should specify the custom model using the :setting:`AUTH_USER_MODEL` -setting. For example:: - - from django.conf import settings - from django.db import models - - class Article(models.Model) - author = models.ForeignKey(settings.AUTH_USER_MODEL) - -Specifying a custom User model ------------------------------- - -.. admonition:: Model design considerations - - Think carefully before handling information not directly related to - authentication in your custom User Model. - - It may be better to store app-specific user information in a model - that has a relation with the User model. That allows each app to specify - its own user data requirements without risking conflicts with other - apps. On the other hand, queries to retrieve this related information - will involve a database join, which may have an effect on performance. - -Django expects your custom User model to meet some minimum requirements. - -1. Your model must have a single unique field that can be used for - identification purposes. This can be a username, an email address, - or any other unique attribute. - -2. Your model must provide a way to address the user in a "short" and - "long" form. The most common interpretation of this would be to use - the user's given name as the "short" identifier, and the user's full - name as the "long" identifier. However, there are no constraints on - what these two methods return - if you want, they can return exactly - the same value. - -The easiest way to construct a compliant custom User model is to inherit from -:class:`~django.contrib.auth.models.AbstractBaseUser`. -:class:`~django.contrib.auth.models.AbstractBaseUser` provides the core -implementation of a `User` model, including hashed passwords and tokenized -password resets. You must then provide some key implementation details: - -.. class:: models.CustomUser - - .. attribute:: User.USERNAME_FIELD - - A string describing the name of the field on the User model that is - used as the unique identifier. This will usually be a username of - some kind, but it can also be an email address, or any other unique - identifier. In the following example, the field `identifier` is used - as the identifying field:: - - class MyUser(AbstractBaseUser): - identifier = models.CharField(max_length=40, unique=True, db_index=True) - ... - USERNAME_FIELD = 'identifier' - - .. attribute:: User.REQUIRED_FIELDS - - A list of the field names that *must* be provided when creating - a user. For example, here is the partial definition for a User model - that defines two required fields - a date of birth and height:: - - class MyUser(AbstractBaseUser): - ... - date_of_birth = models.DateField() - height = models.FloatField() - ... - REQUIRED_FIELDS = ['date_of_birth', 'height'] - - .. note:: - - ``REQUIRED_FIELDS`` must contain all required fields on your User - model, but should *not* contain the ``USERNAME_FIELD``. - - .. attribute:: User.is_active - - A boolean attribute that indicates whether the user is considered - "active". This attribute is provided as an attribute on - ``AbstractBaseUser`` defaulting to ``True``. How you choose to - implement it will depend on the details of your chosen auth backends. - See the documentation of the :attr:`attribute on the builtin user model - ` for details. - - .. method:: User.get_full_name(): - - A longer formal identifier for the user. A common interpretation - would be the full name name of the user, but it can be any string that - identifies the user. - - .. method:: User.get_short_name(): - - A short, informal identifier for the user. A common interpretation - would be the first name of the user, but it can be any string that - identifies the user in an informal way. It may also return the same - value as :meth:`django.contrib.auth.User.get_full_name()`. - -The following methods are available on any subclass of -:class:`~django.contrib.auth.models.AbstractBaseUser`: - -.. class:: models.AbstractBaseUser - - .. method:: models.AbstractBaseUser.get_username() - - Returns the value of the field nominated by ``USERNAME_FIELD``. - - .. method:: models.AbstractBaseUser.is_anonymous() - - Always returns ``False``. This is a way of differentiating - from :class:`~django.contrib.auth.models.AnonymousUser` objects. - Generally, you should prefer using - :meth:`~django.contrib.auth.models.AbstractBaseUser.is_authenticated()` to this - method. - - .. method:: models.AbstractBaseUser.is_authenticated() - - Always returns ``True``. This is a way to tell if the user has been - authenticated. This does not imply any permissions, and doesn't check - if the user is active - it only indicates that the user has provided a - valid username and password. - - .. method:: models.AbstractBaseUser.set_password(raw_password) - - Sets the user's password to the given raw string, taking care of the - password hashing. Doesn't save the - :class:`~django.contrib.auth.models.AbstractBaseUser` object. - - .. method:: models.AbstractBaseUser.check_password(raw_password) - - Returns ``True`` if the given raw string is the correct password for - the user. (This takes care of the password hashing in making the - comparison.) - - .. method:: models.AbstractBaseUser.set_unusable_password() - - Marks the user as having no password set. This isn't the same as - having a blank string for a password. - :meth:`~django.contrib.auth.models.AbstractBaseUser.check_password()` for this user - will never return ``True``. Doesn't save the - :class:`~django.contrib.auth.models.AbstractBaseUser` object. - - You may need this if authentication for your application takes place - against an existing external source such as an LDAP directory. - - .. method:: models.AbstractBaseUser.has_usable_password() - - Returns ``False`` if - :meth:`~django.contrib.auth.models.AbstractBaseUser.set_unusable_password()` has - been called for this user. - - -You should also define a custom manager for your User model. If your User -model defines `username` and `email` fields the same as Django's default User, -you can just install Django's -:class:`~django.contrib.auth.models.UserManager`; however, if your User model -defines different fields, you will need to define a custom manager that -extends :class:`~django.contrib.auth.models.BaseUserManager` providing two -additional methods: - -.. class:: models.CustomUserManager - - .. method:: models.CustomUserManager.create_user(*username_field*, password=None, **other_fields) - - The prototype of `create_user()` should accept the username field, - plus all required fields as arguments. For example, if your user model - uses `email` as the username field, and has `date_of_birth` as a required - fields, then create_user should be defined as:: - - def create_user(self, email, date_of_birth, password=None): - # create user here - - .. method:: models.CustomUserManager.create_superuser(*username_field*, password, **other_fields) - - The prototype of `create_superuser()` should accept the username field, - plus all required fields as arguments. For example, if your user model - uses `email` as the username field, and has `date_of_birth` as a required - fields, then create_superuser should be defined as:: - - def create_superuser(self, email, date_of_birth, password): - # create superuser here - - Unlike `create_user()`, `create_superuser()` *must* require the caller - to provider a password. - -:class:`~django.contrib.auth.models.BaseUserManager` provides the following -utility methods: - -.. class:: models.BaseUserManager - - .. method:: models.BaseUserManager.normalize_email(email) - - A classmethod that normalizes email addresses by lowercasing - the domain portion of the email address. - - .. method:: models.BaseUserManager.get_by_natural_key(username) - - Retrieves a user instance using the contents of the field - nominated by ``USERNAME_FIELD``. - - .. method:: models.BaseUserManager.make_random_password(length=10, allowed_chars='abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789') - - Returns a random password with the given length and given string of - allowed characters. (Note that the default value of ``allowed_chars`` - doesn't contain letters that can cause user confusion, including: - - * ``i``, ``l``, ``I``, and ``1`` (lowercase letter i, lowercase - letter L, uppercase letter i, and the number one) - * ``o``, ``O``, and ``0`` (uppercase letter o, lowercase letter o, - and zero) - -Extending Django's default User -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -If you're entirely happy with Django's :class:`~django.contrib.auth.models.User` -model and you just want to add some additional profile information, you can -simply subclass :class:`~django.contrib.auth.models.AbstractUser` and add your -custom profile fields. - -Custom users and the built-in auth forms -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -As you may expect, built-in Django's :ref:`forms ` -and :ref:`views ` make certain assumptions about -the user model that they are working with. - -If your user model doesn't follow the same assumptions, it may be necessary to define -a replacement form, and pass that form in as part of the configuration of the -auth views. - -* :class:`~django.contrib.auth.forms.UserCreationForm` - - Depends on the :class:`~django.contrib.auth.models.User` model. - Must be re-written for any custom user model. - -* :class:`~django.contrib.auth.forms.UserChangeForm` - - Depends on the :class:`~django.contrib.auth.models.User` model. - Must be re-written for any custom user model. - -* :class:`~django.contrib.auth.forms.AuthenticationForm` - - Works with any subclass of :class:`~django.contrib.auth.models.AbstractBaseUser`, - and will adapt to use the field defined in `USERNAME_FIELD`. - -* :class:`~django.contrib.auth.forms.PasswordResetForm` - - Assumes that the user model has an integer primary key, has a field named - `email` that can be used to identify the user, and a boolean field - named `is_active` to prevent password resets for inactive users. - -* :class:`~django.contrib.auth.forms.SetPasswordForm` - - Works with any subclass of :class:`~django.contrib.auth.models.AbstractBaseUser` - -* :class:`~django.contrib.auth.forms.PasswordChangeForm` - - Works with any subclass of :class:`~django.contrib.auth.models.AbstractBaseUser` - -* :class:`~django.contrib.auth.forms.AdminPasswordChangeForm` - - Works with any subclass of :class:`~django.contrib.auth.models.AbstractBaseUser` - - -Custom users and django.contrib.admin -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -If you want your custom User model to also work with Admin, your User model must -define some additional attributes and methods. These methods allow the admin to -control access of the User to admin content: - -.. attribute:: User.is_staff - - Returns True if the user is allowed to have access to the admin site. - -.. attribute:: User.is_active - - Returns True if the user account is currently active. - -.. method:: User.has_perm(perm, obj=None): - - Returns True if the user has the named permission. If `obj` is - provided, the permission needs to be checked against a specific object - instance. - -.. method:: User.has_module_perms(app_label): - - Returns True if the user has permission to access models in - the given app. - -You will also need to register your custom User model with the admin. If -your custom User model extends :class:`~django.contrib.auth.models.AbstractUser`, -you can use Django's existing :class:`~django.contrib.auth.admin.UserAdmin` -class. However, if your User model extends -:class:`~django.contrib.auth.models.AbstractBaseUser`, you'll need to define -a custom ModelAdmin class. It may be possible to subclass the default -:class:`~django.contrib.auth.admin.UserAdmin`; however, you'll need to -override any of the definitions that refer to fields on -:class:`~django.contrib.auth.models.AbstractUser` that aren't on your -custom User class. - -Custom users and permissions -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -To make it easy to include Django's permission framework into your own User -class, Django provides :class:`~django.contrib.auth.model.PermissionsMixin`. -This is an abstract model you can include in the class heirarchy for your User -model, giving you all the methods and database fields necessary to support -Django's permission model. - -:class:`~django.contrib.auth.model.PermissionsMixin` provides the following -methods and attributes: - -.. class:: models.PermissionsMixin - - .. attribute:: models.PermissionsMixin.is_superuser - - Boolean. Designates that this user has all permissions without - explicitly assigning them. - - .. method:: models.PermissionsMixin.get_group_permissions(obj=None) - - Returns a set of permission strings that the user has, through his/her - groups. - - If ``obj`` is passed in, only returns the group permissions for - this specific object. - - .. method:: models.PermissionsMixin.get_all_permissions(obj=None) - - Returns a set of permission strings that the user has, both through - group and user permissions. - - If ``obj`` is passed in, only returns the permissions for this - specific object. - - .. method:: models.PermissionsMixin.has_perm(perm, obj=None) - - Returns ``True`` if the user has the specified permission, where perm is - in the format ``"."`` (see - `permissions`_). If the user is inactive, this method will - always return ``False``. - - If ``obj`` is passed in, this method won't check for a permission for - the model, but for this specific object. - - .. method:: models.PermissionsMixin.has_perms(perm_list, obj=None) - - Returns ``True`` if the user has each of the specified permissions, - where each perm is in the format - ``"."``. If the user is inactive, - this method will always return ``False``. - - If ``obj`` is passed in, this method won't check for permissions for - the model, but for the specific object. - - .. method:: models.PermissionsMixin.has_module_perms(package_name) - - Returns ``True`` if the user has any permissions in the given package - (the Django app label). If the user is inactive, this method will - always return ``False``. - -.. admonition:: ModelBackend - - If you don't include the - :class:`~django.contrib.auth.model.PermissionsMixin`, you must ensure you - don't invoke the permissions methods on ``ModelBackend``. ``ModelBackend`` - assumes that certain fields are available on your user model. If your User - model doesn't provide those fields, you will receive database errors when - you check permissions. - -Custom users and Proxy models -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -One limitation of custom User models is that installing a custom User model -will break any proxy model extending :class:`~django.contrib.auth.models.User`. -Proxy models must be based on a concrete base class; by defining a custom User -model, you remove the ability of Django to reliably identify the base class. - -If your project uses proxy models, you must either modify the proxy to extend -the User model that is currently in use in your project, or merge your proxy's -behavior into your User subclass. - -Custom users and signals -~~~~~~~~~~~~~~~~~~~~~~~~ - -Another limitation of custom User models is that you can't use -:func:`django.contrib.auth.get_user_model()` as the sender or target of a signal -handler. Instead, you must register the handler with the actual User model. - -Custom users and testing/fixtures -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -If you are writing an application that interacts with the User model, you must -take some precautions to ensure that your test suite will run regardless of -the User model that is being used by a project. Any test that instantiates an -instance of User will fail if the User model has been swapped out. This -includes any attempt to create an instance of User with a fixture. - -To ensure that your test suite will pass in any project configuration, -``django.contrib.auth.tests.utils`` defines a ``@skipIfCustomUser`` decorator. -This decorator will cause a test case to be skipped if any User model other -than the default Django user is in use. This decorator can be applied to a -single test, or to an entire test class. - -Depending on your application, tests may also be needed to be added to ensure -that the application works with *any* user model, not just the default User -model. To assist with this, Django provides two substitute user models that -can be used in test suites: - -* :class:`django.contrib.auth.tests.custom_user.CustomUser`, a custom user - model that uses an ``email`` field as the username, and has a basic - admin-compliant permissions setup - -* :class:`django.contrib.auth.tests.custom_user.ExtensionUser`, a custom - user model that extends :class:`~django.contrib.auth.models.AbstractUser`, - adding a ``date_of_birth`` field. - -You can then use the ``@override_settings`` decorator to make that test run -with the custom User model. For example, here is a skeleton for a test that -would test three possible User models -- the default, plus the two User -models provided by ``auth`` app:: - - from django.contrib.auth.tests.utils import skipIfCustomUser - from django.test import TestCase - from django.test.utils import override_settings - - - class ApplicationTestCase(TestCase): - @skipIfCustomUser - def test_normal_user(self): - "Run tests for the normal user model" - self.assertSomething() - - @override_settings(AUTH_USER_MODEL='auth.CustomUser') - def test_custom_user(self): - "Run tests for a custom user model with email-based authentication" - self.assertSomething() - - @override_settings(AUTH_USER_MODEL='auth.ExtensionUser') - def test_extension_user(self): - "Run tests for a simple extension of the built-in User." - self.assertSomething() - - -A full example --------------- - -Here is an example of an admin-compliant custom user app. This user model uses -an email address as the username, and has a required date of birth; it -provides no permission checking, beyond a simple `admin` flag on the user -account. This model would be compatible with all the built-in auth forms and -views, except for the User creation forms. - -This code would all live in a ``models.py`` file for a custom -authentication app:: - - from django.db import models - from django.contrib.auth.models import ( - BaseUserManager, AbstractBaseUser - ) - - - class MyUserManager(BaseUserManager): - def create_user(self, email, date_of_birth, password=None): - """ - Creates and saves a User with the given email, date of - birth and password. - """ - if not email: - raise ValueError('Users must have an email address') - - user = self.model( - email=MyUserManager.normalize_email(email), - date_of_birth=date_of_birth, - ) - - user.set_password(password) - user.save(using=self._db) - return user - - def create_superuser(self, email, date_of_birth, password): - """ - Creates and saves a superuser with the given email, date of - birth and password. - """ - user = self.create_user(email, - password=password, - date_of_birth=date_of_birth - ) - user.is_admin = True - user.save(using=self._db) - return user - - - class MyUser(AbstractBaseUser): - email = models.EmailField( - verbose_name='email address', - max_length=255, - unique=True, - db_index=True, - ) - date_of_birth = models.DateField() - is_active = models.BooleanField(default=True) - is_admin = models.BooleanField(default=False) - - objects = MyUserManager() - - USERNAME_FIELD = 'email' - REQUIRED_FIELDS = ['date_of_birth'] - - def get_full_name(self): - # The user is identified by their email address - return self.email - - def get_short_name(self): - # The user is identified by their email address - return self.email - - def __unicode__(self): - return self.email - - def has_perm(self, perm, obj=None): - "Does the user have a specific permission?" - # Simplest possible answer: Yes, always - return True - - def has_module_perms(self, app_label): - "Does the user have permissions to view the app `app_label`?" - # Simplest possible answer: Yes, always - return True - - @property - def is_staff(self): - "Is the user a member of staff?" - # Simplest possible answer: All admins are staff - return self.is_admin - -Then, to register this custom User model with Django's admin, the following -code would be required in the app's ``admin.py`` file:: - - from django import forms - from django.contrib import admin - from django.contrib.auth.models import Group - from django.contrib.auth.admin import UserAdmin - from django.contrib.auth.forms import ReadOnlyPasswordHashField - - from customauth.models import MyUser - - - class UserCreationForm(forms.ModelForm): - """A form for creating new users. Includes all the required - fields, plus a repeated password.""" - password1 = forms.CharField(label='Password', widget=forms.PasswordInput) - password2 = forms.CharField(label='Password confirmation', widget=forms.PasswordInput) - - class Meta: - model = MyUser - fields = ('email', 'date_of_birth') - - def clean_password2(self): - # Check that the two password entries match - password1 = self.cleaned_data.get("password1") - password2 = self.cleaned_data.get("password2") - if password1 and password2 and password1 != password2: - raise forms.ValidationError("Passwords don't match") - return password2 - - def save(self, commit=True): - # Save the provided password in hashed format - user = super(UserCreationForm, self).save(commit=False) - user.set_password(self.cleaned_data["password1"]) - if commit: - user.save() - return user - - - class UserChangeForm(forms.ModelForm): - """A form for updating users. Includes all the fields on - the user, but replaces the password field with admin's - password hash display field. - """ - password = ReadOnlyPasswordHashField() - - class Meta: - model = MyUser - - def clean_password(self): - # Regardless of what the user provides, return the initial value. - # This is done here, rather than on the field, because the - # field does not have access to the initial value - return self.initial["password"] - - - class MyUserAdmin(UserAdmin): - # The forms to add and change user instances - form = UserChangeForm - add_form = UserCreationForm - - # The fields to be used in displaying the User model. - # These override the definitions on the base UserAdmin - # that reference specific fields on auth.User. - list_display = ('email', 'date_of_birth', 'is_admin') - list_filter = ('is_admin',) - fieldsets = ( - (None, {'fields': ('email', 'password')}), - ('Personal info', {'fields': ('date_of_birth',)}), - ('Permissions', {'fields': ('is_admin',)}), - ('Important dates', {'fields': ('last_login',)}), - ) - add_fieldsets = ( - (None, { - 'classes': ('wide',), - 'fields': ('email', 'date_of_birth', 'password1', 'password2')} - ), - ) - search_fields = ('email',) - ordering = ('email',) - filter_horizontal = () - - # Now register the new UserAdmin... - admin.site.register(MyUser, MyUserAdmin) - # ... and, since we're not using Django's builtin permissions, - # unregister the Group model from admin. - admin.site.unregister(Group) - -.. _authentication-backends: - -Other authentication sources -============================ - -The authentication that comes with Django is good enough for most common cases, -but you may have the need to hook into another authentication source -- that -is, another source of usernames and passwords or authentication methods. - -For example, your company may already have an LDAP setup that stores a username -and password for every employee. It'd be a hassle for both the network -administrator and the users themselves if users had separate accounts in LDAP -and the Django-based applications. - -So, to handle situations like this, the Django authentication system lets you -plug in other authentication sources. You can override Django's default -database-based scheme, or you can use the default system in tandem with other -systems. - -See the :doc:`authentication backend reference ` -for information on the authentication backends included with Django. - -Specifying authentication backends ----------------------------------- - -Behind the scenes, Django maintains a list of "authentication backends" that it -checks for authentication. When somebody calls -:func:`django.contrib.auth.authenticate()` -- as described in :ref:`How to log -a user in ` above -- Django tries authenticating across -all of its authentication backends. If the first authentication method fails, -Django tries the second one, and so on, until all backends have been attempted. - -The list of authentication backends to use is specified in the -:setting:`AUTHENTICATION_BACKENDS` setting. This should be a tuple of Python -path names that point to Python classes that know how to authenticate. These -classes can be anywhere on your Python path. - -By default, :setting:`AUTHENTICATION_BACKENDS` is set to:: - - ('django.contrib.auth.backends.ModelBackend',) - -That's the basic authentication backend that checks the Django users database -and queries the builtin permissions. It does not provide protection against -brute force attacks via any rate limiting mechanism. You may either implement -your own rate limiting mechanism in a custom auth backend, or use the -mechanisms provided by most Web servers. - -The order of :setting:`AUTHENTICATION_BACKENDS` matters, so if the same -username and password is valid in multiple backends, Django will stop -processing at the first positive match. - -.. note:: - - Once a user has authenticated, Django stores which backend was used to - authenticate the user in the user's session, and re-uses the same backend - for the duration of that session whenever access to the currently - authenticated user is needed. This effectively means that authentication - sources are cached on a per-session basis, so if you change - :setting:`AUTHENTICATION_BACKENDS`, you'll need to clear out session data if - you need to force users to re-authenticate using different methods. A simple - way to do that is simply to execute ``Session.objects.all().delete()``. - -.. versionadded:: 1.6 - -If a backend raises a :class:`~django.core.exceptions.PermissionDenied` -exception, authentication will immediately fail. Django won't check the -backends that follow. - -Writing an authentication backend ---------------------------------- - -An authentication backend is a class that implements two required methods: -``get_user(user_id)`` and ``authenticate(**credentials)``, as well as a set of -optional permission related :ref:`authorization methods `. - -The ``get_user`` method takes a ``user_id`` -- which could be a username, -database ID or whatever -- and returns a ``User`` object. - -The ``authenticate`` method takes credentials as keyword arguments. Most of -the time, it'll just look like this:: - - class MyBackend(object): - def authenticate(self, username=None, password=None): - # Check the username/password and return a User. - -But it could also authenticate a token, like so:: - - class MyBackend(object): - def authenticate(self, token=None): - # Check the token and return a User. - -Either way, ``authenticate`` should check the credentials it gets, and it -should return a ``User`` object that matches those credentials, if the -credentials are valid. If they're not valid, it should return ``None``. - -The Django admin system is tightly coupled to the Django ``User`` object -described at the beginning of this document. For now, the best way to deal with -this is to create a Django ``User`` object for each user that exists for your -backend (e.g., in your LDAP directory, your external SQL database, etc.) You -can either write a script to do this in advance, or your ``authenticate`` -method can do it the first time a user logs in. - -Here's an example backend that authenticates against a username and password -variable defined in your ``settings.py`` file and creates a Django ``User`` -object the first time a user authenticates:: - - from django.conf import settings - from django.contrib.auth.models import User, check_password - - class SettingsBackend(object): - """ - Authenticate against the settings ADMIN_LOGIN and ADMIN_PASSWORD. - - Use the login name, and a hash of the password. For example: - - ADMIN_LOGIN = 'admin' - ADMIN_PASSWORD = 'sha1$4e987$afbcf42e21bd417fb71db8c66b321e9fc33051de' - """ - - def authenticate(self, username=None, password=None): - login_valid = (settings.ADMIN_LOGIN == username) - pwd_valid = check_password(password, settings.ADMIN_PASSWORD) - if login_valid and pwd_valid: - try: - user = User.objects.get(username=username) - except User.DoesNotExist: - # Create a new user. Note that we can set password - # to anything, because it won't be checked; the password - # from settings.py will. - user = User(username=username, password='get from settings.py') - user.is_staff = True - user.is_superuser = True - user.save() - return user - return None - - def get_user(self, user_id): - try: - return User.objects.get(pk=user_id) - except User.DoesNotExist: - return None - -.. _authorization_methods: - -Handling authorization in custom backends ------------------------------------------ - -Custom auth backends can provide their own permissions. - -The user model will delegate permission lookup functions -(:meth:`~django.contrib.auth.models.User.get_group_permissions()`, -:meth:`~django.contrib.auth.models.User.get_all_permissions()`, -:meth:`~django.contrib.auth.models.User.has_perm()`, and -:meth:`~django.contrib.auth.models.User.has_module_perms()`) to any -authentication backend that implements these functions. - -The permissions given to the user will be the superset of all permissions -returned by all backends. That is, Django grants a permission to a user that -any one backend grants. - -The simple backend above could implement permissions for the magic admin -fairly simply:: - - class SettingsBackend(object): - - # ... - - def has_perm(self, user_obj, perm, obj=None): - if user_obj.username == settings.ADMIN_LOGIN: - return True - else: - return False - -This gives full permissions to the user granted access in the above example. -Notice that in addition to the same arguments given to the associated -:class:`django.contrib.auth.models.User` functions, the backend auth functions -all take the user object, which may be an anonymous user, as an argument. - -A full authorization implementation can be found in the ``ModelBackend`` class -in `django/contrib/auth/backends.py`_, which is the default backend and queries -the ``auth_permission`` table most of the time. If you wish to provide -custom behavior for only part of the backend API, you can take advantage of -Python inheritence and subclass ``ModelBackend`` instead of implementing the -complete API in a custom backend. - -.. _django/contrib/auth/backends.py: https://github.com/django/django/blob/master/django/contrib/auth/backends.py - -.. _anonymous_auth: - -Authorization for anonymous users -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -An anonymous user is one that is not authenticated i.e. they have provided no -valid authentication details. However, that does not necessarily mean they are -not authorized to do anything. At the most basic level, most Web sites -authorize anonymous users to browse most of the site, and many allow anonymous -posting of comments etc. - -Django's permission framework does not have a place to store permissions for -anonymous users. However, the user object passed to an authentication backend -may be an :class:`django.contrib.auth.models.AnonymousUser` object, allowing -the backend to specify custom authorization behavior for anonymous users. This -is especially useful for the authors of re-usable apps, who can delegate all -questions of authorization to the auth backend, rather than needing settings, -for example, to control anonymous access. - -.. _inactive_auth: - -Authorization for inactive users -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -An inactive user is a one that is authenticated but has its attribute -``is_active`` set to ``False``. However this does not mean they are not -authorized to do anything. For example they are allowed to activate their -account. - -The support for anonymous users in the permission system allows for a scenario -where anonymous users have permissions to do something while inactive -authenticated users do not. - -Do not forget to test for the ``is_active`` attribute of the user in your own -backend permission methods. - - -Handling object permissions -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Django's permission framework has a foundation for object permissions, though -there is no implementation for it in the core. That means that checking for -object permissions will always return ``False`` or an empty list (depending on -the check performed). An authentication backend will receive the keyword -parameters ``obj`` and ``user_obj`` for each object related authorization -method and can return the object level permission as appropriate. diff --git a/docs/topics/auth/customizing.txt b/docs/topics/auth/customizing.txt new file mode 100644 index 0000000000..5f48e82e2b --- /dev/null +++ b/docs/topics/auth/customizing.txt @@ -0,0 +1,1074 @@ +==================================== +Customizing authentication in Django +==================================== + +The authentication that comes with Django is good enough for most common cases, +but you may have needs not met by the out-of-the-box defaults. To customize +authentication to your projects needs involves understanding what points of the +provided system are extendible or replaceable. This document provides details +about how the auth system can be customized. + +:ref:`Authentication backends ` provide an extensible +system for when a username and password stored with the User model need +to be authenticated against a different service than Django's default. + +You can give your models :ref:`custom permissions ` that can be +checked through Django's authorization system. + +You can :ref:`extend ` the default User model, or :ref:`substitute +` a completely customized model. + +.. _authentication-backends: + +Other authentication sources +============================ + +There may be times you have the need to hook into another authentication source +-- that is, another source of usernames and passwords or authentication +methods. + +For example, your company may already have an LDAP setup that stores a username +and password for every employee. It'd be a hassle for both the network +administrator and the users themselves if users had separate accounts in LDAP +and the Django-based applications. + +So, to handle situations like this, the Django authentication system lets you +plug in other authentication sources. You can override Django's default +database-based scheme, or you can use the default system in tandem with other +systems. + +See the `authentication backend reference +` for information on the authentication +backends included with Django. + +Specifying authentication backends +---------------------------------- + +Behind the scenes, Django maintains a list of "authentication backends" that it +checks for authentication. When somebody calls +:func:`django.contrib.auth.authenticate()` -- as described in :ref:`How to log +a user in ` above -- Django tries authenticating across +all of its authentication backends. If the first authentication method fails, +Django tries the second one, and so on, until all backends have been attempted. + +The list of authentication backends to use is specified in the +:setting:`AUTHENTICATION_BACKENDS` setting. This should be a tuple of Python +path names that point to Python classes that know how to authenticate. These +classes can be anywhere on your Python path. + +By default, :setting:`AUTHENTICATION_BACKENDS` is set to:: + + ('django.contrib.auth.backends.ModelBackend',) + +That's the basic authentication backend that checks the Django users database +and queries the built-in permissions. It does not provide protection against +brute force attacks via any rate limiting mechanism. You may either implement +your own rate limiting mechanism in a custom auth backend, or use the +mechanisms provided by most Web servers. + +The order of :setting:`AUTHENTICATION_BACKENDS` matters, so if the same +username and password is valid in multiple backends, Django will stop +processing at the first positive match. + +.. note:: + + Once a user has authenticated, Django stores which backend was used to + authenticate the user in the user's session, and re-uses the same backend + for the duration of that session whenever access to the currently + authenticated user is needed. This effectively means that authentication + sources are cached on a per-session basis, so if you change + :setting:`AUTHENTICATION_BACKENDS`, you'll need to clear out session data if + you need to force users to re-authenticate using different methods. A simple + way to do that is simply to execute ``Session.objects.all().delete()``. + +.. versionadded:: 1.6 + +If a backend raises a :class:`~django.core.exceptions.PermissionDenied` +exception, authentication will immediately fail. Django won't check the +backends that follow. + +Writing an authentication backend +--------------------------------- + +An authentication backend is a class that implements two required methods: +``get_user(user_id)`` and ``authenticate(**credentials)``, as well as a set of +optional permission related :ref:`authorization methods `. + +The ``get_user`` method takes a ``user_id`` -- which could be a username, +database ID or whatever -- and returns a ``User`` object. + +The ``authenticate`` method takes credentials as keyword arguments. Most of +the time, it'll just look like this:: + + class MyBackend(object): + def authenticate(self, username=None, password=None): + # Check the username/password and return a User. + +But it could also authenticate a token, like so:: + + class MyBackend(object): + def authenticate(self, token=None): + # Check the token and return a User. + +Either way, ``authenticate`` should check the credentials it gets, and it +should return a ``User`` object that matches those credentials, if the +credentials are valid. If they're not valid, it should return ``None``. + +The Django admin system is tightly coupled to the Django ``User`` object +described at the beginning of this document. For now, the best way to deal with +this is to create a Django ``User`` object for each user that exists for your +backend (e.g., in your LDAP directory, your external SQL database, etc.) You +can either write a script to do this in advance, or your ``authenticate`` +method can do it the first time a user logs in. + +Here's an example backend that authenticates against a username and password +variable defined in your ``settings.py`` file and creates a Django ``User`` +object the first time a user authenticates:: + + from django.conf import settings + from django.contrib.auth.models import User, check_password + + class SettingsBackend(object): + """ + Authenticate against the settings ADMIN_LOGIN and ADMIN_PASSWORD. + + Use the login name, and a hash of the password. For example: + + ADMIN_LOGIN = 'admin' + ADMIN_PASSWORD = 'sha1$4e987$afbcf42e21bd417fb71db8c66b321e9fc33051de' + """ + + def authenticate(self, username=None, password=None): + login_valid = (settings.ADMIN_LOGIN == username) + pwd_valid = check_password(password, settings.ADMIN_PASSWORD) + if login_valid and pwd_valid: + try: + user = User.objects.get(username=username) + except User.DoesNotExist: + # Create a new user. Note that we can set password + # to anything, because it won't be checked; the password + # from settings.py will. + user = User(username=username, password='get from settings.py') + user.is_staff = True + user.is_superuser = True + user.save() + return user + return None + + def get_user(self, user_id): + try: + return User.objects.get(pk=user_id) + except User.DoesNotExist: + return None + +.. _authorization_methods: + +Handling authorization in custom backends +----------------------------------------- + +Custom auth backends can provide their own permissions. + +The user model will delegate permission lookup functions +(:meth:`~django.contrib.auth.models.User.get_group_permissions()`, +:meth:`~django.contrib.auth.models.User.get_all_permissions()`, +:meth:`~django.contrib.auth.models.User.has_perm()`, and +:meth:`~django.contrib.auth.models.User.has_module_perms()`) to any +authentication backend that implements these functions. + +The permissions given to the user will be the superset of all permissions +returned by all backends. That is, Django grants a permission to a user that +any one backend grants. + +The simple backend above could implement permissions for the magic admin +fairly simply:: + + class SettingsBackend(object): + + # ... + + def has_perm(self, user_obj, perm, obj=None): + if user_obj.username == settings.ADMIN_LOGIN: + return True + else: + return False + +This gives full permissions to the user granted access in the above example. +Notice that in addition to the same arguments given to the associated +:class:`django.contrib.auth.models.User` functions, the backend auth functions +all take the user object, which may be an anonymous user, as an argument. + +A full authorization implementation can be found in the ``ModelBackend`` class +in `django/contrib/auth/backends.py`_, which is the default backend and queries +the ``auth_permission`` table most of the time. If you wish to provide +custom behavior for only part of the backend API, you can take advantage of +Python inheritance and subclass ``ModelBackend`` instead of implementing the +complete API in a custom backend. + +.. _django/contrib/auth/backends.py: https://github.com/django/django/blob/master/django/contrib/auth/backends.py + +.. _anonymous_auth: + +Authorization for anonymous users +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +An anonymous user is one that is not authenticated i.e. they have provided no +valid authentication details. However, that does not necessarily mean they are +not authorized to do anything. At the most basic level, most Web sites +authorize anonymous users to browse most of the site, and many allow anonymous +posting of comments etc. + +Django's permission framework does not have a place to store permissions for +anonymous users. However, the user object passed to an authentication backend +may be an :class:`django.contrib.auth.models.AnonymousUser` object, allowing +the backend to specify custom authorization behavior for anonymous users. This +is especially useful for the authors of re-usable apps, who can delegate all +questions of authorization to the auth backend, rather than needing settings, +for example, to control anonymous access. + +.. _inactive_auth: + +Authorization for inactive users +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +An inactive user is a one that is authenticated but has its attribute +``is_active`` set to ``False``. However this does not mean they are not +authorized to do anything. For example they are allowed to activate their +account. + +The support for anonymous users in the permission system allows for a scenario +where anonymous users have permissions to do something while inactive +authenticated users do not. + +Do not forget to test for the ``is_active`` attribute of the user in your own +backend permission methods. + + +Handling object permissions +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Django's permission framework has a foundation for object permissions, though +there is no implementation for it in the core. That means that checking for +object permissions will always return ``False`` or an empty list (depending on +the check performed). An authentication backend will receive the keyword +parameters ``obj`` and ``user_obj`` for each object related authorization +method and can return the object level permission as appropriate. + +.. _custom-permissions: + +Custom permissions +================== + +To create custom permissions for a given model object, use the ``permissions`` +:ref:`model Meta attribute `. + +This example Task model creates three custom permissions, i.e., actions users +can or cannot do with Task instances, specific to your application:: + + class Task(models.Model): + ... + class Meta: + permissions = ( + ("view_task", "Can see available tasks"), + ("change_task_status", "Can change the status of tasks"), + ("close_task", "Can remove a task by setting its status as closed"), + ) + +The only thing this does is create those extra permissions when you run +:djadmin:`manage.py syncdb `. Your code is in charge of checking the +value of these permissions when an user is trying to access the functionality +provided by the application (viewing tasks, changing the status of tasks, +closing tasks.) Continuing the above example, the following checks if a user may +view tasks:: + + user.has_perm('app.view_task') + +.. _extending-user: + +Extending the existing User model +================================= + +There are two ways to extend the default +:class:`~django.contrib.auth.models.User` model without substituting your own +model. If the changes you need are purely behavioral, and don't require any +change to what is stored in the database, you can create a :ref:`proxy model +` based on :class:`~django.contrib.auth.models.User`. This +allows for any of the features offered by proxy models including default +ordering, custom managers, or custom model methods. + +If you wish to store information related to ``User``, you can use a :ref:`one-to-one +relationship ` to a model containing the fields for +additional information. This one-to-one model is often called a profile model, +as it might store non-auth related information about a site user. For example +you might create an Employee model:: + + from django.contrib.auth.models import User + + class Employee(models.Model): + user = models.OneToOneField(User) + department = models.CharField(max_length=100) + +Assuming an existing Employee Fred Smith who has both a User and Employee +model, you can access the related information using Django's standard related +model conventions:: + + >>> u = User.objects.get(username='fsmith') + >>> freds_department = u.employee.department + +To add a profile model's fields to the user page in the admin, define an +:class:`~django.contrib.admin.InlineModelAdmin` (for this example, we'll use a +:class:`~django.contrib.admin.StackedInline`) in your app's ``admin.py`` and +add it to a ``UserAdmin`` class which is registered with the +:class:`~django.contrib.auth.models.User` class:: + + from django.contrib import admin + from django.contrib.auth.admin import UserAdmin + from django.contrib.auth.models import User + + from my_user_profile_app.models import Employee + + # Define an inline admin descriptor for Employee model + # which acts a bit like a singleton + class EmployeeInline(admin.StackedInline): + model = Employee + can_delete = False + verbose_name_plural = 'employee' + + # Define a new User admin + class UserAdmin(UserAdmin): + inlines = (EmployeeInline, ) + + # Re-register UserAdmin + admin.site.unregister(User) + admin.site.register(User, UserAdmin) + +These profile models are not special in any way - they are just Django models that +happen to have a one-to-one link with a User model. As such, they do not get +auto created when a user is created, but +a :attr:`django.db.models.signals.post_save` could be used to create or update +related models as appropriate. + +Note that using related models results in additional queries or joins to +retrieve the related data, and depending on your needs substituting the User +model and adding the related fields may be your better option. However +existing links to the default User model within your project's apps may justify +the extra database load. + +.. _auth-profiles: + +.. deprecated:: 1.5 + With the introduction of :ref:`custom User models `, + the use of :setting:`AUTH_PROFILE_MODULE` to define a single profile + model is no longer supported. See the + :doc:`Django 1.5 release notes` for more information. + +Prior to 1.5, a single profile model could be specified site-wide with the +setting :setting:`AUTH_PROFILE_MODULE` with a string consisting of the +following items, separated by a dot: + +1. The name of the application (case sensitive) in which the user + profile model is defined (in other words, the + name which was passed to :djadmin:`manage.py startapp ` to create + the application). + +2. The name of the model (not case sensitive) class. + +For example, if the profile model was a class named ``UserProfile`` and was +defined inside an application named ``accounts``, the appropriate setting would +be:: + + AUTH_PROFILE_MODULE = 'accounts.UserProfile' + +When a user profile model has been defined and specified in this manner, each +:class:`~django.contrib.auth.models.User` object will have a method -- +:class:`~django.contrib.auth.models.User.get_profile()` -- which returns the +instance of the user profile model associated with that +:class:`~django.contrib.auth.models.User`. + +The method :class:`~django.contrib.auth.models.User.get_profile()` +does not create a profile if one does not exist. + +.. _auth-custom-user: + +Substituting a custom User model +================================ + +.. versionadded:: 1.5 + +Some kinds of projects may have authentication requirements for which Django's +built-in :class:`~django.contrib.auth.models.User` model is not always +appropriate. For instance, on some sites it makes more sense to use an email +address as your identification token instead of a username. + +Django allows you to override the default User model by providing a value for +the :setting:`AUTH_USER_MODEL` setting that references a custom model:: + + AUTH_USER_MODEL = 'myapp.MyUser' + +This dotted pair describes the name of the Django app, and the name of the Django +model that you wish to use as your User model. + +.. admonition:: Warning + + Changing :setting:`AUTH_USER_MODEL` has a big effect on your database + structure. It changes the tables that are available, and it will affect the + construction of foreign keys and many-to-many relationships. If you intend + to set :setting:`AUTH_USER_MODEL`, you should set it before running + ``manage.py syncdb`` for the first time. + + If you have an existing project and you want to migrate to using a custom + User model, you may need to look into using a migration tool like South_ + to ease the transition. + +.. _South: http://south.aeracode.org + +Referencing the User model +-------------------------- + +.. currentmodule:: django.contrib.auth + +If you reference :class:`~django.contrib.auth.models.User` directly (for +example, by referring to it in a foreign key), your code will not work in +projects where the :setting:`AUTH_USER_MODEL` setting has been changed to a +different User model. + +.. function:: get_user_model() + + Instead of referring to :class:`~django.contrib.auth.models.User` directly, + you should reference the user model using + ``django.contrib.auth.get_user_model()``. This method will return the + currently active User model -- the custom User model if one is specified, or + :class:`~django.contrib.auth.models.User` otherwise. + + When you define a foreign key or many-to-many relations to the User model, + you should specify the custom model using the :setting:`AUTH_USER_MODEL` + setting. For example:: + + + from django.conf import settings + from django.db import models + + class Article(models.Model) + author = models.ForeignKey(settings.AUTH_USER_MODEL) + +Specifying a custom User model +------------------------------ + +.. admonition:: Model design considerations + + Think carefully before handling information not directly related to + authentication in your custom User Model. + + It may be better to store app-specific user information in a model + that has a relation with the User model. That allows each app to specify + its own user data requirements without risking conflicts with other + apps. On the other hand, queries to retrieve this related information + will involve a database join, which may have an effect on performance. + +Django expects your custom User model to meet some minimum requirements. + +1. Your model must have a single unique field that can be used for + identification purposes. This can be a username, an email address, + or any other unique attribute. + +2. Your model must provide a way to address the user in a "short" and + "long" form. The most common interpretation of this would be to use + the user's given name as the "short" identifier, and the user's full + name as the "long" identifier. However, there are no constraints on + what these two methods return - if you want, they can return exactly + the same value. + +The easiest way to construct a compliant custom User model is to inherit from +:class:`~django.contrib.auth.models.AbstractBaseUser`. +:class:`~django.contrib.auth.models.AbstractBaseUser` provides the core +implementation of a `User` model, including hashed passwords and tokenized +password resets. You must then provide some key implementation details: + +.. currentmodule:: django.contrib.auth + +.. class:: models.CustomUser + + .. attribute:: USERNAME_FIELD + + A string describing the name of the field on the User model that is + used as the unique identifier. This will usually be a username of + some kind, but it can also be an email address, or any other unique + identifier. In the following example, the field `identifier` is used + as the identifying field:: + + class MyUser(AbstractBaseUser): + identifier = models.CharField(max_length=40, unique=True, db_index=True) + ... + USERNAME_FIELD = 'identifier' + + .. attribute:: REQUIRED_FIELDS + + A list of the field names that *must* be provided when creating + a user. For example, here is the partial definition for a User model + that defines two required fields - a date of birth and height:: + + class MyUser(AbstractBaseUser): + ... + date_of_birth = models.DateField() + height = models.FloatField() + ... + REQUIRED_FIELDS = ['date_of_birth', 'height'] + + .. note:: + + ``REQUIRED_FIELDS`` must contain all required fields on your User + model, but should *not* contain the ``USERNAME_FIELD``. + + .. attribute:: is_active + + A boolean attribute that indicates whether the user is considered + "active". This attribute is provided as an attribute on + ``AbstractBaseUser`` defaulting to ``True``. How you choose to + implement it will depend on the details of your chosen auth backends. + See the documentation of the :attr:`attribute on the builtin user model + ` for details. + + .. method:: get_full_name() + + A longer formal identifier for the user. A common interpretation + would be the full name name of the user, but it can be any string that + identifies the user. + + .. method:: get_short_name() + + A short, informal identifier for the user. A common interpretation + would be the first name of the user, but it can be any string that + identifies the user in an informal way. It may also return the same + value as :meth:`django.contrib.auth.models.User.get_full_name()`. + +The following methods are available on any subclass of +:class:`~django.contrib.auth.models.AbstractBaseUser`: + +.. class:: models.AbstractBaseUser + + .. method:: get_username() + + Returns the value of the field nominated by ``USERNAME_FIELD``. + + .. method:: models.AbstractBaseUser.is_anonymous() + + Always returns ``False``. This is a way of differentiating + from :class:`~django.contrib.auth.models.AnonymousUser` objects. + Generally, you should prefer using + :meth:`~django.contrib.auth.models.AbstractBaseUser.is_authenticated()` to this + method. + + .. method:: models.AbstractBaseUser.is_authenticated() + + Always returns ``True``. This is a way to tell if the user has been + authenticated. This does not imply any permissions, and doesn't check + if the user is active - it only indicates that the user has provided a + valid username and password. + + .. method:: models.AbstractBaseUser.set_password(raw_password) + + Sets the user's password to the given raw string, taking care of the + password hashing. Doesn't save the + :class:`~django.contrib.auth.models.AbstractBaseUser` object. + + .. method:: models.AbstractBaseUser.check_password(raw_password) + + Returns ``True`` if the given raw string is the correct password for + the user. (This takes care of the password hashing in making the + comparison.) + + .. method:: models.AbstractBaseUser.set_unusable_password() + + Marks the user as having no password set. This isn't the same as + having a blank string for a password. + :meth:`~django.contrib.auth.models.AbstractBaseUser.check_password()` for this user + will never return ``True``. Doesn't save the + :class:`~django.contrib.auth.models.AbstractBaseUser` object. + + You may need this if authentication for your application takes place + against an existing external source such as an LDAP directory. + + .. method:: models.AbstractBaseUser.has_usable_password() + + Returns ``False`` if + :meth:`~django.contrib.auth.models.AbstractBaseUser.set_unusable_password()` has + been called for this user. + +You should also define a custom manager for your User model. If your User +model defines `username` and `email` fields the same as Django's default User, +you can just install Django's +:class:`~django.contrib.auth.models.UserManager`; however, if your User model +defines different fields, you will need to define a custom manager that +extends :class:`~django.contrib.auth.models.BaseUserManager` providing two +additional methods: + +.. class:: models.CustomUserManager + + .. method:: models.CustomUserManager.create_user(*username_field*, password=None, \**other_fields) + + The prototype of `create_user()` should accept the username field, + plus all required fields as arguments. For example, if your user model + uses `email` as the username field, and has `date_of_birth` as a required + fields, then create_user should be defined as:: + + def create_user(self, email, date_of_birth, password=None): + # create user here + + .. method:: models.CustomUserManager.create_superuser(*username_field*, password, \**other_fields) + + The prototype of `create_superuser()` should accept the username field, + plus all required fields as arguments. For example, if your user model + uses `email` as the username field, and has `date_of_birth` as a required + fields, then create_superuser should be defined as:: + + def create_superuser(self, email, date_of_birth, password): + # create superuser here + + Unlike `create_user()`, `create_superuser()` *must* require the caller + to provider a password. + +:class:`~django.contrib.auth.models.BaseUserManager` provides the following +utility methods: + +.. class:: models.BaseUserManager + + .. method:: models.BaseUserManager.normalize_email(email) + + A classmethod that normalizes email addresses by lowercasing + the domain portion of the email address. + + .. method:: models.BaseUserManager.get_by_natural_key(username) + + Retrieves a user instance using the contents of the field + nominated by ``USERNAME_FIELD``. + + .. method:: models.BaseUserManager.make_random_password(length=10, allowed_chars='abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789') + + Returns a random password with the given length and given string of + allowed characters. (Note that the default value of ``allowed_chars`` + doesn't contain letters that can cause user confusion, including: + + * ``i``, ``l``, ``I``, and ``1`` (lowercase letter i, lowercase + letter L, uppercase letter i, and the number one) + * ``o``, ``O``, and ``0`` (uppercase letter o, lowercase letter o, + and zero) + +Extending Django's default User +------------------------------- + +If you're entirely happy with Django's :class:`~django.contrib.auth.models.User` +model and you just want to add some additional profile information, you can +simply subclass ``django.contrib.auth.models.AbstractUser`` and add your +custom profile fields. This class provides the full implementation of the +default :class:`~django.contrib.auth.models.User` as an :ref:`abstract model +`. + +Custom users and the built-in auth forms +---------------------------------------- + +As you may expect, built-in Django's :ref:`forms ` and +:ref:`views ` make certain assumptions about the user +model that they are working with. + +If your user model doesn't follow the same assumptions, it may be necessary to define +a replacement form, and pass that form in as part of the configuration of the +auth views. + +* :class:`~django.contrib.auth.forms.UserCreationForm` + + Depends on the :class:`~django.contrib.auth.models.User` model. + Must be re-written for any custom user model. + +* :class:`~django.contrib.auth.forms.UserChangeForm` + + Depends on the :class:`~django.contrib.auth.models.User` model. + Must be re-written for any custom user model. + +* :class:`~django.contrib.auth.forms.AuthenticationForm` + + Works with any subclass of :class:`~django.contrib.auth.models.AbstractBaseUser`, + and will adapt to use the field defined in `USERNAME_FIELD`. + +* :class:`~django.contrib.auth.forms.PasswordResetForm` + + Assumes that the user model has an integer primary key, has a field named + `email` that can be used to identify the user, and a boolean field + named `is_active` to prevent password resets for inactive users. + +* :class:`~django.contrib.auth.forms.SetPasswordForm` + + Works with any subclass of :class:`~django.contrib.auth.models.AbstractBaseUser` + +* :class:`~django.contrib.auth.forms.PasswordChangeForm` + + Works with any subclass of :class:`~django.contrib.auth.models.AbstractBaseUser` + +* :class:`~django.contrib.auth.forms.AdminPasswordChangeForm` + + Works with any subclass of :class:`~django.contrib.auth.models.AbstractBaseUser` + + +Custom users and django.contrib.admin +------------------------------------- + +If you want your custom User model to also work with Admin, your User model must +define some additional attributes and methods. These methods allow the admin to +control access of the User to admin content: + +.. class:: models.CustomUser + +.. attribute:: is_staff + + Returns True if the user is allowed to have access to the admin site. + +.. attribute:: is_active + + Returns True if the user account is currently active. + +.. method:: has_perm(perm, obj=None): + + Returns True if the user has the named permission. If `obj` is + provided, the permission needs to be checked against a specific object + instance. + +.. method:: has_module_perms(app_label): + + Returns True if the user has permission to access models in + the given app. + +You will also need to register your custom User model with the admin. If +your custom User model extends ``django.contrib.auth.models.AbstractUser``, +you can use Django's existing ``django.contrib.auth.admin.UserAdmin`` +class. However, if your User model extends +:class:`~django.contrib.auth.models.AbstractBaseUser`, you'll need to define +a custom ModelAdmin class. It may be possible to subclass the default +``django.contrib.auth.admin.UserAdmin``; however, you'll need to +override any of the definitions that refer to fields on +``django.contrib.auth.models.AbstractUser`` that aren't on your +custom User class. + +Custom users and permissions +---------------------------- + +To make it easy to include Django's permission framework into your own User +class, Django provides :class:`~django.contrib.auth.models.PermissionsMixin`. +This is an abstract model you can include in the class hierarchy for your User +model, giving you all the methods and database fields necessary to support +Django's permission model. + +:class:`~django.contrib.auth.models.PermissionsMixin` provides the following +methods and attributes: + +.. class:: models.PermissionsMixin + + .. attribute:: models.PermissionsMixin.is_superuser + + Boolean. Designates that this user has all permissions without + explicitly assigning them. + + .. method:: models.PermissionsMixin.get_group_permissions(obj=None) + + Returns a set of permission strings that the user has, through his/her + groups. + + If ``obj`` is passed in, only returns the group permissions for + this specific object. + + .. method:: models.PermissionsMixin.get_all_permissions(obj=None) + + Returns a set of permission strings that the user has, both through + group and user permissions. + + If ``obj`` is passed in, only returns the permissions for this + specific object. + + .. method:: models.PermissionsMixin.has_perm(perm, obj=None) + + Returns ``True`` if the user has the specified permission, where perm is + in the format ``"."`` (see + :ref:`permissions `). If the user is inactive, this method will + always return ``False``. + + If ``obj`` is passed in, this method won't check for a permission for + the model, but for this specific object. + + .. method:: models.PermissionsMixin.has_perms(perm_list, obj=None) + + Returns ``True`` if the user has each of the specified permissions, + where each perm is in the format + ``"."``. If the user is inactive, + this method will always return ``False``. + + If ``obj`` is passed in, this method won't check for permissions for + the model, but for the specific object. + + .. method:: models.PermissionsMixin.has_module_perms(package_name) + + Returns ``True`` if the user has any permissions in the given package + (the Django app label). If the user is inactive, this method will + always return ``False``. + +.. admonition:: ModelBackend + + If you don't include the + :class:`~django.contrib.auth.models.PermissionsMixin`, you must ensure you + don't invoke the permissions methods on ``ModelBackend``. ``ModelBackend`` + assumes that certain fields are available on your user model. If your User + model doesn't provide those fields, you will receive database errors when + you check permissions. + +Custom users and Proxy models +----------------------------- + +One limitation of custom User models is that installing a custom User model +will break any proxy model extending :class:`~django.contrib.auth.models.User`. +Proxy models must be based on a concrete base class; by defining a custom User +model, you remove the ability of Django to reliably identify the base class. + +If your project uses proxy models, you must either modify the proxy to extend +the User model that is currently in use in your project, or merge your proxy's +behavior into your User subclass. + +Custom users and signals +------------------------ + +Another limitation of custom User models is that you can't use +:func:`django.contrib.auth.get_user_model()` as the sender or target of a signal +handler. Instead, you must register the handler with the resulting User model. +See :doc:`/topics/signals` for more information on registering an sending +signals. + +Custom users and testing/fixtures +--------------------------------- + +If you are writing an application that interacts with the User model, you must +take some precautions to ensure that your test suite will run regardless of +the User model that is being used by a project. Any test that instantiates an +instance of User will fail if the User model has been swapped out. This +includes any attempt to create an instance of User with a fixture. + +To ensure that your test suite will pass in any project configuration, +``django.contrib.auth.tests.utils`` defines a ``@skipIfCustomUser`` decorator. +This decorator will cause a test case to be skipped if any User model other +than the default Django user is in use. This decorator can be applied to a +single test, or to an entire test class. + +Depending on your application, tests may also be needed to be added to ensure +that the application works with *any* user model, not just the default User +model. To assist with this, Django provides two substitute user models that +can be used in test suites: + +* ``django.contrib.auth.tests.custom_user.CustomUser``, a custom user + model that uses an ``email`` field as the username, and has a basic + admin-compliant permissions setup + +* ``django.contrib.auth.tests.custom_user.ExtensionUser``, a custom + user model that extends ``django.contrib.auth.models.AbstractUser``, + adding a ``date_of_birth`` field. + +You can then use the ``@override_settings`` decorator to make that test run +with the custom User model. For example, here is a skeleton for a test that +would test three possible User models -- the default, plus the two User +models provided by ``auth`` app:: + + from django.contrib.auth.tests.utils import skipIfCustomUser + from django.test import TestCase + from django.test.utils import override_settings + + + class ApplicationTestCase(TestCase): + @skipIfCustomUser + def test_normal_user(self): + "Run tests for the normal user model" + self.assertSomething() + + @override_settings(AUTH_USER_MODEL='auth.CustomUser') + def test_custom_user(self): + "Run tests for a custom user model with email-based authentication" + self.assertSomething() + + @override_settings(AUTH_USER_MODEL='auth.ExtensionUser') + def test_extension_user(self): + "Run tests for a simple extension of the built-in User." + self.assertSomething() + + +A full example +-------------- + +Here is an example of an admin-compliant custom user app. This user model uses +an email address as the username, and has a required date of birth; it +provides no permission checking, beyond a simple `admin` flag on the user +account. This model would be compatible with all the built-in auth forms and +views, except for the User creation forms. + +This code would all live in a ``models.py`` file for a custom +authentication app:: + + from django.db import models + from django.contrib.auth.models import ( + BaseUserManager, AbstractBaseUser + ) + + + class MyUserManager(BaseUserManager): + def create_user(self, email, date_of_birth, password=None): + """ + Creates and saves a User with the given email, date of + birth and password. + """ + if not email: + raise ValueError('Users must have an email address') + + user = self.model( + email=MyUserManager.normalize_email(email), + date_of_birth=date_of_birth, + ) + + user.set_password(password) + user.save(using=self._db) + return user + + def create_superuser(self, email, date_of_birth, password): + """ + Creates and saves a superuser with the given email, date of + birth and password. + """ + user = self.create_user(email, + password=password, + date_of_birth=date_of_birth + ) + user.is_admin = True + user.save(using=self._db) + return user + + + class MyUser(AbstractBaseUser): + email = models.EmailField( + verbose_name='email address', + max_length=255, + unique=True, + db_index=True, + ) + date_of_birth = models.DateField() + is_active = models.BooleanField(default=True) + is_admin = models.BooleanField(default=False) + + objects = MyUserManager() + + USERNAME_FIELD = 'email' + REQUIRED_FIELDS = ['date_of_birth'] + + def get_full_name(self): + # The user is identified by their email address + return self.email + + def get_short_name(self): + # The user is identified by their email address + return self.email + + def __unicode__(self): + return self.email + + def has_perm(self, perm, obj=None): + "Does the user have a specific permission?" + # Simplest possible answer: Yes, always + return True + + def has_module_perms(self, app_label): + "Does the user have permissions to view the app `app_label`?" + # Simplest possible answer: Yes, always + return True + + @property + def is_staff(self): + "Is the user a member of staff?" + # Simplest possible answer: All admins are staff + return self.is_admin + +Then, to register this custom User model with Django's admin, the following +code would be required in the app's ``admin.py`` file:: + + from django import forms + from django.contrib import admin + from django.contrib.auth.models import Group + from django.contrib.auth.admin import UserAdmin + from django.contrib.auth.forms import ReadOnlyPasswordHashField + + from customauth.models import MyUser + + + class UserCreationForm(forms.ModelForm): + """A form for creating new users. Includes all the required + fields, plus a repeated password.""" + password1 = forms.CharField(label='Password', widget=forms.PasswordInput) + password2 = forms.CharField(label='Password confirmation', widget=forms.PasswordInput) + + class Meta: + model = MyUser + fields = ('email', 'date_of_birth') + + def clean_password2(self): + # Check that the two password entries match + password1 = self.cleaned_data.get("password1") + password2 = self.cleaned_data.get("password2") + if password1 and password2 and password1 != password2: + raise forms.ValidationError("Passwords don't match") + return password2 + + def save(self, commit=True): + # Save the provided password in hashed format + user = super(UserCreationForm, self).save(commit=False) + user.set_password(self.cleaned_data["password1"]) + if commit: + user.save() + return user + + + class UserChangeForm(forms.ModelForm): + """A form for updating users. Includes all the fields on + the user, but replaces the password field with admin's + password hash display field. + """ + password = ReadOnlyPasswordHashField() + + class Meta: + model = MyUser + + def clean_password(self): + # Regardless of what the user provides, return the initial value. + # This is done here, rather than on the field, because the + # field does not have access to the initial value + return self.initial["password"] + + + class MyUserAdmin(UserAdmin): + # The forms to add and change user instances + form = UserChangeForm + add_form = UserCreationForm + + # The fields to be used in displaying the User model. + # These override the definitions on the base UserAdmin + # that reference specific fields on auth.User. + list_display = ('email', 'date_of_birth', 'is_admin') + list_filter = ('is_admin',) + fieldsets = ( + (None, {'fields': ('email', 'password')}), + ('Personal info', {'fields': ('date_of_birth',)}), + ('Permissions', {'fields': ('is_admin',)}), + ('Important dates', {'fields': ('last_login',)}), + ) + add_fieldsets = ( + (None, { + 'classes': ('wide',), + 'fields': ('email', 'date_of_birth', 'password1', 'password2')} + ), + ) + search_fields = ('email',) + ordering = ('email',) + filter_horizontal = () + + # Now register the new UserAdmin... + admin.site.register(MyUser, MyUserAdmin) + # ... and, since we're not using Django's builtin permissions, + # unregister the Group model from admin. + admin.site.unregister(Group) diff --git a/docs/topics/auth/default.txt b/docs/topics/auth/default.txt new file mode 100644 index 0000000000..c4736135b0 --- /dev/null +++ b/docs/topics/auth/default.txt @@ -0,0 +1,1077 @@ +====================================== +Using the Django authentication system +====================================== + +.. currentmodule:: django.contrib.auth + +This document explains the usage of Django's authentication system in its +default configuration. This configuration has evolved to serve the most common +project needs, handling a reasonably wide range of tasks, and has a careful +implementation of passwords and permissions, and can handle many projects as +is. For projects where authentication needs differ from the default, Django +supports extensive :doc:`extension and customization +` of authentication. + +Django authentication provides both authentication and authorization, together +and is generally referred to as the authentication system, as these features +somewhat coupled. + +.. _user-objects: + +User objects +============ + +:class:`~django.contrib.auth.models.User` objects are the core of the +authentication system. They typically represent the people interacting with +your site and are used to enable things like restricting access, registering +user profiles, associating content with creators etc. Only one class of user +exists in Django's authentication framework, i.e., 'superusers' or admin +'staff' users are is just a user objects with special attributes set, not +different classes of user objects. + +The primary attributes of the default user are: + +* username +* password +* email +* first name +* last name + +See the :class:`full API documentation ` for +full reference, the documentation that follows is more task oriented. + +.. _topics-auth-creating-users: + +Creating users +-------------- + +The most direct way to create users is to use the included +:meth:`~django.contrib.auth.models.UserManager.create_user` helper function:: + + >>> from django.contrib.auth.models import User + >>> user = User.objects.create_user('john', 'lennon@thebeatles.com', 'johnpassword') + + # At this point, user is a User object that has already been saved + # to the database. You can continue to change its attributes + # if you want to change other fields. + >>> user.last_name = 'Lennon' + >>> user.save() + +If you have the Django admin installed, you can also :ref:`create users +interactively `. + +.. _topics-auth-creating-superusers: + +Creating superusers +------------------- + +:djadmin:`manage.py syncdb ` prompts you to create a superuser the +first time you run it with ``'django.contrib.auth'`` in your +:setting:`INSTALLED_APPS`. If you need to create a superuser at a later date, +you can use a command line utility:: + + manage.py createsuperuser --username=joe --email=joe@example.com + +You will be prompted for a password. After you enter one, the user will be +created immediately. If you leave off the :djadminopt:`--username` or the +:djadminopt:`--email` options, it will prompt you for those values. + +Changing passwords +------------------ + +Django does not store raw (clear text) passwords on the user model, but only +a hash (see :doc:`documentation of how passwords are managed +` for full details). Because of this, do not attempt to +manipulate the password attribute of the user directly. This is why a a helper +function is used when creating a user. + +To change a user's password, you have several options: + +:djadmin:`manage.py changepassword *username* ` offers a method +of changing a User's password from the command line. It prompts you to +change the password of a given user which you must enter twice. If +they both match, the new password will be changed immediately. If you +do not supply a user, the command will attempt to change the password +whose username matches the current system user. + +You can also change a password programmatically, using +:meth:`~django.contrib.auth.models.User.set_password()`: + +.. code-block:: python + + >>> from django.contrib.auth.models import User + >>> u = User.objects.get(username__exact='john') + >>> u.set_password('new password') + >>> u.save() + +If you have the Django admin installed, you can also change user's passwords +on the :ref:`authentication system's admin pages `. + +Django also provides :ref:`views ` and :ref:`forms +` that may be used to allow users to change their own +passwords. + +Authenticating Users +-------------------- + +.. function:: authenticate(\**credentials) + + To authenticate a given username and password, use + :func:`~django.contrib.auth.authenticate()`. It takes credentials in the + form of keyword arguments, for the default configuration this is + ``username`` and ``password``, and it returns + a :class:`~django.contrib.auth.models.User` object if the password is valid + for the given username. If the password is invalid, + :func:`~django.contrib.auth.authenticate()` returns ``None``. Example:: + + from django.contrib.auth import authenticate + user = authenticate(username='john', password='secret') + if user is not None: + # the password verified for the user + if user.is_active: + print("User is valid, active and authenticated") + else: + print("The password is valid, but the account has been disabled!") + else: + # the authentication system was unable to verify the username and password + print("The username and password were incorrect.") + +.. _topic-authorization: + +Permissions and Authorization +============================= + +Django comes with a simple permissions system. It provides a way to assign +permissions to specific users and groups of users. + +It's used by the Django admin site, but you're welcome to use it in your own +code. + +The Django admin site uses permissions as follows: + +* Access to view the "add" form and add an object is limited to users with + the "add" permission for that type of object. +* Access to view the change list, view the "change" form and change an + object is limited to users with the "change" permission for that type of + object. +* Access to delete an object is limited to users with the "delete" + permission for that type of object. + +Permissions can be set not only per type of object, but also per specific +object instance. By using the +:meth:`~django.contrib.admin.ModelAdmin.has_add_permission`, +:meth:`~django.contrib.admin.ModelAdmin.has_change_permission` and +:meth:`~django.contrib.admin.ModelAdmin.has_delete_permission` methods provided +by the :class:`~django.contrib.admin.ModelAdmin` class, it is possible to +customize permissions for different object instances of the same type. + +:class:`~django.contrib.auth.models.User` objects have two many-to-many +fields: ``groups`` and ``user_permissions``. +:class:`~django.contrib.auth.models.User` objects can access their related +objects in the same way as any other :doc:`Django model +`: + +.. code-block:: python + + myuser.groups = [group_list] + myuser.groups.add(group, group, ...) + myuser.groups.remove(group, group, ...) + myuser.groups.clear() + myuser.user_permissions = [permission_list] + myuser.user_permissions.add(permission, permission, ...) + myuser.user_permissions.remove(permission, permission, ...) + myuser.user_permissions.clear() + +Default permissions +------------------- + +When ``django.contrib.auth`` is listed in your :setting:`INSTALLED_APPS` +setting, it will ensure that three default permissions -- add, change and +delete -- are created for each Django model defined in one of your installed +applications. + +These permissions will be created when you run :djadmin:`manage.py syncdb +`; the first time you run ``syncdb`` after adding +``django.contrib.auth`` to :setting:`INSTALLED_APPS`, the default permissions +will be created for all previously-installed models, as well as for any new +models being installed at that time. Afterward, it will create default +permissions for new models each time you run :djadmin:`manage.py syncdb +`. + +Assuming you have an application with an +:attr:`~django.db.models.Options.app_label` ``foo`` and a model named ``Bar``, +to test for basic permissions you should use: + +* add: ``user.has_perm('foo.add_bar')`` +* change: ``user.has_perm('foo.change_bar')`` +* delete: ``user.has_perm('foo.delete_bar')`` + +The :class:`~django.contrib.auth.models.Permission` model is rarely accessed +directly. + +Groups +------ + +:class:`django.contrib.auth.models.Group` models are a generic way of +categorizing users so you can apply permissions, or some other label, to those +users. A user can belong to any number of groups. + +A user in a group automatically has the permissions granted to that group. For +example, if the group ``Site editors`` has the permission +``can_edit_home_page``, any user in that group will have that permission. + +Beyond permissions, groups are a convenient way to categorize users to give +them some label, or extended functionality. For example, you could create a +group ``'Special users'``, and you could write code that could, say, give them +access to a members-only portion of your site, or send them members-only email +messages. + +Programmatically creating permissions +------------------------------------- + +While :ref:`custom permissions ` can be defined within +a model's ``Meta`` class, you can also create permissions directly. For +example, you can create the ``can_publish`` permission for a ``BlogPost`` model +in ``myapp``:: + + from django.contrib.auth.models import Group, Permission + from django.contrib.contenttypes.models import ContentType + + content_type = ContentType.objects.get(app_label='myapp', model='BlogPost') + permission = Permission.objects.create(codename='can_publish', + name='Can Publish Posts', + content_type=content_type) + +The permission can then be assigned to a +:class:`~django.contrib.auth.models.User` via its ``user_permissions`` +attribute or to a :class:`~django.contrib.auth.models.Group` via its +``permissions`` attribute. + +.. _auth-web-requests: + +Authentication in Web requests +============================== + +Django uses :doc:`sessions ` and middleware to hook the +authentication system into :class:`request objects `. + +These provide a :attr:`request.user ` attribute +on every request which represents the current user. If the current user has not +logged in, this attribute will be set to an instance +of :class:`~django.contrib.auth.models.AnonymousUser`, otherwise it will be an +instance of :class:`~django.contrib.auth.models.User`. + +You can tell them apart with +:meth:`~django.contrib.auth.models.User.is_authenticated()`, like so:: + + if request.user.is_authenticated(): + # Do something for authenticated users. + else: + # Do something for anonymous users. + +.. _how-to-log-a-user-in: + +How to log a user in +-------------------- + +If you have an authenticated user you want to attach to the current session +- this is done with a :func:`~django.contrib.auth.login` function. + +.. function:: login() + + To log a user in, from a view, use :func:`~django.contrib.auth.login()`. It + takes an :class:`~django.http.HttpRequest` object and a + :class:`~django.contrib.auth.models.User` object. + :func:`~django.contrib.auth.login()` saves the user's ID in the session, + using Django's session framework. + + Note that any data set during the anonymous session is retained in the + session after a user logs in. + + This example shows how you might use both + :func:`~django.contrib.auth.authenticate()` and + :func:`~django.contrib.auth.login()`:: + + from django.contrib.auth import authenticate, login + + def my_view(request): + username = request.POST['username'] + password = request.POST['password'] + user = authenticate(username=username, password=password) + if user is not None: + if user.is_active: + login(request, user) + # Redirect to a success page. + else: + # Return a 'disabled account' error message + else: + # Return an 'invalid login' error message. + +.. admonition:: Calling ``authenticate()`` first + + When you're manually logging a user in, you *must* call + :func:`~django.contrib.auth.authenticate()` before you call + :func:`~django.contrib.auth.login()`. + :func:`~django.contrib.auth.authenticate()` + sets an attribute on the :class:`~django.contrib.auth.models.User` noting + which authentication backend successfully authenticated that user (see the + :ref:`backends documentation ` for details), and + this information is needed later during the login process. An error will be + raise if you try to login a user object retrieved from the database + directly. + +How to log a user out +--------------------- + +.. function:: logout() + + To log out a user who has been logged in via + :func:`django.contrib.auth.login()`, use + :func:`django.contrib.auth.logout()` within your view. It takes an + :class:`~django.http.HttpRequest` object and has no return value. + Example:: + + from django.contrib.auth import logout + + def logout_view(request): + logout(request) + # Redirect to a success page. + + Note that :func:`~django.contrib.auth.logout()` doesn't throw any errors if + the user wasn't logged in. + + When you call :func:`~django.contrib.auth.logout()`, the session data for + the current request is completely cleaned out. All existing data is + removed. This is to prevent another person from using the same Web browser + to log in and have access to the previous user's session data. If you want + to put anything into the session that will be available to the user + immediately after logging out, do that *after* calling + :func:`django.contrib.auth.logout()`. + +Limiting access to logged-in users +---------------------------------- + +The raw way +~~~~~~~~~~~ + +The simple, raw way to limit access to pages is to check +:meth:`request.user.is_authenticated() +` and either redirect to a +login page:: + + from django.shortcuts import redirect + + def my_view(request): + if not request.user.is_authenticated(): + return redirect('/login/?next=%s' % request.path) + # ... + +...or display an error message:: + + from django.shortcuts import render + + def my_view(request): + if not request.user.is_authenticated(): + return render('myapp/login_error.html') + # ... + +.. currentmodule:: django.contrib.auth.decorators + +The login_required decorator +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. function:: login_required([redirect_field_name=REDIRECT_FIELD_NAME, login_url=None]) + + As a shortcut, you can use the convenient + :func:`~django.contrib.auth.decorators.login_required` decorator:: + + from django.contrib.auth.decorators import login_required + + @login_required + def my_view(request): + ... + + :func:`~django.contrib.auth.decorators.login_required` does the following: + + * If the user isn't logged in, redirect to + :setting:`settings.LOGIN_URL `, passing the current absolute + path in the query string. Example: ``/accounts/login/?next=/polls/3/``. + + * If the user is logged in, execute the view normally. The view code is + free to assume the user is logged in. + + By default, the path that the user should be redirected to upon + successful authentication is stored in a query string parameter called + ``"next"``. If you would prefer to use a different name for this parameter, + :func:`~django.contrib.auth.decorators.login_required` takes an + optional ``redirect_field_name`` parameter:: + + from django.contrib.auth.decorators import login_required + + @login_required(redirect_field_name='my_redirect_field') + def my_view(request): + ... + + Note that if you provide a value to ``redirect_field_name``, you will most + likely need to customize your login template as well, since the template + context variable which stores the redirect path will use the value of + ``redirect_field_name`` as its key rather than ``"next"`` (the default). + + :func:`~django.contrib.auth.decorators.login_required` also takes an + optional ``login_url`` parameter. Example:: + + from django.contrib.auth.decorators import login_required + + @login_required(login_url='/accounts/login/') + def my_view(request): + ... + + Note that if you don't specify the ``login_url`` parameter, you'll need to + ensure that the :setting:`settings.LOGIN_URL ` and your login + view are properly associated. For example, using the defaults, add the + following line to your URLconf:: + + (r'^accounts/login/$', 'django.contrib.auth.views.login'), + + .. versionchanged:: 1.5 + + The :setting:`settings.LOGIN_URL ` also accepts + view function names and :ref:`named URL patterns `. + This allows you to freely remap your login view within your URLconf + without having to update the setting. + +.. note:: + + The login_required decorator does NOT check the is_active flag on a user. + +Limiting access to logged-in users that pass a test +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To limit access based on certain permissions or some other test, you'd do +essentially the same thing as described in the previous section. + +The simple way is to run your test on :attr:`request.user +` in the view directly. For example, this view +checks to make sure the user has an email in the desired domain:: + + def my_view(request): + if not '@example.com' in request.user.email: + return HttpResponse("You can't vote in this poll.") + # ... + +.. function:: user_passes_test(func, [login_url=None]) + + As a shortcut, you can use the convenient ``user_passes_test`` decorator:: + + from django.contrib.auth.decorators import user_passes_test + + def email_check(user): + return '@example.com' in request.user.email + + @user_passes_test(email_check) + def my_view(request): + ... + + :func:`~django.contrib.auth.decorators.user_passes_test` takes a required + argument: a callable that takes a + :class:`~django.contrib.auth.models.User` object and returns ``True`` if + the user is allowed to view the page. Note that + :func:`~django.contrib.auth.decorators.user_passes_test` does not + automatically check that the :class:`~django.contrib.auth.models.User` is + not anonymous. + + :func:`~django.contrib.auth.decorators.user_passes_test()` takes an + optional ``login_url`` argument, which lets you specify the URL for your + login page (:setting:`settings.LOGIN_URL ` by default). + + For example:: + + @user_passes_test(email_check, login_url='/login/') + def my_view(request): + ... + +The permission_required decorator +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. function:: permission_required([login_url=None, raise_exception=False]) + + It's a relatively common task to check whether a user has a particular + permission. For that reason, Django provides a shortcut for that case: the + :func:`~django.contrib.auth.decorators.permission_required()` decorator.:: + + from django.contrib.auth.decorators import permission_required + + @permission_required('polls.can_vote') + def my_view(request): + ... + + As for the :meth:`~django.contrib.auth.models.User.has_perm` method, + permission names take the form ``"."`` + (i.e. ``polls.can_vote`` for a permission on a model in the ``polls`` + application). + + Note that :func:`~django.contrib.auth.decorators.permission_required()` + also takes an optional ``login_url`` parameter. Example:: + + from django.contrib.auth.decorators import permission_required + + @permission_required('polls.can_vote', login_url='/loginpage/') + def my_view(request): + ... + + As in the :func:`~django.contrib.auth.decorators.login_required` decorator, + ``login_url`` defaults to :setting:`settings.LOGIN_URL `. + + .. versionchanged:: 1.4 + + Added ``raise_exception`` parameter. If given, the decorator will raise + :exc:`~django.core.exceptions.PermissionDenied`, prompting + :ref:`the 403 (HTTP Forbidden) view` instead of + redirecting to the login page. + +Applying permissions to generic views +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To apply a permission to a :doc:`class-based generic view +`, decorate the :meth:`View.dispatch +` method on the class. See +:ref:`decorating-class-based-views` for details. + + +.. _built-in-auth-views: + +Authentication Views +-------------------- + +.. module:: django.contrib.auth.views + +Django provides several views that you can use for handling login, logout, and +password management. These make use of the :ref:`stock auth forms +` but you can pass in your own forms as well. + +Django provides no default template for the authentication views - however the +template context is documented for each view below. + +.. versionadded:: 1.4 + +The built-in views all return +a :class:`~django.template.response.TemplateResponse` instance, which allows +you to easily customize the response data before rendering. For more details, +see the :doc:`TemplateResponse documentation `. + +Most built-in authentication views provide a URL name for easier reference. See +:doc:`the URL documentation ` for details on using named URL +patterns. + + +.. function:: login(request, [template_name, redirect_field_name, authentication_form]) + + **URL name:** ``login`` + + See :doc:`the URL documentation ` for details on using + named URL patterns. + + Here's what ``django.contrib.auth.views.login`` does: + + * If called via ``GET``, it displays a login form that POSTs to the + same URL. More on this in a bit. + + * If called via ``POST`` with user submitted credentials, it tries to log + the user in. If login is successful, the view redirects to the URL + specified in ``next``. If ``next`` isn't provided, it redirects to + :setting:`settings.LOGIN_REDIRECT_URL ` (which + defaults to ``/accounts/profile/``). If login isn't successful, it + redisplays the login form. + + It's your responsibility to provide the html for the login template + , called ``registration/login.html`` by default. This template gets passed + four template context variables: + + * ``form``: A :class:`~django.forms.Form` object representing the + :class:`~django.contrib.auth.forms.AuthenticationForm`. + + * ``next``: The URL to redirect to after successful login. This may + contain a query string, too. + + * ``site``: The current :class:`~django.contrib.sites.models.Site`, + according to the :setting:`SITE_ID` setting. If you don't have the + site framework installed, this will be set to an instance of + :class:`~django.contrib.sites.models.RequestSite`, which derives the + site name and domain from the current + :class:`~django.http.HttpRequest`. + + * ``site_name``: An alias for ``site.name``. If you don't have the site + framework installed, this will be set to the value of + :attr:`request.META['SERVER_NAME'] `. + For more on sites, see :doc:`/ref/contrib/sites`. + + If you'd prefer not to call the template :file:`registration/login.html`, + you can pass the ``template_name`` parameter via the extra arguments to + the view in your URLconf. For example, this URLconf line would use + :file:`myapp/login.html` instead:: + + (r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name': 'myapp/login.html'}), + + You can also specify the name of the ``GET`` field which contains the URL + to redirect to after login by passing ``redirect_field_name`` to the view. + By default, the field is called ``next``. + + Here's a sample :file:`registration/login.html` template you can use as a + starting point. It assumes you have a :file:`base.html` template that + defines a ``content`` block: + + .. code-block:: html+django + + {% extends "base.html" %} + + {% block content %} + + {% if form.errors %} +

    Your username and password didn't match. Please try again.

    + {% endif %} + +
    + {% csrf_token %} + + + + + + + + + +
    {{ form.username.label_tag }}{{ form.username }}
    {{ form.password.label_tag }}{{ form.password }}
    + + + +
    + + {% endblock %} + + If you have customized authentication (see + :doc:`Customizing Authentication `) you can pass a custom authentication form + to the login view via the ``authentication_form`` parameter. This form must + accept a ``request`` keyword argument in its ``__init__`` method, and + provide a ``get_user`` method which returns the authenticated user object + (this method is only ever called after successful form validation). + + .. _forms documentation: ../forms/ + .. _site framework docs: ../sites/ + + +.. function:: logout(request, [next_page, template_name, redirect_field_name]) + + Logs a user out. + + **URL name:** ``logout`` + + **Optional arguments:** + + * ``next_page``: The URL to redirect to after logout. + + * ``template_name``: The full name of a template to display after + logging the user out. Defaults to + :file:`registration/logged_out.html` if no argument is supplied. + + * ``redirect_field_name``: The name of a ``GET`` field containing the + URL to redirect to after log out. Overrides ``next_page`` if the given + ``GET`` parameter is passed. + + **Template context:** + + * ``title``: The string "Logged out", localized. + + * ``site``: The current :class:`~django.contrib.sites.models.Site`, + according to the :setting:`SITE_ID` setting. If you don't have the + site framework installed, this will be set to an instance of + :class:`~django.contrib.sites.models.RequestSite`, which derives the + site name and domain from the current + :class:`~django.http.HttpRequest`. + + * ``site_name``: An alias for ``site.name``. If you don't have the site + framework installed, this will be set to the value of + :attr:`request.META['SERVER_NAME'] `. + For more on sites, see :doc:`/ref/contrib/sites`. + +.. function:: logout_then_login(request[, login_url]) + + Logs a user out, then redirects to the login page. + + **URL name:** No default URL provided + + **Optional arguments:** + + * ``login_url``: The URL of the login page to redirect to. + Defaults to :setting:`settings.LOGIN_URL ` if not supplied. + +.. function:: password_change(request[, template_name, post_change_redirect, password_change_form]) + + Allows a user to change their password. + + **URL name:** ``password_change`` + + **Optional arguments:** + + * ``template_name``: The full name of a template to use for + displaying the password change form. Defaults to + :file:`registration/password_change_form.html` if not supplied. + + * ``post_change_redirect``: The URL to redirect to after a successful + password change. + + * ``password_change_form``: A custom "change password" form which must + accept a ``user`` keyword argument. The form is responsible for + actually changing the user's password. Defaults to + :class:`~django.contrib.auth.forms.PasswordChangeForm`. + + **Template context:** + + * ``form``: The password change form (see ``password_change_form`` above). + +.. function:: password_change_done(request[, template_name]) + + The page shown after a user has changed their password. + + **URL name:** ``password_change_done`` + + **Optional arguments:** + + * ``template_name``: The full name of a template to use. + Defaults to :file:`registration/password_change_done.html` if not + supplied. + +.. function:: password_reset(request[, is_admin_site, template_name, email_template_name, password_reset_form, token_generator, post_reset_redirect, from_email]) + + Allows a user to reset their password by generating a one-time use link + that can be used to reset the password, and sending that link to the + user's registered email address. + + .. versionchanged:: 1.4 + Users flagged with an unusable password (see + :meth:`~django.contrib.auth.models.User.set_unusable_password()` + will not be able to request a password reset to prevent misuse + when using an external authentication source like LDAP. + + **URL name:** ``password_reset`` + + **Optional arguments:** + + * ``template_name``: The full name of a template to use for + displaying the password reset form. Defaults to + :file:`registration/password_reset_form.html` if not supplied. + + * ``email_template_name``: The full name of a template to use for + generating the email with the reset password link. Defaults to + :file:`registration/password_reset_email.html` if not supplied. + + * ``subject_template_name``: The full name of a template to use for + the subject of the email with the reset password link. Defaults + to :file:`registration/password_reset_subject.txt` if not supplied. + + .. versionadded:: 1.4 + + * ``password_reset_form``: Form that will be used to get the email of + the user to reset the password for. Defaults to + :class:`~django.contrib.auth.forms.PasswordResetForm`. + + * ``token_generator``: Instance of the class to check the one time link. + This will default to ``default_token_generator``, it's an instance of + ``django.contrib.auth.tokens.PasswordResetTokenGenerator``. + + * ``post_reset_redirect``: The URL to redirect to after a successful + password reset request. + + * ``from_email``: A valid email address. By default Django uses + the :setting:`DEFAULT_FROM_EMAIL`. + + **Template context:** + + * ``form``: The form (see ``password_reset_form`` above) for resetting + the user's password. + + **Email template context:** + + * ``email``: An alias for ``user.email`` + + * ``user``: The current :class:`~django.contrib.auth.models.User`, + according to the ``email`` form field. Only active users are able to + reset their passwords (``User.is_active is True``). + + * ``site_name``: An alias for ``site.name``. If you don't have the site + framework installed, this will be set to the value of + :attr:`request.META['SERVER_NAME'] `. + For more on sites, see :doc:`/ref/contrib/sites`. + + * ``domain``: An alias for ``site.domain``. If you don't have the site + framework installed, this will be set to the value of + ``request.get_host()``. + + * ``protocol``: http or https + + * ``uid``: The user's id encoded in base 36. + + * ``token``: Token to check that the reset link is valid. + + Sample ``registration/password_reset_email.html`` (email body template): + + .. code-block:: html+django + + Someone asked for password reset for email {{ email }}. Follow the link below: + {{ protocol}}://{{ domain }}{% url 'password_reset_confirm' uidb36=uid token=token %} + + The same template context is used for subject template. Subject must be + single line plain text string. + + +.. function:: password_reset_done(request[, template_name]) + + The page shown after a user has been emailed a link to reset their + password. This view is called by default if the :func:`password_reset` view + doesn't have an explicit ``post_reset_redirect`` URL set. + + **URL name:** ``password_reset_done`` + + **Optional arguments:** + + * ``template_name``: The full name of a template to use. + Defaults to :file:`registration/password_reset_done.html` if not + supplied. + +.. function:: password_reset_confirm(request[, uidb36, token, template_name, token_generator, set_password_form, post_reset_redirect]) + + Presents a form for entering a new password. + + **URL name:** ``password_reset_confirm`` + + **Optional arguments:** + + * ``uidb36``: The user's id encoded in base 36. Defaults to ``None``. + + * ``token``: Token to check that the password is valid. Defaults to + ``None``. + + * ``template_name``: The full name of a template to display the confirm + password view. Default value is :file:`registration/password_reset_confirm.html`. + + * ``token_generator``: Instance of the class to check the password. This + will default to ``default_token_generator``, it's an instance of + ``django.contrib.auth.tokens.PasswordResetTokenGenerator``. + + * ``set_password_form``: Form that will be used to set the password. + Defaults to :class:`~django.contrib.auth.forms.SetPasswordForm` + + * ``post_reset_redirect``: URL to redirect after the password reset + done. Defaults to ``None``. + + **Template context:** + + * ``form``: The form (see ``set_password_form`` above) for setting the + new user's password. + + * ``validlink``: Boolean, True if the link (combination of uidb36 and + token) is valid or unused yet. + +.. function:: password_reset_complete(request[,template_name]) + + Presents a view which informs the user that the password has been + successfully changed. + + **URL name:** ``password_reset_complete`` + + **Optional arguments:** + + * ``template_name``: The full name of a template to display the view. + Defaults to :file:`registration/password_reset_complete.html`. + +Helper functions +---------------- + +.. currentmodule:: django.contrib.auth.views + +.. function:: redirect_to_login(next[, login_url, redirect_field_name]) + + Redirects to the login page, and then back to another URL after a + successful login. + + **Required arguments:** + + * ``next``: The URL to redirect to after a successful login. + + **Optional arguments:** + + * ``login_url``: The URL of the login page to redirect to. + Defaults to :setting:`settings.LOGIN_URL ` if not supplied. + + * ``redirect_field_name``: The name of a ``GET`` field containing the + URL to redirect to after log out. Overrides ``next`` if the given + ``GET`` parameter is passed. + + +.. _built-in-auth-forms: + +Built-in forms +-------------- + +.. module:: django.contrib.auth.forms + +If you don't want to use the built-in views, but want the convenience of not +having to write forms for this functionality, the authentication system +provides several built-in forms located in :mod:`django.contrib.auth.forms`: + +.. class:: AdminPasswordChangeForm + + A form used in the admin interface to change a user's password. + +.. class:: AuthenticationForm + + A form for logging a user in. + +.. class:: PasswordChangeForm + + A form for allowing a user to change their password. + +.. class:: PasswordResetForm + + A form for generating and emailing a one-time use link to reset a + user's password. + +.. class:: SetPasswordForm + + A form that lets a user change his/her password without entering the old + password. + +.. class:: UserChangeForm + + A form used in the admin interface to change a user's information and + permissions. + +.. class:: UserCreationForm + + A form for creating a new user. + +.. currentmodule:: django.contrib.auth + + +Authentication data in templates +-------------------------------- + +The currently logged-in user and his/her permissions are made available in the +:doc:`template context ` when you use +:class:`~django.template.RequestContext`. + +.. admonition:: Technicality + + Technically, these variables are only made available in the template context + if you use :class:`~django.template.RequestContext` *and* your + :setting:`TEMPLATE_CONTEXT_PROCESSORS` setting contains + ``"django.contrib.auth.context_processors.auth"``, which is default. For + more, see the :ref:`RequestContext docs `. + +Users +~~~~~ + +When rendering a template :class:`~django.template.RequestContext`, the +currently logged-in user, either a :class:`~django.contrib.auth.models.User` +instance or an :class:`~django.contrib.auth.models.AnonymousUser` instance, is +stored in the template variable ``{{ user }}``: + +.. code-block:: html+django + + {% if user.is_authenticated %} +

    Welcome, {{ user.username }}. Thanks for logging in.

    + {% else %} +

    Welcome, new user. Please log in.

    + {% endif %} + +This template context variable is not available if a ``RequestContext`` is not +being used. + +Permissions +~~~~~~~~~~~ + +The currently logged-in user's permissions are stored in the template variable +``{{ perms }}``. This is an instance of +``django.contrib.auth.context_processors.PermWrapper``, which is a +template-friendly proxy of permissions. + +In the ``{{ perms }}`` object, single-attribute lookup is a proxy to +:meth:`User.has_module_perms `. +This example would display ``True`` if the logged-in user had any permissions +in the ``foo`` app:: + + {{ perms.foo }} + +Two-level-attribute lookup is a proxy to +:meth:`User.has_perm `. This example +would display ``True`` if the logged-in user had the permission +``foo.can_vote``:: + + {{ perms.foo.can_vote }} + +Thus, you can check permissions in template ``{% if %}`` statements: + +.. code-block:: html+django + + {% if perms.foo %} +

    You have permission to do something in the foo app.

    + {% if perms.foo.can_vote %} +

    You can vote!

    + {% endif %} + {% if perms.foo.can_drive %} +

    You can drive!

    + {% endif %} + {% else %} +

    You don't have permission to do anything in the foo app.

    + {% endif %} + +.. versionadded:: 1.5 + Permission lookup by "if in". + +It is possible to also look permissions up by ``{% if in %}`` statements. +For example: + +.. code-block:: html+django + + {% if 'foo' in perms %} + {% if 'foo.can_vote' in perms %} +

    In lookup works, too.

    + {% endif %} + {% endif %} + +.. _auth-admin: + +Managing users in the admin +=========================== + +When you have both ``django.contrib.admin`` and ``django.contrib.auth`` +installed, the admin provides a convenient way to view and manage users, +groups, and permissions. Users can be created and deleted like any Django +model. Groups can be created, and permissions can be assigned to users or +groups. A log of user edits to models made within the admin is also stored and +displayed. + +Creating Users +-------------- + +You should see a link to "Users" in the "Auth" +section of the main admin index page. The "Add user" admin page is different +than standard admin pages in that it requires you to choose a username and +password before allowing you to edit the rest of the user's fields. + +Also note: if you want a user account to be able to create users using the +Django admin site, you'll need to give them permission to add users *and* +change users (i.e., the "Add user" and "Change user" permissions). If an +account has permission to add users but not to change them, that account won't +be able to add users. Why? Because if you have permission to add users, you +have the power to create superusers, which can then, in turn, change other +users. So Django requires add *and* change permissions as a slight security +measure. + +Changing Passwords +------------------ + +User passwords are not displayed in the admin (nor stored in the database), but +the :doc:`password storage details ` are displayed. +Included in the display of this information is a link to +a password change form that allows admins to change user passwords. diff --git a/docs/topics/auth/index.txt b/docs/topics/auth/index.txt new file mode 100644 index 0000000000..ddb2d2f992 --- /dev/null +++ b/docs/topics/auth/index.txt @@ -0,0 +1,81 @@ +============================= +User authentication in Django +============================= + +.. toctree:: + :hidden: + + default + passwords + customizing + +.. module:: django.contrib.auth + :synopsis: Django's authentication framework. + +Django comes with an user authentication system. It handles user accounts, +groups, permissions and cookie-based user sessions. This section of the +documentation explains how the default implementation works out of the box, as +well as how to :doc:`extend and customize ` it to +suit your project's needs. + +Overview +======== + +The Django authentication system handles both authentication and authorization. +Briefly, authentication verifies a user is who they claim to be, and +authorization determines what an authenticated user is allowed to do. Here the +term authentication is used to refer to both tasks. + +The auth system consists of: + +* Users +* Permissions: Binary (yes/no) flags designating whether a user may perform + a certain task. +* Groups: A generic way of applying labels and permissions to more than one + user. +* A configurable password hashing system +* Forms and view tools for logging in users, or restricting content +* A pluggable backend system + +Installation +============ + +Authentication support is bundled as a Django contrib module in +``django.contrib.auth``. By default, the required configuration is already +included in the :file:`settings.py` generated by :djadmin:`django-admin.py +startproject `, these consist of two items listed in your +:setting:`INSTALLED_APPS` setting: + +1. ``'django.contrib.auth'`` contains the core of the authentication framework, + and its default models. +2. ``'django.contrib.contenttypes'`` is the Django :doc:`content type system + `, which allows permissions to be associated with + models you create. + +and two items in your :setting:`MIDDLEWARE_CLASSES` setting: + +1. :class:`~django.contrib.sessions.middleware.SessionMiddleware` manages + :doc:`sessions ` across requests. +2. :class:`~django.contrib.auth.middleware.AuthenticationMiddleware` associates + users with requests using sessions. + +With these settings in place, running the command ``manage.py syncdb`` creates +the necessary database tables for auth related models, creates permissions for +any models defined in your installed apps, and prompts you to create +a superuser account the first time you run it. + +Usage +===== + +:doc:`Using Django's default implementation ` + +* :ref:`Working with User objects ` +* :ref:`Permissions and authorization ` +* :ref:`Authentication in web requests ` +* :ref:`Managing users in the admin ` + +:doc:`API reference for the default implementation ` + +:doc:`Customizing Users and authentication ` + +:doc:`Password management in Django ` diff --git a/docs/topics/auth/passwords.txt b/docs/topics/auth/passwords.txt new file mode 100644 index 0000000000..e6345aab2e --- /dev/null +++ b/docs/topics/auth/passwords.txt @@ -0,0 +1,212 @@ +============================= +Password management in Django +============================= + +Password management is something that should generally not be reinvented +unnecessarily, and Django endeavors to provide a secure and flexible set of +tools for managing user passwords. This document describes how Django stores +passwords, how the storage hashing can be configured, and some utilities to +work with hashed passwords. + +.. _auth_password_storage: + +How Django stores passwords +=========================== + +.. versionadded:: 1.4 + Django 1.4 introduces a new flexible password storage system and uses + PBKDF2 by default. Previous versions of Django used SHA1, and other + algorithms couldn't be chosen. + +The :attr:`~django.contrib.auth.models.User.password` attribute of a +:class:`~django.contrib.auth.models.User` object is a string in this format:: + + algorithm$hash + +That's a storage algorithm, and hash, separated by the dollar-sign +character. The algorithm is one of a number of one way hashing or password +storage algorithms Django can use; see below. The hash is the result of the one- +way function. + +By default, Django uses the PBKDF2_ algorithm with a SHA256 hash, a +password stretching mechanism recommended by NIST_. This should be +sufficient for most users: it's quite secure, requiring massive +amounts of computing time to break. + +However, depending on your requirements, you may choose a different +algorithm, or even use a custom algorithm to match your specific +security situation. Again, most users shouldn't need to do this -- if +you're not sure, you probably don't. If you do, please read on: + +Django chooses the an algorithm by consulting the :setting:`PASSWORD_HASHERS` +setting. This is a list of hashing algorithm classes that this Django +installation supports. The first entry in this list (that is, +``settings.PASSWORD_HASHERS[0]``) will be used to store passwords, and all the +other entries are valid hashers that can be used to check existing passwords. +This means that if you want to use a different algorithm, you'll need to modify +:setting:`PASSWORD_HASHERS` to list your preferred algorithm first in the list. + +The default for :setting:`PASSWORD_HASHERS` is:: + + PASSWORD_HASHERS = ( + 'django.contrib.auth.hashers.PBKDF2PasswordHasher', + 'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher', + 'django.contrib.auth.hashers.BCryptPasswordHasher', + 'django.contrib.auth.hashers.SHA1PasswordHasher', + 'django.contrib.auth.hashers.MD5PasswordHasher', + 'django.contrib.auth.hashers.CryptPasswordHasher', + ) + +This means that Django will use PBKDF2_ to store all passwords, but will support +checking passwords stored with PBKDF2SHA1, bcrypt_, SHA1_, etc. The next few +sections describe a couple of common ways advanced users may want to modify this +setting. + +.. _bcrypt_usage: + +Using bcrypt with Django +------------------------ + +Bcrypt_ is a popular password storage algorithm that's specifically designed +for long-term password storage. It's not the default used by Django since it +requires the use of third-party libraries, but since many people may want to +use it Django supports bcrypt with minimal effort. + +To use Bcrypt as your default storage algorithm, do the following: + +1. Install the `py-bcrypt`_ library (probably by running ``sudo pip install + py-bcrypt``, or downloading the library and installing it with ``python + setup.py install``). + +2. Modify :setting:`PASSWORD_HASHERS` to list ``BCryptPasswordHasher`` + first. That is, in your settings file, you'd put:: + + PASSWORD_HASHERS = ( + 'django.contrib.auth.hashers.BCryptPasswordHasher', + 'django.contrib.auth.hashers.PBKDF2PasswordHasher', + 'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher', + 'django.contrib.auth.hashers.SHA1PasswordHasher', + 'django.contrib.auth.hashers.MD5PasswordHasher', + 'django.contrib.auth.hashers.CryptPasswordHasher', + ) + + (You need to keep the other entries in this list, or else Django won't + be able to upgrade passwords; see below). + +That's it -- now your Django install will use Bcrypt as the default storage +algorithm. + +.. admonition:: Other bcrypt implementations + + There are several other implementations that allow bcrypt to be + used with Django. Django's bcrypt support is NOT directly + compatible with these. To upgrade, you will need to modify the + hashes in your database to be in the form `bcrypt$(raw bcrypt + output)`. For example: + `bcrypt$$2a$12$NT0I31Sa7ihGEWpka9ASYrEFkhuTNeBQ2xfZskIiiJeyFXhRgS.Sy`. + +Increasing the work factor +-------------------------- + +The PBKDF2 and bcrypt algorithms use a number of iterations or rounds of +hashing. This deliberately slows down attackers, making attacks against hashed +passwords harder. However, as computing power increases, the number of +iterations needs to be increased. We've chosen a reasonable default (and will +increase it with each release of Django), but you may wish to tune it up or +down, depending on your security needs and available processing power. To do so, +you'll subclass the appropriate algorithm and override the ``iterations`` +parameters. For example, to increase the number of iterations used by the +default PBKDF2 algorithm: + +1. Create a subclass of ``django.contrib.auth.hashers.PBKDF2PasswordHasher``:: + + from django.contrib.auth.hashers import PBKDF2PasswordHasher + + class MyPBKDF2PasswordHasher(PBKDF2PasswordHasher): + """ + A subclass of PBKDF2PasswordHasher that uses 100 times more iterations. + """ + iterations = PBKDF2PasswordHasher.iterations * 100 + + Save this somewhere in your project. For example, you might put this in + a file like ``myproject/hashers.py``. + +2. Add your new hasher as the first entry in :setting:`PASSWORD_HASHERS`:: + + PASSWORD_HASHERS = ( + 'myproject.hashers.MyPBKDF2PasswordHasher', + 'django.contrib.auth.hashers.PBKDF2PasswordHasher', + 'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher', + 'django.contrib.auth.hashers.BCryptPasswordHasher', + 'django.contrib.auth.hashers.SHA1PasswordHasher', + 'django.contrib.auth.hashers.MD5PasswordHasher', + 'django.contrib.auth.hashers.CryptPasswordHasher', + ) + + +That's it -- now your Django install will use more iterations when it +stores passwords using PBKDF2. + +Password upgrading +------------------ + +When users log in, if their passwords are stored with anything other than +the preferred algorithm, Django will automatically upgrade the algorithm +to the preferred one. This means that old installs of Django will get +automatically more secure as users log in, and it also means that you +can switch to new (and better) storage algorithms as they get invented. + +However, Django can only upgrade passwords that use algorithms mentioned in +:setting:`PASSWORD_HASHERS`, so as you upgrade to new systems you should make +sure never to *remove* entries from this list. If you do, users using un- +mentioned algorithms won't be able to upgrade. + +.. _sha1: http://en.wikipedia.org/wiki/SHA1 +.. _pbkdf2: http://en.wikipedia.org/wiki/PBKDF2 +.. _nist: http://csrc.nist.gov/publications/nistpubs/800-132/nist-sp800-132.pdf +.. _bcrypt: http://en.wikipedia.org/wiki/Bcrypt +.. _py-bcrypt: http://pypi.python.org/pypi/py-bcrypt/ + + +Manually managing a user's password +=================================== + +.. module:: django.contrib.auth.hashers + +.. versionadded:: 1.4 + The :mod:`django.contrib.auth.hashers` module provides a set of functions + to create and validate hashed password. You can use them independently + from the ``User`` model. + +.. function:: check_password(password, encoded) + + .. versionadded:: 1.4 + + If you'd like to manually authenticate a user by comparing a plain-text + password to the hashed password in the database, use the convenience + function :func:`django.contrib.auth.hashers.check_password`. It takes two + arguments: the plain-text password to check, and the full value of a + user's ``password`` field in the database to check against, and returns + ``True`` if they match, ``False`` otherwise. + +.. function:: make_password(password[, salt, hashers]) + + .. versionadded:: 1.4 + + Creates a hashed password in the format used by this application. It takes + one mandatory argument: the password in plain-text. Optionally, you can + provide a salt and a hashing algorithm to use, if you don't want to use the + defaults (first entry of ``PASSWORD_HASHERS`` setting). + Currently supported algorithms are: ``'pbkdf2_sha256'``, ``'pbkdf2_sha1'``, + ``'bcrypt'`` (see :ref:`bcrypt_usage`), ``'sha1'``, ``'md5'``, + ``'unsalted_md5'`` (only for backward compatibility) and ``'crypt'`` + if you have the ``crypt`` library installed. If the password argument is + ``None``, an unusable password is returned (a one that will be never + accepted by :func:`django.contrib.auth.hashers.check_password`). + +.. function:: is_password_usable(encoded_password) + + .. versionadded:: 1.4 + + Checks if the given string is a hashed password that has a chance + of being verified against :func:`django.contrib.auth.hashers.check_password`. diff --git a/docs/topics/db/models.txt b/docs/topics/db/models.txt index cfa794ca92..c4db0d77a7 100644 --- a/docs/topics/db/models.txt +++ b/docs/topics/db/models.txt @@ -1063,52 +1063,46 @@ Proxy models are declared like normal models. You tell Django that it's a proxy model by setting the :attr:`~django.db.models.Options.proxy` attribute of the ``Meta`` class to ``True``. -For example, suppose you want to add a method to the standard -:class:`~django.contrib.auth.models.User` model that will be used in your -templates. You can do it like this:: +For example, suppose you want to add a method to the ``Person`` model described +above. You can do it like this:: - from django.contrib.auth.models import User - - class MyUser(User): + class MyPerson(Person): class Meta: proxy = True def do_something(self): ... -The ``MyUser`` class operates on the same database table as its parent -:class:`~django.contrib.auth.models.User` class. In particular, any new -instances of :class:`~django.contrib.auth.models.User` will also be accessible -through ``MyUser``, and vice-versa:: +The ``MyPerson`` class operates on the same database table as its parent +``Person`` class. In particular, any new instances of ``Person`` will also be +accessible through ``MyPerson``, and vice-versa:: - >>> u = User.objects.create(username="foobar") - >>> MyUser.objects.get(username="foobar") - + >>> p = Person.objects.create(first_name="foobar") + >>> MyPerson.objects.get(first_name="foobar") + -You could also use a proxy model to define a different default ordering on a -model. The standard :class:`~django.contrib.auth.models.User` model has no -ordering defined on it (intentionally; sorting is expensive and we don't want -to do it all the time when we fetch users). You might want to regularly order -by the ``username`` attribute when you use the proxy. This is easy:: +You could also use a proxy model to define a different default ordering on +a model. You might not always want to order the ``Person`` model, but regularly +order by the ``last_name`` attribute when you use the proxy. This is easy:: - class OrderedUser(User): + class OrderedPerson(Person): class Meta: - ordering = ["username"] + ordering = ["last_name"] proxy = True -Now normal :class:`~django.contrib.auth.models.User` queries will be unordered -and ``OrderedUser`` queries will be ordered by ``username``. +Now normal ``Person`` queries will be unordered +and ``OrderedPerson`` queries will be ordered by ``last_name``. QuerySets still return the model that was requested ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -There is no way to have Django return, say, a ``MyUser`` object whenever you -query for :class:`~django.contrib.auth.models.User` objects. A queryset for -``User`` objects will return those types of objects. The whole point of proxy -objects is that code relying on the original ``User`` will use those and your -own code can use the extensions you included (that no other code is relying on -anyway). It is not a way to replace the ``User`` (or any other) model -everywhere with something of your own creation. +There is no way to have Django return, say, a ``MyPerson`` object whenever you +query for ``Person`` objects. A queryset for ``Person`` objects will return +those types of objects. The whole point of proxy objects is that code relying +on the original ``Person`` will use those and your own code can use the +extensions you included (that no other code is relying on anyway). It is not +a way to replace the ``Person`` (or any other) model everywhere with something +of your own creation. Base class restrictions ~~~~~~~~~~~~~~~~~~~~~~~ @@ -1131,12 +1125,12 @@ it will become the default, although any managers defined on the parent classes will still be available. Continuing our example from above, you could change the default manager used -when you query the ``User`` model like this:: +when you query the ``Person`` model like this:: class NewManager(models.Manager): ... - class MyUser(User): + class MyPerson(Person): objects = NewManager() class Meta: @@ -1154,7 +1148,7 @@ containing the new managers and inherit that after the primary base class:: class Meta: abstract = True - class MyUser(User, ExtraManagers): + class MyPerson(Person, ExtraManagers): class Meta: proxy = True diff --git a/docs/topics/index.txt b/docs/topics/index.txt index 82c5859b2c..a69318f05c 100644 --- a/docs/topics/index.txt +++ b/docs/topics/index.txt @@ -14,7 +14,7 @@ Introductions to all the key parts of Django you'll need to know: class-based-views/index files testing/index - auth + auth/index cache conditional-view-processing signing diff --git a/docs/topics/testing/overview.txt b/docs/topics/testing/overview.txt index c1c2a32f55..0627bd40d7 100644 --- a/docs/topics/testing/overview.txt +++ b/docs/topics/testing/overview.txt @@ -651,7 +651,7 @@ Use the ``django.test.client.Client`` class to make requests. .. method:: Client.login(**credentials) - If your site uses Django's :doc:`authentication system` + If your site uses Django's :doc:`authentication system` and you deal with logging in users, you can use the test client's ``login()`` method to simulate the effect of a user logging into the site. @@ -695,7 +695,7 @@ Use the ``django.test.client.Client`` class to make requests. .. method:: Client.logout() - If your site uses Django's :doc:`authentication system`, + If your site uses Django's :doc:`authentication system`, the ``logout()`` method can be used to simulate the effect of a user logging out of your site. -- cgit v1.3 From 37b3fd27ae63001cb3258f7d147aeb24712d00a2 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Fri, 28 Dec 2012 21:42:58 +0100 Subject: Fixed #18970 -- Documented know limitations under Python 3. --- docs/releases/1.5.txt | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'docs') diff --git a/docs/releases/1.5.txt b/docs/releases/1.5.txt index 57ac983568..b0f0bee293 100644 --- a/docs/releases/1.5.txt +++ b/docs/releases/1.5.txt @@ -94,11 +94,19 @@ applications that support both platforms. However, we're labeling this support "experimental" for now: although it's received extensive testing via our automated test suite, it's received very little real-world testing. We've done our best to eliminate bugs, but we can't -be sure we covered all possible uses of Django. Further, Django's more than a -web framework; it's an ecosystem of pluggable components. At this point, very -few third-party applications have been ported to Python 3, so it's unlikely -that a real-world application will have all its dependencies satisfied under -Python 3. +be sure we covered all possible uses of Django. + +Some features of Django aren't available because they depend on third-party +software that hasn't been ported to Python 3 yet, including: + +- the MySQL database backend (depends on MySQLdb) +- :class:`~django.db.models.fields.ImageField` (depends on PIL) +- :class:`~django.test.LiveServerTestCase` (depends on Selenium WebDriver) + +Further, Django's more than a web framework; it's an ecosystem of pluggable +components. At this point, very few third-party applications have been ported +to Python 3, so it's unlikely that a real-world application will have all its +dependencies satisfied under Python 3. Thus, we're recommending that Django 1.5 not be used in production under Python 3. Instead, use this opportunity to begin :doc:`porting applications to Python 3 -- cgit v1.3 From 2d0b35d2bb0829aac2aeae55a27611cb1f64a138 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Sat, 29 Dec 2012 11:30:12 +0100 Subject: Added links to default widget in forms.fields documentation --- docs/ref/forms/fields.txt | 54 +++++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 27 deletions(-) (limited to 'docs') diff --git a/docs/ref/forms/fields.txt b/docs/ref/forms/fields.txt index c7d9c5fbbe..5d8e902609 100644 --- a/docs/ref/forms/fields.txt +++ b/docs/ref/forms/fields.txt @@ -289,7 +289,7 @@ For each field, we describe the default widget used if you don't specify .. class:: BooleanField(**kwargs) - * Default widget: ``CheckboxInput`` + * Default widget: :class:`CheckboxInput` * Empty value: ``False`` * Normalizes to: A Python ``True`` or ``False`` value. * Validates that the value is ``True`` (e.g. the check box is checked) if @@ -309,7 +309,7 @@ For each field, we describe the default widget used if you don't specify .. class:: CharField(**kwargs) - * Default widget: ``TextInput`` + * Default widget: :class:`TextInput` * Empty value: ``''`` (an empty string) * Normalizes to: A Unicode object. * Validates ``max_length`` or ``min_length``, if they are provided. @@ -329,7 +329,7 @@ For each field, we describe the default widget used if you don't specify .. class:: ChoiceField(**kwargs) - * Default widget: ``Select`` + * Default widget: :class:`Select` * Empty value: ``''`` (an empty string) * Normalizes to: A Unicode object. * Validates that the given value exists in the list of choices. @@ -355,7 +355,7 @@ For each field, we describe the default widget used if you don't specify Just like a :class:`ChoiceField`, except :class:`TypedChoiceField` takes two extra arguments, ``coerce`` and ``empty_value``. - * Default widget: ``Select`` + * Default widget: :class:`Select` * Empty value: Whatever you've given as ``empty_value`` * Normalizes to: A value of the type provided by the ``coerce`` argument. * Validates that the given value exists in the list of choices and can be @@ -382,7 +382,7 @@ For each field, we describe the default widget used if you don't specify .. class:: DateField(**kwargs) - * Default widget: ``DateInput`` + * Default widget: :class:`DateInput` * Empty value: ``None`` * Normalizes to: A Python ``datetime.date`` object. * Validates that the given value is either a ``datetime.date``, @@ -421,7 +421,7 @@ For each field, we describe the default widget used if you don't specify .. class:: DateTimeField(**kwargs) - * Default widget: ``DateTimeInput`` + * Default widget: :class:`DateTimeInput` * Empty value: ``None`` * Normalizes to: A Python ``datetime.datetime`` object. * Validates that the given value is either a ``datetime.datetime``, @@ -454,7 +454,7 @@ For each field, we describe the default widget used if you don't specify .. class:: DecimalField(**kwargs) - * Default widget: ``TextInput`` + * Default widget: :class:`TextInput` * Empty value: ``None`` * Normalizes to: A Python ``decimal``. * Validates that the given value is a decimal. Leading and trailing @@ -489,7 +489,7 @@ For each field, we describe the default widget used if you don't specify .. class:: EmailField(**kwargs) - * Default widget: ``TextInput`` + * Default widget: :class:`TextInput` * Empty value: ``''`` (an empty string) * Normalizes to: A Unicode object. * Validates that the given value is a valid email address, using a @@ -505,7 +505,7 @@ For each field, we describe the default widget used if you don't specify .. class:: FileField(**kwargs) - * Default widget: ``ClearableFileInput`` + * Default widget: :class:`ClearableFileInput` * Empty value: ``None`` * Normalizes to: An ``UploadedFile`` object that wraps the file content and file name into a single object. @@ -533,7 +533,7 @@ For each field, we describe the default widget used if you don't specify .. class:: FilePathField(**kwargs) - * Default widget: ``Select`` + * Default widget: :class:`Select` * Empty value: ``None`` * Normalizes to: A unicode object * Validates that the selected choice exists in the list of choices. @@ -580,7 +580,7 @@ For each field, we describe the default widget used if you don't specify .. class:: FloatField(**kwargs) - * Default widget: ``TextInput`` + * Default widget: :class:`TextInput` * Empty value: ``None`` * Normalizes to: A Python float. * Validates that the given value is an float. Leading and trailing @@ -596,7 +596,7 @@ For each field, we describe the default widget used if you don't specify .. class:: ImageField(**kwargs) - * Default widget: ``ClearableFileInput`` + * Default widget: :class:`ClearableFileInput` * Empty value: ``None`` * Normalizes to: An ``UploadedFile`` object that wraps the file content and file name into a single object. @@ -621,7 +621,7 @@ For each field, we describe the default widget used if you don't specify .. class:: IntegerField(**kwargs) - * Default widget: ``TextInput`` + * Default widget: :class:`TextInput` * Empty value: ``None`` * Normalizes to: A Python integer or long integer. * Validates that the given value is an integer. Leading and trailing @@ -644,7 +644,7 @@ For each field, we describe the default widget used if you don't specify .. class:: IPAddressField(**kwargs) - * Default widget: ``TextInput`` + * Default widget: :class:`TextInput` * Empty value: ``''`` (an empty string) * Normalizes to: A Unicode object. * Validates that the given value is a valid IPv4 address, using a regular @@ -660,7 +660,7 @@ For each field, we describe the default widget used if you don't specify A field containing either an IPv4 or an IPv6 address. - * Default widget: ``TextInput`` + * Default widget: :class:`TextInput` * Empty value: ``''`` (an empty string) * Normalizes to: A Unicode object. IPv6 addresses are normalized as described below. @@ -693,7 +693,7 @@ For each field, we describe the default widget used if you don't specify .. class:: MultipleChoiceField(**kwargs) - * Default widget: ``SelectMultiple`` + * Default widget: :class:`SelectMultiple` * Empty value: ``[]`` (an empty list) * Normalizes to: A list of Unicode objects. * Validates that every value in the given list of values exists in the list @@ -713,7 +713,7 @@ For each field, we describe the default widget used if you don't specify Just like a :class:`MultipleChoiceField`, except :class:`TypedMultipleChoiceField` takes two extra arguments, ``coerce`` and ``empty_value``. - * Default widget: ``SelectMultiple`` + * Default widget: :class:`SelectMultiple` * Empty value: Whatever you've given as ``empty_value`` * Normalizes to: A list of values of the type provided by the ``coerce`` argument. @@ -731,7 +731,7 @@ For each field, we describe the default widget used if you don't specify .. class:: NullBooleanField(**kwargs) - * Default widget: ``NullBooleanSelect`` + * Default widget: :class:`NullBooleanSelect` * Empty value: ``None`` * Normalizes to: A Python ``True``, ``False`` or ``None`` value. * Validates nothing (i.e., it never raises a ``ValidationError``). @@ -741,7 +741,7 @@ For each field, we describe the default widget used if you don't specify .. class:: RegexField(**kwargs) - * Default widget: ``TextInput`` + * Default widget: :class:`TextInput` * Empty value: ``''`` (an empty string) * Normalizes to: A Unicode object. * Validates that the given value matches against a certain regular @@ -768,7 +768,7 @@ For each field, we describe the default widget used if you don't specify .. class:: SlugField(**kwargs) - * Default widget: ``TextInput`` + * Default widget: :class:`TextInput` * Empty value: ``''`` (an empty string) * Normalizes to: A Unicode object. * Validates that the given value contains only letters, numbers, @@ -783,7 +783,7 @@ For each field, we describe the default widget used if you don't specify .. class:: TimeField(**kwargs) - * Default widget: ``TextInput`` + * Default widget: :class:`TextInput` * Empty value: ``None`` * Normalizes to: A Python ``datetime.time`` object. * Validates that the given value is either a ``datetime.time`` or string @@ -807,7 +807,7 @@ For each field, we describe the default widget used if you don't specify .. class:: URLField(**kwargs) - * Default widget: ``TextInput`` + * Default widget: :class:`TextInput` * Empty value: ``''`` (an empty string) * Normalizes to: A Unicode object. * Validates that the given value is a valid URL. @@ -829,7 +829,7 @@ Slightly complex built-in ``Field`` classes .. class:: ComboField(**kwargs) - * Default widget: ``TextInput`` + * Default widget: :class:`TextInput` * Empty value: ``''`` (an empty string) * Normalizes to: A Unicode object. * Validates that the given value against each of the fields specified @@ -856,7 +856,7 @@ Slightly complex built-in ``Field`` classes .. class:: MultiValueField(fields=(), **kwargs) - * Default widget: ``TextInput`` + * Default widget: :class:`TextInput` * Empty value: ``''`` (an empty string) * Normalizes to: the type returned by the ``compress`` method of the subclass. * Validates that the given value against each of the fields specified @@ -902,7 +902,7 @@ Slightly complex built-in ``Field`` classes .. class:: SplitDateTimeField(**kwargs) - * Default widget: ``SplitDateTimeWidget`` + * Default widget: :class:`SplitDateTimeWidget` * Empty value: ``None`` * Normalizes to: A Python ``datetime.datetime`` object. * Validates that the given value is a ``datetime.datetime`` or string @@ -945,7 +945,7 @@ objects (in the case of ``ModelMultipleChoiceField``) into the .. class:: ModelChoiceField(**kwargs) - * Default widget: ``Select`` + * Default widget: :class:`Select` * Empty value: ``None`` * Normalizes to: A model instance. * Validates that the given id exists in the queryset. @@ -1000,7 +1000,7 @@ objects (in the case of ``ModelMultipleChoiceField``) into the .. class:: ModelMultipleChoiceField(**kwargs) - * Default widget: ``SelectMultiple`` + * Default widget: :class:`SelectMultiple` * Empty value: An empty ``QuerySet`` (self.queryset.none()) * Normalizes to: A ``QuerySet`` of model instances. * Validates that every id in the given list of values exists in the -- cgit v1.3 From 067505ad19f088e8db1d8c788ceea388c7241bcd Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sat, 29 Dec 2012 10:35:12 -0500 Subject: Fixed broken links, round 4. refs #19516 --- docs/howto/auth-remote-user.txt | 2 ++ docs/howto/custom-management-commands.txt | 9 ++++++ docs/howto/custom-model-fields.txt | 20 ++++++------ docs/internals/deprecation.txt | 30 ++++++++--------- docs/ref/contrib/auth.txt | 8 ++--- docs/ref/contrib/gis/testing.txt | 2 ++ docs/ref/contrib/messages.txt | 2 ++ docs/ref/signals.txt | 17 ++++------ docs/releases/1.0-porting-guide.txt | 13 ++++---- docs/releases/1.1-beta-1.txt | 2 +- docs/releases/1.1.txt | 19 ++++++----- docs/releases/1.2.4.txt | 2 +- docs/releases/1.3-alpha-1.txt | 36 ++++++++++----------- docs/releases/1.3-beta-1.txt | 9 +++--- docs/releases/1.3.txt | 53 ++++++++++++++----------------- docs/releases/1.4-alpha-1.txt | 2 +- docs/releases/1.4-beta-1.txt | 2 +- docs/releases/1.4.txt | 2 +- docs/releases/1.5-alpha-1.txt | 9 +++--- docs/releases/1.5-beta-1.txt | 8 ++--- docs/releases/1.5.txt | 10 +++--- docs/topics/class-based-views/mixins.txt | 39 +++++++++++------------ docs/topics/db/queries.txt | 4 +++ docs/topics/forms/formsets.txt | 2 +- docs/topics/forms/index.txt | 6 ++-- docs/topics/forms/modelforms.txt | 2 ++ docs/topics/http/sessions.txt | 2 +- docs/topics/i18n/translation.txt | 2 ++ docs/topics/pagination.txt | 4 +-- docs/topics/testing/overview.txt | 4 +-- 30 files changed, 164 insertions(+), 158 deletions(-) (limited to 'docs') diff --git a/docs/howto/auth-remote-user.txt b/docs/howto/auth-remote-user.txt index deab794cb1..d59bb25a85 100644 --- a/docs/howto/auth-remote-user.txt +++ b/docs/howto/auth-remote-user.txt @@ -27,6 +27,8 @@ use of the ``REMOTE_USER`` value using the ``RemoteUserMiddleware`` and Configuration ============= +.. class:: django.contrib.auth.middleware.RemoteUserMiddleware + First, you must add the :class:`django.contrib.auth.middleware.RemoteUserMiddleware` to the :setting:`MIDDLEWARE_CLASSES` setting **after** the diff --git a/docs/howto/custom-management-commands.txt b/docs/howto/custom-management-commands.txt index 12e8ec2494..6a7f644218 100644 --- a/docs/howto/custom-management-commands.txt +++ b/docs/howto/custom-management-commands.txt @@ -2,6 +2,8 @@ Writing custom django-admin commands ==================================== +.. module:: django.core.management + Applications can register their own actions with ``manage.py``. For example, you might want to add a ``manage.py`` action for a Django app that you're distributing. In this document, we will be building a custom ``closepoll`` @@ -261,6 +263,13 @@ the :meth:`~BaseCommand.handle` method must be implemented. The actual logic of the command. Subclasses must implement this method. +.. method:: BaseCommand.validate(app=None, display_num_errors=False) + + Validates the given app, raising :class:`CommandError` for any errors. + + If ``app`` is None, then all installed apps are validated. + + .. _ref-basecommand-subclasses: BaseCommand subclasses diff --git a/docs/howto/custom-model-fields.txt b/docs/howto/custom-model-fields.txt index 1e9d5d8701..dd57da5d45 100644 --- a/docs/howto/custom-model-fields.txt +++ b/docs/howto/custom-model-fields.txt @@ -153,8 +153,8 @@ class, from which everything is descended. Initializing your new field is a matter of separating out any arguments that are specific to your case from the common arguments and passing the latter to the -:meth:`~django.db.models.Field.__init__` method of -:class:`~django.db.models.Field` (or your parent class). +``__init__()`` method of :class:`~django.db.models.Field` (or your parent +class). In our example, we'll call our field ``HandField``. (It's a good idea to call your :class:`~django.db.models.Field` subclass ``Field``, so it's @@ -602,11 +602,11 @@ Returns the default form field to use when this field is displayed in a model. This method is called by the :class:`~django.forms.ModelForm` helper. All of the ``kwargs`` dictionary is passed directly to the form field's -:meth:`~django.forms.Field__init__` method. Normally, all you need to do is -set up a good default for the ``form_class`` argument and then delegate further -handling to the parent class. This might require you to write a custom form -field (and even a form widget). See the :doc:`forms documentation -` for information about this, and take a look at the code in +``__init__()`` method. Normally, all you need to do is set up a good default +for the ``form_class`` argument and then delegate further handling to the +parent class. This might require you to write a custom form field (and even a +form widget). See the :doc:`forms documentation ` for +information about this, and take a look at the code in :mod:`django.contrib.localflavor` for some examples of custom widgets. Continuing our ongoing example, we can write the :meth:`.formfield` method as:: @@ -668,7 +668,7 @@ Converting field data for serialization .. method:: Field.value_to_string(self, obj) This method is used by the serializers to convert the field into a string for -output. Calling :meth:`Field._get_val_from_obj(obj)` is the best way to get the +output. Calling ``Field._get_val_from_obj(obj)`` is the best way to get the value to serialize. For example, since our ``HandField`` uses strings for its data storage anyway, we can reuse some existing conversion code:: @@ -692,12 +692,12 @@ smoothly: a field that's similar to what you want and extend it a little bit, instead of creating an entirely new field from scratch. -2. Put a :meth:`__str__` or :meth:`__unicode__` method on the class you're +2. Put a ``__str__()`` or ``__unicode__()`` method on the class you're wrapping up as a field. There are a lot of places where the default behavior of the field code is to call :func:`~django.utils.encoding.force_text` on the value. (In our examples in this document, ``value`` would be a ``Hand`` instance, not a - ``HandField``). So if your :meth:`__unicode__` method automatically + ``HandField``). So if your ``__unicode__()`` method automatically converts to the string form of your Python object, you can save yourself a lot of work. diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt index 77f03ae2c7..74f544c220 100644 --- a/docs/internals/deprecation.txt +++ b/docs/internals/deprecation.txt @@ -20,7 +20,7 @@ these changes. * The old imports for CSRF functionality (``django.contrib.csrf.*``), which moved to core in 1.2, will be removed. -* The :mod:`django.contrib.gis.db.backend` module will be removed in favor +* The ``django.contrib.gis.db.backend`` module will be removed in favor of the specific backends. * ``SMTPConnection`` will be removed in favor of a generic Email backend API. @@ -122,23 +122,23 @@ these changes. The :attr:`~django.test.client.Response.templates` attribute should be used instead. -* The :class:`~django.test.simple.DjangoTestRunner` will be removed. +* The ``django.test.simple.DjangoTestRunner`` will be removed. Instead use a unittest-native class. The features of the - :class:`django.test.simple.DjangoTestRunner` (including fail-fast and + ``django.test.simple.DjangoTestRunner`` (including fail-fast and Ctrl-C test termination) can currently be provided by the unittest-native - :class:`TextTestRunner`. + :class:`~unittest.TextTestRunner`. * The undocumented function - :func:`django.contrib.formtools.utils.security_hash` will be removed, - instead use :func:`django.contrib.formtools.utils.form_hmac` + ``django.contrib.formtools.utils.security_hash`` will be removed, + instead use ``django.contrib.formtools.utils.form_hmac`` * The function-based generic view modules will be removed in favor of their class-based equivalents, outlined :doc:`here `. -* The :class:`~django.core.servers.basehttp.AdminMediaHandler` will be +* The ``django.core.servers.basehttp.AdminMediaHandler`` will be removed. In its place use - :class:`~django.contrib.staticfiles.handlers.StaticFilesHandler`. + ``django.contrib.staticfiles.handlers.StaticFilesHandler``. * The template tags library ``adminmedia`` and the template tag ``{% admin_media_prefix %}`` will be removed in favor of the generic static files @@ -150,8 +150,7 @@ these changes. an implied string. In 1.4, this behavior is provided by a version of the tag in the ``future`` template tag library. -* The :djadmin:`reset` and :djadmin:`sqlreset` management commands - will be removed. +* The ``reset`` and ``sqlreset`` management commands will be removed. * Authentication backends will need to support an inactive user being passed to all methods dealing with permissions. @@ -162,11 +161,11 @@ these changes. a :class:`~django.contrib.gis.geos.GEOSException` when called on a geometry with no SRID value. -* :class:`~django.http.CompatCookie` will be removed in favor of - :class:`~django.http.SimpleCookie`. +* ``django.http.CompatCookie`` will be removed in favor of + ``django.http.SimpleCookie``. -* :class:`django.core.context_processors.PermWrapper` and - :class:`django.core.context_processors.PermLookupDict` will be removed in +* ``django.core.context_processors.PermWrapper`` and + ``django.core.context_processors.PermLookupDict`` will be removed in favor of the corresponding :class:`django.contrib.auth.context_processors.PermWrapper` and :class:`django.contrib.auth.context_processors.PermLookupDict`, @@ -213,8 +212,7 @@ these changes. ``django.utils.itercompat.all`` and ``django.utils.itercompat.any`` will be removed. The Python builtin versions should be used instead. -* The :func:`~django.views.decorators.csrf.csrf_response_exempt` and - :func:`~django.views.decorators.csrf.csrf_view_exempt` decorators will +* The ``csrf_response_exempt`` and ``csrf_view_exempt`` decorators will be removed. Since 1.4 ``csrf_response_exempt`` has been a no-op (it returns the same function), and ``csrf_view_exempt`` has been a synonym for ``django.views.decorators.csrf.csrf_exempt``, which should diff --git a/docs/ref/contrib/auth.txt b/docs/ref/contrib/auth.txt index 41f218b0a4..74a69c1f7d 100644 --- a/docs/ref/contrib/auth.txt +++ b/docs/ref/contrib/auth.txt @@ -349,7 +349,7 @@ Login and logout signals The auth framework uses two :doc:`signals ` that can be used for notification when a user logs in or out. -.. function:: django.contrib.auth.signals.user_logged_in +.. function:: user_logged_in Sent when a user logs in successfully. @@ -364,7 +364,7 @@ for notification when a user logs in or out. ``user`` The user instance that just logged in. -.. function:: django.contrib.auth.signals.user_logged_out +.. function:: user_logged_out Sent when the logout method is called. @@ -379,9 +379,9 @@ for notification when a user logs in or out. The user instance that just logged out or ``None`` if the user was not authenticated. -.. function:: django.contrib.auth.signals.user_login_failed +.. function:: user_login_failed -.. versionadded:: 1.5 + .. versionadded:: 1.5 Sent when the user failed to login successfully diff --git a/docs/ref/contrib/gis/testing.txt b/docs/ref/contrib/gis/testing.txt index 86979f0308..2a6dcef46f 100644 --- a/docs/ref/contrib/gis/testing.txt +++ b/docs/ref/contrib/gis/testing.txt @@ -140,6 +140,8 @@ with the rest of :ref:`Django's unit tests `. Run only GeoDjango tests ------------------------ +.. class:: django.contrib.gis.tests.GeoDjangoTestSuiteRunner + To run *only* the tests for GeoDjango, the :setting:`TEST_RUNNER` setting must be changed to use the :class:`~django.contrib.gis.tests.GeoDjangoTestSuiteRunner`:: diff --git a/docs/ref/contrib/messages.txt b/docs/ref/contrib/messages.txt index 4fa733edb5..661d7f2103 100644 --- a/docs/ref/contrib/messages.txt +++ b/docs/ref/contrib/messages.txt @@ -149,6 +149,8 @@ tags for the levels you wish to override:: Using messages in views and templates ===================================== +.. function:: add_message(request, level, message, extra_tags='', fail_silently=False) + Adding a message ---------------- diff --git a/docs/ref/signals.txt b/docs/ref/signals.txt index 0671d80b7c..c31c90f4e8 100644 --- a/docs/ref/signals.txt +++ b/docs/ref/signals.txt @@ -27,9 +27,8 @@ module system. .. warning:: Many of these signals are sent by various model methods like - :meth:`~django.db.models.Model.__init__` or - :meth:`~django.db.models.Model.save` that you can overwrite in your own - code. + ``__init__()`` or :meth:`~django.db.models.Model.save` that you can + override in your own code. If you override these methods on your model, you must call the parent class' methods for this signals to be sent. @@ -47,7 +46,7 @@ pre_init .. ^^^^^^^ this :module: hack keeps Sphinx from prepending the module. Whenever you instantiate a Django model, this signal is sent at the beginning -of the model's :meth:`~django.db.models.Model.__init__` method. +of the model's ``__init__()`` method. Arguments sent with this signal: @@ -55,12 +54,10 @@ Arguments sent with this signal: The model class that just had an instance created. ``args`` - A list of positional arguments passed to - :meth:`~django.db.models.Model.__init__`: + A list of positional arguments passed to ``__init__()``: ``kwargs`` - A dictionary of keyword arguments passed to - :meth:`~django.db.models.Model.__init__`:. + A dictionary of keyword arguments passed to ``__init__()``: For example, the :doc:`tutorial ` has this line:: @@ -74,7 +71,7 @@ Argument Value ``sender`` ``Poll`` (the class itself) ``args`` ``[]`` (an empty list because there were no positional - arguments passed to ``__init__``.) + arguments passed to ``__init__()``.) ``kwargs`` ``{'question': "What's up?", 'pub_date': datetime.now()}`` ========== =============================================================== @@ -85,7 +82,7 @@ post_init .. data:: django.db.models.signals.post_init :module: -Like pre_init, but this one is sent when the :meth:`~django.db.models.Model.__init__`: method finishes. +Like pre_init, but this one is sent when the ``__init__()`` method finishes. Arguments sent with this signal: diff --git a/docs/releases/1.0-porting-guide.txt b/docs/releases/1.0-porting-guide.txt index ae73baa072..644350525c 100644 --- a/docs/releases/1.0-porting-guide.txt +++ b/docs/releases/1.0-porting-guide.txt @@ -277,8 +277,9 @@ Handle uploaded files using the new API ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Replace use of uploaded files -- that is, entries in ``request.FILES`` -- as -simple dictionaries with the new :class:`~django.core.files.UploadedFile`. The -old dictionary syntax no longer works. +simple dictionaries with the new +:class:`~django.core.files.uploadedfile.UploadedFile`. The old dictionary +syntax no longer works. Thus, in a view like:: @@ -410,7 +411,7 @@ U.S. local flavor ~~~~~~~~~~~~~~~~~ ``django.contrib.localflavor.usa`` has been renamed to -:mod:`django.contrib.localflavor.us`. This change was made to match the naming +``django.contrib.localflavor.us``. This change was made to match the naming scheme of other local flavors. To migrate your code, all you need to do is change the imports. @@ -642,8 +643,8 @@ The generic relation classes -- ``GenericForeignKey`` and ``GenericRelation`` Testing ------- -:meth:`django.test.Client.login` has changed -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +:meth:`django.test.client.Client.login` has changed +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Old (0.96):: @@ -721,7 +722,7 @@ To update your code: 1. Use :class:`django.utils.datastructures.SortedDict` wherever you were using ``django.newforms.forms.SortedDictFromList``. -2. Because :meth:`django.utils.datastructures.SortedDict.copy` doesn't +2. Because ``django.utils.datastructures.SortedDict.copy`` doesn't return a deepcopy as ``SortedDictFromList.copy()`` did, you will need to update your code if you were relying on a deepcopy. Do this by using ``copy.deepcopy`` directly. diff --git a/docs/releases/1.1-beta-1.txt b/docs/releases/1.1-beta-1.txt index 1555a9464a..88d8ce5f35 100644 --- a/docs/releases/1.1-beta-1.txt +++ b/docs/releases/1.1-beta-1.txt @@ -36,7 +36,7 @@ A number of features have been added to Django's model layer: You can now control whether or not Django creates database tables for a model using the :attr:`~Options.managed` model option. This defaults to ``True``, meaning that Django will create the appropriate database tables in -:djadmin:`syncdb` and remove them as part of :djadmin:`reset` command. That +:djadmin:`syncdb` and remove them as part of ``reset`` command. That is, Django *manages* the database table's lifecycle. If you set this to ``False``, however, no database table creating or deletion diff --git a/docs/releases/1.1.txt b/docs/releases/1.1.txt index 68fc624924..ca8e1fff2a 100644 --- a/docs/releases/1.1.txt +++ b/docs/releases/1.1.txt @@ -37,7 +37,7 @@ If you are using a 32-bit platform, you're off the hook; you'll observe no differences as a result of this change. However, **users on 64-bit platforms may experience some problems** using the -:djadmin:`reset` management command. Prior to this change, 64-bit platforms +``reset`` management command. Prior to this change, 64-bit platforms would generate a 64-bit, 16 character digest in the constraint name; for example:: @@ -48,14 +48,14 @@ Following this change, all platforms, regardless of word size, will generate a ALTER TABLE myapp_sometable ADD CONSTRAINT object_id_refs_id_32091d1e FOREIGN KEY ... -As a result of this change, you will not be able to use the :djadmin:`reset` +As a result of this change, you will not be able to use the ``reset`` management command on any table made by a 64-bit machine. This is because the the new generated name will not match the historically generated name; as a result, the SQL constructed by the reset command will be invalid. If you need to reset an application that was created with 64-bit constraints, you will need to manually drop the old constraint prior to invoking -:djadmin:`reset`. +``reset``. Test cases are now run in a transaction --------------------------------------- @@ -120,9 +120,8 @@ has been saved. Changes to how model formsets are saved --------------------------------------- -.. currentmodule:: django.forms.models - -In Django 1.1, :class:`BaseModelFormSet` now calls :meth:`ModelForm.save()`. +In Django 1.1, :class:`~django.forms.models.BaseModelFormSet` now calls +``ModelForm.save()``. This is backwards-incompatible if you were modifying ``self.initial`` in a model formset's ``__init__``, or if you relied on the internal ``_total_form_count`` @@ -146,7 +145,7 @@ Permanent redirects and the ``redirect_to()`` generic view ---------------------------------------------------------- Django 1.1 adds a ``permanent`` argument to the -:func:`django.views.generic.simple.redirect_to()` view. This is technically +``django.views.generic.simple.redirect_to()`` view. This is technically backwards-incompatible if you were using the ``redirect_to`` view with a format-string key called 'permanent', which is highly unlikely. @@ -211,8 +210,8 @@ Query expressions Queries can now refer to a another field on the query and can traverse relationships to refer to fields on related models. This is implemented in the -new :class:`F` object; for full details, including examples, consult the -:ref:`documentation for F expressions `. +new :class:`~django.db.models.F` object; for full details, including examples, +consult the :ref:`documentation for F expressions `. Model improvements ------------------ @@ -225,7 +224,7 @@ A number of features have been added to Django's model layer: You can now control whether or not Django manages the life-cycle of the database tables for a model using the :attr:`~Options.managed` model option. This defaults to ``True``, meaning that Django will create the appropriate database -tables in :djadmin:`syncdb` and remove them as part of the :djadmin:`reset` +tables in :djadmin:`syncdb` and remove them as part of the ``reset`` command. That is, Django *manages* the database table's lifecycle. If you set this to ``False``, however, no database table creating or deletion diff --git a/docs/releases/1.2.4.txt b/docs/releases/1.2.4.txt index cd4ab76f55..b74ea9aef2 100644 --- a/docs/releases/1.2.4.txt +++ b/docs/releases/1.2.4.txt @@ -76,7 +76,7 @@ GeoDjango ========= The function-based :setting:`TEST_RUNNER` previously used to execute -the GeoDjango test suite, :func:`django.contrib.gis.tests.run_gis_tests`, +the GeoDjango test suite, ``django.contrib.gis.tests.run_gis_tests``, was finally deprecated in favor of a class-based test runner, :class:`django.contrib.gis.tests.GeoDjangoTestSuiteRunner`, added in this release. diff --git a/docs/releases/1.3-alpha-1.txt b/docs/releases/1.3-alpha-1.txt index bb7f2dbb73..e2c52a7264 100644 --- a/docs/releases/1.3-alpha-1.txt +++ b/docs/releases/1.3-alpha-1.txt @@ -311,37 +311,35 @@ As a result of the introduction of class-based generic views, the function-based generic views provided by Django have been deprecated. The following modules and the views they contain have been deprecated: -* :mod:`django.views.generic.create_update` -* :mod:`django.views.generic.date_based` -* :mod:`django.views.generic.list_detail` -* :mod:`django.views.generic.simple` +* ``django.views.generic.create_update`` +* ``django.views.generic.date_based`` +* ``django.views.generic.list_detail`` +* ``django.views.generic.simple`` Test client response ``template`` attribute ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Django's :ref:`test client ` returns :class:`~django.test.client.Response` objects annotated with extra testing -information. In Django versions prior to 1.3, this included a -:attr:`~django.test.client.Response.template` attribute containing information -about templates rendered in generating the response: either None, a single -:class:`~django.template.Template` object, or a list of -:class:`~django.template.Template` objects. This inconsistency in return values -(sometimes a list, sometimes not) made the attribute difficult to work with. - -In Django 1.3 the :attr:`~django.test.client.Response.template` attribute is -deprecated in favor of a new :attr:`~django.test.client.Response.templates` -attribute, which is always a list, even if it has only a single element or no -elements. +information. In Django versions prior to 1.3, this included a ``template`` +attribute containing information about templates rendered in generating the +response: either None, a single :class:`~django.template.Template` object, or a +list of :class:`~django.template.Template` objects. This inconsistency in +return values (sometimes a list, sometimes not) made the attribute difficult +to work with. + +In Django 1.3 the ``template`` attribute is deprecated in favor of a new +:attr:`~django.test.client.Response.templates` attribute, which is always a +list, even if it has only a single element or no elements. ``DjangoTestRunner`` ~~~~~~~~~~~~~~~~~~~~ As a result of the introduction of support for unittest2, the features -of :class:`django.test.simple.DjangoTestRunner` (including fail-fast +of ``django.test.simple.DjangoTestRunner`` (including fail-fast and Ctrl-C test termination) have been made redundant. In view of this -redundancy, :class:`~django.test.simple.DjangoTestRunner` has been -turned into an empty placeholder class, and will be removed entirely -in Django 1.5. +redundancy, ``DjangoTestRunner`` has been turned into an empty placeholder +class, and will be removed entirely in Django 1.5. The Django 1.3 roadmap ====================== diff --git a/docs/releases/1.3-beta-1.txt b/docs/releases/1.3-beta-1.txt index 2729c7f2ba..d064063fce 100644 --- a/docs/releases/1.3-beta-1.txt +++ b/docs/releases/1.3-beta-1.txt @@ -142,10 +142,9 @@ Changes to ``USStateField`` The :mod:`django.contrib.localflavor` application contains collections of code relevant to specific countries or cultures. One such is -:class:`~django.contrib.localflavor.us.models.USStateField`, which -provides a field for storing the two-letter postal abbreviation of a -U.S. state. This field has consistently caused problems, however, -because it is often used to store the state portion of a U.S postal +``USStateField``, which provides a field for storing the two-letter postal +abbreviation of a U.S. state. This field has consistently caused problems, +however, because it is often used to store the state portion of a U.S postal address, but not all "states" recognized by the U.S Postal Service are actually states of the U.S. or even U.S. territory. Several compromises over the list of choices resulted in some users feeling @@ -161,7 +160,7 @@ as a pair of changes: choices, plus the U.S. Armed Forces postal codes. * A new model field, - :class:`django.contrib.localflavor.us.models.USPostalCodeField`, has + ``django.contrib.localflavor.us.models.USPostalCodeField``, has been added which draws its choices from a list of all postal abbreviations recognized by the U.S Postal Service. This includes all abbreviations recognized by `USStateField`, plus three diff --git a/docs/releases/1.3.txt b/docs/releases/1.3.txt index d6ef11d113..6a056532b9 100644 --- a/docs/releases/1.3.txt +++ b/docs/releases/1.3.txt @@ -700,40 +700,35 @@ As a result of the introduction of class-based generic views, the function-based generic views provided by Django have been deprecated. The following modules and the views they contain have been deprecated: -* :mod:`django.views.generic.create_update` - -* :mod:`django.views.generic.date_based` - -* :mod:`django.views.generic.list_detail` - -* :mod:`django.views.generic.simple` +* ``django.views.generic.create_update`` +* ``django.views.generic.date_based`` +* ``django.views.generic.list_detail`` +* ``django.views.generic.simple`` Test client response ``template`` attribute ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Django's :ref:`test client ` returns :class:`~django.test.client.Response` objects annotated with extra testing -information. In Django versions prior to 1.3, this included a -:attr:`~django.test.client.Response.template` attribute containing information -about templates rendered in generating the response: either None, a single -:class:`~django.template.Template` object, or a list of -:class:`~django.template.Template` objects. This inconsistency in return values -(sometimes a list, sometimes not) made the attribute difficult to work with. - -In Django 1.3 the :attr:`~django.test.client.Response.template` attribute is -deprecated in favor of a new :attr:`~django.test.client.Response.templates` -attribute, which is always a list, even if it has only a single element or no -elements. +information. In Django versions prior to 1.3, this included a ``template`` +attribute containing information about templates rendered in generating the +response: either None, a single :class:`~django.template.Template` object, or a +list of :class:`~django.template.Template` objects. This inconsistency in +return values (sometimes a list, sometimes not) made the attribute difficult +to work with. + +In Django 1.3 the ``template`` attribute is deprecated in favor of a new +:attr:`~django.test.client.Response.templates` attribute, which is always a +list, even if it has only a single element or no elements. ``DjangoTestRunner`` ~~~~~~~~~~~~~~~~~~~~ As a result of the introduction of support for unittest2, the features -of :class:`django.test.simple.DjangoTestRunner` (including fail-fast +of ``django.test.simple.DjangoTestRunner`` (including fail-fast and Ctrl-C test termination) have been made redundant. In view of this -redundancy, :class:`~django.test.simple.DjangoTestRunner` has been -turned into an empty placeholder class, and will be removed entirely -in Django 1.5. +redundancy, ``DjangoTestRunner`` has been turned into an empty placeholder +class, and will be removed entirely in Django 1.5. Changes to :ttag:`url` and :ttag:`ssi` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -805,9 +800,8 @@ GeoDjango ~~~~~~~~~ * The function-based :setting:`TEST_RUNNER` previously used to execute - the GeoDjango test suite, - :func:`django.contrib.gis.tests.run_gis_tests`, was deprecated for - the class-based runner, + the GeoDjango test suite, ``django.contrib.gis.tests.run_gis_tests``, was + deprecated for the class-based runner, :class:`django.contrib.gis.tests.GeoDjangoTestSuiteRunner`. * Previously, calling @@ -886,11 +880,10 @@ identical to their old versions; only the module location has changed. Removal of ``XMLField`` ~~~~~~~~~~~~~~~~~~~~~~~ -When Django was first released, Django included an -:class:`~django.db.models.XMLField` that performed automatic XML validation -for any field input. However, this validation function hasn't been -performed since the introduction of ``newforms``, prior to the 1.0 release. -As a result, ``XMLField`` as currently implemented is functionally +When Django was first released, Django included an ``XMLField`` that performed +automatic XML validation for any field input. However, this validation function +hasn't been performed since the introduction of ``newforms``, prior to the 1.0 +release. As a result, ``XMLField`` as currently implemented is functionally indistinguishable from a simple :class:`~django.db.models.TextField`. For this reason, Django 1.3 has fast-tracked the deprecation of diff --git a/docs/releases/1.4-alpha-1.txt b/docs/releases/1.4-alpha-1.txt index 3c6f7e9b27..fc19e90384 100644 --- a/docs/releases/1.4-alpha-1.txt +++ b/docs/releases/1.4-alpha-1.txt @@ -503,7 +503,7 @@ Django 1.4 also includes several smaller improvements worth noting: * In the documentation, a helpful :doc:`security overview ` page. -* The :func:`django.contrib.auth.models.check_password` function has been moved +* The ``django.contrib.auth.models.check_password`` function has been moved to the :mod:`django.contrib.auth.utils` module. Importing it from the old location will still work, but you should update your imports. diff --git a/docs/releases/1.4-beta-1.txt b/docs/releases/1.4-beta-1.txt index 2a1041bcd0..2c84d21b8d 100644 --- a/docs/releases/1.4-beta-1.txt +++ b/docs/releases/1.4-beta-1.txt @@ -563,7 +563,7 @@ Django 1.4 also includes several smaller improvements worth noting: * In the documentation, a helpful :doc:`security overview ` page. -* The :func:`django.contrib.auth.models.check_password` function has been moved +* The ``django.contrib.auth.models.check_password`` function has been moved to the :mod:`django.contrib.auth.utils` module. Importing it from the old location will still work, but you should update your imports. diff --git a/docs/releases/1.4.txt b/docs/releases/1.4.txt index 746ed58945..d700ba8b89 100644 --- a/docs/releases/1.4.txt +++ b/docs/releases/1.4.txt @@ -585,7 +585,7 @@ Django 1.4 also includes several smaller improvements worth noting: * In the documentation, a helpful :doc:`security overview ` page. -* The :func:`django.contrib.auth.models.check_password` function has been moved +* The ``django.contrib.auth.models.check_password`` function has been moved to the :mod:`django.contrib.auth.hashers` module. Importing it from the old location will still work, but you should update your imports. diff --git a/docs/releases/1.5-alpha-1.txt b/docs/releases/1.5-alpha-1.txt index b167bb1879..c2ad691a76 100644 --- a/docs/releases/1.5-alpha-1.txt +++ b/docs/releases/1.5-alpha-1.txt @@ -423,7 +423,7 @@ More information on these incompatibilities is available in `ticket #18023`_. The net result is that, if you have installed :mod:`simplejson` and your code uses Django's serialization internals directly -- for instance -:class:`django.core.serializers.json.DjangoJSONEncoder`, the switch from +``django.core.serializers.json.DjangoJSONEncoder``, the switch from :mod:`simplejson` to :mod:`json` could break your code. (In general, changes to internals aren't documented; we're making an exception here.) @@ -449,8 +449,8 @@ When using :doc:`object pagination `, the ``previous_page_number()`` and ``next_page_number()`` methods of the :class:`~django.core.paginator.Page` object did not check if the returned number was inside the existing page range. -It does check it now and raises an :exc:`InvalidPage` exception when the number -is either too low or too high. +It does check it now and raises an :exc:`~django.core.paginator.InvalidPage` +exception when the number is either too low or too high. Behavior of autocommit database option on PostgreSQL changed ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -619,10 +619,9 @@ Define a ``__str__`` method and apply the ``django.utils.itercompat.product`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The :func:`~django.utils.itercompat.product` function has been deprecated. Use +The ``django.utils.itercompat.product`` function has been deprecated. Use the built-in :func:`itertools.product` instead. - ``django.utils.markup`` ~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/releases/1.5-beta-1.txt b/docs/releases/1.5-beta-1.txt index 7208d9657c..4dbe77f806 100644 --- a/docs/releases/1.5-beta-1.txt +++ b/docs/releases/1.5-beta-1.txt @@ -448,7 +448,7 @@ More information on these incompatibilities is available in `ticket #18023`_. The net result is that, if you have installed :mod:`simplejson` and your code uses Django's serialization internals directly -- for instance -:class:`django.core.serializers.json.DjangoJSONEncoder`, the switch from +``django.core.serializers.json.DjangoJSONEncoder``, the switch from :mod:`simplejson` to :mod:`json` could break your code. (In general, changes to internals aren't documented; we're making an exception here.) @@ -474,8 +474,8 @@ When using :doc:`object pagination `, the ``previous_page_number()`` and ``next_page_number()`` methods of the :class:`~django.core.paginator.Page` object did not check if the returned number was inside the existing page range. -It does check it now and raises an :exc:`InvalidPage` exception when the number -is either too low or too high. +It does check it now and raises an :exc:`~django.core.paginator.InvalidPage` +exception when the number is either too low or too high. Behavior of autocommit database option on PostgreSQL changed ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -672,7 +672,7 @@ Define a ``__str__`` method and apply the ``django.utils.itercompat.product`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The :func:`~django.utils.itercompat.product` function has been deprecated. Use +The ``django.utils.itercompat.product`` function has been deprecated. Use the built-in :func:`itertools.product` instead. ``django.utils.markup`` diff --git a/docs/releases/1.5.txt b/docs/releases/1.5.txt index b0f0bee293..a449f4ab12 100644 --- a/docs/releases/1.5.txt +++ b/docs/releases/1.5.txt @@ -100,7 +100,7 @@ Some features of Django aren't available because they depend on third-party software that hasn't been ported to Python 3 yet, including: - the MySQL database backend (depends on MySQLdb) -- :class:`~django.db.models.fields.ImageField` (depends on PIL) +- :class:`~django.db.models.ImageField` (depends on PIL) - :class:`~django.test.LiveServerTestCase` (depends on Selenium WebDriver) Further, Django's more than a web framework; it's an ecosystem of pluggable @@ -469,7 +469,7 @@ More information on these incompatibilities is available in `ticket #18023`_. The net result is that, if you have installed :mod:`simplejson` and your code uses Django's serialization internals directly -- for instance -:class:`django.core.serializers.json.DjangoJSONEncoder`, the switch from +``django.core.serializers.json.DjangoJSONEncoder``, the switch from :mod:`simplejson` to :mod:`json` could break your code. (In general, changes to internals aren't documented; we're making an exception here.) @@ -495,8 +495,8 @@ When using :doc:`object pagination `, the ``previous_page_number()`` and ``next_page_number()`` methods of the :class:`~django.core.paginator.Page` object did not check if the returned number was inside the existing page range. -It does check it now and raises an :exc:`InvalidPage` exception when the number -is either too low or too high. +It does check it now and raises an :exc:`~django.core.paginator.InvalidPage` +exception when the number is either too low or too high. Behavior of autocommit database option on PostgreSQL changed ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -714,7 +714,7 @@ Define a ``__str__`` method and apply the ``django.utils.itercompat.product`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The :func:`~django.utils.itercompat.product` function has been deprecated. Use +The ``django.utils.itercompat.product`` function has been deprecated. Use the built-in :func:`itertools.product` instead. ``cleanup`` management command diff --git a/docs/topics/class-based-views/mixins.txt b/docs/topics/class-based-views/mixins.txt index f349c23626..923b877cc5 100644 --- a/docs/topics/class-based-views/mixins.txt +++ b/docs/topics/class-based-views/mixins.txt @@ -93,8 +93,8 @@ DetailView: working with a single Django object To show the detail of an object, we basically need to do two things: we need to look up the object and then we need to make a -:class:`TemplateResponse` with a suitable template, and that object as -context. +:class:`~django.template.response.TemplateResponse` with a suitable template, +and that object as context. To get the object, :class:`~django.views.generic.detail.DetailView` relies on :class:`~django.views.generic.detail.SingleObjectMixin`, @@ -111,15 +111,14 @@ attribute if that's provided). :class:`SingleObjectMixin` also overrides which is used across all Django's built in class-based views to supply context data for template renders. -To then make a :class:`TemplateResponse`, :class:`DetailView` uses +To then make a :class:`~django.template.response.TemplateResponse`, +:class:`DetailView` uses :class:`~django.views.generic.detail.SingleObjectTemplateResponseMixin`, -which extends -:class:`~django.views.generic.base.TemplateResponseMixin`, overriding -:meth:`get_template_names()` as discussed above. It actually provides -a fairly sophisticated set of options, but the main one that most -people are going to use is -``/_detail.html``. The ``_detail`` part can be -changed by setting +which extends :class:`~django.views.generic.base.TemplateResponseMixin`, +overriding :meth:`get_template_names()` as discussed above. It actually +provides a fairly sophisticated set of options, but the main one that most +people are going to use is ``/_detail.html``. The +``_detail`` part can be changed by setting :attr:`~django.views.generic.detail.SingleObjectTemplateResponseMixin.template_name_suffix` on a subclass to something else. (For instance, the :doc:`generic edit views` use ``_form`` for create and update views, and @@ -265,7 +264,7 @@ We can hook this into our URLs easily enough:: Note the ``pk`` named group, which :meth:`~django.views.generic.detail.SingleObjectMixin.get_object` uses -to look up the :class:`Author` instance. You could also use a slug, or +to look up the ``Author`` instance. You could also use a slug, or any of the other features of :class:`SingleObjectMixin`. Using SingleObjectMixin with ListView @@ -299,7 +298,7 @@ object. In order to do this, we need to have two different querysets: will add in the suitable ``page_obj`` and ``paginator`` for us providing we remember to call ``super()``. -Now we can write a new :class:`PublisherDetail`:: +Now we can write a new ``PublisherDetail``:: from django.views.generic import ListView from django.views.generic.detail import SingleObjectMixin @@ -403,7 +402,7 @@ At this point it's natural to reach for a :class:`Form` to encapsulate the information sent from the user's browser to Django. Say also that we're heavily invested in `REST`_, so we want to use the same URL for displaying the author as for capturing the message from the -user. Let's rewrite our :class:`AuthorDetailView` to do that. +user. Let's rewrite our ``AuthorDetailView`` to do that. .. _REST: http://en.wikipedia.org/wiki/Representational_state_transfer @@ -423,7 +422,7 @@ code so that on ``POST`` the form gets called appropriately. .. highlightlang:: python -Our new :class:`AuthorDetail` looks like this:: +Our new ``AuthorDetail`` looks like this:: # CAUTION: you almost certainly do not want to do this. # It is provided as part of a discussion of problems you can @@ -507,10 +506,10 @@ clear division here: ``GET`` requests should get the data), and ``POST`` requests should get the :class:`FormView`. Let's set up those views first. -The :class:`AuthorDisplay` view is almost the same as :ref:`when we +The ``AuthorDisplay`` view is almost the same as :ref:`when we first introduced AuthorDetail`; we have to write our own :meth:`get_context_data()` to make the -:class:`AuthorInterestForm` available to the template. We'll skip the +``AuthorInterestForm`` available to the template. We'll skip the :meth:`get_object()` override from before for clarity. .. code-block:: python @@ -533,11 +532,11 @@ write our own :meth:`get_context_data()` to make the context.update(kwargs) return super(AuthorDisplay, self).get_context_data(**context) -Then the :class:`AuthorInterest` is a simple :class:`FormView`, but we +Then the ``AuthorInterest`` is a simple :class:`FormView`, but we have to bring in :class:`SingleObjectMixin` so we can find the author we're talking about, and we have to remember to set :attr:`template_name` to ensure that form errors will render the same -template as :class:`AuthorDisplay` is using on ``GET``. +template as ``AuthorDisplay`` is using on ``GET``. .. code-block:: python @@ -568,14 +567,14 @@ template as :class:`AuthorDisplay` is using on ``GET``. # record the interest using the message in form.cleaned_data return super(AuthorInterest, self).form_valid(form) -Finally we bring this together in a new :class:`AuthorDetail` view. We +Finally we bring this together in a new ``AuthorDetail`` view. We already know that calling :meth:`as_view()` on a class-based view gives us something that behaves exactly like a function based view, so we can do that at the point we choose between the two subviews. You can of course pass through keyword arguments to :meth:`as_view()` in the same way you would in your URLconf, such as if you wanted the -:class:`AuthorInterest` behaviour to also appear at another URL but +``AuthorInterest`` behaviour to also appear at another URL but using a different template. .. code-block:: python diff --git a/docs/topics/db/queries.txt b/docs/topics/db/queries.txt index a869b6afad..046c23bdcd 100644 --- a/docs/topics/db/queries.txt +++ b/docs/topics/db/queries.txt @@ -601,6 +601,8 @@ relation may end up filtering on different linked objects. Filters can reference fields on the model ----------------------------------------- +.. class:: F + In the examples given so far, we have constructed filters that compare the value of a model field with a constant. But what if you want to compare the value of a model field with another field on the same model? @@ -755,6 +757,8 @@ To avoid this problem, simply save the Complex lookups with Q objects ============================== +.. class:: Q + Keyword argument queries -- in :meth:`~django.db.models.query.QuerySet.filter`, etc. -- are "AND"ed together. If you need to execute more complex queries (for example, queries with ``OR`` statements), you can use ``Q`` objects. diff --git a/docs/topics/forms/formsets.txt b/docs/topics/forms/formsets.txt index 7c1771b758..76849c8e23 100644 --- a/docs/topics/forms/formsets.txt +++ b/docs/topics/forms/formsets.txt @@ -37,7 +37,7 @@ display two blank forms:: Iterating over the ``formset`` will render the forms in the order they were created. You can change this order by providing an alternate implementation for -the :meth:`__iter__()` method. +the ``__iter__()`` method. Formsets can also be indexed into, which returns the corresponding form. If you override ``__iter__``, you will need to also override ``__getitem__`` to have diff --git a/docs/topics/forms/index.txt b/docs/topics/forms/index.txt index 4693de6c7e..9b5794a8f2 100644 --- a/docs/topics/forms/index.txt +++ b/docs/topics/forms/index.txt @@ -300,9 +300,9 @@ loop::

    -Within this loop, ``{{ field }}`` is an instance of :class:`BoundField`. -``BoundField`` also has the following attributes, which can be useful in your -templates: +Within this loop, ``{{ field }}`` is an instance of +:class:`~django.forms.BoundField`. ``BoundField`` also has the following +attributes, which can be useful in your templates: ``{{ field.label }}`` The label of the field, e.g. ``Email address``. diff --git a/docs/topics/forms/modelforms.txt b/docs/topics/forms/modelforms.txt index 233346db0d..67d539447c 100644 --- a/docs/topics/forms/modelforms.txt +++ b/docs/topics/forms/modelforms.txt @@ -549,6 +549,8 @@ model's ``clean()`` hook. Model formsets ============== +.. class:: models.BaseModelFormSet + Like :doc:`regular formsets `, Django provides a couple of enhanced formset classes that make it easy to work with Django models. Let's reuse the ``Author`` model from above:: diff --git a/docs/topics/http/sessions.txt b/docs/topics/http/sessions.txt index baf8aa5cb5..dac146bf3e 100644 --- a/docs/topics/http/sessions.txt +++ b/docs/topics/http/sessions.txt @@ -264,7 +264,7 @@ You can edit it multiple times. - ``modification``: last modification of the session, as a :class:`~datetime.datetime` object. Defaults to the current time. - ``expiry``: expiry information for the session, as a - :class:`~datetime.datetime` object, an :class:`int` (in seconds), or + :class:`~datetime.datetime` object, an :func:`int` (in seconds), or ``None``. Defaults to the value stored in the session by :meth:`set_expiry`, if there is one, or ``None``. diff --git a/docs/topics/i18n/translation.txt b/docs/topics/i18n/translation.txt index 0b13ea18be..0b37c25f18 100644 --- a/docs/topics/i18n/translation.txt +++ b/docs/topics/i18n/translation.txt @@ -1248,6 +1248,8 @@ The ``set_language`` redirect view .. highlightlang:: python +.. currentmodule:: django.views.i18n + .. function:: set_language(request) As a convenience, Django comes with a view, :func:`django.views.i18n.set_language`, diff --git a/docs/topics/pagination.txt b/docs/topics/pagination.txt index 6c3ab77b11..b504b2a373 100644 --- a/docs/topics/pagination.txt +++ b/docs/topics/pagination.txt @@ -205,8 +205,8 @@ Attributes .. exception:: InvalidPage - A base class for exceptions raised when a paginator is passed an invalid - page number. + A base class for exceptions raised when a paginator is passed an invalid + page number. The :meth:`Paginator.page` method raises an exception if the requested page is invalid (i.e., not an integer) or contains no objects. Generally, it's enough diff --git a/docs/topics/testing/overview.txt b/docs/topics/testing/overview.txt index 0627bd40d7..0548f66481 100644 --- a/docs/topics/testing/overview.txt +++ b/docs/topics/testing/overview.txt @@ -853,7 +853,7 @@ Normal Python unit test classes extend a base class of Hierarchy of Django unit testing classes Regardless of the version of Python you're using, if you've installed -:mod:`unittest2`, :mod:`django.utils.unittest` will point to that library. +``unittest2``, :mod:`django.utils.unittest` will point to that library. SimpleTestCase ~~~~~~~~~~~~~~ @@ -1376,7 +1376,7 @@ in the ``with`` block and reset its value to the previous state afterwards. .. function:: override_settings In case you want to override a setting for just one test method or even the -whole :class:`TestCase` class, Django provides the +whole :class:`~django.test.TestCase` class, Django provides the :func:`~django.test.utils.override_settings` decorator (see :pep:`318`). It's used like this:: -- cgit v1.3 From 59ddb79e9090f8609f9125379db08adc95d507c0 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Mon, 24 Dec 2012 22:36:44 +0100 Subject: Removed django.conf.urls.defaults. --- django/conf/urls/defaults.py | 6 ------ docs/ref/urls.txt | 8 -------- 2 files changed, 14 deletions(-) delete mode 100644 django/conf/urls/defaults.py (limited to 'docs') diff --git a/django/conf/urls/defaults.py b/django/conf/urls/defaults.py deleted file mode 100644 index 7d5c738bad..0000000000 --- a/django/conf/urls/defaults.py +++ /dev/null @@ -1,6 +0,0 @@ -import warnings -warnings.warn("django.conf.urls.defaults is deprecated; use django.conf.urls instead", - DeprecationWarning) - -from django.conf.urls import (handler403, handler404, handler500, - include, patterns, url) diff --git a/docs/ref/urls.txt b/docs/ref/urls.txt index b9a0199984..46332cb42c 100644 --- a/docs/ref/urls.txt +++ b/docs/ref/urls.txt @@ -4,14 +4,6 @@ .. module:: django.conf.urls -.. versionchanged:: 1.4 - Starting with Django 1.4 functions ``patterns``, ``url``, ``include`` plus - the ``handler*`` symbols described below live in the ``django.conf.urls`` - module. - - Until Django 1.3 they were located in ``django.conf.urls.defaults``. You - still can import them from there but it will be removed in Django 1.6. - patterns() ---------- -- cgit v1.3 From 052271168bc8f46c64451340d39682d5efdef9b6 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Mon, 24 Dec 2012 22:46:34 +0100 Subject: Removed django.contrib.databrowse. RIP -- you served us well. --- MANIFEST.in | 1 - django/contrib/databrowse/__init__.py | 5 - django/contrib/databrowse/datastructures.py | 214 --------------------- django/contrib/databrowse/models.py | 1 - django/contrib/databrowse/plugins/__init__.py | 0 django/contrib/databrowse/plugins/calendars.py | 147 -------------- django/contrib/databrowse/plugins/fieldchoices.py | 77 -------- django/contrib/databrowse/plugins/objects.py | 18 -- django/contrib/databrowse/sites.py | 147 -------------- .../databrowse/templates/databrowse/base.html | 61 ------ .../databrowse/templates/databrowse/base_site.html | 1 - .../templates/databrowse/calendar_day.html | 17 -- .../templates/databrowse/calendar_homepage.html | 17 -- .../templates/databrowse/calendar_main.html | 17 -- .../templates/databrowse/calendar_month.html | 17 -- .../templates/databrowse/calendar_year.html | 17 -- .../templates/databrowse/choice_detail.html | 17 -- .../templates/databrowse/choice_list.html | 17 -- .../templates/databrowse/fieldchoice_detail.html | 17 -- .../templates/databrowse/fieldchoice_homepage.html | 17 -- .../templates/databrowse/fieldchoice_list.html | 17 -- .../databrowse/templates/databrowse/homepage.html | 21 -- .../templates/databrowse/model_detail.html | 19 -- .../templates/databrowse/object_detail.html | 41 ---- django/contrib/databrowse/tests.py | 62 ------ django/contrib/databrowse/urls.py | 20 -- django/contrib/databrowse/views.py | 19 -- docs/index.txt | 1 - docs/ref/contrib/databrowse.txt | 89 --------- docs/ref/contrib/index.txt | 1 - tests/runtests.py | 5 - 31 files changed, 1120 deletions(-) delete mode 100644 django/contrib/databrowse/__init__.py delete mode 100644 django/contrib/databrowse/datastructures.py delete mode 100644 django/contrib/databrowse/models.py delete mode 100644 django/contrib/databrowse/plugins/__init__.py delete mode 100644 django/contrib/databrowse/plugins/calendars.py delete mode 100644 django/contrib/databrowse/plugins/fieldchoices.py delete mode 100644 django/contrib/databrowse/plugins/objects.py delete mode 100644 django/contrib/databrowse/sites.py delete mode 100644 django/contrib/databrowse/templates/databrowse/base.html delete mode 100644 django/contrib/databrowse/templates/databrowse/base_site.html delete mode 100644 django/contrib/databrowse/templates/databrowse/calendar_day.html delete mode 100644 django/contrib/databrowse/templates/databrowse/calendar_homepage.html delete mode 100644 django/contrib/databrowse/templates/databrowse/calendar_main.html delete mode 100644 django/contrib/databrowse/templates/databrowse/calendar_month.html delete mode 100644 django/contrib/databrowse/templates/databrowse/calendar_year.html delete mode 100644 django/contrib/databrowse/templates/databrowse/choice_detail.html delete mode 100644 django/contrib/databrowse/templates/databrowse/choice_list.html delete mode 100644 django/contrib/databrowse/templates/databrowse/fieldchoice_detail.html delete mode 100644 django/contrib/databrowse/templates/databrowse/fieldchoice_homepage.html delete mode 100644 django/contrib/databrowse/templates/databrowse/fieldchoice_list.html delete mode 100644 django/contrib/databrowse/templates/databrowse/homepage.html delete mode 100644 django/contrib/databrowse/templates/databrowse/model_detail.html delete mode 100644 django/contrib/databrowse/templates/databrowse/object_detail.html delete mode 100644 django/contrib/databrowse/tests.py delete mode 100644 django/contrib/databrowse/urls.py delete mode 100644 django/contrib/databrowse/views.py delete mode 100644 docs/ref/contrib/databrowse.txt (limited to 'docs') diff --git a/MANIFEST.in b/MANIFEST.in index fbda541d22..0e0aba1268 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -19,7 +19,6 @@ recursive-include django/contrib/auth/fixtures * recursive-include django/contrib/auth/templates * recursive-include django/contrib/auth/tests/templates * recursive-include django/contrib/comments/templates * -recursive-include django/contrib/databrowse/templates * recursive-include django/contrib/formtools/templates * recursive-include django/contrib/formtools/tests/templates * recursive-include django/contrib/flatpages/fixtures * diff --git a/django/contrib/databrowse/__init__.py b/django/contrib/databrowse/__init__.py deleted file mode 100644 index acb7626c8d..0000000000 --- a/django/contrib/databrowse/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -import warnings -from django.contrib.databrowse.sites import DatabrowsePlugin, ModelDatabrowse, DatabrowseSite, site - - -warnings.warn("The Databrowse contrib app is deprecated", DeprecationWarning) diff --git a/django/contrib/databrowse/datastructures.py b/django/contrib/databrowse/datastructures.py deleted file mode 100644 index 5f5f46f0d1..0000000000 --- a/django/contrib/databrowse/datastructures.py +++ /dev/null @@ -1,214 +0,0 @@ -""" -These classes are light wrappers around Django's database API that provide -convenience functionality and permalink functions for the databrowse app. -""" -from __future__ import unicode_literals - -from django.db import models -from django.utils import formats -from django.utils.text import capfirst -from django.utils.encoding import smart_text, force_str, iri_to_uri -from django.db.models.query import QuerySet -from django.utils.encoding import python_2_unicode_compatible - -EMPTY_VALUE = '(None)' -DISPLAY_SIZE = 100 - -class EasyModel(object): - def __init__(self, site, model): - self.site = site - self.model = model - self.model_list = list(site.registry.keys()) - self.verbose_name = model._meta.verbose_name - self.verbose_name_plural = model._meta.verbose_name_plural - - def __repr__(self): - return force_str('' % self.model._meta.object_name) - - def model_databrowse(self): - "Returns the ModelDatabrowse class for this model." - return self.site.registry[self.model] - - def url(self): - return '%s%s/%s/' % (self.site.root_url, self.model._meta.app_label, self.model._meta.module_name) - - def objects(self, **kwargs): - return self.get_query_set().filter(**kwargs) - - def get_query_set(self): - easy_qs = self.model._default_manager.get_query_set()._clone(klass=EasyQuerySet) - easy_qs._easymodel = self - return easy_qs - - def object_by_pk(self, pk): - return EasyInstance(self, self.model._default_manager.get(pk=pk)) - - def sample_objects(self): - for obj in self.model._default_manager.all()[:3]: - yield EasyInstance(self, obj) - - def field(self, name): - try: - f = self.model._meta.get_field(name) - except models.FieldDoesNotExist: - return None - return EasyField(self, f) - - def fields(self): - return [EasyField(self, f) for f in (self.model._meta.fields + self.model._meta.many_to_many)] - -class EasyField(object): - def __init__(self, easy_model, field): - self.model, self.field = easy_model, field - - def __repr__(self): - return force_str('' % (self.model.model._meta.object_name, self.field.name)) - - def choices(self): - for value, label in self.field.choices: - yield EasyChoice(self.model, self, value, label) - - def url(self): - if self.field.choices: - return '%s%s/%s/%s/' % (self.model.site.root_url, self.model.model._meta.app_label, self.model.model._meta.module_name, self.field.name) - elif self.field.rel: - return '%s%s/%s/' % (self.model.site.root_url, self.model.model._meta.app_label, self.model.model._meta.module_name) - -class EasyChoice(object): - def __init__(self, easy_model, field, value, label): - self.model, self.field = easy_model, field - self.value, self.label = value, label - - def __repr__(self): - return force_str('' % (self.model.model._meta.object_name, self.field.name)) - - def url(self): - return '%s%s/%s/%s/%s/' % (self.model.site.root_url, self.model.model._meta.app_label, self.model.model._meta.module_name, self.field.field.name, iri_to_uri(self.value)) - -@python_2_unicode_compatible -class EasyInstance(object): - def __init__(self, easy_model, instance): - self.model, self.instance = easy_model, instance - - def __repr__(self): - return force_str('' % (self.model.model._meta.object_name, self.instance._get_pk_val())) - - def __str__(self): - val = smart_text(self.instance) - if len(val) > DISPLAY_SIZE: - return val[:DISPLAY_SIZE] + '...' - return val - - def pk(self): - return self.instance._get_pk_val() - - def url(self): - return '%s%s/%s/objects/%s/' % (self.model.site.root_url, self.model.model._meta.app_label, self.model.model._meta.module_name, iri_to_uri(self.pk())) - - def fields(self): - """ - Generator that yields EasyInstanceFields for each field in this - EasyInstance's model. - """ - for f in self.model.model._meta.fields + self.model.model._meta.many_to_many: - yield EasyInstanceField(self.model, self, f) - - def related_objects(self): - """ - Generator that yields dictionaries of all models that have this - EasyInstance's model as a ForeignKey or ManyToManyField, along with - lists of related objects. - """ - for rel_object in self.model.model._meta.get_all_related_objects() + self.model.model._meta.get_all_related_many_to_many_objects(): - if rel_object.model not in self.model.model_list: - continue # Skip models that aren't in the model_list - em = EasyModel(self.model.site, rel_object.model) - yield { - 'model': em, - 'related_field': rel_object.field.verbose_name, - 'object_list': [EasyInstance(em, i) for i in getattr(self.instance, rel_object.get_accessor_name()).all()], - } - -class EasyInstanceField(object): - def __init__(self, easy_model, instance, field): - self.model, self.field, self.instance = easy_model, field, instance - self.raw_value = getattr(instance.instance, field.name) - - def __repr__(self): - return force_str('' % (self.model.model._meta.object_name, self.field.name)) - - def values(self): - """ - Returns a list of values for this field for this instance. It's a list - so we can accomodate many-to-many fields. - """ - # This import is deliberately inside the function because it causes - # some settings to be imported, and we don't want to do that at the - # module level. - if self.field.rel: - if isinstance(self.field.rel, models.ManyToOneRel): - objs = getattr(self.instance.instance, self.field.name) - elif isinstance(self.field.rel, models.ManyToManyRel): # ManyToManyRel - return list(getattr(self.instance.instance, self.field.name).all()) - elif self.field.choices: - objs = dict(self.field.choices).get(self.raw_value, EMPTY_VALUE) - elif isinstance(self.field, models.DateField) or isinstance(self.field, models.TimeField): - if self.raw_value: - if isinstance(self.field, models.DateTimeField): - objs = capfirst(formats.date_format(self.raw_value, 'DATETIME_FORMAT')) - elif isinstance(self.field, models.TimeField): - objs = capfirst(formats.time_format(self.raw_value, 'TIME_FORMAT')) - else: - objs = capfirst(formats.date_format(self.raw_value, 'DATE_FORMAT')) - else: - objs = EMPTY_VALUE - elif isinstance(self.field, models.BooleanField) or isinstance(self.field, models.NullBooleanField): - objs = {True: 'Yes', False: 'No', None: 'Unknown'}[self.raw_value] - else: - objs = self.raw_value - return [objs] - - def urls(self): - "Returns a list of (value, URL) tuples." - # First, check the urls() method for each plugin. - plugin_urls = [] - for plugin_name, plugin in self.model.model_databrowse().plugins.items(): - urls = plugin.urls(plugin_name, self) - if urls is not None: - return zip(self.values(), urls) - if self.field.rel: - m = EasyModel(self.model.site, self.field.rel.to) - if self.field.rel.to in self.model.model_list: - lst = [] - for value in self.values(): - if value is None: - continue - url = '%s%s/%s/objects/%s/' % (self.model.site.root_url, m.model._meta.app_label, m.model._meta.module_name, iri_to_uri(value._get_pk_val())) - lst.append((smart_text(value), url)) - else: - lst = [(value, None) for value in self.values()] - elif self.field.choices: - lst = [] - for value in self.values(): - url = '%s%s/%s/fields/%s/%s/' % (self.model.site.root_url, self.model.model._meta.app_label, self.model.model._meta.module_name, self.field.name, iri_to_uri(self.raw_value)) - lst.append((value, url)) - elif isinstance(self.field, models.URLField): - val = list(self.values())[0] - lst = [(val, iri_to_uri(val))] - else: - lst = [(list(self.values())[0], None)] - return lst - -class EasyQuerySet(QuerySet): - """ - When creating (or cloning to) an `EasyQuerySet`, make sure to set the - `_easymodel` variable to the related `EasyModel`. - """ - def iterator(self, *args, **kwargs): - for obj in super(EasyQuerySet, self).iterator(*args, **kwargs): - yield EasyInstance(self._easymodel, obj) - - def _clone(self, *args, **kwargs): - c = super(EasyQuerySet, self)._clone(*args, **kwargs) - c._easymodel = self._easymodel - return c diff --git a/django/contrib/databrowse/models.py b/django/contrib/databrowse/models.py deleted file mode 100644 index 2e283e0995..0000000000 --- a/django/contrib/databrowse/models.py +++ /dev/null @@ -1 +0,0 @@ -# Empty models.py to allow for specifying databrowse as a test label. diff --git a/django/contrib/databrowse/plugins/__init__.py b/django/contrib/databrowse/plugins/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/databrowse/plugins/calendars.py b/django/contrib/databrowse/plugins/calendars.py deleted file mode 100644 index a548c33c8f..0000000000 --- a/django/contrib/databrowse/plugins/calendars.py +++ /dev/null @@ -1,147 +0,0 @@ -from __future__ import unicode_literals - -from django import http -from django.db import models -from django.contrib.databrowse.datastructures import EasyModel -from django.contrib.databrowse.sites import DatabrowsePlugin -from django.shortcuts import render_to_response -from django.utils.html import format_html, format_html_join -from django.utils.text import capfirst -from django.utils.encoding import force_text -from django.views.generic import dates -from django.utils import datetime_safe - - -class DateViewMixin(object): - allow_empty = False - allow_future = True - root_url = None - model = None - field = None - - def get_context_data(self, **kwargs): - context = super(DateViewMixin, self).get_context_data(**kwargs) - context.update({ - 'root_url': self.root_url, - 'model': self.model, - 'field': self.field - }) - return context - - -class DayView(DateViewMixin, dates.DayArchiveView): - template_name = 'databrowse/calendar_day.html' - - -class MonthView(DateViewMixin, dates.MonthArchiveView): - template_name = 'databrowse/calendar_month.html' - - -class YearView(DateViewMixin, dates.YearArchiveView): - template_name = 'databrowse/calendar_year.html' - - -class IndexView(DateViewMixin, dates.ArchiveIndexView): - template_name = 'databrowse/calendar_main.html' - - -class CalendarPlugin(DatabrowsePlugin): - def __init__(self, field_names=None): - self.field_names = field_names - - def field_dict(self, model): - """ - Helper function that returns a dictionary of all DateFields or - DateTimeFields in the given model. If self.field_names is set, it takes - take that into account when building the dictionary. - """ - if self.field_names is None: - return dict([(f.name, f) for f in model._meta.fields if isinstance(f, models.DateField)]) - else: - return dict([(f.name, f) for f in model._meta.fields if isinstance(f, models.DateField) and f.name in self.field_names]) - - def model_index_html(self, request, model, site): - fields = self.field_dict(model) - if not fields: - return '' - return format_html('

    View calendar by: {0}

    ', - format_html_join(', ', '{1}', - ((f.name, force_text(capfirst(f.verbose_name))) for f in fields.values()))) - - def urls(self, plugin_name, easy_instance_field): - if isinstance(easy_instance_field.field, models.DateField): - d = easy_instance_field.raw_value - return ['%s%s/%s/%s/%s/%s/' % ( - easy_instance_field.model.url(), - plugin_name, easy_instance_field.field.name, - str(d.year), - datetime_safe.new_date(d).strftime('%b').lower(), - d.day)] - - def model_view(self, request, model_databrowse, url): - self.model, self.site = model_databrowse.model, model_databrowse.site - self.fields = self.field_dict(self.model) - - # If the model has no DateFields, there's no point in going further. - if not self.fields: - raise http.Http404('The requested model has no calendars.') - - if url is None: - return self.homepage_view(request) - url_bits = url.split('/') - if url_bits[0] in self.fields: - return self.calendar_view(request, self.fields[url_bits[0]], *url_bits[1:]) - - raise http.Http404('The requested page does not exist.') - - def homepage_view(self, request): - easy_model = EasyModel(self.site, self.model) - field_list = list(self.fields.values()) - field_list.sort(key=lambda k:k.verbose_name) - return render_to_response('databrowse/calendar_homepage.html', { - 'root_url': self.site.root_url, - 'model': easy_model, - 'field_list': field_list - }) - - def calendar_view(self, request, field, year=None, month=None, day=None): - easy_model = EasyModel(self.site, self.model) - root_url = self.site.root_url - - if day is not None: - return DayView.as_view( - year=year, month=month, day=day, - date_field=field.name, - queryset=easy_model.get_query_set(), - root_url=root_url, - model=easy_model, - field=field - )(request) - elif month is not None: - return MonthView.as_view( - year=year, month=month, - date_field=field.name, - queryset=easy_model.get_query_set(), - root_url=root_url, - model=easy_model, - field=field - )(request) - elif year is not None: - return YearView.as_view( - year=year, - date_field=field.name, - queryset=easy_model.get_query_set(), - root_url=root_url, - model=easy_model, - field=field - )(request) - else: - return IndexView.as_view( - date_field=field.name, - queryset=easy_model.get_query_set(), - root_url=root_url, - model=easy_model, - field=field - )(request) - - assert False, ('%s, %s, %s, %s' % (field, year, month, day)) diff --git a/django/contrib/databrowse/plugins/fieldchoices.py b/django/contrib/databrowse/plugins/fieldchoices.py deleted file mode 100644 index dc5e9aef14..0000000000 --- a/django/contrib/databrowse/plugins/fieldchoices.py +++ /dev/null @@ -1,77 +0,0 @@ -from __future__ import unicode_literals - -from django import http -from django.db import models -from django.contrib.databrowse.datastructures import EasyModel -from django.contrib.databrowse.sites import DatabrowsePlugin -from django.shortcuts import render_to_response -from django.utils.html import format_html, format_html_join -from django.utils.http import urlquote -from django.utils.text import capfirst -from django.utils.encoding import force_text - - -class FieldChoicePlugin(DatabrowsePlugin): - def __init__(self, field_filter=None): - # If field_filter is given, it should be a callable that takes a - # Django database Field instance and returns True if that field should - # be included. If field_filter is None, that all fields will be used. - self.field_filter = field_filter - - def field_dict(self, model): - """ - Helper function that returns a dictionary of all fields in the given - model. If self.field_filter is set, it only includes the fields that - match the filter. - """ - if self.field_filter: - return dict([(f.name, f) for f in model._meta.fields if self.field_filter(f)]) - else: - return dict([(f.name, f) for f in model._meta.fields if not f.rel and not f.primary_key and not f.unique and not isinstance(f, (models.AutoField, models.TextField))]) - - def model_index_html(self, request, model, site): - fields = self.field_dict(model) - if not fields: - return '' - return format_html('

    View by: {0}

    ', - format_html_join(', ', '{1}', - ((f.name, force_text(capfirst(f.verbose_name))) for f in fields.values()))) - - def urls(self, plugin_name, easy_instance_field): - if easy_instance_field.field in self.field_dict(easy_instance_field.model.model).values(): - return ['%s%s/%s/%s/' % ( - easy_instance_field.model.url(), - plugin_name, easy_instance_field.field.name, - urlquote(easy_instance_field.raw_value, safe=''))] - - def model_view(self, request, model_databrowse, url): - self.model, self.site = model_databrowse.model, model_databrowse.site - self.fields = self.field_dict(self.model) - - # If the model has no fields with choices, there's no point in going - # further. - if not self.fields: - raise http.Http404('The requested model has no fields.') - - if url is None: - return self.homepage_view(request) - url_bits = url.split('/', 1) - if url_bits[0] in self.fields: - return self.field_view(request, self.fields[url_bits[0]], *url_bits[1:]) - - raise http.Http404('The requested page does not exist.') - - def homepage_view(self, request): - easy_model = EasyModel(self.site, self.model) - field_list = list(self.fields.values()) - field_list.sort(key=lambda k: k.verbose_name) - return render_to_response('databrowse/fieldchoice_homepage.html', {'root_url': self.site.root_url, 'model': easy_model, 'field_list': field_list}) - - def field_view(self, request, field, value=None): - easy_model = EasyModel(self.site, self.model) - easy_field = easy_model.field(field.name) - if value is not None: - obj_list = easy_model.objects(**{field.name: value}) - return render_to_response('databrowse/fieldchoice_detail.html', {'root_url': self.site.root_url, 'model': easy_model, 'field': easy_field, 'value': value, 'object_list': obj_list}) - obj_list = [v[field.name] for v in self.model._default_manager.distinct().order_by(field.name).values(field.name)] - return render_to_response('databrowse/fieldchoice_list.html', {'root_url': self.site.root_url, 'model': easy_model, 'field': easy_field, 'object_list': obj_list}) diff --git a/django/contrib/databrowse/plugins/objects.py b/django/contrib/databrowse/plugins/objects.py deleted file mode 100644 index e956f4ea67..0000000000 --- a/django/contrib/databrowse/plugins/objects.py +++ /dev/null @@ -1,18 +0,0 @@ -try: - from urllib.parse import urljoin -except ImportError: # Python 2 - from urlparse import urljoin - -from django import http -from django.contrib.databrowse.datastructures import EasyModel -from django.contrib.databrowse.sites import DatabrowsePlugin -from django.shortcuts import render_to_response - -class ObjectDetailPlugin(DatabrowsePlugin): - def model_view(self, request, model_databrowse, url): - # If the object ID wasn't provided, redirect to the model page, which is one level up. - if url is None: - return http.HttpResponseRedirect(urljoin(request.path, '../')) - easy_model = EasyModel(model_databrowse.site, model_databrowse.model) - obj = easy_model.object_by_pk(url) - return render_to_response('databrowse/object_detail.html', {'object': obj, 'root_url': model_databrowse.site.root_url}) diff --git a/django/contrib/databrowse/sites.py b/django/contrib/databrowse/sites.py deleted file mode 100644 index b5cb2639d6..0000000000 --- a/django/contrib/databrowse/sites.py +++ /dev/null @@ -1,147 +0,0 @@ -from __future__ import unicode_literals - -from django import http -from django.db import models -from django.contrib.databrowse.datastructures import EasyModel -from django.shortcuts import render_to_response -from django.utils.safestring import mark_safe - -class AlreadyRegistered(Exception): - pass - -class NotRegistered(Exception): - pass - -class DatabrowsePlugin(object): - def urls(self, plugin_name, easy_instance_field): - """ - Given an EasyInstanceField object, returns a list of URLs for this - plugin's views of this object. These URLs should be absolute. - - Returns None if the EasyInstanceField object doesn't get a - list of plugin-specific URLs. - """ - return None - - def model_index_html(self, request, model, site): - """ - Returns a snippet of HTML to include on the model index page. - """ - return '' - - def model_view(self, request, model_databrowse, url): - """ - Handles main URL routing for a plugin's model-specific pages. - """ - raise NotImplementedError - -class ModelDatabrowse(object): - plugins = {} - - def __init__(self, model, site): - self.model = model - self.site = site - - def root(self, request, url): - """ - Handles main URL routing for the databrowse app. - - `url` is the remainder of the URL -- e.g. 'objects/3'. - """ - # Delegate to the appropriate method, based on the URL. - if url is None: - return self.main_view(request) - try: - plugin_name, rest_of_url = url.split('/', 1) - except ValueError: # need more than 1 value to unpack - plugin_name, rest_of_url = url, None - try: - plugin = self.plugins[plugin_name] - except KeyError: - raise http.Http404('A plugin with the requested name does not exist.') - return plugin.model_view(request, self, rest_of_url) - - def main_view(self, request): - easy_model = EasyModel(self.site, self.model) - html_snippets = mark_safe('\n'.join([p.model_index_html(request, self.model, self.site) for p in self.plugins.values()])) - return render_to_response('databrowse/model_detail.html', { - 'model': easy_model, - 'root_url': self.site.root_url, - 'plugin_html': html_snippets, - }) - -class DatabrowseSite(object): - def __init__(self): - self.registry = {} # model_class -> databrowse_class - self.root_url = None - - def register(self, *model_list, **options): - """ - Registers the given model(s) with the given databrowse site. - - The model(s) should be Model classes, not instances. - - If a databrowse class isn't given, it will use DefaultModelDatabrowse - (the default databrowse options). - - If a model is already registered, this will raise AlreadyRegistered. - """ - databrowse_class = options.pop('databrowse_class', DefaultModelDatabrowse) - for model in model_list: - if model in self.registry: - raise AlreadyRegistered('The model %s is already registered' % model.__name__) - self.registry[model] = databrowse_class - - def unregister(self, *model_list): - """ - Unregisters the given model(s). - - If a model isn't already registered, this will raise NotRegistered. - """ - for model in model_list: - if model not in self.registry: - raise NotRegistered('The model %s is not registered' % model.__name__) - del self.registry[model] - - def root(self, request, url): - """ - Handles main URL routing for the databrowse app. - - `url` is the remainder of the URL -- e.g. 'comments/comment/'. - """ - self.root_url = request.path[:len(request.path) - len(url)] - url = url.rstrip('/') # Trim trailing slash, if it exists. - - if url == '': - return self.index(request) - elif '/' in url: - return self.model_page(request, *url.split('/', 2)) - - raise http.Http404('The requested databrowse page does not exist.') - - def index(self, request): - m_list = [EasyModel(self, m) for m in self.registry.keys()] - return render_to_response('databrowse/homepage.html', {'model_list': m_list, 'root_url': self.root_url}) - - def model_page(self, request, app_label, model_name, rest_of_url=None): - """ - Handles the model-specific functionality of the databrowse site, delegating - to the appropriate ModelDatabrowse class. - """ - model = models.get_model(app_label, model_name) - if model is None: - raise http.Http404("App %r, model %r, not found." % (app_label, model_name)) - try: - databrowse_class = self.registry[model] - except KeyError: - raise http.Http404("This model exists but has not been registered with databrowse.") - return databrowse_class(model, self).root(request, rest_of_url) - -site = DatabrowseSite() - -from django.contrib.databrowse.plugins.calendars import CalendarPlugin -from django.contrib.databrowse.plugins.objects import ObjectDetailPlugin -from django.contrib.databrowse.plugins.fieldchoices import FieldChoicePlugin - -class DefaultModelDatabrowse(ModelDatabrowse): - plugins = {'objects': ObjectDetailPlugin(), 'calendars': CalendarPlugin(), 'fields': FieldChoicePlugin()} diff --git a/django/contrib/databrowse/templates/databrowse/base.html b/django/contrib/databrowse/templates/databrowse/base.html deleted file mode 100644 index 56464e0614..0000000000 --- a/django/contrib/databrowse/templates/databrowse/base.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -{% block title %}{% endblock %} -{% block style %} - -{% endblock %} -{% block extrahead %}{% endblock %} - - - -
    -{% block content %}{% endblock %} -
    - - diff --git a/django/contrib/databrowse/templates/databrowse/base_site.html b/django/contrib/databrowse/templates/databrowse/base_site.html deleted file mode 100644 index b577ab8427..0000000000 --- a/django/contrib/databrowse/templates/databrowse/base_site.html +++ /dev/null @@ -1 +0,0 @@ -{% extends "databrowse/base.html" %} diff --git a/django/contrib/databrowse/templates/databrowse/calendar_day.html b/django/contrib/databrowse/templates/databrowse/calendar_day.html deleted file mode 100644 index c009a94c66..0000000000 --- a/django/contrib/databrowse/templates/databrowse/calendar_day.html +++ /dev/null @@ -1,17 +0,0 @@ -{% extends "databrowse/base_site.html" %} - -{% block title %}{{ model.verbose_name_plural|capfirst }} with {{ field.verbose_name }} {{ day|date:"F j, Y" }}{% endblock %} - -{% block content %} - - - -

    {{ object_list.count }} {% if object_list.count|pluralize %}{{ model.verbose_name_plural }}{% else %}{{ model.verbose_name }}{% endif %} with {{ field.verbose_name }} on {{ day|date:"F j, Y" }}

    - -
      -{% for object in object_list %} -
    • {{ object }}
    • -{% endfor %} -
    - -{% endblock %} diff --git a/django/contrib/databrowse/templates/databrowse/calendar_homepage.html b/django/contrib/databrowse/templates/databrowse/calendar_homepage.html deleted file mode 100644 index 85eb8af9eb..0000000000 --- a/django/contrib/databrowse/templates/databrowse/calendar_homepage.html +++ /dev/null @@ -1,17 +0,0 @@ -{% extends "databrowse/base_site.html" %} - -{% block title %}Calendars{% endblock %} - -{% block content %} - - - -

    Calendars

    - - - -{% endblock %} diff --git a/django/contrib/databrowse/templates/databrowse/calendar_main.html b/django/contrib/databrowse/templates/databrowse/calendar_main.html deleted file mode 100644 index 7cb59042df..0000000000 --- a/django/contrib/databrowse/templates/databrowse/calendar_main.html +++ /dev/null @@ -1,17 +0,0 @@ -{% extends "databrowse/base_site.html" %} - -{% block title %}{{ field.verbose_name|capfirst }} calendar{% endblock %} - -{% block content %} - - - -

    {{ model.verbose_name_plural|capfirst }} by {{ field.verbose_name }}

    - - - -{% endblock %} diff --git a/django/contrib/databrowse/templates/databrowse/calendar_month.html b/django/contrib/databrowse/templates/databrowse/calendar_month.html deleted file mode 100644 index ad189f441c..0000000000 --- a/django/contrib/databrowse/templates/databrowse/calendar_month.html +++ /dev/null @@ -1,17 +0,0 @@ -{% extends "databrowse/base_site.html" %} - -{% block title %}{{ model.verbose_name_plural|capfirst }} with {{ field.verbose_name }} in {{ month|date:"F Y" }}{% endblock %} - -{% block content %} - - - -

    {{ object_list.count }} {% if object_list.count|pluralize %}{{ model.verbose_name_plural }}{% else %}{{ model.verbose_name }}{% endif %} with {{ field.verbose_name }} on {{ month|date:"F Y" }}

    - -
      -{% for object in object_list %} -
    • {{ object }}
    • -{% endfor %} -
    - -{% endblock %} diff --git a/django/contrib/databrowse/templates/databrowse/calendar_year.html b/django/contrib/databrowse/templates/databrowse/calendar_year.html deleted file mode 100644 index a6e6f53ba3..0000000000 --- a/django/contrib/databrowse/templates/databrowse/calendar_year.html +++ /dev/null @@ -1,17 +0,0 @@ -{% extends "databrowse/base_site.html" %} - -{% block title %}{{ model.verbose_name_plural|capfirst }} with {{ field.verbose_name }} in {{ year }}{% endblock %} - -{% block content %} - - - -

    {{ model.verbose_name_plural|capfirst }} with {{ field.verbose_name }} in {{ year }}

    - - - -{% endblock %} diff --git a/django/contrib/databrowse/templates/databrowse/choice_detail.html b/django/contrib/databrowse/templates/databrowse/choice_detail.html deleted file mode 100644 index 0abc536515..0000000000 --- a/django/contrib/databrowse/templates/databrowse/choice_detail.html +++ /dev/null @@ -1,17 +0,0 @@ -{% extends "databrowse/base_site.html" %} - -{% block title %}{{ model.verbose_name_plural|capfirst }} by {{ field.field.verbose_name }}: {{ value }}{% endblock %} - -{% block content %} - - - -

    {{ model.verbose_name_plural|capfirst }} by {{ field.field.verbose_name }}: {{ value }}

    - -
      -{% for object in object_list %} -
    • {{ object }}
    • -{% endfor %} -
    - -{% endblock %} diff --git a/django/contrib/databrowse/templates/databrowse/choice_list.html b/django/contrib/databrowse/templates/databrowse/choice_list.html deleted file mode 100644 index 58675e82bf..0000000000 --- a/django/contrib/databrowse/templates/databrowse/choice_list.html +++ /dev/null @@ -1,17 +0,0 @@ -{% extends "databrowse/base_site.html" %} - -{% block title %}{{ model.verbose_name_plural|capfirst }} by {{ field.field.verbose_name }}{% endblock %} - -{% block content %} - - - -

    {{ model.verbose_name_plural|capfirst }} by {{ field.field.verbose_name }}

    - - - -{% endblock %} diff --git a/django/contrib/databrowse/templates/databrowse/fieldchoice_detail.html b/django/contrib/databrowse/templates/databrowse/fieldchoice_detail.html deleted file mode 100644 index 2dd55d48ac..0000000000 --- a/django/contrib/databrowse/templates/databrowse/fieldchoice_detail.html +++ /dev/null @@ -1,17 +0,0 @@ -{% extends "databrowse/base_site.html" %} - -{% block title %}{{ model.verbose_name_plural|capfirst }} with {{ field.field.verbose_name }} {{ value }}{% endblock %} - -{% block content %} - - - -

    {{ object_list.count }} {% if object_list.count|pluralize %}{{ model.verbose_name_plural }}{% else %}{{ model.verbose_name }}{% endif %} with {{ field.field.verbose_name }} {{ value }}

    - -
      -{% for object in object_list %} -
    • {{ object }}
    • -{% endfor %} -
    - -{% endblock %} diff --git a/django/contrib/databrowse/templates/databrowse/fieldchoice_homepage.html b/django/contrib/databrowse/templates/databrowse/fieldchoice_homepage.html deleted file mode 100644 index b82c22d5b4..0000000000 --- a/django/contrib/databrowse/templates/databrowse/fieldchoice_homepage.html +++ /dev/null @@ -1,17 +0,0 @@ -{% extends "databrowse/base_site.html" %} - -{% block title %}Browsable fields in {{ model.verbose_name_plural }}{% endblock %} - -{% block content %} - - - -

    Browsable fields in {{ model.verbose_name_plural }}

    - - - -{% endblock %} diff --git a/django/contrib/databrowse/templates/databrowse/fieldchoice_list.html b/django/contrib/databrowse/templates/databrowse/fieldchoice_list.html deleted file mode 100644 index bb60a0e871..0000000000 --- a/django/contrib/databrowse/templates/databrowse/fieldchoice_list.html +++ /dev/null @@ -1,17 +0,0 @@ -{% extends "databrowse/base_site.html" %} - -{% block title %}{{ model.verbose_name_plural|capfirst }} by {{ field.field.verbose_name }}{% endblock %} - -{% block content %} - - - -

    {{ model.verbose_name_plural|capfirst }} by {{ field.field.verbose_name }}

    - -
      -{% for object in object_list %} -
    • {{ object }}
    • -{% endfor %} -
    - -{% endblock %} diff --git a/django/contrib/databrowse/templates/databrowse/homepage.html b/django/contrib/databrowse/templates/databrowse/homepage.html deleted file mode 100644 index 0f6708f5fd..0000000000 --- a/django/contrib/databrowse/templates/databrowse/homepage.html +++ /dev/null @@ -1,21 +0,0 @@ -{% extends "databrowse/base_site.html" %} - -{% block title %}Databrowse{% endblock %} - -{% block bodyid %}homepage{% endblock %} - -{% block content %} - -{% for model in model_list %} -
    -

    {{ model.verbose_name_plural|capfirst }}

    -

    - {% for object in model.sample_objects %} - {{ object }}, - {% endfor %} - More → -

    -
    -{% endfor %} - -{% endblock %} diff --git a/django/contrib/databrowse/templates/databrowse/model_detail.html b/django/contrib/databrowse/templates/databrowse/model_detail.html deleted file mode 100644 index 11c6808f14..0000000000 --- a/django/contrib/databrowse/templates/databrowse/model_detail.html +++ /dev/null @@ -1,19 +0,0 @@ -{% extends "databrowse/base_site.html" %} - -{% block title %}{{ model.verbose_name_plural|capfirst }}{% endblock %} - -{% block content %} - - - -

    {{ model.objects.count }} {% if model.objects.count|pluralize %}{{ model.verbose_name_plural }}{% else %}{{ model.verbose_name }}{% endif %}

    - -{{ plugin_html }} - -
      -{% for object in model.objects %} -
    • {{ object }}
    • -{% endfor %} -
    - -{% endblock %} diff --git a/django/contrib/databrowse/templates/databrowse/object_detail.html b/django/contrib/databrowse/templates/databrowse/object_detail.html deleted file mode 100644 index 81c37f7736..0000000000 --- a/django/contrib/databrowse/templates/databrowse/object_detail.html +++ /dev/null @@ -1,41 +0,0 @@ -{% extends "databrowse/base_site.html" %} - -{% block title %}{{ object.model.verbose_name|capfirst }}: {{ object }}{% endblock %} - -{% block content %} - - - -

    {{ object.model.verbose_name|capfirst }}: {{ object }}

    - - -{% for field in object.fields %} - - - - -{% endfor %} -
    {{ field.field.verbose_name|capfirst }} -{% if field.urls %} -{% for value, url in field.urls %} -{% if url %}{% endif %}{{ value }}{% if url %}{% endif %}{% if not forloop.last %}, {% endif %} -{% endfor %} -{% else %}None{% endif %} -
    - -{% for related_object in object.related_objects %} - -{% endfor %} - -{% endblock %} diff --git a/django/contrib/databrowse/tests.py b/django/contrib/databrowse/tests.py deleted file mode 100644 index d649b4af67..0000000000 --- a/django/contrib/databrowse/tests.py +++ /dev/null @@ -1,62 +0,0 @@ -from django.contrib import databrowse -from django.db import models -from django.test import TestCase -from django.utils.encoding import python_2_unicode_compatible - - -@python_2_unicode_compatible -class SomeModel(models.Model): - some_field = models.CharField(max_length=50) - - def __str__(self): - return self.some_field - - -@python_2_unicode_compatible -class SomeOtherModel(models.Model): - some_other_field = models.CharField(max_length=50) - - def __str__(self): - return self.some_other_field - - -@python_2_unicode_compatible -class YetAnotherModel(models.Model): - yet_another_field = models.CharField(max_length=50) - - def __str__(self): - return self.yet_another_field - - -class DatabrowseTests(TestCase): - - def test_databrowse_register_unregister(self): - databrowse.site.register(SomeModel) - self.assertTrue(SomeModel in databrowse.site.registry) - databrowse.site.register(SomeOtherModel, YetAnotherModel) - self.assertTrue(SomeOtherModel in databrowse.site.registry) - self.assertTrue(YetAnotherModel in databrowse.site.registry) - - self.assertRaisesMessage( - databrowse.sites.AlreadyRegistered, - 'The model SomeModel is already registered', - databrowse.site.register, SomeModel, SomeOtherModel - ) - - databrowse.site.unregister(SomeOtherModel) - self.assertFalse(SomeOtherModel in databrowse.site.registry) - databrowse.site.unregister(SomeModel, YetAnotherModel) - self.assertFalse(SomeModel in databrowse.site.registry) - self.assertFalse(YetAnotherModel in databrowse.site.registry) - - self.assertRaisesMessage( - databrowse.sites.NotRegistered, - 'The model SomeModel is not registered', - databrowse.site.unregister, SomeModel, SomeOtherModel - ) - - self.assertRaisesMessage( - databrowse.sites.AlreadyRegistered, - 'The model SomeModel is already registered', - databrowse.site.register, SomeModel, SomeModel - ) diff --git a/django/contrib/databrowse/urls.py b/django/contrib/databrowse/urls.py deleted file mode 100644 index 5c431deb21..0000000000 --- a/django/contrib/databrowse/urls.py +++ /dev/null @@ -1,20 +0,0 @@ -from django.conf.urls import patterns -from django.contrib.databrowse import views - -# Note: The views in this URLconf all require a 'models' argument, -# which is a list of model classes (*not* instances). - -urlpatterns = patterns('', - #(r'^$', views.homepage), - #(r'^([^/]+)/([^/]+)/$', views.model_detail), - - (r'^([^/]+)/([^/]+)/fields/(\w+)/$', views.choice_list), - (r'^([^/]+)/([^/]+)/fields/(\w+)/(.*)/$', views.choice_detail), - - #(r'^([^/]+)/([^/]+)/calendars/(\w+)/$', views.calendar_main), - #(r'^([^/]+)/([^/]+)/calendars/(\w+)/(\d{4})/$', views.calendar_year), - #(r'^([^/]+)/([^/]+)/calendars/(\w+)/(\d{4})/(\w{3})/$', views.calendar_month), - #(r'^([^/]+)/([^/]+)/calendars/(\w+)/(\d{4})/(\w{3})/(\d{1,2})/$', views.calendar_day), - - #(r'^([^/]+)/([^/]+)/objects/(.*)/$', views.object_detail), -) diff --git a/django/contrib/databrowse/views.py b/django/contrib/databrowse/views.py deleted file mode 100644 index 4543e95780..0000000000 --- a/django/contrib/databrowse/views.py +++ /dev/null @@ -1,19 +0,0 @@ -from django.http import Http404 -from django.shortcuts import render_to_response - -########### -# CHOICES # -########### - -def choice_list(request, app_label, module_name, field_name, models): - m, f = lookup_field(app_label, module_name, field_name, models) - return render_to_response('databrowse/choice_list.html', {'model': m, 'field': f}) - -def choice_detail(request, app_label, module_name, field_name, field_val, models): - m, f = lookup_field(app_label, module_name, field_name, models) - try: - label = dict(f.field.choices)[field_val] - except KeyError: - raise Http404('Invalid choice value given') - obj_list = m.objects(**{f.field.name: field_val}) - return render_to_response('databrowse/choice_detail.html', {'model': m, 'field': f, 'value': label, 'object_list': obj_list}) diff --git a/docs/index.txt b/docs/index.txt index 971c2ff479..3d1765f399 100644 --- a/docs/index.txt +++ b/docs/index.txt @@ -267,7 +267,6 @@ Learn about some other core functionalities of the Django framework: * :doc:`Conditional content processing ` * :doc:`Content types and generic relations ` -* :doc:`Databrowse ` * :doc:`Flatpages ` * :doc:`Redirects ` * :doc:`Signals ` diff --git a/docs/ref/contrib/databrowse.txt b/docs/ref/contrib/databrowse.txt deleted file mode 100644 index 3d411bb7b4..0000000000 --- a/docs/ref/contrib/databrowse.txt +++ /dev/null @@ -1,89 +0,0 @@ -========== -Databrowse -========== - -.. module:: django.contrib.databrowse - :synopsis: Databrowse is a Django application that lets you browse your data. - -.. deprecated:: 1.4 - This module has been deprecated. - -Databrowse is a Django application that lets you browse your data. - -As the Django admin dynamically creates an admin interface by introspecting -your models, Databrowse dynamically creates a rich, browsable Web site by -introspecting your models. - -How to use Databrowse -===================== - -1. Point Django at the default Databrowse templates. There are two ways to - do this: - - * Add ``'django.contrib.databrowse'`` to your :setting:`INSTALLED_APPS` - setting. This will work if your :setting:`TEMPLATE_LOADERS` setting - includes the ``app_directories`` template loader (which is the case by - default). See the :ref:`template loader docs ` for - more. - - * Otherwise, determine the full filesystem path to the - :file:`django/contrib/databrowse/templates` directory, and add that - directory to your :setting:`TEMPLATE_DIRS` setting. - -2. Register a number of models with the Databrowse site:: - - from django.contrib import databrowse - from myapp.models import SomeModel, SomeOtherModel, YetAnotherModel - - databrowse.site.register(SomeModel) - databrowse.site.register(SomeOtherModel, YetAnotherModel) - - Note that you should register the model *classes*, not instances. - - .. versionchanged:: 1.4 - - Since Django 1.4, it is possible to register several models in the same - call to :func:`~databrowse.site.register`. - - It doesn't matter where you put this, as long as it gets executed at some - point. A good place for it is in your :doc:`URLconf file - ` (``urls.py``). - -3. Change your URLconf to import the :mod:`~django.contrib.databrowse` module:: - - from django.contrib import databrowse - - ...and add the following line to your URLconf:: - - (r'^databrowse/(.*)', databrowse.site.root), - - The prefix doesn't matter -- you can use ``databrowse/`` or ``db/`` or - whatever you'd like. - -4. Run the Django server and visit ``/databrowse/`` in your browser. - -Requiring user login -==================== - -You can restrict access to logged-in users with only a few extra lines of -code. Simply add the following import to your URLconf:: - - from django.contrib.auth.decorators import login_required - -Then modify the :doc:`URLconf ` so that the -:func:`databrowse.site.root` view is decorated with -:func:`django.contrib.auth.decorators.login_required`:: - - (r'^databrowse/(.*)', login_required(databrowse.site.root)), - -If you haven't already added support for user logins to your :doc:`URLconf -`, as described in the :doc:`user authentication docs -`, then you will need to do so now with the following -mapping:: - - (r'^accounts/login/$', 'django.contrib.auth.views.login'), - -The final step is to create the login form required by -:func:`django.contrib.auth.views.login`. The -:doc:`user authentication docs ` provide full details and a -sample template that can be used for this purpose. diff --git a/docs/ref/contrib/index.txt b/docs/ref/contrib/index.txt index 3bf5288ee4..d014cf36a3 100644 --- a/docs/ref/contrib/index.txt +++ b/docs/ref/contrib/index.txt @@ -27,7 +27,6 @@ those packages have. comments/index contenttypes csrf - databrowse flatpages formtools/index gis/index diff --git a/tests/runtests.py b/tests/runtests.py index 8c56e273b5..c23737ed14 100755 --- a/tests/runtests.py +++ b/tests/runtests.py @@ -10,10 +10,6 @@ from django import contrib from django.utils._os import upath from django.utils import six -# databrowse is deprecated, but we still want to run its tests -warnings.filterwarnings('ignore', "The Databrowse contrib app is deprecated", - DeprecationWarning, 'django.contrib.databrowse') - CONTRIB_DIR_NAME = 'django.contrib' MODEL_TESTS_DIR_NAME = 'modeltests' REGRESSION_TESTS_DIR_NAME = 'regressiontests' @@ -40,7 +36,6 @@ ALWAYS_INSTALLED_APPS = [ 'django.contrib.comments', 'django.contrib.admin', 'django.contrib.admindocs', - 'django.contrib.databrowse', 'django.contrib.staticfiles', 'django.contrib.humanize', 'regressiontests.staticfiles_tests', -- cgit v1.3 From b2d20e982627b8c5f21fe68c5531b40ee20f1cfc Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Mon, 24 Dec 2012 22:57:49 +0100 Subject: Removed legacy shortcut for importing GeoIP. --- django/contrib/gis/utils/__init__.py | 8 ------ django/contrib/gis/utils/geoip.py | 14 ---------- docs/ref/contrib/gis/geoip.txt | 51 +++++++++++++++--------------------- 3 files changed, 21 insertions(+), 52 deletions(-) delete mode 100644 django/contrib/gis/utils/geoip.py (limited to 'docs') diff --git a/django/contrib/gis/utils/__init__.py b/django/contrib/gis/utils/__init__.py index 5d340bd001..c6617d299f 100644 --- a/django/contrib/gis/utils/__init__.py +++ b/django/contrib/gis/utils/__init__.py @@ -14,12 +14,4 @@ if HAS_GDAL: except: pass -# GeoIP now lives in `django.contrib.gis.geoip`; this shortcut will be -# removed in Django 1.6. -from django.contrib.gis.utils import geoip -HAS_GEOIP = geoip.HAS_GEOIP -if HAS_GEOIP: - GeoIP = geoip.GeoIP - GeoIPException = geoip.GeoIPException - from django.contrib.gis.utils.wkt import precision_wkt diff --git a/django/contrib/gis/utils/geoip.py b/django/contrib/gis/utils/geoip.py deleted file mode 100644 index 781917e4c9..0000000000 --- a/django/contrib/gis/utils/geoip.py +++ /dev/null @@ -1,14 +0,0 @@ -import warnings - -from django.contrib.gis import geoip -HAS_GEOIP = geoip.HAS_GEOIP -if HAS_GEOIP: - BaseGeoIP = geoip.GeoIP - GeoIPException = geoip.GeoIPException - - class GeoIP(BaseGeoIP): - def __init__(self, *args, **kwargs): - warnings.warn('GeoIP class has been moved to `django.contrib.gis.geoip`, and ' - 'this shortcut will disappear in Django v1.6.', - DeprecationWarning, stacklevel=2) - super(GeoIP, self).__init__(*args, **kwargs) diff --git a/docs/ref/contrib/gis/geoip.txt b/docs/ref/contrib/gis/geoip.txt index e37c4c60b0..2444849a19 100644 --- a/docs/ref/contrib/gis/geoip.txt +++ b/docs/ref/contrib/gis/geoip.txt @@ -7,22 +7,13 @@ Geolocation with GeoIP .. module:: django.contrib.gis.geoip :synopsis: High-level Python interface for MaxMind's GeoIP C library. -.. versionchanged:: 1.4 - -.. note:: - - In Django 1.4, the :class:`GeoIP` object was moved out of - :mod:`django.contrib.gis.utils` and into its own module, - :mod:`django.contrib.gis.geoip`. A shortcut is still provided - in ``utils``, but will be removed in Django 1.6. - The :class:`GeoIP` object is a ctypes wrapper for the `MaxMind GeoIP C API`__. [#]_ This interface is a BSD-licensed alternative to the GPL-licensed `Python GeoIP`__ interface provided by MaxMind. In order to perform IP-based geolocation, the :class:`GeoIP` object requires -the GeoIP C libary and either the GeoIP `Country`__ or `City`__ -datasets in binary format (the CSV files will not work!). These datasets may be +the GeoIP C libary and either the GeoIP `Country`__ or `City`__ +datasets in binary format (the CSV files will not work!). These datasets may be `downloaded from MaxMind`__. Grab the ``GeoLiteCountry/GeoIP.dat.gz`` and ``GeoLiteCity.dat.gz`` files and unzip them in a directory corresponding to what you set :setting:`GEOIP_PATH` with in your settings. See the example and @@ -58,7 +49,7 @@ usage:: >>> g.lat_lon('salon.com') (37.789798736572266, -122.39420318603516) >>> g.lon_lat('uh.edu') - (-95.415199279785156, 29.77549934387207) + (-95.415199279785156, 29.77549934387207) >>> g.geos('24.124.1.80').wkt 'POINT (-95.2087020874023438 39.0392990112304688)' @@ -104,30 +95,30 @@ Defaults to ``'GeoLiteCity.dat'``. .. class:: GeoIP([path=None, cache=0, country=None, city=None]) -The ``GeoIP`` object does not require any parameters to use the default +The ``GeoIP`` object does not require any parameters to use the default settings. However, at the very least the :setting:`GEOIP_PATH` setting -should be set with the path of the location of your GeoIP data sets. The -following intialization keywords may be used to customize any of the -defaults. +should be set with the path of the location of your GeoIP data sets. The +following intialization keywords may be used to customize any of the +defaults. =================== ======================================================= Keyword Arguments Description =================== ======================================================= -``path`` Base directory to where GeoIP data is located or the - full path to where the city or country data files - (.dat) are located. Assumes that both the city and - country data sets are located in this directory; +``path`` Base directory to where GeoIP data is located or the + full path to where the city or country data files + (.dat) are located. Assumes that both the city and + country data sets are located in this directory; overrides the :setting:`GEOIP_PATH` settings attribute. ``cache`` The cache settings when opening up the GeoIP datasets, and may be an integer in (0, 1, 2, 4) corresponding to - the ``GEOIP_STANDARD``, ``GEOIP_MEMORY_CACHE``, - ``GEOIP_CHECK_CACHE``, and ``GEOIP_INDEX_CACHE`` - ``GeoIPOptions`` C API settings, respectively. + the ``GEOIP_STANDARD``, ``GEOIP_MEMORY_CACHE``, + ``GEOIP_CHECK_CACHE``, and ``GEOIP_INDEX_CACHE`` + ``GeoIPOptions`` C API settings, respectively. Defaults to 0 (``GEOIP_STANDARD``). - + ``country`` The name of the GeoIP country data file. Defaults - to ``GeoIP.dat``. Setting this keyword overrides the + to ``GeoIP.dat``. Setting this keyword overrides the :setting:`GEOIP_COUNTRY` settings attribute. ``city`` The name of the GeoIP city data file. Defaults to @@ -142,9 +133,9 @@ Querying -------- All the following querying routines may take either a string IP address -or a fully qualified domain name (FQDN). For example, both -``'205.186.163.125'`` and ``'djangoproject.com'`` would be valid query -parameters. +or a fully qualified domain name (FQDN). For example, both +``'205.186.163.125'`` and ``'djangoproject.com'`` would be valid query +parameters. .. method:: GeoIP.city(query) @@ -153,7 +144,7 @@ of the values in the dictionary may be undefined (``None``). .. method:: GeoIP.country(query) -Returns a dictionary with the country code and country for the given +Returns a dictionary with the country code and country for the given query. .. method:: GeoIP.country_code(query) @@ -202,7 +193,7 @@ and country), and the version of the GeoIP C library (if supported). GeoIP-Python API compatibility methods ---------------------------------------- -These methods exist to ease compatibility with any code using MaxMind's +These methods exist to ease compatibility with any code using MaxMind's existing Python API. .. classmethod:: GeoIP.open(path, cache) -- cgit v1.3 From f27a4ee3270bd57299ce02d622978ac4d839137e Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Mon, 24 Dec 2012 23:10:40 +0100 Subject: Removed django.contrib.localflavor. Each localflavor lives on as a separate app. --- .tx/config | 5 - django/contrib/gis/tests/relatedapp/models.py | 3 +- django/contrib/gis/utils/layermapping.py | 2 - django/contrib/localflavor/__init__.py | 2 - django/contrib/localflavor/ar/__init__.py | 0 django/contrib/localflavor/ar/ar_provinces.py | 37 - django/contrib/localflavor/ar/forms.py | 128 - django/contrib/localflavor/at/__init__.py | 0 django/contrib/localflavor/at/at_states.py | 14 - django/contrib/localflavor/at/forms.py | 69 - django/contrib/localflavor/au/__init__.py | 0 django/contrib/localflavor/au/au_states.py | 17 - django/contrib/localflavor/au/forms.py | 60 - django/contrib/localflavor/au/models.py | 43 - django/contrib/localflavor/be/__init__.py | 0 django/contrib/localflavor/be/be_provinces.py | 16 - django/contrib/localflavor/be/be_regions.py | 8 - django/contrib/localflavor/be/forms.py | 71 - django/contrib/localflavor/br/__init__.py | 0 django/contrib/localflavor/br/br_states.py | 38 - django/contrib/localflavor/br/forms.py | 166 - django/contrib/localflavor/ca/__init__.py | 0 django/contrib/localflavor/ca/ca_provinces.py | 63 - django/contrib/localflavor/ca/forms.py | 148 - django/contrib/localflavor/ch/__init__.py | 0 django/contrib/localflavor/ch/ch_states.py | 31 - django/contrib/localflavor/ch/forms.py | 122 - django/contrib/localflavor/cl/__init__.py | 0 django/contrib/localflavor/cl/cl_regions.py | 26 - django/contrib/localflavor/cl/forms.py | 97 - django/contrib/localflavor/cn/__init__.py | 0 django/contrib/localflavor/cn/cn_provinces.py | 49 - django/contrib/localflavor/cn/forms.py | 214 -- django/contrib/localflavor/co/__init__.py | 0 django/contrib/localflavor/co/co_departments.py | 45 - django/contrib/localflavor/co/forms.py | 16 - django/contrib/localflavor/cz/__init__.py | 0 django/contrib/localflavor/cz/cz_regions.py | 22 - django/contrib/localflavor/cz/forms.py | 136 - django/contrib/localflavor/de/__init__.py | 0 django/contrib/localflavor/de/de_states.py | 21 - django/contrib/localflavor/de/forms.py | 88 - django/contrib/localflavor/ec/__init__.py | 0 django/contrib/localflavor/ec/ec_provinces.py | 36 - django/contrib/localflavor/ec/forms.py | 15 - django/contrib/localflavor/es/__init__.py | 0 django/contrib/localflavor/es/es_provinces.py | 58 - django/contrib/localflavor/es/es_regions.py | 23 - django/contrib/localflavor/es/forms.py | 189 -- django/contrib/localflavor/fi/__init__.py | 0 django/contrib/localflavor/fi/fi_municipalities.py | 355 -- django/contrib/localflavor/fi/forms.py | 55 - django/contrib/localflavor/fr/__init__.py | 0 django/contrib/localflavor/fr/forms.py | 57 - django/contrib/localflavor/fr/fr_department.py | 118 - django/contrib/localflavor/gb/__init__.py | 0 django/contrib/localflavor/gb/forms.py | 55 - django/contrib/localflavor/gb/gb_regions.py | 97 - django/contrib/localflavor/generic/__init__.py | 0 django/contrib/localflavor/generic/forms.py | 48 - django/contrib/localflavor/hk/__init__.py | 0 django/contrib/localflavor/hk/forms.py | 71 - django/contrib/localflavor/hr/__init__.py | 0 django/contrib/localflavor/hr/forms.py | 282 -- django/contrib/localflavor/hr/hr_choices.py | 112 - django/contrib/localflavor/id/__init__.py | 0 django/contrib/localflavor/id/forms.py | 217 -- django/contrib/localflavor/id/id_choices.py | 107 - django/contrib/localflavor/ie/__init__.py | 0 django/contrib/localflavor/ie/forms.py | 16 - django/contrib/localflavor/ie/ie_counties.py | 40 - django/contrib/localflavor/il/__init__.py | 0 django/contrib/localflavor/il/forms.py | 67 - django/contrib/localflavor/in_/__init__.py | 0 django/contrib/localflavor/in_/forms.py | 115 - django/contrib/localflavor/in_/in_states.py | 133 - django/contrib/localflavor/is_/__init__.py | 0 django/contrib/localflavor/is_/forms.py | 86 - django/contrib/localflavor/is_/is_postalcodes.py | 152 - django/contrib/localflavor/it/__init__.py | 0 django/contrib/localflavor/it/forms.py | 88 - django/contrib/localflavor/it/it_province.py | 115 - django/contrib/localflavor/it/it_region.py | 25 - django/contrib/localflavor/it/util.py | 44 - django/contrib/localflavor/jp/__init__.py | 0 django/contrib/localflavor/jp/forms.py | 39 - django/contrib/localflavor/jp/jp_prefectures.py | 51 - django/contrib/localflavor/kw/__init__.py | 0 django/contrib/localflavor/kw/forms.py | 65 - .../localflavor/locale/ar/LC_MESSAGES/django.mo | Bin 19952 -> 0 bytes .../localflavor/locale/ar/LC_MESSAGES/django.po | 3534 ------------------- .../localflavor/locale/az/LC_MESSAGES/django.mo | Bin 35296 -> 0 bytes .../localflavor/locale/az/LC_MESSAGES/django.po | 3543 ------------------- .../localflavor/locale/bg/LC_MESSAGES/django.mo | Bin 35221 -> 0 bytes .../localflavor/locale/bg/LC_MESSAGES/django.po | 3548 ------------------- .../localflavor/locale/bn/LC_MESSAGES/django.mo | Bin 678 -> 0 bytes .../localflavor/locale/bn/LC_MESSAGES/django.po | 3527 ------------------- .../localflavor/locale/bs/LC_MESSAGES/django.mo | Bin 14355 -> 0 bytes .../localflavor/locale/bs/LC_MESSAGES/django.po | 3542 ------------------- .../localflavor/locale/ca/LC_MESSAGES/django.mo | Bin 50784 -> 0 bytes .../localflavor/locale/ca/LC_MESSAGES/django.po | 3566 ------------------- .../localflavor/locale/cs/LC_MESSAGES/django.mo | Bin 50638 -> 0 bytes .../localflavor/locale/cs/LC_MESSAGES/django.po | 3545 ------------------- .../localflavor/locale/cy/LC_MESSAGES/django.mo | Bin 597 -> 0 bytes .../localflavor/locale/cy/LC_MESSAGES/django.po | 3527 ------------------- .../localflavor/locale/da/LC_MESSAGES/django.mo | Bin 49738 -> 0 bytes .../localflavor/locale/da/LC_MESSAGES/django.po | 3551 ------------------- .../localflavor/locale/de/LC_MESSAGES/django.mo | Bin 50949 -> 0 bytes .../localflavor/locale/de/LC_MESSAGES/django.po | 3567 ------------------- .../localflavor/locale/el/LC_MESSAGES/django.mo | Bin 40893 -> 0 bytes .../localflavor/locale/el/LC_MESSAGES/django.po | 3556 ------------------- .../localflavor/locale/en/LC_MESSAGES/django.mo | Bin 356 -> 0 bytes .../localflavor/locale/en/LC_MESSAGES/django.po | 3546 ------------------- .../localflavor/locale/en_GB/LC_MESSAGES/django.mo | Bin 49531 -> 0 bytes .../localflavor/locale/en_GB/LC_MESSAGES/django.po | 3544 ------------------- .../localflavor/locale/eo/LC_MESSAGES/django.mo | Bin 50004 -> 0 bytes .../localflavor/locale/eo/LC_MESSAGES/django.po | 3543 ------------------- .../localflavor/locale/es/LC_MESSAGES/django.mo | Bin 51382 -> 0 bytes .../localflavor/locale/es/LC_MESSAGES/django.po | 3571 -------------------- .../localflavor/locale/es_AR/LC_MESSAGES/django.mo | Bin 51444 -> 0 bytes .../localflavor/locale/es_AR/LC_MESSAGES/django.po | 3570 ------------------- .../localflavor/locale/es_MX/LC_MESSAGES/django.mo | Bin 51562 -> 0 bytes .../localflavor/locale/es_MX/LC_MESSAGES/django.po | 3566 ------------------- .../localflavor/locale/et/LC_MESSAGES/django.mo | Bin 27120 -> 0 bytes .../localflavor/locale/et/LC_MESSAGES/django.po | 3539 ------------------- .../localflavor/locale/eu/LC_MESSAGES/django.mo | Bin 49757 -> 0 bytes .../localflavor/locale/eu/LC_MESSAGES/django.po | 3550 ------------------- .../localflavor/locale/fa/LC_MESSAGES/django.mo | Bin 3964 -> 0 bytes .../localflavor/locale/fa/LC_MESSAGES/django.po | 3529 ------------------- .../localflavor/locale/fi/LC_MESSAGES/django.mo | Bin 36364 -> 0 bytes .../localflavor/locale/fi/LC_MESSAGES/django.po | 3542 ------------------- .../localflavor/locale/fr/LC_MESSAGES/django.mo | Bin 51185 -> 0 bytes .../localflavor/locale/fr/LC_MESSAGES/django.po | 3564 ------------------- .../localflavor/locale/fy_NL/LC_MESSAGES/django.mo | Bin 401 -> 0 bytes .../localflavor/locale/fy_NL/LC_MESSAGES/django.po | 3524 ------------------- .../localflavor/locale/ga/LC_MESSAGES/django.mo | Bin 50974 -> 0 bytes .../localflavor/locale/ga/LC_MESSAGES/django.po | 3560 ------------------- .../localflavor/locale/gl/LC_MESSAGES/django.mo | Bin 18821 -> 0 bytes .../localflavor/locale/gl/LC_MESSAGES/django.po | 3538 ------------------- .../localflavor/locale/he/LC_MESSAGES/django.mo | Bin 37994 -> 0 bytes .../localflavor/locale/he/LC_MESSAGES/django.po | 3532 ------------------- .../localflavor/locale/hi/LC_MESSAGES/django.mo | Bin 74255 -> 0 bytes .../localflavor/locale/hi/LC_MESSAGES/django.po | 3540 ------------------- .../localflavor/locale/hr/LC_MESSAGES/django.mo | Bin 34114 -> 0 bytes .../localflavor/locale/hr/LC_MESSAGES/django.po | 3546 ------------------- .../localflavor/locale/hu/LC_MESSAGES/django.mo | Bin 50489 -> 0 bytes .../localflavor/locale/hu/LC_MESSAGES/django.po | 3561 ------------------- .../localflavor/locale/id/LC_MESSAGES/django.mo | Bin 49879 -> 0 bytes .../localflavor/locale/id/LC_MESSAGES/django.po | 3555 ------------------- .../localflavor/locale/is/LC_MESSAGES/django.mo | Bin 5344 -> 0 bytes .../localflavor/locale/is/LC_MESSAGES/django.po | 3532 ------------------- .../localflavor/locale/it/LC_MESSAGES/django.mo | Bin 50948 -> 0 bytes .../localflavor/locale/it/LC_MESSAGES/django.po | 3567 ------------------- .../localflavor/locale/ja/LC_MESSAGES/django.mo | Bin 37185 -> 0 bytes .../localflavor/locale/ja/LC_MESSAGES/django.po | 3542 ------------------- .../localflavor/locale/ka/LC_MESSAGES/django.mo | Bin 38062 -> 0 bytes .../localflavor/locale/ka/LC_MESSAGES/django.po | 3546 ------------------- .../localflavor/locale/kk/LC_MESSAGES/django.mo | Bin 436 -> 0 bytes .../localflavor/locale/kk/LC_MESSAGES/django.po | 3526 ------------------- .../localflavor/locale/km/LC_MESSAGES/django.mo | Bin 639 -> 0 bytes .../localflavor/locale/km/LC_MESSAGES/django.po | 3526 ------------------- .../localflavor/locale/kn/LC_MESSAGES/django.mo | Bin 752 -> 0 bytes .../localflavor/locale/kn/LC_MESSAGES/django.po | 3527 ------------------- .../localflavor/locale/ko/LC_MESSAGES/django.mo | Bin 37261 -> 0 bytes .../localflavor/locale/ko/LC_MESSAGES/django.po | 3535 ------------------- .../localflavor/locale/lt/LC_MESSAGES/django.mo | Bin 42754 -> 0 bytes .../localflavor/locale/lt/LC_MESSAGES/django.po | 3554 ------------------- .../localflavor/locale/lv/LC_MESSAGES/django.mo | Bin 15298 -> 0 bytes .../localflavor/locale/lv/LC_MESSAGES/django.po | 3544 ------------------- .../localflavor/locale/mk/LC_MESSAGES/django.mo | Bin 59023 -> 0 bytes .../localflavor/locale/mk/LC_MESSAGES/django.po | 3554 ------------------- .../localflavor/locale/ml/LC_MESSAGES/django.mo | Bin 469 -> 0 bytes .../localflavor/locale/ml/LC_MESSAGES/django.po | 3527 ------------------- .../localflavor/locale/mn/LC_MESSAGES/django.mo | Bin 60408 -> 0 bytes .../localflavor/locale/mn/LC_MESSAGES/django.po | 3557 ------------------- .../localflavor/locale/nb/LC_MESSAGES/django.mo | Bin 49246 -> 0 bytes .../localflavor/locale/nb/LC_MESSAGES/django.po | 3548 ------------------- .../localflavor/locale/ne/LC_MESSAGES/django.mo | Bin 443 -> 0 bytes .../localflavor/locale/ne/LC_MESSAGES/django.po | 3526 ------------------- .../localflavor/locale/nl/LC_MESSAGES/django.mo | Bin 50155 -> 0 bytes .../localflavor/locale/nl/LC_MESSAGES/django.po | 3561 ------------------- .../localflavor/locale/nn/LC_MESSAGES/django.mo | Bin 31968 -> 0 bytes .../localflavor/locale/nn/LC_MESSAGES/django.po | 3537 ------------------- .../localflavor/locale/pa/LC_MESSAGES/django.mo | Bin 1859 -> 0 bytes .../localflavor/locale/pa/LC_MESSAGES/django.po | 3527 ------------------- .../localflavor/locale/pl/LC_MESSAGES/django.mo | Bin 50088 -> 0 bytes .../localflavor/locale/pl/LC_MESSAGES/django.po | 3551 ------------------- .../localflavor/locale/pt/LC_MESSAGES/django.mo | Bin 34573 -> 0 bytes .../localflavor/locale/pt/LC_MESSAGES/django.po | 3555 ------------------- .../localflavor/locale/pt_BR/LC_MESSAGES/django.mo | Bin 50190 -> 0 bytes .../localflavor/locale/pt_BR/LC_MESSAGES/django.po | 3557 ------------------- .../localflavor/locale/ro/LC_MESSAGES/django.mo | Bin 26080 -> 0 bytes .../localflavor/locale/ro/LC_MESSAGES/django.po | 3551 ------------------- .../localflavor/locale/ru/LC_MESSAGES/django.mo | Bin 63266 -> 0 bytes .../localflavor/locale/ru/LC_MESSAGES/django.po | 3562 ------------------- .../localflavor/locale/sk/LC_MESSAGES/django.mo | Bin 50716 -> 0 bytes .../localflavor/locale/sk/LC_MESSAGES/django.po | 3546 ------------------- .../localflavor/locale/sl/LC_MESSAGES/django.mo | Bin 45481 -> 0 bytes .../localflavor/locale/sl/LC_MESSAGES/django.po | 3559 ------------------- .../localflavor/locale/sq/LC_MESSAGES/django.mo | Bin 468 -> 0 bytes .../localflavor/locale/sq/LC_MESSAGES/django.po | 3526 ------------------- .../localflavor/locale/sr/LC_MESSAGES/django.mo | Bin 2708 -> 0 bytes .../localflavor/locale/sr/LC_MESSAGES/django.po | 3529 ------------------- .../locale/sr_Latn/LC_MESSAGES/django.mo | Bin 2304 -> 0 bytes .../locale/sr_Latn/LC_MESSAGES/django.po | 3529 ------------------- .../localflavor/locale/sv/LC_MESSAGES/django.mo | Bin 49051 -> 0 bytes .../localflavor/locale/sv/LC_MESSAGES/django.po | 3553 ------------------- .../localflavor/locale/sw/LC_MESSAGES/django.mo | Bin 444 -> 0 bytes .../localflavor/locale/sw/LC_MESSAGES/django.po | 3526 ------------------- .../localflavor/locale/ta/LC_MESSAGES/django.mo | Bin 701 -> 0 bytes .../localflavor/locale/ta/LC_MESSAGES/django.po | 3527 ------------------- .../localflavor/locale/te/LC_MESSAGES/django.mo | Bin 36354 -> 0 bytes .../localflavor/locale/te/LC_MESSAGES/django.po | 3533 ------------------- .../localflavor/locale/th/LC_MESSAGES/django.mo | Bin 41824 -> 0 bytes .../localflavor/locale/th/LC_MESSAGES/django.po | 3533 ------------------- .../localflavor/locale/tr/LC_MESSAGES/django.mo | Bin 50307 -> 0 bytes .../localflavor/locale/tr/LC_MESSAGES/django.po | 3559 ------------------- .../localflavor/locale/tt/LC_MESSAGES/django.mo | Bin 435 -> 0 bytes .../localflavor/locale/tt/LC_MESSAGES/django.po | 3526 ------------------- .../localflavor/locale/uk/LC_MESSAGES/django.mo | Bin 30233 -> 0 bytes .../localflavor/locale/uk/LC_MESSAGES/django.po | 3547 ------------------- .../localflavor/locale/ur/LC_MESSAGES/django.mo | Bin 441 -> 0 bytes .../localflavor/locale/ur/LC_MESSAGES/django.po | 3526 ------------------- .../localflavor/locale/vi/LC_MESSAGES/django.mo | Bin 5109 -> 0 bytes .../localflavor/locale/vi/LC_MESSAGES/django.po | 3528 ------------------- .../localflavor/locale/zh_CN/LC_MESSAGES/django.mo | Bin 31215 -> 0 bytes .../localflavor/locale/zh_CN/LC_MESSAGES/django.po | 3534 ------------------- .../localflavor/locale/zh_TW/LC_MESSAGES/django.mo | Bin 35161 -> 0 bytes .../localflavor/locale/zh_TW/LC_MESSAGES/django.po | 3535 ------------------- django/contrib/localflavor/mk/__init__.py | 0 django/contrib/localflavor/mk/forms.py | 102 - django/contrib/localflavor/mk/mk_choices.py | 94 - django/contrib/localflavor/mk/models.py | 44 - django/contrib/localflavor/mx/__init__.py | 0 django/contrib/localflavor/mx/forms.py | 227 -- django/contrib/localflavor/mx/models.py | 70 - django/contrib/localflavor/mx/mx_states.py | 46 - django/contrib/localflavor/nl/__init__.py | 0 django/contrib/localflavor/nl/forms.py | 104 - django/contrib/localflavor/nl/nl_provinces.py | 16 - django/contrib/localflavor/no/__init__.py | 0 django/contrib/localflavor/no/forms.py | 87 - django/contrib/localflavor/no/no_municipalities.py | 33 - django/contrib/localflavor/pe/__init__.py | 0 django/contrib/localflavor/pe/forms.py | 75 - django/contrib/localflavor/pe/pe_region.py | 36 - django/contrib/localflavor/pl/__init__.py | 0 django/contrib/localflavor/pl/forms.py | 218 -- .../localflavor/pl/pl_administrativeunits.py | 386 --- django/contrib/localflavor/pl/pl_voivodeships.py | 24 - django/contrib/localflavor/pt/__init__.py | 0 django/contrib/localflavor/pt/forms.py | 50 - django/contrib/localflavor/py/__init__.py | 0 django/contrib/localflavor/py/forms.py | 24 - django/contrib/localflavor/py/py_department.py | 46 - django/contrib/localflavor/ro/__init__.py | 0 django/contrib/localflavor/ro/forms.py | 205 -- django/contrib/localflavor/ro/ro_counties.py | 53 - django/contrib/localflavor/ru/__init__.py | 0 django/contrib/localflavor/ru/forms.py | 67 - django/contrib/localflavor/ru/ru_regions.py | 104 - django/contrib/localflavor/se/__init__.py | 0 django/contrib/localflavor/se/forms.py | 161 - django/contrib/localflavor/se/se_counties.py | 37 - django/contrib/localflavor/se/utils.py | 84 - django/contrib/localflavor/si/__init__.py | 0 django/contrib/localflavor/si/forms.py | 165 - django/contrib/localflavor/si/si_postalcodes.py | 470 --- django/contrib/localflavor/sk/__init__.py | 0 django/contrib/localflavor/sk/forms.py | 46 - django/contrib/localflavor/sk/sk_districts.py | 87 - django/contrib/localflavor/sk/sk_regions.py | 16 - django/contrib/localflavor/tr/__init__.py | 0 django/contrib/localflavor/tr/forms.py | 95 - django/contrib/localflavor/tr/tr_provinces.py | 90 - django/contrib/localflavor/uk/__init__.py | 0 django/contrib/localflavor/uk/forms.py | 10 - django/contrib/localflavor/uk/uk_regions.py | 12 - django/contrib/localflavor/us/__init__.py | 0 django/contrib/localflavor/us/forms.py | 126 - django/contrib/localflavor/us/models.py | 36 - django/contrib/localflavor/us/us_states.py | 326 -- django/contrib/localflavor/uy/__init__.py | 0 django/contrib/localflavor/uy/forms.py | 61 - django/contrib/localflavor/uy/util.py | 12 - django/contrib/localflavor/uy/uy_departaments.py | 25 - django/contrib/localflavor/za/__init__.py | 0 django/contrib/localflavor/za/forms.py | 61 - django/contrib/localflavor/za/za_provinces.py | 13 - django/utils/checksums.py | 2 +- docs/howto/custom-model-fields.txt | 3 +- docs/index.txt | 2 +- docs/misc/api-stability.txt | 53 - docs/ref/contrib/gis/model-api.txt | 5 +- docs/ref/contrib/index.txt | 10 - docs/ref/contrib/localflavor.txt | 151 - docs/ref/models/fields.txt | 4 +- docs/topics/db/models.txt | 4 +- docs/topics/index.txt | 1 + docs/topics/localflavor.txt | 131 + tests/regressiontests/localflavor/__init__.py | 0 .../localflavor/generic/__init__.py | 0 tests/regressiontests/localflavor/generic/tests.py | 90 - tests/regressiontests/localflavor/models.py | 0 tests/regressiontests/localflavor/tests.py | 3 - 305 files changed, 141 insertions(+), 257104 deletions(-) delete mode 100644 django/contrib/localflavor/__init__.py delete mode 100644 django/contrib/localflavor/ar/__init__.py delete mode 100644 django/contrib/localflavor/ar/ar_provinces.py delete mode 100644 django/contrib/localflavor/ar/forms.py delete mode 100644 django/contrib/localflavor/at/__init__.py delete mode 100644 django/contrib/localflavor/at/at_states.py delete mode 100644 django/contrib/localflavor/at/forms.py delete mode 100644 django/contrib/localflavor/au/__init__.py delete mode 100644 django/contrib/localflavor/au/au_states.py delete mode 100644 django/contrib/localflavor/au/forms.py delete mode 100644 django/contrib/localflavor/au/models.py delete mode 100644 django/contrib/localflavor/be/__init__.py delete mode 100644 django/contrib/localflavor/be/be_provinces.py delete mode 100644 django/contrib/localflavor/be/be_regions.py delete mode 100644 django/contrib/localflavor/be/forms.py delete mode 100644 django/contrib/localflavor/br/__init__.py delete mode 100644 django/contrib/localflavor/br/br_states.py delete mode 100644 django/contrib/localflavor/br/forms.py delete mode 100644 django/contrib/localflavor/ca/__init__.py delete mode 100644 django/contrib/localflavor/ca/ca_provinces.py delete mode 100644 django/contrib/localflavor/ca/forms.py delete mode 100644 django/contrib/localflavor/ch/__init__.py delete mode 100644 django/contrib/localflavor/ch/ch_states.py delete mode 100644 django/contrib/localflavor/ch/forms.py delete mode 100644 django/contrib/localflavor/cl/__init__.py delete mode 100644 django/contrib/localflavor/cl/cl_regions.py delete mode 100644 django/contrib/localflavor/cl/forms.py delete mode 100644 django/contrib/localflavor/cn/__init__.py delete mode 100644 django/contrib/localflavor/cn/cn_provinces.py delete mode 100644 django/contrib/localflavor/cn/forms.py delete mode 100644 django/contrib/localflavor/co/__init__.py delete mode 100644 django/contrib/localflavor/co/co_departments.py delete mode 100644 django/contrib/localflavor/co/forms.py delete mode 100644 django/contrib/localflavor/cz/__init__.py delete mode 100644 django/contrib/localflavor/cz/cz_regions.py delete mode 100644 django/contrib/localflavor/cz/forms.py delete mode 100644 django/contrib/localflavor/de/__init__.py delete mode 100644 django/contrib/localflavor/de/de_states.py delete mode 100644 django/contrib/localflavor/de/forms.py delete mode 100644 django/contrib/localflavor/ec/__init__.py delete mode 100644 django/contrib/localflavor/ec/ec_provinces.py delete mode 100644 django/contrib/localflavor/ec/forms.py delete mode 100644 django/contrib/localflavor/es/__init__.py delete mode 100644 django/contrib/localflavor/es/es_provinces.py delete mode 100644 django/contrib/localflavor/es/es_regions.py delete mode 100644 django/contrib/localflavor/es/forms.py delete mode 100644 django/contrib/localflavor/fi/__init__.py delete mode 100644 django/contrib/localflavor/fi/fi_municipalities.py delete mode 100644 django/contrib/localflavor/fi/forms.py delete mode 100644 django/contrib/localflavor/fr/__init__.py delete mode 100644 django/contrib/localflavor/fr/forms.py delete mode 100644 django/contrib/localflavor/fr/fr_department.py delete mode 100644 django/contrib/localflavor/gb/__init__.py delete mode 100644 django/contrib/localflavor/gb/forms.py delete mode 100644 django/contrib/localflavor/gb/gb_regions.py delete mode 100644 django/contrib/localflavor/generic/__init__.py delete mode 100644 django/contrib/localflavor/generic/forms.py delete mode 100644 django/contrib/localflavor/hk/__init__.py delete mode 100644 django/contrib/localflavor/hk/forms.py delete mode 100644 django/contrib/localflavor/hr/__init__.py delete mode 100644 django/contrib/localflavor/hr/forms.py delete mode 100644 django/contrib/localflavor/hr/hr_choices.py delete mode 100644 django/contrib/localflavor/id/__init__.py delete mode 100644 django/contrib/localflavor/id/forms.py delete mode 100644 django/contrib/localflavor/id/id_choices.py delete mode 100644 django/contrib/localflavor/ie/__init__.py delete mode 100644 django/contrib/localflavor/ie/forms.py delete mode 100644 django/contrib/localflavor/ie/ie_counties.py delete mode 100644 django/contrib/localflavor/il/__init__.py delete mode 100644 django/contrib/localflavor/il/forms.py delete mode 100644 django/contrib/localflavor/in_/__init__.py delete mode 100644 django/contrib/localflavor/in_/forms.py delete mode 100644 django/contrib/localflavor/in_/in_states.py delete mode 100644 django/contrib/localflavor/is_/__init__.py delete mode 100644 django/contrib/localflavor/is_/forms.py delete mode 100644 django/contrib/localflavor/is_/is_postalcodes.py delete mode 100644 django/contrib/localflavor/it/__init__.py delete mode 100644 django/contrib/localflavor/it/forms.py delete mode 100644 django/contrib/localflavor/it/it_province.py delete mode 100644 django/contrib/localflavor/it/it_region.py delete mode 100644 django/contrib/localflavor/it/util.py delete mode 100644 django/contrib/localflavor/jp/__init__.py delete mode 100644 django/contrib/localflavor/jp/forms.py delete mode 100644 django/contrib/localflavor/jp/jp_prefectures.py delete mode 100644 django/contrib/localflavor/kw/__init__.py delete mode 100644 django/contrib/localflavor/kw/forms.py delete mode 100644 django/contrib/localflavor/locale/ar/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/ar/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/az/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/az/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/bg/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/bg/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/bn/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/bn/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/bs/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/bs/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/ca/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/ca/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/cs/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/cs/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/cy/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/cy/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/da/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/da/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/de/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/de/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/el/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/el/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/en/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/en/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/en_GB/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/en_GB/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/eo/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/eo/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/es/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/es/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/es_AR/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/es_AR/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/es_MX/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/es_MX/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/et/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/et/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/eu/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/eu/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/fa/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/fa/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/fi/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/fi/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/fr/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/fr/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/fy_NL/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/fy_NL/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/ga/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/ga/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/gl/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/gl/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/he/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/he/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/hi/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/hi/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/hr/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/hr/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/hu/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/hu/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/id/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/id/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/is/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/is/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/it/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/it/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/ja/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/ja/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/ka/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/ka/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/kk/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/kk/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/km/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/km/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/kn/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/kn/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/ko/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/ko/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/lt/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/lt/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/lv/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/lv/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/mk/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/mk/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/ml/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/ml/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/mn/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/mn/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/nb/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/nb/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/ne/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/ne/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/nl/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/nl/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/nn/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/nn/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/pa/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/pa/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/pl/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/pl/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/pt/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/pt/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/pt_BR/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/pt_BR/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/ro/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/ro/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/ru/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/ru/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/sk/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/sk/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/sl/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/sl/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/sq/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/sq/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/sr/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/sr/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/sr_Latn/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/sr_Latn/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/sv/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/sv/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/sw/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/sw/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/ta/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/ta/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/te/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/te/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/th/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/th/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/tr/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/tr/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/tt/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/tt/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/uk/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/uk/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/ur/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/ur/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/vi/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/vi/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/zh_CN/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/zh_CN/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/locale/zh_TW/LC_MESSAGES/django.mo delete mode 100644 django/contrib/localflavor/locale/zh_TW/LC_MESSAGES/django.po delete mode 100644 django/contrib/localflavor/mk/__init__.py delete mode 100644 django/contrib/localflavor/mk/forms.py delete mode 100644 django/contrib/localflavor/mk/mk_choices.py delete mode 100644 django/contrib/localflavor/mk/models.py delete mode 100644 django/contrib/localflavor/mx/__init__.py delete mode 100644 django/contrib/localflavor/mx/forms.py delete mode 100644 django/contrib/localflavor/mx/models.py delete mode 100644 django/contrib/localflavor/mx/mx_states.py delete mode 100644 django/contrib/localflavor/nl/__init__.py delete mode 100644 django/contrib/localflavor/nl/forms.py delete mode 100644 django/contrib/localflavor/nl/nl_provinces.py delete mode 100644 django/contrib/localflavor/no/__init__.py delete mode 100644 django/contrib/localflavor/no/forms.py delete mode 100644 django/contrib/localflavor/no/no_municipalities.py delete mode 100644 django/contrib/localflavor/pe/__init__.py delete mode 100644 django/contrib/localflavor/pe/forms.py delete mode 100644 django/contrib/localflavor/pe/pe_region.py delete mode 100644 django/contrib/localflavor/pl/__init__.py delete mode 100644 django/contrib/localflavor/pl/forms.py delete mode 100644 django/contrib/localflavor/pl/pl_administrativeunits.py delete mode 100644 django/contrib/localflavor/pl/pl_voivodeships.py delete mode 100644 django/contrib/localflavor/pt/__init__.py delete mode 100644 django/contrib/localflavor/pt/forms.py delete mode 100644 django/contrib/localflavor/py/__init__.py delete mode 100644 django/contrib/localflavor/py/forms.py delete mode 100644 django/contrib/localflavor/py/py_department.py delete mode 100644 django/contrib/localflavor/ro/__init__.py delete mode 100644 django/contrib/localflavor/ro/forms.py delete mode 100644 django/contrib/localflavor/ro/ro_counties.py delete mode 100644 django/contrib/localflavor/ru/__init__.py delete mode 100644 django/contrib/localflavor/ru/forms.py delete mode 100644 django/contrib/localflavor/ru/ru_regions.py delete mode 100644 django/contrib/localflavor/se/__init__.py delete mode 100644 django/contrib/localflavor/se/forms.py delete mode 100644 django/contrib/localflavor/se/se_counties.py delete mode 100644 django/contrib/localflavor/se/utils.py delete mode 100644 django/contrib/localflavor/si/__init__.py delete mode 100644 django/contrib/localflavor/si/forms.py delete mode 100644 django/contrib/localflavor/si/si_postalcodes.py delete mode 100644 django/contrib/localflavor/sk/__init__.py delete mode 100644 django/contrib/localflavor/sk/forms.py delete mode 100644 django/contrib/localflavor/sk/sk_districts.py delete mode 100644 django/contrib/localflavor/sk/sk_regions.py delete mode 100644 django/contrib/localflavor/tr/__init__.py delete mode 100644 django/contrib/localflavor/tr/forms.py delete mode 100644 django/contrib/localflavor/tr/tr_provinces.py delete mode 100644 django/contrib/localflavor/uk/__init__.py delete mode 100644 django/contrib/localflavor/uk/forms.py delete mode 100644 django/contrib/localflavor/uk/uk_regions.py delete mode 100644 django/contrib/localflavor/us/__init__.py delete mode 100644 django/contrib/localflavor/us/forms.py delete mode 100644 django/contrib/localflavor/us/models.py delete mode 100644 django/contrib/localflavor/us/us_states.py delete mode 100644 django/contrib/localflavor/uy/__init__.py delete mode 100644 django/contrib/localflavor/uy/forms.py delete mode 100644 django/contrib/localflavor/uy/util.py delete mode 100644 django/contrib/localflavor/uy/uy_departaments.py delete mode 100644 django/contrib/localflavor/za/__init__.py delete mode 100644 django/contrib/localflavor/za/forms.py delete mode 100644 django/contrib/localflavor/za/za_provinces.py delete mode 100644 docs/ref/contrib/localflavor.txt create mode 100644 docs/topics/localflavor.txt delete mode 100644 tests/regressiontests/localflavor/__init__.py delete mode 100644 tests/regressiontests/localflavor/generic/__init__.py delete mode 100644 tests/regressiontests/localflavor/generic/tests.py delete mode 100644 tests/regressiontests/localflavor/models.py delete mode 100644 tests/regressiontests/localflavor/tests.py (limited to 'docs') diff --git a/.tx/config b/.tx/config index d3ded2878a..cb617326b9 100644 --- a/.tx/config +++ b/.tx/config @@ -57,11 +57,6 @@ file_filter = django/contrib/humanize/locale//LC_MESSAGES/django.po source_file = django/contrib/humanize/locale/en/LC_MESSAGES/django.po source_lang = en -[django.contrib-localflavor] -file_filter = django/contrib/localflavor/locale//LC_MESSAGES/django.po -source_file = django/contrib/localflavor/locale/en/LC_MESSAGES/django.po -source_lang = en - [django.contrib-messages] file_filter = django/contrib/messages/locale//LC_MESSAGES/django.po source_file = django/contrib/messages/locale/en/LC_MESSAGES/django.po diff --git a/django/contrib/gis/tests/relatedapp/models.py b/django/contrib/gis/tests/relatedapp/models.py index 659fef7a93..5fc5e1377d 100644 --- a/django/contrib/gis/tests/relatedapp/models.py +++ b/django/contrib/gis/tests/relatedapp/models.py @@ -1,5 +1,4 @@ from django.contrib.gis.db import models -from django.contrib.localflavor.us.models import USStateField from django.utils.encoding import python_2_unicode_compatible @python_2_unicode_compatible @@ -11,7 +10,7 @@ class Location(models.Model): @python_2_unicode_compatible class City(models.Model): name = models.CharField(max_length=50) - state = USStateField() + state = models.CharField(max_length=2) location = models.ForeignKey(Location) objects = models.GeoManager() def __str__(self): return self.name diff --git a/django/contrib/gis/utils/layermapping.py b/django/contrib/gis/utils/layermapping.py index 8a793b96c3..e4ea44d0d2 100644 --- a/django/contrib/gis/utils/layermapping.py +++ b/django/contrib/gis/utils/layermapping.py @@ -16,7 +16,6 @@ from django.contrib.gis.gdal import (CoordTransform, DataSource, from django.contrib.gis.gdal.field import ( OFTDate, OFTDateTime, OFTInteger, OFTReal, OFTString, OFTTime) from django.db import models, transaction -from django.contrib.localflavor.us.models import USStateField from django.utils import six from django.utils.encoding import force_text @@ -55,7 +54,6 @@ class LayerMapping(object): models.SlugField : OFTString, models.TextField : OFTString, models.URLField : OFTString, - USStateField : OFTString, models.BigIntegerField : (OFTInteger, OFTReal, OFTString), models.SmallIntegerField : (OFTInteger, OFTReal, OFTString), models.PositiveSmallIntegerField : (OFTInteger, OFTReal, OFTString), diff --git a/django/contrib/localflavor/__init__.py b/django/contrib/localflavor/__init__.py deleted file mode 100644 index 785186fd28..0000000000 --- a/django/contrib/localflavor/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -import warnings -warnings.warn("django.contrib.localflavor is deprecated. Use the separate django-localflavor-* packages instead.", DeprecationWarning) diff --git a/django/contrib/localflavor/ar/__init__.py b/django/contrib/localflavor/ar/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/ar/ar_provinces.py b/django/contrib/localflavor/ar/ar_provinces.py deleted file mode 100644 index 600ef1eb16..0000000000 --- a/django/contrib/localflavor/ar/ar_provinces.py +++ /dev/null @@ -1,37 +0,0 @@ -# -*- coding: utf-8 -*- -""" -A list of Argentinean provinces and autonomous cities as `choices` in a -formfield. From -http://www.argentina.gov.ar/argentina/portal/paginas.dhtml?pagina=425 - -This exists in this standalone file so that it's only imported into memory -when explicitly needed. -""" -from __future__ import unicode_literals - -PROVINCE_CHOICES = ( - ('B', 'Buenos Aires'), - ('K', 'Catamarca'), - ('H', 'Chaco'), - ('U', 'Chubut'), - ('C', 'Ciudad Autónoma de Buenos Aires'), - ('X', 'Córdoba'), - ('W', 'Corrientes'), - ('E', 'Entre Ríos'), - ('P', 'Formosa'), - ('Y', 'Jujuy'), - ('L', 'La Pampa'), - ('F', 'La Rioja'), - ('M', 'Mendoza'), - ('N', 'Misiones'), - ('Q', 'Neuquén'), - ('R', 'Río Negro'), - ('A', 'Salta'), - ('J', 'San Juan'), - ('D', 'San Luis'), - ('Z', 'Santa Cruz'), - ('S', 'Santa Fe'), - ('G', 'Santiago del Estero'), - ('V', 'Tierra del Fuego, Antártida e Islas del Atlántico Sur'), - ('T', 'Tucumán'), -) diff --git a/django/contrib/localflavor/ar/forms.py b/django/contrib/localflavor/ar/forms.py deleted file mode 100644 index cc6c833de0..0000000000 --- a/django/contrib/localflavor/ar/forms.py +++ /dev/null @@ -1,128 +0,0 @@ -# -*- coding: utf-8 -*- -""" -AR-specific Form helpers. -""" - -from __future__ import absolute_import, unicode_literals - -from django.contrib.localflavor.ar.ar_provinces import PROVINCE_CHOICES -from django.core.validators import EMPTY_VALUES -from django.forms import ValidationError -from django.forms.fields import RegexField, CharField, Select -from django.utils.translation import ugettext_lazy as _ - - -class ARProvinceSelect(Select): - """ - A Select widget that uses a list of Argentinean provinces/autonomous cities - as its choices. - """ - def __init__(self, attrs=None): - super(ARProvinceSelect, self).__init__(attrs, choices=PROVINCE_CHOICES) - -class ARPostalCodeField(RegexField): - """ - A field that accepts a 'classic' NNNN Postal Code or a CPA. - - See: - http://www.correoargentino.com.ar/cpa/que_es - http://www.correoargentino.com.ar/cpa/como_escribirlo - """ - default_error_messages = { - 'invalid': _("Enter a postal code in the format NNNN or ANNNNAAA."), - } - - def __init__(self, max_length=8, min_length=4, *args, **kwargs): - super(ARPostalCodeField, self).__init__(r'^\d{4}$|^[A-HJ-NP-Za-hj-np-z]\d{4}\D{3}$', - max_length, min_length, *args, **kwargs) - - def clean(self, value): - value = super(ARPostalCodeField, self).clean(value) - if value in EMPTY_VALUES: - return '' - if len(value) not in (4, 8): - raise ValidationError(self.error_messages['invalid']) - if len(value) == 8: - return '%s%s%s' % (value[0].upper(), value[1:5], value[5:].upper()) - return value - -class ARDNIField(CharField): - """ - A field that validates 'Documento Nacional de Identidad' (DNI) numbers. - """ - default_error_messages = { - 'invalid': _("This field requires only numbers."), - 'max_digits': _("This field requires 7 or 8 digits."), - } - - def __init__(self, max_length=10, min_length=7, *args, **kwargs): - super(ARDNIField, self).__init__(max_length, min_length, *args, - **kwargs) - - def clean(self, value): - """ - Value can be a string either in the [X]X.XXX.XXX or [X]XXXXXXX formats. - """ - value = super(ARDNIField, self).clean(value) - if value in EMPTY_VALUES: - return '' - if not value.isdigit(): - value = value.replace('.', '') - if not value.isdigit(): - raise ValidationError(self.error_messages['invalid']) - if len(value) not in (7, 8): - raise ValidationError(self.error_messages['max_digits']) - - return value - -class ARCUITField(RegexField): - """ - This field validates a CUIT (Código Único de Identificación Tributaria). A - CUIT is of the form XX-XXXXXXXX-V. The last digit is a check digit. - """ - default_error_messages = { - 'invalid': _('Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format.'), - 'checksum': _("Invalid CUIT."), - 'legal_type': _('Invalid legal type. Type must be 27, 20, 23 or 30.'), - } - - def __init__(self, max_length=None, min_length=None, *args, **kwargs): - super(ARCUITField, self).__init__(r'^\d{2}-?\d{8}-?\d$', - max_length, min_length, *args, **kwargs) - - def clean(self, value): - """ - Value can be either a string in the format XX-XXXXXXXX-X or an - 11-digit number. - """ - value = super(ARCUITField, self).clean(value) - if value in EMPTY_VALUES: - return '' - value, cd = self._canon(value) - if not value[:2] in ['27', '20', '23', '30']: - raise ValidationError(self.error_messages['legal_type']) - if self._calc_cd(value) != cd: - raise ValidationError(self.error_messages['checksum']) - return self._format(value, cd) - - def _canon(self, cuit): - cuit = cuit.replace('-', '') - return cuit[:-1], cuit[-1] - - def _calc_cd(self, cuit): - # Calculation code based on: - # http://es.wikipedia.org/wiki/C%C3%B3digo_%C3%9Anico_de_Identificaci%C3%B3n_Tributaria - mults = (5, 4, 3, 2, 7, 6, 5, 4, 3, 2) - tmp = sum([m * int(cuit[idx]) for idx, m in enumerate(mults)]) - result = 11 - (tmp % 11) - if result == 11: - result = 0 - elif result == 10: - result = 9 - return str(result) - - def _format(self, cuit, check_digit=None): - if check_digit is None: - check_digit = cuit[-1] - cuit = cuit[:-1] - return '%s-%s-%s' % (cuit[:2], cuit[2:], check_digit) diff --git a/django/contrib/localflavor/at/__init__.py b/django/contrib/localflavor/at/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/at/at_states.py b/django/contrib/localflavor/at/at_states.py deleted file mode 100644 index d4b4d8aa53..0000000000 --- a/django/contrib/localflavor/at/at_states.py +++ /dev/null @@ -1,14 +0,0 @@ -# -*- coding: utf-8 -* -from django.utils.translation import ugettext_lazy as _ - -STATE_CHOICES = ( - ('BL', _('Burgenland')), - ('KA', _('Carinthia')), - ('NO', _('Lower Austria')), - ('OO', _('Upper Austria')), - ('SA', _('Salzburg')), - ('ST', _('Styria')), - ('TI', _('Tyrol')), - ('VO', _('Vorarlberg')), - ('WI', _('Vienna')), -) \ No newline at end of file diff --git a/django/contrib/localflavor/at/forms.py b/django/contrib/localflavor/at/forms.py deleted file mode 100644 index c531bec2e9..0000000000 --- a/django/contrib/localflavor/at/forms.py +++ /dev/null @@ -1,69 +0,0 @@ -""" -AT-specific Form helpers -""" -from __future__ import unicode_literals -import re - -from django.core.validators import EMPTY_VALUES -from django.forms import ValidationError -from django.forms.fields import Field, RegexField, Select -from django.utils.translation import ugettext_lazy as _ - -re_ssn = re.compile(r'^\d{4} \d{6}') - - -class ATZipCodeField(RegexField): - """ - A form field that validates its input is an Austrian postcode. - - Accepts 4 digits (first digit must be greater than 0). - """ - default_error_messages = { - 'invalid': _('Enter a zip code in the format XXXX.'), - } - def __init__(self, max_length=None, min_length=None, *args, **kwargs): - super(ATZipCodeField, self).__init__(r'^[1-9]{1}\d{3}$', - max_length, min_length, *args, **kwargs) - -class ATStateSelect(Select): - """ - A Select widget that uses a list of AT states as its choices. - """ - def __init__(self, attrs=None): - from django.contrib.localflavor.at.at_states import STATE_CHOICES - super(ATStateSelect, self).__init__(attrs, choices=STATE_CHOICES) - -class ATSocialSecurityNumberField(Field): - """ - Austrian Social Security numbers are composed of a 4 digits and 6 digits - field. The latter represents in most cases the person's birthdate while - the first 4 digits represent a 3-digits counter and a one-digit checksum. - - The 6-digits field can also differ from the person's birthdate if the - 3-digits counter suffered an overflow. - - This code is based on information available on - http://de.wikipedia.org/wiki/Sozialversicherungsnummer#.C3.96sterreich - """ - - default_error_messages = { - 'invalid': _('Enter a valid Austrian Social Security Number in XXXX XXXXXX format.'), - } - - def clean(self, value): - value = super(ATSocialSecurityNumberField, self).clean(value) - if value in EMPTY_VALUES: - return "" - if not re_ssn.search(value): - raise ValidationError(self.error_messages['invalid']) - sqnr, date = value.split(" ") - sqnr, check = (sqnr[:3], (sqnr[3])) - if int(sqnr) < 100: - raise ValidationError(self.error_messages['invalid']) - res = int(sqnr[0])*3 + int(sqnr[1])*7 + int(sqnr[2])*9 \ - + int(date[0])*5 + int(date[1])*8 + int(date[2])*4 \ - + int(date[3])*2 + int(date[4])*1 + int(date[5])*6 - res = res % 11 - if res != int(check): - raise ValidationError(self.error_messages['invalid']) - return '%s%s %s'%(sqnr, check, date,) diff --git a/django/contrib/localflavor/au/__init__.py b/django/contrib/localflavor/au/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/au/au_states.py b/django/contrib/localflavor/au/au_states.py deleted file mode 100644 index 578d61bb01..0000000000 --- a/django/contrib/localflavor/au/au_states.py +++ /dev/null @@ -1,17 +0,0 @@ -""" -An alphabetical list of states for use as `choices` in a formfield. - -This exists in this standalone file so that it's only imported into memory -when explicitly needed. -""" - -STATE_CHOICES = ( - ('ACT', 'Australian Capital Territory'), - ('NSW', 'New South Wales'), - ('NT', 'Northern Territory'), - ('QLD', 'Queensland'), - ('SA', 'South Australia'), - ('TAS', 'Tasmania'), - ('VIC', 'Victoria'), - ('WA', 'Western Australia'), -) diff --git a/django/contrib/localflavor/au/forms.py b/django/contrib/localflavor/au/forms.py deleted file mode 100644 index d3a00e200c..0000000000 --- a/django/contrib/localflavor/au/forms.py +++ /dev/null @@ -1,60 +0,0 @@ -""" -Australian-specific Form helpers -""" - -from __future__ import absolute_import, unicode_literals - -import re - -from django.contrib.localflavor.au.au_states import STATE_CHOICES -from django.core.validators import EMPTY_VALUES -from django.forms import ValidationError -from django.forms.fields import Field, RegexField, Select -from django.utils.encoding import smart_text -from django.utils.translation import ugettext_lazy as _ - - -PHONE_DIGITS_RE = re.compile(r'^(\d{10})$') - -class AUPostCodeField(RegexField): - """ Australian post code field. - - Assumed to be 4 digits. - Northern Territory 3-digit postcodes should have leading zero. - """ - default_error_messages = { - 'invalid': _('Enter a 4 digit postcode.'), - } - - def __init__(self, max_length=4, min_length=None, *args, **kwargs): - super(AUPostCodeField, self).__init__(r'^\d{4}$', - max_length, min_length, *args, **kwargs) - - -class AUPhoneNumberField(Field): - """Australian phone number field.""" - default_error_messages = { - 'invalid': 'Phone numbers must contain 10 digits.', - } - - def clean(self, value): - """ - Validate a phone number. Strips parentheses, whitespace and hyphens. - """ - super(AUPhoneNumberField, self).clean(value) - if value in EMPTY_VALUES: - return '' - value = re.sub('(\(|\)|\s+|-)', '', smart_text(value)) - phone_match = PHONE_DIGITS_RE.search(value) - if phone_match: - return '%s' % phone_match.group(1) - raise ValidationError(self.error_messages['invalid']) - - -class AUStateSelect(Select): - """ - A Select widget that uses a list of Australian states/territories as its - choices. - """ - def __init__(self, attrs=None): - super(AUStateSelect, self).__init__(attrs, choices=STATE_CHOICES) diff --git a/django/contrib/localflavor/au/models.py b/django/contrib/localflavor/au/models.py deleted file mode 100644 index ce4f120f77..0000000000 --- a/django/contrib/localflavor/au/models.py +++ /dev/null @@ -1,43 +0,0 @@ -from django.utils.translation import ugettext_lazy as _ -from django.db.models.fields import CharField - -from django.contrib.localflavor.au.au_states import STATE_CHOICES -from django.contrib.localflavor.au import forms - -class AUStateField(CharField): - - description = _("Australian State") - - def __init__(self, *args, **kwargs): - kwargs['choices'] = STATE_CHOICES - kwargs['max_length'] = 3 - super(AUStateField, self).__init__(*args, **kwargs) - - -class AUPostCodeField(CharField): - - description = _("Australian Postcode") - - def __init__(self, *args, **kwargs): - kwargs['max_length'] = 4 - super(AUPostCodeField, self).__init__(*args, **kwargs) - - def formfield(self, **kwargs): - defaults = {'form_class': forms.AUPostCodeField} - defaults.update(kwargs) - return super(AUPostCodeField, self).formfield(**defaults) - - -class AUPhoneNumberField(CharField): - - description = _("Australian Phone number") - - def __init__(self, *args, **kwargs): - kwargs['max_length'] = 20 - super(AUPhoneNumberField, self).__init__(*args, **kwargs) - - def formfield(self, **kwargs): - defaults = {'form_class': forms.AUPhoneNumberField} - defaults.update(kwargs) - return super(AUPhoneNumberField, self).formfield(**defaults) - diff --git a/django/contrib/localflavor/be/__init__.py b/django/contrib/localflavor/be/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/be/be_provinces.py b/django/contrib/localflavor/be/be_provinces.py deleted file mode 100644 index fa537ec22a..0000000000 --- a/django/contrib/localflavor/be/be_provinces.py +++ /dev/null @@ -1,16 +0,0 @@ -from django.utils.translation import ugettext_lazy as _ - -# ISO codes -PROVINCE_CHOICES = ( - ('VAN', _('Antwerp')), - ('BRU', _('Brussels')), - ('VOV', _('East Flanders')), - ('VBR', _('Flemish Brabant')), - ('WHT', _('Hainaut')), - ('WLG', _('Liege')), - ('VLI', _('Limburg')), - ('WLX', _('Luxembourg')), - ('WNA', _('Namur')), - ('WBR', _('Walloon Brabant')), - ('VWV', _('West Flanders')) -) diff --git a/django/contrib/localflavor/be/be_regions.py b/django/contrib/localflavor/be/be_regions.py deleted file mode 100644 index 2c19d4d4d3..0000000000 --- a/django/contrib/localflavor/be/be_regions.py +++ /dev/null @@ -1,8 +0,0 @@ -from django.utils.translation import ugettext_lazy as _ - -# ISO codes -REGION_CHOICES = ( - ('BRU', _('Brussels Capital Region')), - ('VLG', _('Flemish Region')), - ('WAL', _('Wallonia')) -) diff --git a/django/contrib/localflavor/be/forms.py b/django/contrib/localflavor/be/forms.py deleted file mode 100644 index 6166254ba3..0000000000 --- a/django/contrib/localflavor/be/forms.py +++ /dev/null @@ -1,71 +0,0 @@ -""" -Belgium-specific Form helpers -""" - -from __future__ import absolute_import - -from django.contrib.localflavor.be.be_provinces import PROVINCE_CHOICES -from django.contrib.localflavor.be.be_regions import REGION_CHOICES -from django.forms.fields import RegexField, Select -from django.utils.translation import ugettext_lazy as _ - - -class BEPostalCodeField(RegexField): - """ - A form field that validates its input as a belgium postal code. - - Belgium postal code is a 4 digits string. The first digit indicates - the province (except for the 3ddd numbers that are shared by the - eastern part of Flemish Brabant and Limburg and the and 1ddd that - are shared by the Brussels Capital Region, the western part of - Flemish Brabant and Walloon Brabant) - """ - default_error_messages = { - 'invalid': _( - 'Enter a valid postal code in the range and format 1XXX - 9XXX.'), - } - - def __init__(self, max_length=None, min_length=None, *args, **kwargs): - super(BEPostalCodeField, self).__init__(r'^[1-9]\d{3}$', - max_length, min_length, *args, **kwargs) - -class BEPhoneNumberField(RegexField): - """ - A form field that validates its input as a belgium phone number. - - Landlines have a seven-digit subscriber number and a one-digit area code, - while smaller cities have a six-digit subscriber number and a two-digit - area code. Cell phones have a six-digit subscriber number and a two-digit - area code preceeded by the number 4. - 0d ddd dd dd, 0d/ddd.dd.dd, 0d.ddd.dd.dd, - 0dddddddd - dialling a bigger city - 0dd dd dd dd, 0dd/dd.dd.dd, 0dd.dd.dd.dd, - 0dddddddd - dialling a smaller city - 04dd ddd dd dd, 04dd/ddd.dd.dd, - 04dd.ddd.dd.dd, 04ddddddddd - dialling a mobile number - """ - default_error_messages = { - 'invalid': _('Enter a valid phone number in one of the formats ' - '0x xxx xx xx, 0xx xx xx xx, 04xx xx xx xx, ' - '0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, ' - '0x.xxx.xx.xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, ' - '0xxxxxxxx or 04xxxxxxxx.'), - } - - def __init__(self, max_length=None, min_length=None, *args, **kwargs): - super(BEPhoneNumberField, self).__init__(r'^[0]\d{1}[/. ]?\d{3}[. ]\d{2}[. ]?\d{2}$|^[0]\d{2}[/. ]?\d{2}[. ]?\d{2}[. ]?\d{2}$|^[0][4]\d{2}[/. ]?\d{2}[. ]?\d{2}[. ]?\d{2}$', - max_length, min_length, *args, **kwargs) - -class BERegionSelect(Select): - """ - A Select widget that uses a list of belgium regions as its choices. - """ - def __init__(self, attrs=None): - super(BERegionSelect, self).__init__(attrs, choices=REGION_CHOICES) - -class BEProvinceSelect(Select): - """ - A Select widget that uses a list of belgium provinces as its choices. - """ - def __init__(self, attrs=None): - super(BEProvinceSelect, self).__init__(attrs, choices=PROVINCE_CHOICES) diff --git a/django/contrib/localflavor/br/__init__.py b/django/contrib/localflavor/br/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/br/br_states.py b/django/contrib/localflavor/br/br_states.py deleted file mode 100644 index ab37b1d223..0000000000 --- a/django/contrib/localflavor/br/br_states.py +++ /dev/null @@ -1,38 +0,0 @@ -# -*- coding: utf-8 -*- -""" -An alphabetical list of Brazilian states for use as `choices` in a formfield. - -This exists in this standalone file so that it's only imported into memory -when explicitly needed. -""" -from __future__ import unicode_literals - -STATE_CHOICES = ( - ('AC', 'Acre'), - ('AL', 'Alagoas'), - ('AP', 'Amapá'), - ('AM', 'Amazonas'), - ('BA', 'Bahia'), - ('CE', 'Ceará'), - ('DF', 'Distrito Federal'), - ('ES', 'Espírito Santo'), - ('GO', 'Goiás'), - ('MA', 'Maranhão'), - ('MT', 'Mato Grosso'), - ('MS', 'Mato Grosso do Sul'), - ('MG', 'Minas Gerais'), - ('PA', 'Pará'), - ('PB', 'Paraíba'), - ('PR', 'Paraná'), - ('PE', 'Pernambuco'), - ('PI', 'Piauí'), - ('RJ', 'Rio de Janeiro'), - ('RN', 'Rio Grande do Norte'), - ('RS', 'Rio Grande do Sul'), - ('RO', 'Rondônia'), - ('RR', 'Roraima'), - ('SC', 'Santa Catarina'), - ('SP', 'São Paulo'), - ('SE', 'Sergipe'), - ('TO', 'Tocantins'), -) diff --git a/django/contrib/localflavor/br/forms.py b/django/contrib/localflavor/br/forms.py deleted file mode 100644 index 0f957be37f..0000000000 --- a/django/contrib/localflavor/br/forms.py +++ /dev/null @@ -1,166 +0,0 @@ -# -*- coding: utf-8 -*- -""" -BR-specific Form helpers -""" - -from __future__ import absolute_import, unicode_literals - -import re - -from django.contrib.localflavor.br.br_states import STATE_CHOICES -from django.core.validators import EMPTY_VALUES -from django.forms import ValidationError -from django.forms.fields import Field, RegexField, CharField, Select -from django.utils.encoding import smart_text -from django.utils.translation import ugettext_lazy as _ - - -phone_digits_re = re.compile(r'^(\d{2})[-\.]?(\d{4})[-\.]?(\d{4})$') - -class BRZipCodeField(RegexField): - default_error_messages = { - 'invalid': _('Enter a zip code in the format XXXXX-XXX.'), - } - - def __init__(self, max_length=None, min_length=None, *args, **kwargs): - super(BRZipCodeField, self).__init__(r'^\d{5}-\d{3}$', - max_length, min_length, *args, **kwargs) - -class BRPhoneNumberField(Field): - default_error_messages = { - 'invalid': _('Phone numbers must be in XX-XXXX-XXXX format.'), - } - - def clean(self, value): - super(BRPhoneNumberField, self).clean(value) - if value in EMPTY_VALUES: - return '' - value = re.sub('(\(|\)|\s+)', '', smart_text(value)) - m = phone_digits_re.search(value) - if m: - return '%s-%s-%s' % (m.group(1), m.group(2), m.group(3)) - raise ValidationError(self.error_messages['invalid']) - -class BRStateSelect(Select): - """ - A Select widget that uses a list of Brazilian states/territories - as its choices. - """ - def __init__(self, attrs=None): - super(BRStateSelect, self).__init__(attrs, choices=STATE_CHOICES) - -class BRStateChoiceField(Field): - """ - A choice field that uses a list of Brazilian states as its choices. - """ - widget = Select - default_error_messages = { - 'invalid': _('Select a valid brazilian state. That state is not one of the available states.'), - } - - def __init__(self, required=True, widget=None, label=None, - initial=None, help_text=None): - super(BRStateChoiceField, self).__init__(required, widget, label, - initial, help_text) - self.widget.choices = STATE_CHOICES - - def clean(self, value): - value = super(BRStateChoiceField, self).clean(value) - if value in EMPTY_VALUES: - value = '' - value = smart_text(value) - if value == '': - return value - valid_values = set([smart_text(k) for k, v in self.widget.choices]) - if value not in valid_values: - raise ValidationError(self.error_messages['invalid']) - return value - -def DV_maker(v): - if v >= 2: - return 11 - v - return 0 - -class BRCPFField(CharField): - """ - This field validate a CPF number or a CPF string. A CPF number is - compounded by XXX.XXX.XXX-VD. The two last digits are check digits. - - More information: - http://en.wikipedia.org/wiki/Cadastro_de_Pessoas_F%C3%ADsicas - """ - default_error_messages = { - 'invalid': _("Invalid CPF number."), - 'max_digits': _("This field requires at most 11 digits or 14 characters."), - 'digits_only': _("This field requires only numbers."), - } - - def __init__(self, max_length=14, min_length=11, *args, **kwargs): - super(BRCPFField, self).__init__(max_length, min_length, *args, **kwargs) - - def clean(self, value): - """ - Value can be either a string in the format XXX.XXX.XXX-XX or an - 11-digit number. - """ - value = super(BRCPFField, self).clean(value) - if value in EMPTY_VALUES: - return '' - orig_value = value[:] - if not value.isdigit(): - value = re.sub("[-\.]", "", value) - try: - int(value) - except ValueError: - raise ValidationError(self.error_messages['digits_only']) - if len(value) != 11: - raise ValidationError(self.error_messages['max_digits']) - orig_dv = value[-2:] - - new_1dv = sum([i * int(value[idx]) for idx, i in enumerate(range(10, 1, -1))]) - new_1dv = DV_maker(new_1dv % 11) - value = value[:-2] + str(new_1dv) + value[-1] - new_2dv = sum([i * int(value[idx]) for idx, i in enumerate(range(11, 1, -1))]) - new_2dv = DV_maker(new_2dv % 11) - value = value[:-1] + str(new_2dv) - if value[-2:] != orig_dv: - raise ValidationError(self.error_messages['invalid']) - - return orig_value - -class BRCNPJField(Field): - default_error_messages = { - 'invalid': _("Invalid CNPJ number."), - 'digits_only': _("This field requires only numbers."), - 'max_digits': _("This field requires at least 14 digits"), - } - - def clean(self, value): - """ - Value can be either a string in the format XX.XXX.XXX/XXXX-XX or a - group of 14 characters. - """ - value = super(BRCNPJField, self).clean(value) - if value in EMPTY_VALUES: - return '' - orig_value = value[:] - if not value.isdigit(): - value = re.sub("[-/\.]", "", value) - try: - int(value) - except ValueError: - raise ValidationError(self.error_messages['digits_only']) - if len(value) != 14: - raise ValidationError(self.error_messages['max_digits']) - orig_dv = value[-2:] - - new_1dv = sum([i * int(value[idx]) for idx, i in enumerate(list(range(5, 1, -1)) + list(range(9, 1, -1)))]) - new_1dv = DV_maker(new_1dv % 11) - value = value[:-2] + str(new_1dv) + value[-1] - new_2dv = sum([i * int(value[idx]) for idx, i in enumerate(list(range(6, 1, -1)) + list(range(9, 1, -1)))]) - new_2dv = DV_maker(new_2dv % 11) - value = value[:-1] + str(new_2dv) - if value[-2:] != orig_dv: - raise ValidationError(self.error_messages['invalid']) - - return orig_value diff --git a/django/contrib/localflavor/ca/__init__.py b/django/contrib/localflavor/ca/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/ca/ca_provinces.py b/django/contrib/localflavor/ca/ca_provinces.py deleted file mode 100644 index 884668a9fd..0000000000 --- a/django/contrib/localflavor/ca/ca_provinces.py +++ /dev/null @@ -1,63 +0,0 @@ -""" -An alphabetical list of provinces and territories for use as `choices` -in a formfield., and a mapping of province misspellings/abbreviations to -normalized abbreviations - -Source: http://www.canada.gc.ca/othergov/prov_e.html - -This exists in this standalone file so that it's only imported into memory -when explicitly needed. -""" - -PROVINCE_CHOICES = ( - ('AB', 'Alberta'), - ('BC', 'British Columbia'), - ('MB', 'Manitoba'), - ('NB', 'New Brunswick'), - ('NL', 'Newfoundland and Labrador'), - ('NT', 'Northwest Territories'), - ('NS', 'Nova Scotia'), - ('NU', 'Nunavut'), - ('ON', 'Ontario'), - ('PE', 'Prince Edward Island'), - ('QC', 'Quebec'), - ('SK', 'Saskatchewan'), - ('YT', 'Yukon') -) - -PROVINCES_NORMALIZED = { - 'ab': 'AB', - 'alberta': 'AB', - 'bc': 'BC', - 'b.c.': 'BC', - 'british columbia': 'BC', - 'mb': 'MB', - 'manitoba': 'MB', - 'nb': 'NB', - 'new brunswick': 'NB', - 'nf': 'NL', - 'nl': 'NL', - 'newfoundland': 'NL', - 'newfoundland and labrador': 'NL', - 'nt': 'NT', - 'northwest territories': 'NT', - 'ns': 'NS', - 'nova scotia': 'NS', - 'nu': 'NU', - 'nunavut': 'NU', - 'on': 'ON', - 'ontario': 'ON', - 'pe': 'PE', - 'pei': 'PE', - 'p.e.i.': 'PE', - 'prince edward island': 'PE', - 'pq' : 'QC', - 'qc': 'QC', - 'quebec': 'QC', - 'sk': 'SK', - 'saskatchewan': 'SK', - 'yk': 'YT', - 'yt': 'YT', - 'yukon': 'YT', - 'yukon territory': 'YT', -} \ No newline at end of file diff --git a/django/contrib/localflavor/ca/forms.py b/django/contrib/localflavor/ca/forms.py deleted file mode 100644 index 4ebfb06c2b..0000000000 --- a/django/contrib/localflavor/ca/forms.py +++ /dev/null @@ -1,148 +0,0 @@ -""" -Canada-specific Form helpers -""" - -from __future__ import absolute_import, unicode_literals - -import re - -from django.core.validators import EMPTY_VALUES -from django.forms import ValidationError -from django.forms.fields import Field, CharField, Select -from django.utils.encoding import smart_text -from django.utils.translation import ugettext_lazy as _ - - -phone_digits_re = re.compile(r'^(?:1-?)?(\d{3})[-\.]?(\d{3})[-\.]?(\d{4})$') -sin_re = re.compile(r"^(\d{3})-(\d{3})-(\d{3})$") - -class CAPostalCodeField(CharField): - """ - Canadian postal code field. - - Validates against known invalid characters: D, F, I, O, Q, U - Additionally the first character cannot be Z or W. - For more info see: - http://www.canadapost.ca/tools/pg/manual/PGaddress-e.asp#1402170 - """ - default_error_messages = { - 'invalid': _('Enter a postal code in the format XXX XXX.'), - } - - postcode_regex = re.compile(r'^([ABCEGHJKLMNPRSTVXY]\d[ABCEGHJKLMNPRSTVWXYZ]) *(\d[ABCEGHJKLMNPRSTVWXYZ]\d)$') - - def clean(self, value): - value = super(CAPostalCodeField, self).clean(value) - if value in EMPTY_VALUES: - return '' - postcode = value.upper().strip() - m = self.postcode_regex.match(postcode) - if not m: - raise ValidationError(self.default_error_messages['invalid']) - return "%s %s" % (m.group(1), m.group(2)) - -class CAPhoneNumberField(Field): - """Canadian phone number field.""" - default_error_messages = { - 'invalid': _('Phone numbers must be in XXX-XXX-XXXX format.'), - } - - def clean(self, value): - """Validate a phone number. - """ - super(CAPhoneNumberField, self).clean(value) - if value in EMPTY_VALUES: - return '' - value = re.sub('(\(|\)|\s+)', '', smart_text(value)) - m = phone_digits_re.search(value) - if m: - return '%s-%s-%s' % (m.group(1), m.group(2), m.group(3)) - raise ValidationError(self.error_messages['invalid']) - -class CAProvinceField(Field): - """ - A form field that validates its input is a Canadian province name or abbreviation. - It normalizes the input to the standard two-leter postal service - abbreviation for the given province. - """ - default_error_messages = { - 'invalid': _('Enter a Canadian province or territory.'), - } - - def clean(self, value): - super(CAProvinceField, self).clean(value) - if value in EMPTY_VALUES: - return '' - try: - value = value.strip().lower() - except AttributeError: - pass - else: - # Load data in memory only when it is required, see also #17275 - from .ca_provinces import PROVINCES_NORMALIZED - try: - return PROVINCES_NORMALIZED[value.strip().lower()] - except KeyError: - pass - raise ValidationError(self.error_messages['invalid']) - -class CAProvinceSelect(Select): - """ - A Select widget that uses a list of Canadian provinces and - territories as its choices. - """ - def __init__(self, attrs=None): - # Load data in memory only when it is required, see also #17275 - from .ca_provinces import PROVINCE_CHOICES - super(CAProvinceSelect, self).__init__(attrs, choices=PROVINCE_CHOICES) - -class CASocialInsuranceNumberField(Field): - """ - A Canadian Social Insurance Number (SIN). - - Checks the following rules to determine whether the number is valid: - - * Conforms to the XXX-XXX-XXX format. - * Passes the check digit process "Luhn Algorithm" - See: http://en.wikipedia.org/wiki/Social_Insurance_Number - """ - default_error_messages = { - 'invalid': _('Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format.'), - } - - def clean(self, value): - super(CASocialInsuranceNumberField, self).clean(value) - if value in EMPTY_VALUES: - return '' - - match = re.match(sin_re, value) - if not match: - raise ValidationError(self.error_messages['invalid']) - - number = '%s-%s-%s' % (match.group(1), match.group(2), match.group(3)) - check_number = '%s%s%s' % (match.group(1), match.group(2), match.group(3)) - if not self.luhn_checksum_is_valid(check_number): - raise ValidationError(self.error_messages['invalid']) - return number - - def luhn_checksum_is_valid(self, number): - """ - Checks to make sure that the SIN passes a luhn mod-10 checksum - See: http://en.wikipedia.org/wiki/Luhn_algorithm - """ - - sum = 0 - num_digits = len(number) - oddeven = num_digits & 1 - - for count in range(0, num_digits): - digit = int(number[count]) - - if not (( count & 1 ) ^ oddeven ): - digit = digit * 2 - if digit > 9: - digit = digit - 9 - - sum = sum + digit - - return ( (sum % 10) == 0 ) diff --git a/django/contrib/localflavor/ch/__init__.py b/django/contrib/localflavor/ch/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/ch/ch_states.py b/django/contrib/localflavor/ch/ch_states.py deleted file mode 100644 index ba5934a4d4..0000000000 --- a/django/contrib/localflavor/ch/ch_states.py +++ /dev/null @@ -1,31 +0,0 @@ -# -*- coding: utf-8 -* -from django.utils.translation import ugettext_lazy as _ - -STATE_CHOICES = ( - ('AG', _('Aargau')), - ('AI', _('Appenzell Innerrhoden')), - ('AR', _('Appenzell Ausserrhoden')), - ('BS', _('Basel-Stadt')), - ('BL', _('Basel-Land')), - ('BE', _('Berne')), - ('FR', _('Fribourg')), - ('GE', _('Geneva')), - ('GL', _('Glarus')), - ('GR', _('Graubuenden')), - ('JU', _('Jura')), - ('LU', _('Lucerne')), - ('NE', _('Neuchatel')), - ('NW', _('Nidwalden')), - ('OW', _('Obwalden')), - ('SH', _('Schaffhausen')), - ('SZ', _('Schwyz')), - ('SO', _('Solothurn')), - ('SG', _('St. Gallen')), - ('TG', _('Thurgau')), - ('TI', _('Ticino')), - ('UR', _('Uri')), - ('VS', _('Valais')), - ('VD', _('Vaud')), - ('ZG', _('Zug')), - ('ZH', _('Zurich')) -) diff --git a/django/contrib/localflavor/ch/forms.py b/django/contrib/localflavor/ch/forms.py deleted file mode 100644 index bf71eeea32..0000000000 --- a/django/contrib/localflavor/ch/forms.py +++ /dev/null @@ -1,122 +0,0 @@ -""" -Swiss-specific Form helpers -""" - -from __future__ import absolute_import, unicode_literals - -import re - -from django.contrib.localflavor.ch.ch_states import STATE_CHOICES -from django.core.validators import EMPTY_VALUES -from django.forms import ValidationError -from django.forms.fields import Field, RegexField, Select -from django.utils.encoding import smart_text -from django.utils.translation import ugettext_lazy as _ - - -id_re = re.compile(r"^(?P\w{8})(?P(\d{1}|<))(?P\d{1})$") -phone_digits_re = re.compile(r'^0([1-9]{1})\d{8}$') - -class CHZipCodeField(RegexField): - default_error_messages = { - 'invalid': _('Enter a zip code in the format XXXX.'), - } - - def __init__(self, max_length=None, min_length=None, *args, **kwargs): - super(CHZipCodeField, self).__init__(r'^\d{4}$', - max_length, min_length, *args, **kwargs) - -class CHPhoneNumberField(Field): - """ - Validate local Swiss phone number (not international ones) - The correct format is '0XX XXX XX XX'. - '0XX.XXX.XX.XX' and '0XXXXXXXXX' validate but are corrected to - '0XX XXX XX XX'. - """ - default_error_messages = { - 'invalid': _('Phone numbers must be in 0XX XXX XX XX format.'), - } - - def clean(self, value): - super(CHPhoneNumberField, self).clean(value) - if value in EMPTY_VALUES: - return '' - value = re.sub('(\.|\s|/|-)', '', smart_text(value)) - m = phone_digits_re.search(value) - if m: - return '%s %s %s %s' % (value[0:3], value[3:6], value[6:8], value[8:10]) - raise ValidationError(self.error_messages['invalid']) - -class CHStateSelect(Select): - """ - A Select widget that uses a list of CH states as its choices. - """ - def __init__(self, attrs=None): - super(CHStateSelect, self).__init__(attrs, choices=STATE_CHOICES) - -class CHIdentityCardNumberField(Field): - """ - A Swiss identity card number. - - Checks the following rules to determine whether the number is valid: - - * Conforms to the X1234567<0 or 1234567890 format. - * Included checksums match calculated checksums - - """ - default_error_messages = { - 'invalid': _('Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format.'), - } - - def has_valid_checksum(self, number): - given_number, given_checksum = number[:-1], number[-1] - new_number = given_number - calculated_checksum = 0 - fragment = "" - parameter = 7 - - first = str(number[:1]) - if first.isalpha(): - num = ord(first.upper()) - 65 - if num < 0 or num > 8: - return False - new_number = str(num) + new_number[1:] - new_number = new_number[:8] + '0' - - if not new_number.isdigit(): - return False - - for i in range(len(new_number)): - fragment = int(new_number[i])*parameter - calculated_checksum += fragment - - if parameter == 1: - parameter = 7 - elif parameter == 3: - parameter = 1 - elif parameter ==7: - parameter = 3 - - return str(calculated_checksum)[-1] == given_checksum - - def clean(self, value): - super(CHIdentityCardNumberField, self).clean(value) - if value in EMPTY_VALUES: - return '' - - match = re.match(id_re, value) - if not match: - raise ValidationError(self.error_messages['invalid']) - - idnumber, pos9, checksum = match.groupdict()['idnumber'], match.groupdict()['pos9'], match.groupdict()['checksum'] - - if idnumber == '00000000' or \ - idnumber == 'A0000000': - raise ValidationError(self.error_messages['invalid']) - - all_digits = "%s%s%s" % (idnumber, pos9, checksum) - if not self.has_valid_checksum(all_digits): - raise ValidationError(self.error_messages['invalid']) - - return '%s%s%s' % (idnumber, pos9, checksum) - diff --git a/django/contrib/localflavor/cl/__init__.py b/django/contrib/localflavor/cl/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/cl/cl_regions.py b/django/contrib/localflavor/cl/cl_regions.py deleted file mode 100644 index d76f6ad834..0000000000 --- a/django/contrib/localflavor/cl/cl_regions.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- -""" -A list of Chilean regions as `choices` in a formfield. - -This exists in this standalone file so that it's only imported into memory -when explicitly needed. -""" -from __future__ import unicode_literals - -REGION_CHOICES = ( - ('RM', 'Región Metropolitana de Santiago'), - ('I', 'Región de Tarapacá'), - ('II', 'Región de Antofagasta'), - ('III', 'Región de Atacama'), - ('IV', 'Región de Coquimbo'), - ('V', 'Región de Valparaíso'), - ('VI', 'Región del Libertador Bernardo O\'Higgins'), - ('VII', 'Región del Maule'), - ('VIII','Región del Bío Bío'), - ('IX', 'Región de la Araucanía'), - ('X', 'Región de los Lagos'), - ('XI', 'Región de Aysén del General Carlos Ibáñez del Campo'), - ('XII', 'Región de Magallanes y la Antártica Chilena'), - ('XIV', 'Región de Los Ríos'), - ('XV', 'Región de Arica-Parinacota'), -) diff --git a/django/contrib/localflavor/cl/forms.py b/django/contrib/localflavor/cl/forms.py deleted file mode 100644 index a5340141ce..0000000000 --- a/django/contrib/localflavor/cl/forms.py +++ /dev/null @@ -1,97 +0,0 @@ -""" -Chile specific form helpers. -""" - -from __future__ import absolute_import, unicode_literals - -from django.core.validators import EMPTY_VALUES -from django.forms import ValidationError -from django.forms.fields import RegexField, Select -from django.utils.translation import ugettext_lazy as _ -from django.utils.encoding import smart_text - -from .cl_regions import REGION_CHOICES - -class CLRegionSelect(Select): - """ - A Select widget that uses a list of Chilean Regions (Regiones) - as its choices. - """ - def __init__(self, attrs=None): - super(CLRegionSelect, self).__init__(attrs, choices=REGION_CHOICES) - -class CLRutField(RegexField): - """ - Chilean "Rol Unico Tributario" (RUT) field. This is the Chilean national - identification number. - - Samples for testing are available from - https://palena.sii.cl/cvc/dte/ee_empresas_emisoras.html - """ - default_error_messages = { - 'invalid': _('Enter a valid Chilean RUT.'), - 'strict': _('Enter a valid Chilean RUT. The format is XX.XXX.XXX-X.'), - 'checksum': _('The Chilean RUT is not valid.'), - } - - def __init__(self, *args, **kwargs): - if 'strict' in kwargs: - del kwargs['strict'] - super(CLRutField, self).__init__(r'^(\d{1,2}\.)?\d{3}\.\d{3}-[\dkK]$', - error_message=self.default_error_messages['strict'], *args, **kwargs) - else: - # In non-strict mode, accept RUTs that validate but do not exist in - # the real world. - super(CLRutField, self).__init__(r'^[\d\.]{1,11}-?[\dkK]$', *args, **kwargs) - - def clean(self, value): - """ - Check and clean the Chilean RUT. - """ - super(CLRutField, self).clean(value) - if value in EMPTY_VALUES: - return '' - rut, verificador = self._canonify(value) - if self._algorithm(rut) == verificador: - return self._format(rut, verificador) - else: - raise ValidationError(self.error_messages['checksum']) - - def _algorithm(self, rut): - """ - Takes RUT in pure canonical form, calculates the verifier digit. - """ - suma = 0 - multi = 2 - for r in rut[::-1]: - suma += int(r) * multi - multi += 1 - if multi == 8: - multi = 2 - return '0123456789K0'[11 - suma % 11] - - def _canonify(self, rut): - """ - Turns the RUT into one normalized format. Returns a (rut, verifier) - tuple. - """ - rut = smart_text(rut).replace(' ', '').replace('.', '').replace('-', '') - return rut[:-1], rut[-1].upper() - - def _format(self, code, verifier=None): - """ - Formats the RUT from canonical form to the common string representation. - If verifier=None, then the last digit in 'code' is the verifier. - """ - if verifier is None: - verifier = code[-1] - code = code[:-1] - while len(code) > 3 and '.' not in code[:3]: - pos = code.find('.') - if pos == -1: - new_dot = -3 - else: - new_dot = pos - 3 - code = code[:new_dot] + '.' + code[new_dot:] - return '%s-%s' % (code, verifier) - diff --git a/django/contrib/localflavor/cn/__init__.py b/django/contrib/localflavor/cn/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/cn/cn_provinces.py b/django/contrib/localflavor/cn/cn_provinces.py deleted file mode 100644 index c27cba6423..0000000000 --- a/django/contrib/localflavor/cn/cn_provinces.py +++ /dev/null @@ -1,49 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -An alphabetical list of provinces for use as `choices` in a formfield. - -Reference: -http://en.wikipedia.org/wiki/ISO_3166-2:CN -http://en.wikipedia.org/wiki/Province_%28China%29 -http://en.wikipedia.org/wiki/Direct-controlled_municipality -http://en.wikipedia.org/wiki/Autonomous_regions_of_China -""" -from __future__ import unicode_literals - -CN_PROVINCE_CHOICES = ( - ("anhui", "安徽"), - ("beijing", "北京"), - ("chongqing", "重庆"), - ("fujian", "福建"), - ("gansu", "甘肃"), - ("guangdong", "广东"), - ("guangxi", "广西壮族自治区"), - ("guizhou", "贵州"), - ("hainan", "海南"), - ("hebei", "河北"), - ("heilongjiang", "黑龙江"), - ("henan", "河南"), - ("hongkong", "香港"), - ("hubei", "湖北"), - ("hunan", "湖南"), - ("jiangsu", "江苏"), - ("jiangxi", "江西"), - ("jilin", "吉林"), - ("liaoning", "辽宁"), - ("macao", "澳门"), - ("neimongol", "内蒙古自治区"), - ("ningxia", "宁夏回族自治区"), - ("qinghai", "青海"), - ("shaanxi", "陕西"), - ("shandong", "山东"), - ("shanghai", "上海"), - ("shanxi", "山西"), - ("sichuan", "四川"), - ("taiwan", "台湾"), - ("tianjin", "天津"), - ("xinjiang", "新疆维吾尔自治区"), - ("xizang", "西藏自治区"), - ("yunnan", "云南"), - ("zhejiang", "浙江"), -) diff --git a/django/contrib/localflavor/cn/forms.py b/django/contrib/localflavor/cn/forms.py deleted file mode 100644 index 43adcf3f01..0000000000 --- a/django/contrib/localflavor/cn/forms.py +++ /dev/null @@ -1,214 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -Chinese-specific form helpers -""" -from __future__ import absolute_import, unicode_literals - -import re - -from django.contrib.localflavor.cn.cn_provinces import CN_PROVINCE_CHOICES -from django.forms import ValidationError -from django.forms.fields import CharField, RegexField, Select -from django.utils.translation import ugettext_lazy as _ - - -__all__ = ( - 'CNProvinceSelect', - 'CNPostCodeField', - 'CNIDCardField', - 'CNPhoneNumberField', - 'CNCellNumberField', -) - - -ID_CARD_RE = r'^\d{15}(\d{2}[0-9xX])?$' -POST_CODE_RE = r'^\d{6}$' -PHONE_RE = r'^\d{3,4}-\d{7,8}(-\d+)?$' -CELL_RE = r'^1[358]\d{9}$' - -# Valid location code used in id card checking algorithm -CN_LOCATION_CODES = ( - 11, # Beijing - 12, # Tianjin - 13, # Hebei - 14, # Shanxi - 15, # Nei Mongol - 21, # Liaoning - 22, # Jilin - 23, # Heilongjiang - 31, # Shanghai - 32, # Jiangsu - 33, # Zhejiang - 34, # Anhui - 35, # Fujian - 36, # Jiangxi - 37, # Shandong - 41, # Henan - 42, # Hubei - 43, # Hunan - 44, # Guangdong - 45, # Guangxi - 46, # Hainan - 50, # Chongqing - 51, # Sichuan - 52, # Guizhou - 53, # Yunnan - 54, # Xizang - 61, # Shaanxi - 62, # Gansu - 63, # Qinghai - 64, # Ningxia - 65, # Xinjiang - 71, # Taiwan - 81, # Hong Kong - 91, # Macao -) - -class CNProvinceSelect(Select): - """ - A select widget with list of Chinese provinces as choices. - """ - def __init__(self, attrs=None): - super(CNProvinceSelect, self).__init__( - attrs, choices=CN_PROVINCE_CHOICES, - ) - - -class CNPostCodeField(RegexField): - """ - A form field that validates as Chinese post code. - Valid code is XXXXXX where X is digit. - """ - default_error_messages = { - 'invalid': _('Enter a post code in the format XXXXXX.'), - } - - def __init__(self, *args, **kwargs): - super(CNPostCodeField, self).__init__(POST_CODE_RE, *args, **kwargs) - - -class CNIDCardField(CharField): - """ - A form field that validates as Chinese Identification Card Number. - - This field would check the following restrictions: - * the length could only be 15 or 18. - * if the length is 18, the last digit could be x or X. - * has a valid checksum.(length 18 only) - * has a valid birthdate. - * has a valid location. - - The checksum algorithm is described in GB11643-1999. - """ - default_error_messages = { - 'invalid': _('ID Card Number consists of 15 or 18 digits.'), - 'checksum': _('Invalid ID Card Number: Wrong checksum'), - 'birthday': _('Invalid ID Card Number: Wrong birthdate'), - 'location': _('Invalid ID Card Number: Wrong location code'), - } - - def __init__(self, max_length=18, min_length=15, *args, **kwargs): - super(CNIDCardField, self).__init__(max_length, min_length, *args, - **kwargs) - - def clean(self, value): - """ - Check whether the input is a valid ID Card Number. - """ - # Check the length of the ID card number. - super(CNIDCardField, self).clean(value) - if not value: - return "" - # Check whether this ID card number has valid format - if not re.match(ID_CARD_RE, value): - raise ValidationError(self.error_messages['invalid']) - # Check the birthday of the ID card number. - if not self.has_valid_birthday(value): - raise ValidationError(self.error_messages['birthday']) - # Check the location of the ID card number. - if not self.has_valid_location(value): - raise ValidationError(self.error_messages['location']) - # Check the checksum of the ID card number. - value = value.upper() - if not self.has_valid_checksum(value): - raise ValidationError(self.error_messages['checksum']) - return '%s' % value - - def has_valid_birthday(self, value): - """ - This function would grab the birthdate from the ID card number and test - whether it is a valid date. - """ - from datetime import datetime - if len(value) == 15: - # 1st generation ID card - time_string = value[6:12] - format_string = "%y%m%d" - else: - # 2nd generation ID card - time_string = value[6:14] - format_string = "%Y%m%d" - try: - datetime.strptime(time_string, format_string) - return True - except ValueError: - # invalid date - return False - - def has_valid_location(self, value): - """ - This method checks if the first two digits in the ID Card are valid. - """ - return int(value[:2]) in CN_LOCATION_CODES - - def has_valid_checksum(self, value): - """ - This method checks if the last letter/digit in value is valid - according to the algorithm the ID Card follows. - """ - # If the length of the number is not 18, then the number is a 1st - # generation ID card number, and there is no checksum to be checked. - if len(value) != 18: - return True - checksum_index = sum( - map( - lambda a,b:a*(ord(b)-ord('0')), - (7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2), - value[:17], - ), - ) % 11 - return '10X98765432'[checksum_index] == value[-1] - - -class CNPhoneNumberField(RegexField): - """ - A form field that validates as Chinese phone number - A valid phone number could be like: - 010-55555555 - Considering there might be extension phone numbers, so this could also be: - 010-55555555-35 - """ - default_error_messages = { - 'invalid': _('Enter a valid phone number.'), - } - - def __init__(self, *args, **kwargs): - super(CNPhoneNumberField, self).__init__(PHONE_RE, *args, **kwargs) - - -class CNCellNumberField(RegexField): - """ - A form field that validates as Chinese cell number - A valid cell number could be like: - 13012345678 - We used a rough rule here, the first digit should be 1, the second could be - 3, 5 and 8, the rest could be what so ever. - The length of the cell number should be 11. - """ - default_error_messages = { - 'invalid': _('Enter a valid cell number.'), - } - - def __init__(self, *args, **kwargs): - super(CNCellNumberField, self).__init__(CELL_RE, *args, **kwargs) diff --git a/django/contrib/localflavor/co/__init__.py b/django/contrib/localflavor/co/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/co/co_departments.py b/django/contrib/localflavor/co/co_departments.py deleted file mode 100644 index 7168f54cc2..0000000000 --- a/django/contrib/localflavor/co/co_departments.py +++ /dev/null @@ -1,45 +0,0 @@ -# -*- coding: utf-8 -*- -""" -A list of Colombian departaments as `choices` in a -formfield. - -This exists in this standalone file so that it's only -imported into memory when explicitly needed. -""" -from __future__ import unicode_literals - -DEPARTMENT_CHOICES = ( - ('AMA', 'Amazonas'), - ('ANT', 'Antioquia'), - ('ARA', 'Arauca'), - ('ATL', 'Atlántico'), - ('DC', 'Bogotá'), - ('BOL', 'Bolívar'), - ('BOY', 'Boyacá'), - ('CAL', 'Caldas'), - ('CAQ', 'Caquetá'), - ('CAS', 'Casanare'), - ('CAU', 'Cauca'), - ('CES', 'Cesar'), - ('CHO', 'Chocó'), - ('COR', 'Córdoba'), - ('CUN', 'Cundinamarca'), - ('GUA', 'Guainía'), - ('GUV', 'Guaviare'), - ('HUI', 'Huila'), - ('LAG', 'La Guajira'), - ('MAG', 'Magdalena'), - ('MET', 'Meta'), - ('NAR', 'Nariño'), - ('NSA', 'Norte de Santander'), - ('PUT', 'Putumayo'), - ('QUI', 'Quindío'), - ('RIS', 'Risaralda'), - ('SAP', 'San Andrés and Providencia'), - ('SAN', 'Santander'), - ('SUC', 'Sucre'), - ('TOL', 'Tolima'), - ('VAC', 'Valle del Cauca'), - ('VAU', 'Vaupés'), - ('VID', 'Vichada'), -) diff --git a/django/contrib/localflavor/co/forms.py b/django/contrib/localflavor/co/forms.py deleted file mode 100644 index cdd151e0df..0000000000 --- a/django/contrib/localflavor/co/forms.py +++ /dev/null @@ -1,16 +0,0 @@ -""" -Colombian-specific form helpers. -""" - -from __future__ import absolute_import - -from django.contrib.localflavor.co.co_departments import DEPARTMENT_CHOICES -from django.forms.fields import Select - - -class CODepartmentSelect(Select): - """ - A Select widget that uses a list of Colombian states as its choices. - """ - def __init__(self, attrs=None): - super(CODepartmentSelect, self).__init__(attrs, choices=DEPARTMENT_CHOICES) diff --git a/django/contrib/localflavor/cz/__init__.py b/django/contrib/localflavor/cz/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/cz/cz_regions.py b/django/contrib/localflavor/cz/cz_regions.py deleted file mode 100644 index 51827e3bf7..0000000000 --- a/django/contrib/localflavor/cz/cz_regions.py +++ /dev/null @@ -1,22 +0,0 @@ -""" -Czech regions, translations get from http://www.crwflags.com/fotw/Flags/cz-re.html -""" - -from django.utils.translation import ugettext_lazy as _ - -REGION_CHOICES = ( - ('PR', _('Prague')), - ('CE', _('Central Bohemian Region')), - ('SO', _('South Bohemian Region')), - ('PI', _('Pilsen Region')), - ('CA', _('Carlsbad Region')), - ('US', _('Usti Region')), - ('LB', _('Liberec Region')), - ('HK', _('Hradec Region')), - ('PA', _('Pardubice Region')), - ('VY', _('Vysocina Region')), - ('SM', _('South Moravian Region')), - ('OL', _('Olomouc Region')), - ('ZL', _('Zlin Region')), - ('MS', _('Moravian-Silesian Region')), -) diff --git a/django/contrib/localflavor/cz/forms.py b/django/contrib/localflavor/cz/forms.py deleted file mode 100644 index c7e81e4037..0000000000 --- a/django/contrib/localflavor/cz/forms.py +++ /dev/null @@ -1,136 +0,0 @@ -""" -Czech-specific form helpers -""" - -from __future__ import absolute_import, unicode_literals - -import re - -from django.contrib.localflavor.cz.cz_regions import REGION_CHOICES -from django.core.validators import EMPTY_VALUES -from django.forms import ValidationError -from django.forms.fields import Select, RegexField, Field -from django.utils.translation import ugettext_lazy as _ - - -birth_number = re.compile(r'^(?P\d{6})/?(?P\d{3,4})$') -ic_number = re.compile(r'^(?P\d{7})(?P\d)$') - -class CZRegionSelect(Select): - """ - A select widget widget with list of Czech regions as choices. - """ - def __init__(self, attrs=None): - super(CZRegionSelect, self).__init__(attrs, choices=REGION_CHOICES) - -class CZPostalCodeField(RegexField): - """ - A form field that validates its input as Czech postal code. - Valid form is XXXXX or XXX XX, where X represents integer. - """ - default_error_messages = { - 'invalid': _('Enter a postal code in the format XXXXX or XXX XX.'), - } - - def __init__(self, max_length=None, min_length=None, *args, **kwargs): - super(CZPostalCodeField, self).__init__(r'^\d{5}$|^\d{3} \d{2}$', - max_length, min_length, *args, **kwargs) - - def clean(self, value): - """ - Validates the input and returns a string that contains only numbers. - Returns an empty string for empty values. - """ - v = super(CZPostalCodeField, self).clean(value) - return v.replace(' ', '') - -class CZBirthNumberField(Field): - """ - Czech birth number field. - """ - default_error_messages = { - 'invalid_format': _('Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX.'), - 'invalid': _('Enter a valid birth number.'), - } - - def clean(self, value, gender=None): - super(CZBirthNumberField, self).clean(value) - - if value in EMPTY_VALUES: - return '' - - match = re.match(birth_number, value) - if not match: - raise ValidationError(self.error_messages['invalid_format']) - - birth, id = match.groupdict()['birth'], match.groupdict()['id'] - - # Three digits for verification number were used until 1. january 1954 - if len(id) == 3: - return '%s' % value - - # Birth number is in format YYMMDD. Females have month value raised by 50. - # In case that all possible number are already used (for given date), - # the month field is raised by 20. - month = int(birth[2:4]) - if (not 1 <= month <= 12) and (not 21 <= month <= 32) and \ - (not 51 <= month <= 62) and (not 71 <= month <= 82): - raise ValidationError(self.error_messages['invalid']) - - day = int(birth[4:6]) - if not (1 <= day <= 31): - raise ValidationError(self.error_messages['invalid']) - - # Fourth digit has been added since 1. January 1954. - # It is modulo of dividing birth number and verification number by 11. - # If the modulo were 10, the last number was 0 (and therefore, the whole - # birth number wasn't divisable by 11. These number are no longer used (since 1985) - # and the condition 'modulo == 10' can be removed in 2085. - - modulo = int(birth + id[:3]) % 11 - - if (modulo == int(id[-1])) or (modulo == 10 and id[-1] == '0'): - return '%s' % value - else: - raise ValidationError(self.error_messages['invalid']) - -class CZICNumberField(Field): - """ - Czech IC number field. - """ - default_error_messages = { - 'invalid': _('Enter a valid IC number.'), - } - - def clean(self, value): - super(CZICNumberField, self).clean(value) - - if value in EMPTY_VALUES: - return '' - - match = re.match(ic_number, value) - if not match: - raise ValidationError(self.error_messages['invalid']) - - number, check = match.groupdict()['number'], int(match.groupdict()['check']) - - sum = 0 - weight = 8 - for digit in number: - sum += int(digit)*weight - weight -= 1 - - remainder = sum % 11 - - # remainder is equal: - # 0 or 10: last digit is 1 - # 1: last digit is 0 - # in other case, last digit is 11 - remainder - - if (not remainder % 10 and check == 1) or \ - (remainder == 1 and check == 0) or \ - (check == (11 - remainder)): - return '%s' % value - - raise ValidationError(self.error_messages['invalid']) - diff --git a/django/contrib/localflavor/de/__init__.py b/django/contrib/localflavor/de/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/de/de_states.py b/django/contrib/localflavor/de/de_states.py deleted file mode 100644 index 2872a7871a..0000000000 --- a/django/contrib/localflavor/de/de_states.py +++ /dev/null @@ -1,21 +0,0 @@ -# -*- coding: utf-8 -* -from django.utils.translation import ugettext_lazy as _ - -STATE_CHOICES = ( - ('BW', _('Baden-Wuerttemberg')), - ('BY', _('Bavaria')), - ('BE', _('Berlin')), - ('BB', _('Brandenburg')), - ('HB', _('Bremen')), - ('HH', _('Hamburg')), - ('HE', _('Hessen')), - ('MV', _('Mecklenburg-Western Pomerania')), - ('NI', _('Lower Saxony')), - ('NW', _('North Rhine-Westphalia')), - ('RP', _('Rhineland-Palatinate')), - ('SL', _('Saarland')), - ('SN', _('Saxony')), - ('ST', _('Saxony-Anhalt')), - ('SH', _('Schleswig-Holstein')), - ('TH', _('Thuringia')), -) diff --git a/django/contrib/localflavor/de/forms.py b/django/contrib/localflavor/de/forms.py deleted file mode 100644 index a7891d117f..0000000000 --- a/django/contrib/localflavor/de/forms.py +++ /dev/null @@ -1,88 +0,0 @@ -""" -DE-specific Form helpers -""" - -from __future__ import absolute_import, unicode_literals - -import re - -from django.contrib.localflavor.de.de_states import STATE_CHOICES -from django.core.validators import EMPTY_VALUES -from django.forms import ValidationError -from django.forms.fields import Field, RegexField, Select -from django.utils.translation import ugettext_lazy as _ - - -id_re = re.compile(r"^(?P\d{10})(?P\w{1,3})[-\ ]?(?P\d{7})[-\ ]?(?P\d{7})[-\ ]?(?P\d{1})$") - -class DEZipCodeField(RegexField): - default_error_messages = { - 'invalid': _('Enter a zip code in the format XXXXX.'), - } - def __init__(self, max_length=None, min_length=None, *args, **kwargs): - super(DEZipCodeField, self).__init__(r'^\d{5}$', - max_length, min_length, *args, **kwargs) - -class DEStateSelect(Select): - """ - A Select widget that uses a list of DE states as its choices. - """ - def __init__(self, attrs=None): - super(DEStateSelect, self).__init__(attrs, choices=STATE_CHOICES) - -class DEIdentityCardNumberField(Field): - """ - A German identity card number. - - Checks the following rules to determine whether the number is valid: - - * Conforms to the XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format. - * No group consists entirely of zeroes. - * Included checksums match calculated checksums - - Algorithm is documented at http://de.wikipedia.org/wiki/Personalausweis - """ - default_error_messages = { - 'invalid': _('Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format.'), - } - - def has_valid_checksum(self, number): - given_number, given_checksum = number[:-1], number[-1] - calculated_checksum = 0 - fragment = "" - parameter = 7 - - for i in range(len(given_number)): - fragment = str(int(given_number[i]) * parameter) - if fragment.isalnum(): - calculated_checksum += int(fragment[-1]) - if parameter == 1: - parameter = 7 - elif parameter == 3: - parameter = 1 - elif parameter ==7: - parameter = 3 - - return str(calculated_checksum)[-1] == given_checksum - - def clean(self, value): - super(DEIdentityCardNumberField, self).clean(value) - if value in EMPTY_VALUES: - return '' - match = re.match(id_re, value) - if not match: - raise ValidationError(self.error_messages['invalid']) - - gd = match.groupdict() - residence, origin = gd['residence'], gd['origin'] - birthday, validity, checksum = gd['birthday'], gd['validity'], gd['checksum'] - - if residence == '0000000000' or birthday == '0000000' or validity == '0000000': - raise ValidationError(self.error_messages['invalid']) - - all_digits = "%s%s%s%s" % (residence, birthday, validity, checksum) - if not self.has_valid_checksum(residence) or not self.has_valid_checksum(birthday) or \ - not self.has_valid_checksum(validity) or not self.has_valid_checksum(all_digits): - raise ValidationError(self.error_messages['invalid']) - - return '%s%s-%s-%s-%s' % (residence, origin, birthday, validity, checksum) diff --git a/django/contrib/localflavor/ec/__init__.py b/django/contrib/localflavor/ec/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/ec/ec_provinces.py b/django/contrib/localflavor/ec/ec_provinces.py deleted file mode 100644 index db25d26ff8..0000000000 --- a/django/contrib/localflavor/ec/ec_provinces.py +++ /dev/null @@ -1,36 +0,0 @@ -# -*- coding: utf-8 -*- -""" -A list of Ecuador departaments as `choices` in a -formfield. - -This exists in this standalone file so that it's only -imported into memory when explicitly needed. -""" -from __future__ import unicode_literals - -PROVINCE_CHOICES = ( - ('A', 'Azuay'), - ('B', 'Bolívar'), - ('F', 'Cañar'), - ('C', 'Carchi'), - ('H', 'Chimborazo'), - ('X', 'Cotopaxi'), - ('O', 'El Oro'), - ('E', 'Esmeraldas'), - ('W', 'Galápagos'), - ('G', 'Guayas'), - ('I', 'Imbabura'), - ('L', 'Loja'), - ('R', 'Los Ríos'), - ('M', 'Manabí'), - ('S', 'Morona Santiago'), - ('N', 'Napo'), - ('D', 'Orellana'), - ('Y', 'Pastaza'), - ('P', 'Pichincha'), - ('SE', 'Santa Elena'), - ('SD', 'Santo Domingo de los Tsáchilas'), - ('U', 'Sucumbíos'), - ('T', 'Tungurahua'), - ('Z', 'Zamora Chinchipe'), -) diff --git a/django/contrib/localflavor/ec/forms.py b/django/contrib/localflavor/ec/forms.py deleted file mode 100644 index d28728b940..0000000000 --- a/django/contrib/localflavor/ec/forms.py +++ /dev/null @@ -1,15 +0,0 @@ -""" -Ecuador-specific form helpers. -""" - -from __future__ import absolute_import - -from django.contrib.localflavor.ec.ec_provinces import PROVINCE_CHOICES -from django.forms.fields import Select - -class ECProvinceSelect(Select): - """ - A Select widget that uses a list of Ecuador provinces as its choices. - """ - def __init__(self, attrs=None): - super(ECProvinceSelect, self).__init__(attrs, choices=PROVINCE_CHOICES) diff --git a/django/contrib/localflavor/es/__init__.py b/django/contrib/localflavor/es/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/es/es_provinces.py b/django/contrib/localflavor/es/es_provinces.py deleted file mode 100644 index 51f681f4fc..0000000000 --- a/django/contrib/localflavor/es/es_provinces.py +++ /dev/null @@ -1,58 +0,0 @@ -# -*- coding: utf-8 -*- -from django.utils.translation import ugettext_lazy as _ - -PROVINCE_CHOICES = ( - ('01', _('Araba')), - ('02', _('Albacete')), - ('03', _('Alacant')), - ('04', _('Almeria')), - ('05', _('Avila')), - ('06', _('Badajoz')), - ('07', _('Illes Balears')), - ('08', _('Barcelona')), - ('09', _('Burgos')), - ('10', _('Caceres')), - ('11', _('Cadiz')), - ('12', _('Castello')), - ('13', _('Ciudad Real')), - ('14', _('Cordoba')), - ('15', _('A Coruna')), - ('16', _('Cuenca')), - ('17', _('Girona')), - ('18', _('Granada')), - ('19', _('Guadalajara')), - ('20', _('Guipuzkoa')), - ('21', _('Huelva')), - ('22', _('Huesca')), - ('23', _('Jaen')), - ('24', _('Leon')), - ('25', _('Lleida')), - ('26', _('La Rioja')), - ('27', _('Lugo')), - ('28', _('Madrid')), - ('29', _('Malaga')), - ('30', _('Murcia')), - ('31', _('Navarre')), - ('32', _('Ourense')), - ('33', _('Asturias')), - ('34', _('Palencia')), - ('35', _('Las Palmas')), - ('36', _('Pontevedra')), - ('37', _('Salamanca')), - ('38', _('Santa Cruz de Tenerife')), - ('39', _('Cantabria')), - ('40', _('Segovia')), - ('41', _('Seville')), - ('42', _('Soria')), - ('43', _('Tarragona')), - ('44', _('Teruel')), - ('45', _('Toledo')), - ('46', _('Valencia')), - ('47', _('Valladolid')), - ('48', _('Bizkaia')), - ('49', _('Zamora')), - ('50', _('Zaragoza')), - ('51', _('Ceuta')), - ('52', _('Melilla')), -) - diff --git a/django/contrib/localflavor/es/es_regions.py b/django/contrib/localflavor/es/es_regions.py deleted file mode 100644 index 3c1ea0e974..0000000000 --- a/django/contrib/localflavor/es/es_regions.py +++ /dev/null @@ -1,23 +0,0 @@ -# -*- coding: utf-8 -*- -from django.utils.translation import ugettext_lazy as _ - -REGION_CHOICES = ( - ('AN', _('Andalusia')), - ('AR', _('Aragon')), - ('O', _('Principality of Asturias')), - ('IB', _('Balearic Islands')), - ('PV', _('Basque Country')), - ('CN', _('Canary Islands')), - ('S', _('Cantabria')), - ('CM', _('Castile-La Mancha')), - ('CL', _('Castile and Leon')), - ('CT', _('Catalonia')), - ('EX', _('Extremadura')), - ('GA', _('Galicia')), - ('LO', _('La Rioja')), - ('M', _('Madrid')), - ('MU', _('Region of Murcia')), - ('NA', _('Foral Community of Navarre')), - ('VC', _('Valencian Community')), -) - diff --git a/django/contrib/localflavor/es/forms.py b/django/contrib/localflavor/es/forms.py deleted file mode 100644 index da0769d2a0..0000000000 --- a/django/contrib/localflavor/es/forms.py +++ /dev/null @@ -1,189 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Spanish-specific Form helpers -""" - -from __future__ import absolute_import, unicode_literals - -import re - -from django.contrib.localflavor.es.es_provinces import PROVINCE_CHOICES -from django.contrib.localflavor.es.es_regions import REGION_CHOICES -from django.core.validators import EMPTY_VALUES -from django.forms import ValidationError -from django.forms.fields import RegexField, Select -from django.utils.translation import ugettext_lazy as _ - - -class ESPostalCodeField(RegexField): - """ - A form field that validates its input as a spanish postal code. - - Spanish postal code is a five digits string, with two first digits - between 01 and 52, assigned to provinces code. - """ - default_error_messages = { - 'invalid': _('Enter a valid postal code in the range and format 01XXX - 52XXX.'), - } - - def __init__(self, max_length=None, min_length=None, *args, **kwargs): - super(ESPostalCodeField, self).__init__( - r'^(0[1-9]|[1-4][0-9]|5[0-2])\d{3}$', - max_length, min_length, *args, **kwargs) - -class ESPhoneNumberField(RegexField): - """ - A form field that validates its input as a Spanish phone number. - Information numbers are ommited. - - Spanish phone numbers are nine digit numbers, where first digit is 6 (for - cell phones), 8 (for special phones), or 9 (for landlines and special - phones) - - TODO: accept and strip characters like dot, hyphen... in phone number - """ - default_error_messages = { - 'invalid': _('Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX.'), - } - - def __init__(self, max_length=None, min_length=None, *args, **kwargs): - super(ESPhoneNumberField, self).__init__(r'^(6|7|8|9)\d{8}$', - max_length, min_length, *args, **kwargs) - -class ESIdentityCardNumberField(RegexField): - """ - Spanish NIF/NIE/CIF (Fiscal Identification Number) code. - - Validates three diferent formats: - - NIF (individuals): 12345678A - CIF (companies): A12345678 - NIE (foreigners): X12345678A - - according to a couple of simple checksum algorithms. - - Value can include a space or hyphen separator between number and letters. - Number length is not checked for NIF (or NIE), old values start with a 1, - and future values can contain digits greater than 8. The CIF control digit - can be a number or a letter depending on company type. Algorithm is not - public, and different authors have different opinions on which ones allows - letters, so both validations are assumed true for all types. - """ - default_error_messages = { - 'invalid': _('Please enter a valid NIF, NIE, or CIF.'), - 'invalid_only_nif': _('Please enter a valid NIF or NIE.'), - 'invalid_nif': _('Invalid checksum for NIF.'), - 'invalid_nie': _('Invalid checksum for NIE.'), - 'invalid_cif': _('Invalid checksum for CIF.'), - } - - def __init__(self, only_nif=False, max_length=None, min_length=None, *args, **kwargs): - self.only_nif = only_nif - self.nif_control = 'TRWAGMYFPDXBNJZSQVHLCKE' - self.cif_control = 'JABCDEFGHI' - self.cif_types = 'ABCDEFGHKLMNPQS' - self.nie_types = 'XT' - id_card_re = re.compile(r'^([%s]?)[ -]?(\d+)[ -]?([%s]?)$' % (self.cif_types + self.nie_types, self.nif_control + self.cif_control), re.IGNORECASE) - super(ESIdentityCardNumberField, self).__init__(id_card_re, max_length, min_length, - error_message=self.default_error_messages['invalid%s' % (self.only_nif and '_only_nif' or '')], - *args, **kwargs) - - def clean(self, value): - super(ESIdentityCardNumberField, self).clean(value) - if value in EMPTY_VALUES: - return '' - nif_get_checksum = lambda d: self.nif_control[int(d)%23] - - value = value.upper().replace(' ', '').replace('-', '') - m = re.match(r'^([%s]?)[ -]?(\d+)[ -]?([%s]?)$' % (self.cif_types + self.nie_types, self.nif_control + self.cif_control), value) - letter1, number, letter2 = m.groups() - - if not letter1 and letter2: - # NIF - if letter2 == nif_get_checksum(number): - return value - else: - raise ValidationError(self.error_messages['invalid_nif']) - elif letter1 in self.nie_types and letter2: - # NIE - if letter2 == nif_get_checksum(number): - return value - else: - raise ValidationError(self.error_messages['invalid_nie']) - elif not self.only_nif and letter1 in self.cif_types and len(number) in [7, 8]: - # CIF - if not letter2: - number, letter2 = number[:-1], int(number[-1]) - checksum = cif_get_checksum(number) - if letter2 in (checksum, self.cif_control[checksum]): - return value - else: - raise ValidationError(self.error_messages['invalid_cif']) - else: - raise ValidationError(self.error_messages['invalid']) - -class ESCCCField(RegexField): - """ - A form field that validates its input as a Spanish bank account or CCC - (Codigo Cuenta Cliente). - - Spanish CCC is in format EEEE-OOOO-CC-AAAAAAAAAA where: - - E = entity - O = office - C = checksum - A = account - - It's also valid to use a space as delimiter, or to use no delimiter. - - First checksum digit validates entity and office, and last one - validates account. Validation is done multiplying every digit of 10 - digit value (with leading 0 if necessary) by number in its position in - string 1, 2, 4, 8, 5, 10, 9, 7, 3, 6. Sum resulting numbers and extract - it from 11. Result is checksum except when 10 then is 1, or when 11 - then is 0. - - TODO: allow IBAN validation too - """ - default_error_messages = { - 'invalid': _('Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX.'), - 'checksum': _('Invalid checksum for bank account number.'), - } - - def __init__(self, max_length=None, min_length=None, *args, **kwargs): - super(ESCCCField, self).__init__(r'^\d{4}[ -]?\d{4}[ -]?\d{2}[ -]?\d{10}$', - max_length, min_length, *args, **kwargs) - - def clean(self, value): - super(ESCCCField, self).clean(value) - if value in EMPTY_VALUES: - return '' - control_str = [1, 2, 4, 8, 5, 10, 9, 7, 3, 6] - m = re.match(r'^(\d{4})[ -]?(\d{4})[ -]?(\d{2})[ -]?(\d{10})$', value) - entity, office, checksum, account = m.groups() - get_checksum = lambda d: str(11 - sum([int(digit) * int(control) for digit, control in zip(d, control_str)]) % 11).replace('10', '1').replace('11', '0') - if get_checksum('00' + entity + office) + get_checksum(account) == checksum: - return value - else: - raise ValidationError(self.error_messages['checksum']) - -class ESRegionSelect(Select): - """ - A Select widget that uses a list of spanish regions as its choices. - """ - def __init__(self, attrs=None): - super(ESRegionSelect, self).__init__(attrs, choices=REGION_CHOICES) - -class ESProvinceSelect(Select): - """ - A Select widget that uses a list of spanish provinces as its choices. - """ - def __init__(self, attrs=None): - super(ESProvinceSelect, self).__init__(attrs, choices=PROVINCE_CHOICES) - - -def cif_get_checksum(number): - s1 = sum([int(digit) for pos, digit in enumerate(number) if int(pos) % 2]) - s2 = sum([sum([int(unit) for unit in str(int(digit) * 2)]) for pos, digit in enumerate(number) if not int(pos) % 2]) - return (10 - ((s1 + s2) % 10)) % 10 - diff --git a/django/contrib/localflavor/fi/__init__.py b/django/contrib/localflavor/fi/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/fi/fi_municipalities.py b/django/contrib/localflavor/fi/fi_municipalities.py deleted file mode 100644 index 6f90e5e02b..0000000000 --- a/django/contrib/localflavor/fi/fi_municipalities.py +++ /dev/null @@ -1,355 +0,0 @@ -# -*- coding: utf-8 -*- -""" -An alphabetical list of Finnish municipalities for use as `choices` in a -formfield. - -This exists in this standalone file so that it's only imported into memory -when explicitly needed. -""" - -from __future__ import unicode_literals - -MUNICIPALITY_CHOICES = ( - ('akaa', "Akaa"), - ('alajarvi', "Alajärvi"), - ('alavieska', "Alavieska"), - ('alavus', "Alavus"), - ('artjarvi', "Artjärvi"), - ('asikkala', "Asikkala"), - ('askola', "Askola"), - ('aura', "Aura"), - ('brando', "Brändö"), - ('eckero', "Eckerö"), - ('enonkoski', "Enonkoski"), - ('enontekio', "Enontekiö"), - ('espoo', "Espoo"), - ('eura', "Eura"), - ('eurajoki', "Eurajoki"), - ('evijarvi', "Evijärvi"), - ('finstrom', "Finström"), - ('forssa', "Forssa"), - ('foglo', "Föglö"), - ('geta', "Geta"), - ('haapajarvi', "Haapajärvi"), - ('haapavesi', "Haapavesi"), - ('hailuoto', "Hailuoto"), - ('halsua', "Halsua"), - ('hamina', "Hamina"), - ('hammarland', "Hammarland"), - ('hankasalmi', "Hankasalmi"), - ('hanko', "Hanko"), - ('harjavalta', "Harjavalta"), - ('hartola', "Hartola"), - ('hattula', "Hattula"), - ('haukipudas', "Haukipudas"), - ('hausjarvi', "Hausjärvi"), - ('heinola', "Heinola"), - ('heinavesi', "Heinävesi"), - ('helsinki', "Helsinki"), - ('hirvensalmi', "Hirvensalmi"), - ('hollola', "Hollola"), - ('honkajoki', "Honkajoki"), - ('huittinen', "Huittinen"), - ('humppila', "Humppila"), - ('hyrynsalmi', "Hyrynsalmi"), - ('hyvinkaa', "Hyvinkää"), - ('hameenkoski', "Hämeenkoski"), - ('hameenkyro', "Hämeenkyrö"), - ('hameenlinna', "Hämeenlinna"), - ('ii', "Ii"), - ('iisalmi', "Iisalmi"), - ('iitti', "Iitti"), - ('ikaalinen', "Ikaalinen"), - ('ilmajoki', "Ilmajoki"), - ('ilomantsi', "Ilomantsi"), - ('imatra', "Imatra"), - ('inari', "Inari"), - ('inkoo', "Inkoo"), - ('isojoki', "Isojoki"), - ('isokyro', "Isokyrö"), - ('jalasjarvi', "Jalasjärvi"), - ('janakkala', "Janakkala"), - ('joensuu', "Joensuu"), - ('jokioinen', "Jokioinen"), - ('jomala', "Jomala"), - ('joroinen', "Joroinen"), - ('joutsa', "Joutsa"), - ('juankoski', "Juankoski"), - ('juuka', "Juuka"), - ('juupajoki', "Juupajoki"), - ('juva', "Juva"), - ('jyvaskyla', "Jyväskylä"), - ('jamijarvi', "Jämijärvi"), - ('jamsa', "Jämsä"), - ('jarvenpaa', "Järvenpää"), - ('kaarina', "Kaarina"), - ('kaavi', "Kaavi"), - ('kajaani', "Kajaani"), - ('kalajoki', "Kalajoki"), - ('kangasala', "Kangasala"), - ('kangasniemi', "Kangasniemi"), - ('kankaanpaa', "Kankaanpää"), - ('kannonkoski', "Kannonkoski"), - ('kannus', "Kannus"), - ('karijoki', "Karijoki"), - ('karjalohja', "Karjalohja"), - ('karkkila', "Karkkila"), - ('karstula', "Karstula"), - ('karttula', "Karttula"), - ('karvia', "Karvia"), - ('kaskinen', "Kaskinen"), - ('kauhajoki', "Kauhajoki"), - ('kauhava', "Kauhava"), - ('kauniainen', "Kauniainen"), - ('kaustinen', "Kaustinen"), - ('keitele', "Keitele"), - ('kemi', "Kemi"), - ('kemijarvi', "Kemijärvi"), - ('keminmaa', "Keminmaa"), - ('kemionsaari', "Kemiönsaari"), - ('kempele', "Kempele"), - ('kerava', "Kerava"), - ('kerimaki', "Kerimäki"), - ('kesalahti', "Kesälahti"), - ('keuruu', "Keuruu"), - ('kihnio', "Kihniö"), - ('kiikoinen', "Kiikoinen"), - ('kiiminki', "Kiiminki"), - ('kinnula', "Kinnula"), - ('kirkkonummi', "Kirkkonummi"), - ('kitee', "Kitee"), - ('kittila', "Kittilä"), - ('kiuruvesi', "Kiuruvesi"), - ('kivijarvi', "Kivijärvi"), - ('kokemaki', "Kokemäki"), - ('kokkola', "Kokkola"), - ('kolari', "Kolari"), - ('konnevesi', "Konnevesi"), - ('kontiolahti', "Kontiolahti"), - ('korsnas', "Korsnäs"), - ('koskitl', "Koski Tl"), - ('kotka', "Kotka"), - ('kouvola', "Kouvola"), - ('kristiinankaupunki', "Kristiinankaupunki"), - ('kruunupyy', "Kruunupyy"), - ('kuhmalahti', "Kuhmalahti"), - ('kuhmo', "Kuhmo"), - ('kuhmoinen', "Kuhmoinen"), - ('kumlinge', "Kumlinge"), - ('kuopio', "Kuopio"), - ('kuortane', "Kuortane"), - ('kurikka', "Kurikka"), - ('kustavi', "Kustavi"), - ('kuusamo', "Kuusamo"), - ('kylmakoski', "Kylmäkoski"), - ('kyyjarvi', "Kyyjärvi"), - ('karkola', "Kärkölä"), - ('karsamaki', "Kärsämäki"), - ('kokar', "Kökar"), - ('koylio', "Köyliö"), - ('lahti', "Lahti"), - ('laihia', "Laihia"), - ('laitila', "Laitila"), - ('lapinjarvi', "Lapinjärvi"), - ('lapinlahti', "Lapinlahti"), - ('lappajarvi', "Lappajärvi"), - ('lappeenranta', "Lappeenranta"), - ('lapua', "Lapua"), - ('laukaa', "Laukaa"), - ('lavia', "Lavia"), - ('lemi', "Lemi"), - ('lemland', "Lemland"), - ('lempaala', "Lempäälä"), - ('leppavirta', "Leppävirta"), - ('lestijarvi', "Lestijärvi"), - ('lieksa', "Lieksa"), - ('lieto', "Lieto"), - ('liminka', "Liminka"), - ('liperi', "Liperi"), - ('lohja', "Lohja"), - ('loimaa', "Loimaa"), - ('loppi', "Loppi"), - ('loviisa', "Loviisa"), - ('luhanka', "Luhanka"), - ('lumijoki', "Lumijoki"), - ('lumparland', "Lumparland"), - ('luoto', "Luoto"), - ('luumaki', "Luumäki"), - ('luvia', "Luvia"), - ('lansi-turunmaa', "Länsi-Turunmaa"), - ('maalahti', "Maalahti"), - ('maaninka', "Maaninka"), - ('maarianhamina', "Maarianhamina"), - ('marttila', "Marttila"), - ('masku', "Masku"), - ('merijarvi', "Merijärvi"), - ('merikarvia', "Merikarvia"), - ('miehikkala', "Miehikkälä"), - ('mikkeli', "Mikkeli"), - ('muhos', "Muhos"), - ('multia', "Multia"), - ('muonio', "Muonio"), - ('mustasaari', "Mustasaari"), - ('muurame', "Muurame"), - ('mynamaki', "Mynämäki"), - ('myrskyla', "Myrskylä"), - ('mantsala', "Mäntsälä"), - ('mantta-vilppula', "Mänttä-Vilppula"), - ('mantyharju', "Mäntyharju"), - ('naantali', "Naantali"), - ('nakkila', "Nakkila"), - ('nastola', "Nastola"), - ('nilsia', "Nilsiä"), - ('nivala', "Nivala"), - ('nokia', "Nokia"), - ('nousiainen', "Nousiainen"), - ('nummi-pusula', "Nummi-Pusula"), - ('nurmes', "Nurmes"), - ('nurmijarvi', "Nurmijärvi"), - ('narpio', "Närpiö"), - ('oravainen', "Oravainen"), - ('orimattila', "Orimattila"), - ('oripaa', "Oripää"), - ('orivesi', "Orivesi"), - ('oulainen', "Oulainen"), - ('oulu', "Oulu"), - ('oulunsalo', "Oulunsalo"), - ('outokumpu', "Outokumpu"), - ('padasjoki', "Padasjoki"), - ('paimio', "Paimio"), - ('paltamo', "Paltamo"), - ('parikkala', "Parikkala"), - ('parkano', "Parkano"), - ('pedersore', "Pedersöre"), - ('pelkosenniemi', "Pelkosenniemi"), - ('pello', "Pello"), - ('perho', "Perho"), - ('pertunmaa', "Pertunmaa"), - ('petajavesi', "Petäjävesi"), - ('pieksamaki', "Pieksämäki"), - ('pielavesi', "Pielavesi"), - ('pietarsaari', "Pietarsaari"), - ('pihtipudas', "Pihtipudas"), - ('pirkkala', "Pirkkala"), - ('polvijarvi', "Polvijärvi"), - ('pomarkku', "Pomarkku"), - ('pori', "Pori"), - ('pornainen', "Pornainen"), - ('porvoo', "Porvoo"), - ('posio', "Posio"), - ('pudasjarvi', "Pudasjärvi"), - ('pukkila', "Pukkila"), - ('punkaharju', "Punkaharju"), - ('punkalaidun', "Punkalaidun"), - ('puolanka', "Puolanka"), - ('puumala', "Puumala"), - ('pyhtaa', "Pyhtää"), - ('pyhajoki', "Pyhäjoki"), - ('pyhajarvi', "Pyhäjärvi"), - ('pyhanta', "Pyhäntä"), - ('pyharanta', "Pyhäranta"), - ('palkane', "Pälkäne"), - ('poytya', "Pöytyä"), - ('raahe', "Raahe"), - ('raasepori', "Raasepori"), - ('raisio', "Raisio"), - ('rantasalmi', "Rantasalmi"), - ('ranua', "Ranua"), - ('rauma', "Rauma"), - ('rautalampi', "Rautalampi"), - ('rautavaara', "Rautavaara"), - ('rautjarvi', "Rautjärvi"), - ('reisjarvi', "Reisjärvi"), - ('riihimaki', "Riihimäki"), - ('ristiina', "Ristiina"), - ('ristijarvi', "Ristijärvi"), - ('rovaniemi', "Rovaniemi"), - ('ruokolahti', "Ruokolahti"), - ('ruovesi', "Ruovesi"), - ('rusko', "Rusko"), - ('raakkyla', "Rääkkylä"), - ('saarijarvi', "Saarijärvi"), - ('salla', "Salla"), - ('salo', "Salo"), - ('saltvik', "Saltvik"), - ('sastamala', "Sastamala"), - ('sauvo', "Sauvo"), - ('savitaipale', "Savitaipale"), - ('savonlinna', "Savonlinna"), - ('savukoski', "Savukoski"), - ('seinajoki', "Seinäjoki"), - ('sievi', "Sievi"), - ('siikainen', "Siikainen"), - ('siikajoki', "Siikajoki"), - ('siikalatva', "Siikalatva"), - ('siilinjarvi', "Siilinjärvi"), - ('simo', "Simo"), - ('sipoo', "Sipoo"), - ('siuntio', "Siuntio"), - ('sodankyla', "Sodankylä"), - ('soini', "Soini"), - ('somero', "Somero"), - ('sonkajarvi', "Sonkajärvi"), - ('sotkamo', "Sotkamo"), - ('sottunga', "Sottunga"), - ('sulkava', "Sulkava"), - ('sund', "Sund"), - ('suomenniemi', "Suomenniemi"), - ('suomussalmi', "Suomussalmi"), - ('suonenjoki', "Suonenjoki"), - ('sysma', "Sysmä"), - ('sakyla', "Säkylä"), - ('taipalsaari', "Taipalsaari"), - ('taivalkoski', "Taivalkoski"), - ('taivassalo', "Taivassalo"), - ('tammela', "Tammela"), - ('tampere', "Tampere"), - ('tarvasjoki', "Tarvasjoki"), - ('tervo', "Tervo"), - ('tervola', "Tervola"), - ('teuva', "Teuva"), - ('tohmajarvi', "Tohmajärvi"), - ('toholampi', "Toholampi"), - ('toivakka', "Toivakka"), - ('tornio', "Tornio"), - ('turku', "Turku"), - ('tuusniemi', "Tuusniemi"), - ('tuusula', "Tuusula"), - ('tyrnava', "Tyrnävä"), - ('toysa', "Töysä"), - ('ulvila', "Ulvila"), - ('urjala', "Urjala"), - ('utajarvi', "Utajärvi"), - ('utsjoki', "Utsjoki"), - ('uurainen', "Uurainen"), - ('uusikaarlepyy', "Uusikaarlepyy"), - ('uusikaupunki', "Uusikaupunki"), - ('vaala', "Vaala"), - ('vaasa', "Vaasa"), - ('valkeakoski', "Valkeakoski"), - ('valtimo', "Valtimo"), - ('vantaa', "Vantaa"), - ('varkaus', "Varkaus"), - ('varpaisjarvi', "Varpaisjärvi"), - ('vehmaa', "Vehmaa"), - ('vesanto', "Vesanto"), - ('vesilahti', "Vesilahti"), - ('veteli', "Veteli"), - ('vierema', "Vieremä"), - ('vihanti', "Vihanti"), - ('vihti', "Vihti"), - ('viitasaari', "Viitasaari"), - ('vimpeli', "Vimpeli"), - ('virolahti', "Virolahti"), - ('virrat', "Virrat"), - ('vardo', "Vårdö"), - ('vahakyro', "Vähäkyrö"), - ('voyri-maksamaa', "Vöyri-Maksamaa"), - ('yli-ii', "Yli-Ii"), - ('ylitornio', "Ylitornio"), - ('ylivieska', "Ylivieska"), - ('ylojarvi', "Ylöjärvi"), - ('ypaja', "Ypäjä"), - ('ahtari', "Ähtäri"), - ('aanekoski', "Äänekoski") -) diff --git a/django/contrib/localflavor/fi/forms.py b/django/contrib/localflavor/fi/forms.py deleted file mode 100644 index 633f3e5f1b..0000000000 --- a/django/contrib/localflavor/fi/forms.py +++ /dev/null @@ -1,55 +0,0 @@ -""" -FI-specific Form helpers -""" - -from __future__ import absolute_import, unicode_literals - -import re - -from django.contrib.localflavor.fi.fi_municipalities import MUNICIPALITY_CHOICES -from django.core.validators import EMPTY_VALUES -from django.forms import ValidationError -from django.forms.fields import Field, RegexField, Select -from django.utils.translation import ugettext_lazy as _ - - -class FIZipCodeField(RegexField): - default_error_messages = { - 'invalid': _('Enter a zip code in the format XXXXX.'), - } - def __init__(self, max_length=None, min_length=None, *args, **kwargs): - super(FIZipCodeField, self).__init__(r'^\d{5}$', - max_length, min_length, *args, **kwargs) - -class FIMunicipalitySelect(Select): - """ - A Select widget that uses a list of Finnish municipalities as its choices. - """ - def __init__(self, attrs=None): - super(FIMunicipalitySelect, self).__init__(attrs, choices=MUNICIPALITY_CHOICES) - -class FISocialSecurityNumber(Field): - default_error_messages = { - 'invalid': _('Enter a valid Finnish social security number.'), - } - - def clean(self, value): - super(FISocialSecurityNumber, self).clean(value) - if value in EMPTY_VALUES: - return '' - - checkmarks = "0123456789ABCDEFHJKLMNPRSTUVWXY" - result = re.match(r"""^ - (?P([0-2]\d|3[01]) - (0\d|1[012]) - (\d{2})) - [A+-] - (?P(\d{3})) - (?P[%s])$""" % checkmarks, value, re.VERBOSE | re.IGNORECASE) - if not result: - raise ValidationError(self.error_messages['invalid']) - gd = result.groupdict() - checksum = int(gd['date'] + gd['serial']) - if checkmarks[checksum % len(checkmarks)] == gd['checksum'].upper(): - return '%s' % value.upper() - raise ValidationError(self.error_messages['invalid']) diff --git a/django/contrib/localflavor/fr/__init__.py b/django/contrib/localflavor/fr/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/fr/forms.py b/django/contrib/localflavor/fr/forms.py deleted file mode 100644 index 8b841fff5f..0000000000 --- a/django/contrib/localflavor/fr/forms.py +++ /dev/null @@ -1,57 +0,0 @@ -""" -FR-specific Form helpers -""" -from __future__ import absolute_import, unicode_literals - -import re - -from django.contrib.localflavor.fr.fr_department import DEPARTMENT_CHOICES -from django.core.validators import EMPTY_VALUES -from django.forms import ValidationError -from django.forms.fields import CharField, RegexField, Select -from django.utils.encoding import smart_text -from django.utils.translation import ugettext_lazy as _ - - -phone_digits_re = re.compile(r'^0\d(\s|\.)?(\d{2}(\s|\.)?){3}\d{2}$') - -class FRZipCodeField(RegexField): - default_error_messages = { - 'invalid': _('Enter a zip code in the format XXXXX.'), - } - - def __init__(self, max_length=5, min_length=5, *args, **kwargs): - super(FRZipCodeField, self).__init__(r'^\d{5}$', - max_length, min_length, *args, **kwargs) - -class FRPhoneNumberField(CharField): - """ - Validate local French phone number (not international ones) - The correct format is '0X XX XX XX XX'. - '0X.XX.XX.XX.XX' and '0XXXXXXXXX' validate but are corrected to - '0X XX XX XX XX'. - """ - default_error_messages = { - 'invalid': _('Phone numbers must be in 0X XX XX XX XX format.'), - } - - def __init__(self, max_length=14, min_length=10, *args, **kwargs): - super(FRPhoneNumberField, self).__init__( - max_length, min_length, *args, **kwargs) - - def clean(self, value): - super(FRPhoneNumberField, self).clean(value) - if value in EMPTY_VALUES: - return '' - value = re.sub('(\.|\s)', '', smart_text(value)) - m = phone_digits_re.search(value) - if m: - return '%s %s %s %s %s' % (value[0:2], value[2:4], value[4:6], value[6:8], value[8:10]) - raise ValidationError(self.error_messages['invalid']) - -class FRDepartmentSelect(Select): - """ - A Select widget that uses a list of FR departments as its choices. - """ - def __init__(self, attrs=None): - super(FRDepartmentSelect, self).__init__(attrs, choices=DEPARTMENT_CHOICES) diff --git a/django/contrib/localflavor/fr/fr_department.py b/django/contrib/localflavor/fr/fr_department.py deleted file mode 100644 index a2cca957c2..0000000000 --- a/django/contrib/localflavor/fr/fr_department.py +++ /dev/null @@ -1,118 +0,0 @@ -# -*- coding: utf-8 -*- - -# See the "Code officiel géographique" on the INSEE website . -from __future__ import unicode_literals - -DEPARTMENT_CHOICES = ( - # Metropolitan departments - ('01', '01 - Ain'), - ('02', '02 - Aisne'), - ('03', '03 - Allier'), - ('04', '04 - Alpes-de-Haute-Provence'), - ('05', '05 - Hautes-Alpes'), - ('06', '06 - Alpes-Maritimes'), - ('07', '07 - Ardèche'), - ('08', '08 - Ardennes'), - ('09', '09 - Ariège'), - ('10', '10 - Aube'), - ('11', '11 - Aude'), - ('12', '12 - Aveyron'), - ('13', '13 - Bouches-du-Rhône'), - ('14', '14 - Calvados'), - ('15', '15 - Cantal'), - ('16', '16 - Charente'), - ('17', '17 - Charente-Maritime'), - ('18', '18 - Cher'), - ('19', '19 - Corrèze'), - ('2A', '2A - Corse-du-Sud'), - ('2B', '2B - Haute-Corse'), - ('21', '21 - Côte-d\'Or'), - ('22', '22 - Côtes-d\'Armor'), - ('23', '23 - Creuse'), - ('24', '24 - Dordogne'), - ('25', '25 - Doubs'), - ('26', '26 - Drôme'), - ('27', '27 - Eure'), - ('28', '28 - Eure-et-Loir'), - ('29', '29 - Finistère'), - ('30', '30 - Gard'), - ('31', '31 - Haute-Garonne'), - ('32', '32 - Gers'), - ('33', '33 - Gironde'), - ('34', '34 - Hérault'), - ('35', '35 - Ille-et-Vilaine'), - ('36', '36 - Indre'), - ('37', '37 - Indre-et-Loire'), - ('38', '38 - Isère'), - ('39', '39 - Jura'), - ('40', '40 - Landes'), - ('41', '41 - Loir-et-Cher'), - ('42', '42 - Loire'), - ('43', '43 - Haute-Loire'), - ('44', '44 - Loire-Atlantique'), - ('45', '45 - Loiret'), - ('46', '46 - Lot'), - ('47', '47 - Lot-et-Garonne'), - ('48', '48 - Lozère'), - ('49', '49 - Maine-et-Loire'), - ('50', '50 - Manche'), - ('51', '51 - Marne'), - ('52', '52 - Haute-Marne'), - ('53', '53 - Mayenne'), - ('54', '54 - Meurthe-et-Moselle'), - ('55', '55 - Meuse'), - ('56', '56 - Morbihan'), - ('57', '57 - Moselle'), - ('58', '58 - Nièvre'), - ('59', '59 - Nord'), - ('60', '60 - Oise'), - ('61', '61 - Orne'), - ('62', '62 - Pas-de-Calais'), - ('63', '63 - Puy-de-Dôme'), - ('64', '64 - Pyrénées-Atlantiques'), - ('65', '65 - Hautes-Pyrénées'), - ('66', '66 - Pyrénées-Orientales'), - ('67', '67 - Bas-Rhin'), - ('68', '68 - Haut-Rhin'), - ('69', '69 - Rhône'), - ('70', '70 - Haute-Saône'), - ('71', '71 - Saône-et-Loire'), - ('72', '72 - Sarthe'), - ('73', '73 - Savoie'), - ('74', '74 - Haute-Savoie'), - ('75', '75 - Paris'), - ('76', '76 - Seine-Maritime'), - ('77', '77 - Seine-et-Marne'), - ('78', '78 - Yvelines'), - ('79', '79 - Deux-Sèvres'), - ('80', '80 - Somme'), - ('81', '81 - Tarn'), - ('82', '82 - Tarn-et-Garonne'), - ('83', '83 - Var'), - ('84', '84 - Vaucluse'), - ('85', '85 - Vendée'), - ('86', '86 - Vienne'), - ('87', '87 - Haute-Vienne'), - ('88', '88 - Vosges'), - ('89', '89 - Yonne'), - ('90', '90 - Territoire de Belfort'), - ('91', '91 - Essonne'), - ('92', '92 - Hauts-de-Seine'), - ('93', '93 - Seine-Saint-Denis'), - ('94', '94 - Val-de-Marne'), - ('95', '95 - Val-d\'Oise'), - # Overseas departments, communities, and other territories - ('971', '971 - Guadeloupe'), - ('972', '972 - Martinique'), - ('973', '973 - Guyane'), - ('974', '974 - La Réunion'), - ('975', '975 - Saint-Pierre-et-Miquelon'), - ('976', '976 - Mayotte'), - ('977', '977 - Saint-Barthélemy'), - ('978', '978 - Saint-Martin'), - ('984', '984 - Terres australes et antarctiques françaises'), - ('986', '986 - Wallis et Futuna'), - ('987', '987 - Polynésie française'), - ('988', '988 - Nouvelle-Calédonie'), - ('989', '989 - Île de Clipperton'), -) diff --git a/django/contrib/localflavor/gb/__init__.py b/django/contrib/localflavor/gb/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/gb/forms.py b/django/contrib/localflavor/gb/forms.py deleted file mode 100644 index bf90f80281..0000000000 --- a/django/contrib/localflavor/gb/forms.py +++ /dev/null @@ -1,55 +0,0 @@ -""" -GB-specific Form helpers -""" - -from __future__ import absolute_import, unicode_literals - -import re - -from django.contrib.localflavor.gb.gb_regions import GB_NATIONS_CHOICES, GB_REGION_CHOICES -from django.forms.fields import CharField, Select -from django.forms import ValidationError -from django.utils.translation import ugettext_lazy as _ - - -class GBPostcodeField(CharField): - """ - A form field that validates its input is a UK postcode. - - The regular expression used is sourced from the schema for British Standard - BS7666 address types: http://www.govtalk.gov.uk/gdsc/schemas/bs7666-v2-0.xsd - - The value is uppercased and a space added in the correct place, if required. - """ - default_error_messages = { - 'invalid': _('Enter a valid postcode.'), - } - outcode_pattern = '[A-PR-UWYZ]([0-9]{1,2}|([A-HIK-Y][0-9](|[0-9]|[ABEHMNPRVWXY]))|[0-9][A-HJKSTUW])' - incode_pattern = '[0-9][ABD-HJLNP-UW-Z]{2}' - postcode_regex = re.compile(r'^(GIR 0AA|%s %s)$' % (outcode_pattern, incode_pattern)) - space_regex = re.compile(r' *(%s)$' % incode_pattern) - - def clean(self, value): - value = super(GBPostcodeField, self).clean(value) - if value == '': - return value - postcode = value.upper().strip() - # Put a single space before the incode (second part). - postcode = self.space_regex.sub(r' \1', postcode) - if not self.postcode_regex.search(postcode): - raise ValidationError(self.error_messages['invalid']) - return postcode - -class GBCountySelect(Select): - """ - A Select widget that uses a list of UK Counties/Regions as its choices. - """ - def __init__(self, attrs=None): - super(GBCountySelect, self).__init__(attrs, choices=GB_REGION_CHOICES) - -class GBNationSelect(Select): - """ - A Select widget that uses a list of UK Nations as its choices. - """ - def __init__(self, attrs=None): - super(GBNationSelect, self).__init__(attrs, choices=GB_NATIONS_CHOICES) diff --git a/django/contrib/localflavor/gb/gb_regions.py b/django/contrib/localflavor/gb/gb_regions.py deleted file mode 100644 index c5f5dd7b76..0000000000 --- a/django/contrib/localflavor/gb/gb_regions.py +++ /dev/null @@ -1,97 +0,0 @@ -""" -Sources: - English regions: http://www.statistics.gov.uk/geography/downloads/31_10_01_REGION_names_and_codes_12_00.xls - Northern Ireland regions: http://en.wikipedia.org/wiki/List_of_Irish_counties_by_area - Welsh regions: http://en.wikipedia.org/wiki/Preserved_counties_of_Wales - Scottish regions: http://en.wikipedia.org/wiki/Regions_and_districts_of_Scotland -""" -from django.utils.translation import ugettext_lazy as _ - -ENGLAND_REGION_CHOICES = ( - ("Bedfordshire", _("Bedfordshire")), - ("Buckinghamshire", _("Buckinghamshire")), - ("Cambridgeshire", ("Cambridgeshire")), - ("Cheshire", _("Cheshire")), - ("Cornwall and Isles of Scilly", _("Cornwall and Isles of Scilly")), - ("Cumbria", _("Cumbria")), - ("Derbyshire", _("Derbyshire")), - ("Devon", _("Devon")), - ("Dorset", _("Dorset")), - ("Durham", _("Durham")), - ("East Sussex", _("East Sussex")), - ("Essex", _("Essex")), - ("Gloucestershire", _("Gloucestershire")), - ("Greater London", _("Greater London")), - ("Greater Manchester", _("Greater Manchester")), - ("Hampshire", _("Hampshire")), - ("Hertfordshire", _("Hertfordshire")), - ("Kent", _("Kent")), - ("Lancashire", _("Lancashire")), - ("Leicestershire", _("Leicestershire")), - ("Lincolnshire", _("Lincolnshire")), - ("Merseyside", _("Merseyside")), - ("Norfolk", _("Norfolk")), - ("North Yorkshire", _("North Yorkshire")), - ("Northamptonshire", _("Northamptonshire")), - ("Northumberland", _("Northumberland")), - ("Nottinghamshire", _("Nottinghamshire")), - ("Oxfordshire", _("Oxfordshire")), - ("Shropshire", _("Shropshire")), - ("Somerset", _("Somerset")), - ("South Yorkshire", _("South Yorkshire")), - ("Staffordshire", _("Staffordshire")), - ("Suffolk", _("Suffolk")), - ("Surrey", _("Surrey")), - ("Tyne and Wear", _("Tyne and Wear")), - ("Warwickshire", _("Warwickshire")), - ("West Midlands", _("West Midlands")), - ("West Sussex", _("West Sussex")), - ("West Yorkshire", _("West Yorkshire")), - ("Wiltshire", _("Wiltshire")), - ("Worcestershire", _("Worcestershire")), -) - -NORTHERN_IRELAND_REGION_CHOICES = ( - ("County Antrim", _("County Antrim")), - ("County Armagh", _("County Armagh")), - ("County Down", _("County Down")), - ("County Fermanagh", _("County Fermanagh")), - ("County Londonderry", _("County Londonderry")), - ("County Tyrone", _("County Tyrone")), -) - -WALES_REGION_CHOICES = ( - ("Clwyd", _("Clwyd")), - ("Dyfed", _("Dyfed")), - ("Gwent", _("Gwent")), - ("Gwynedd", _("Gwynedd")), - ("Mid Glamorgan", _("Mid Glamorgan")), - ("Powys", _("Powys")), - ("South Glamorgan", _("South Glamorgan")), - ("West Glamorgan", _("West Glamorgan")), -) - -SCOTTISH_REGION_CHOICES = ( - ("Borders", _("Borders")), - ("Central Scotland", _("Central Scotland")), - ("Dumfries and Galloway", _("Dumfries and Galloway")), - ("Fife", _("Fife")), - ("Grampian", _("Grampian")), - ("Highland", _("Highland")), - ("Lothian", _("Lothian")), - ("Orkney Islands", _("Orkney Islands")), - ("Shetland Islands", _("Shetland Islands")), - ("Strathclyde", _("Strathclyde")), - ("Tayside", _("Tayside")), - ("Western Isles", _("Western Isles")), -) - -GB_NATIONS_CHOICES = ( - ("England", _("England")), - ("Northern Ireland", _("Northern Ireland")), - ("Scotland", _("Scotland")), - ("Wales", _("Wales")), -) - -GB_REGION_CHOICES = ENGLAND_REGION_CHOICES + NORTHERN_IRELAND_REGION_CHOICES + WALES_REGION_CHOICES + SCOTTISH_REGION_CHOICES - diff --git a/django/contrib/localflavor/generic/__init__.py b/django/contrib/localflavor/generic/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/generic/forms.py b/django/contrib/localflavor/generic/forms.py deleted file mode 100644 index b040f68bb4..0000000000 --- a/django/contrib/localflavor/generic/forms.py +++ /dev/null @@ -1,48 +0,0 @@ -from django import forms - -DEFAULT_DATE_INPUT_FORMATS = ( - '%Y-%m-%d', '%d/%m/%Y', '%d/%m/%y', # '2006-10-25', '25/10/2006', '25/10/06' - '%b %d %Y', '%b %d, %Y', # 'Oct 25 2006', 'Oct 25, 2006' - '%d %b %Y', '%d %b, %Y', # '25 Oct 2006', '25 Oct, 2006' - '%B %d %Y', '%B %d, %Y', # 'October 25 2006', 'October 25, 2006' - '%d %B %Y', '%d %B, %Y', # '25 October 2006', '25 October, 2006' -) - -DEFAULT_DATETIME_INPUT_FORMATS = ( - '%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59' - '%Y-%m-%d %H:%M', # '2006-10-25 14:30' - '%Y-%m-%d', # '2006-10-25' - '%d/%m/%Y %H:%M:%S', # '25/10/2006 14:30:59' - '%d/%m/%Y %H:%M', # '25/10/2006 14:30' - '%d/%m/%Y', # '25/10/2006' - '%d/%m/%y %H:%M:%S', # '25/10/06 14:30:59' - '%d/%m/%y %H:%M', # '25/10/06 14:30' - '%d/%m/%y', # '25/10/06' -) - -class DateField(forms.DateField): - """ - A date input field which uses non-US date input formats by default. - """ - def __init__(self, input_formats=None, *args, **kwargs): - input_formats = input_formats or DEFAULT_DATE_INPUT_FORMATS - super(DateField, self).__init__(input_formats=input_formats, *args, **kwargs) - -class DateTimeField(forms.DateTimeField): - """ - A date and time input field which uses non-US date and time input formats - by default. - """ - def __init__(self, input_formats=None, *args, **kwargs): - input_formats = input_formats or DEFAULT_DATETIME_INPUT_FORMATS - super(DateTimeField, self).__init__(input_formats=input_formats, *args, **kwargs) - -class SplitDateTimeField(forms.SplitDateTimeField): - """ - Split date and time input fields which use non-US date and time input - formats by default. - """ - def __init__(self, input_date_formats=None, input_time_formats=None, *args, **kwargs): - input_date_formats = input_date_formats or DEFAULT_DATE_INPUT_FORMATS - super(SplitDateTimeField, self).__init__(input_date_formats=input_date_formats, - input_time_formats=input_time_formats, *args, **kwargs) diff --git a/django/contrib/localflavor/hk/__init__.py b/django/contrib/localflavor/hk/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/hk/forms.py b/django/contrib/localflavor/hk/forms.py deleted file mode 100644 index ab4f70f193..0000000000 --- a/django/contrib/localflavor/hk/forms.py +++ /dev/null @@ -1,71 +0,0 @@ -""" -Hong Kong specific Form helpers -""" -from __future__ import absolute_import, unicode_literals - -import re - -from django.core.validators import EMPTY_VALUES -from django.forms import CharField -from django.forms import ValidationError -from django.utils.encoding import smart_text -from django.utils.translation import ugettext_lazy as _ - - -hk_phone_digits_re = re.compile(r'^(?:852-?)?(\d{4})[-\.]?(\d{4})$') -hk_special_numbers = ('999', '992', '112') -hk_phone_prefixes = ('2', '3', '5', '6', '8', '9') -hk_formats = ['XXXX-XXXX', '852-XXXX-XXXX', '(+852) XXXX-XXXX', - 'XXXX XXXX', 'XXXXXXXX'] - - - -class HKPhoneNumberField(CharField): - """ - Validate Hong Kong phone number. - The input format can be either one of the followings: - 'XXXX-XXXX', '852-XXXX-XXXX', '(+852) XXXX-XXXX', - 'XXXX XXXX', or 'XXXXXXXX'. - The output format is 'XXXX-XXXX'. - - Note: The phone number shall not start with 999, 992, or 112. - And, it should start with either 2, 3, 5, 6, 8, or 9. - - Ref - http://en.wikipedia.org/wiki/Telephone_numbers_in_Hong_Kong - """ - default_error_messages = { - 'disguise': _('Phone number should not start with ' \ - 'one of the followings: %s.' % \ - ', '.join(hk_special_numbers)), - 'invalid': _('Phone number must be in one of the following formats: ' - '%s.' % ', '.join(hk_formats)), - 'prefix': _('Phone number should start with ' \ - 'one of the followings: %s.' % \ - ', '.join(hk_phone_prefixes)), - } - - def __init__(self, *args, **kwargs): - super(HKPhoneNumberField, self).__init__(*args, **kwargs) - - def clean(self, value): - super(HKPhoneNumberField, self).clean(value) - - if value in EMPTY_VALUES: - return '' - - value = re.sub('(\(|\)|\s+|\+)', '', smart_text(value)) - m = hk_phone_digits_re.search(value) - if not m: - raise ValidationError(self.error_messages['invalid']) - - value = '%s-%s' % (m.group(1), m.group(2)) - for special in hk_special_numbers: - if value.startswith(special): - raise ValidationError(self.error_messages['disguise']) - - prefix_found = map(lambda prefix: value.startswith(prefix), - hk_phone_prefixes) - if not any(prefix_found): - raise ValidationError(self.error_messages['prefix']) - - return value diff --git a/django/contrib/localflavor/hr/__init__.py b/django/contrib/localflavor/hr/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/hr/forms.py b/django/contrib/localflavor/hr/forms.py deleted file mode 100644 index 083b61c49e..0000000000 --- a/django/contrib/localflavor/hr/forms.py +++ /dev/null @@ -1,282 +0,0 @@ -# -*- coding: utf-8 -*- -""" -HR-specific Form helpers -""" -from __future__ import absolute_import, unicode_literals - -import datetime -import re - -from django.contrib.localflavor.hr.hr_choices import ( - HR_LICENSE_PLATE_PREFIX_CHOICES, HR_COUNTY_CHOICES, - HR_PHONE_NUMBER_PREFIX_CHOICES) -from django.core.validators import EMPTY_VALUES -from django.forms import ValidationError -from django.forms.fields import Field, Select, RegexField -from django.utils.encoding import smart_text -from django.utils.translation import ugettext_lazy as _ - - -jmbg_re = re.compile(r'^(?P
    \d{2})(?P\d{2})(?P\d{3})' + \ - r'(?P\d{2})(?P\d{3})(?P\d{1})$') -oib_re = re.compile(r'^\d{11}$') -plate_re = re.compile(r'^(?P[A-ZČŠŽ]{2})' + \ - r'(?P\d{3,4})(?P[ABCDEFGHIJKLMNOPRSTUVZ]{1,2})$') -postal_code_re = re.compile(r'^\d{5}$') -phone_re = re.compile(r'^(\+385|00385|0)(?P\d{2})(?P\d{6,7})$') -jmbag_re = re.compile(r'^601983(?P\d{1})1(?P\d{10})(?P\d{1})$') - - -class HRCountySelect(Select): - """ - A Select widget that uses a list of counties of Croatia as its choices. - """ - - def __init__(self, attrs=None): - super(HRCountySelect, self).__init__(attrs, choices=HR_COUNTY_CHOICES) - - -class HRLicensePlatePrefixSelect(Select): - """ - A Select widget that uses a list of vehicle license plate prefixes of - Croatia as its choices. - """ - - def __init__(self, attrs=None): - super(HRLicensePlatePrefixSelect, self).__init__(attrs, - choices=HR_LICENSE_PLATE_PREFIX_CHOICES) - - -class HRPhoneNumberPrefixSelect(Select): - """ - A Select widget that uses a list of phone number prefixes of Croatia as its - choices. - """ - - def __init__(self, attrs=None): - super(HRPhoneNumberPrefixSelect, self).__init__(attrs, - choices=HR_PHONE_NUMBER_PREFIX_CHOICES) - - -class HRJMBGField(Field): - """ - Unique Master Citizen Number (JMBG) field. - The number is still in use in Croatia, but it is being replaced by OIB. - - Source: http://en.wikipedia.org/wiki/Unique_Master_Citizen_Number - - For who might be reimplementing: - The "area" regular expression group is used to calculate the region where a - person was registered. Additional validation can be implemented in - accordance with it, however this could result in exclusion of legit - immigrated citizens. Therefore, this field works for any ex-Yugoslavia - country. - """ - default_error_messages = { - 'invalid': _('Enter a valid 13 digit JMBG'), - 'date': _('Error in date segment'), - } - - def clean(self, value): - super(HRJMBGField, self).clean(value) - if value in EMPTY_VALUES: - return '' - - value = value.strip() - - matches = jmbg_re.search(value) - if matches is None: - raise ValidationError(self.error_messages['invalid']) - - # Make sure the date part is correct. - dd = int(matches.group('dd')) - mm = int(matches.group('mm')) - yyy = int(matches.group('yyy')) - try: - datetime.date(yyy, mm, dd) - except ValueError: - raise ValidationError(self.error_messages['date']) - - # Validate checksum. - k = matches.group('k') - checksum = 0 - for i, j in zip(range(7, 1, -1), range(6)): - checksum += i * (int(value[j]) + int(value[13 - i])) - m = 11 - checksum % 11 - if m == 10: - raise ValidationError(self.error_messages['invalid']) - if m == 11 and k != '0': - raise ValidationError(self.error_messages['invalid']) - if not str(m) == k: - raise ValidationError(self.error_messages['invalid']) - - return '%s' % (value, ) - - -class HROIBField(RegexField): - """ - Personal Identification Number of Croatia (OIB) field. - - http://www.oib.hr/ - """ - default_error_messages = { - 'invalid': _('Enter a valid 11 digit OIB'), - } - - def __init__(self, min_length=11, max_length=11, *args, **kwargs): - super(HROIBField, self).__init__(r'^\d{11}$', - min_length, max_length, *args, **kwargs) - - def clean(self, value): - super(HROIBField, self).clean(value) - if value in EMPTY_VALUES: - return '' - - return '%s' % (value, ) - - -class HRLicensePlateField(Field): - """ - Vehicle license plate of Croatia field. Normalizes to the specific format - below. Suffix is constructed from the shared letters of the Croatian and - English alphabets. - - Format examples: - SB 123-A - (but also supports more characters) - ZG 1234-AA - - Used for standardized license plates only. - """ - default_error_messages = { - 'invalid': _('Enter a valid vehicle license plate number'), - 'area': _('Enter a valid location code'), - 'number': _('Number part cannot be zero'), - } - - def clean(self, value): - super(HRLicensePlateField, self).clean(value) - if value in EMPTY_VALUES: - return '' - - value = re.sub(r'[\s\-]+', '', smart_text(value.strip())).upper() - - matches = plate_re.search(value) - if matches is None: - raise ValidationError(self.error_messages['invalid']) - - # Make sure the prefix is in the list of known codes. - prefix = matches.group('prefix') - if prefix not in [choice[0] for choice in HR_LICENSE_PLATE_PREFIX_CHOICES]: - raise ValidationError(self.error_messages['area']) - - # Make sure the number portion is not zero. - number = matches.group('number') - if int(number) == 0: - raise ValidationError(self.error_messages['number']) - - return '%s %s-%s' % (prefix,number,matches.group('suffix'), ) - - -class HRPostalCodeField(Field): - """ - Postal code of Croatia field. - It consists of exactly five digits ranging from 10000 to possibly less than - 60000. - - http://www.posta.hr/main.aspx?id=66 - """ - default_error_messages = { - 'invalid': _('Enter a valid 5 digit postal code'), - } - - def clean(self, value): - super(HRPostalCodeField, self).clean(value) - if value in EMPTY_VALUES: - return '' - - value = value.strip() - if not postal_code_re.search(value): - raise ValidationError(self.error_messages['invalid']) - - # Make sure the number is in valid range. - if not 9999[A-Z]{1,2}) ' + \ - r'(?P\d{1,5})( (?P([A-Z]{1,3}|[1-9][0-9]{,2})))?$') -nik_re = re.compile(r'^\d{16}$') - - -class IDPostCodeField(Field): - """ - An Indonesian post code field. - - http://id.wikipedia.org/wiki/Kode_pos - """ - default_error_messages = { - 'invalid': _('Enter a valid post code'), - } - - def clean(self, value): - super(IDPostCodeField, self).clean(value) - if value in EMPTY_VALUES: - return '' - - value = value.strip() - if not postcode_re.search(value): - raise ValidationError(self.error_messages['invalid']) - - if int(value) < 10110: - raise ValidationError(self.error_messages['invalid']) - - # 1xxx0 - if value[0] == '1' and value[4] != '0': - raise ValidationError(self.error_messages['invalid']) - - return '%s' % (value, ) - - -class IDProvinceSelect(Select): - """ - A Select widget that uses a list of provinces of Indonesia as its - choices. - """ - - def __init__(self, attrs=None): - # Load data in memory only when it is required, see also #17275 - from django.contrib.localflavor.id.id_choices import PROVINCE_CHOICES - super(IDProvinceSelect, self).__init__(attrs, choices=PROVINCE_CHOICES) - - -class IDPhoneNumberField(Field): - """ - An Indonesian telephone number field. - - http://id.wikipedia.org/wiki/Daftar_kode_telepon_di_Indonesia - """ - default_error_messages = { - 'invalid': _('Enter a valid phone number'), - } - - def clean(self, value): - super(IDPhoneNumberField, self).clean(value) - if value in EMPTY_VALUES: - return '' - - phone_number = re.sub(r'[\-\s\(\)]', '', smart_text(value)) - - if phone_re.search(phone_number): - return smart_text(value) - - raise ValidationError(self.error_messages['invalid']) - - -class IDLicensePlatePrefixSelect(Select): - """ - A Select widget that uses a list of vehicle license plate prefix code - of Indonesia as its choices. - - http://id.wikipedia.org/wiki/Tanda_Nomor_Kendaraan_Bermotor - """ - - def __init__(self, attrs=None): - # Load data in memory only when it is required, see also #17275 - from django.contrib.localflavor.id.id_choices import LICENSE_PLATE_PREFIX_CHOICES - super(IDLicensePlatePrefixSelect, self).__init__(attrs, - choices=LICENSE_PLATE_PREFIX_CHOICES) - - -class IDLicensePlateField(Field): - """ - An Indonesian vehicle license plate field. - - http://id.wikipedia.org/wiki/Tanda_Nomor_Kendaraan_Bermotor - - Plus: "B 12345 12" - """ - default_error_messages = { - 'invalid': _('Enter a valid vehicle license plate number'), - } - - def clean(self, value): - # Load data in memory only when it is required, see also #17275 - from django.contrib.localflavor.id.id_choices import LICENSE_PLATE_PREFIX_CHOICES - super(IDLicensePlateField, self).clean(value) - if value in EMPTY_VALUES: - return '' - - plate_number = re.sub(r'\s+', ' ', - smart_text(value.strip())).upper() - - matches = plate_re.search(plate_number) - if matches is None: - raise ValidationError(self.error_messages['invalid']) - - # Make sure prefix is in the list of known codes. - prefix = matches.group('prefix') - if prefix not in [choice[0] for choice in LICENSE_PLATE_PREFIX_CHOICES]: - raise ValidationError(self.error_messages['invalid']) - - # Only Jakarta (prefix B) can have 3 letter suffix. - suffix = matches.group('suffix') - if suffix is not None and len(suffix) == 3 and prefix != 'B': - raise ValidationError(self.error_messages['invalid']) - - # RI plates don't have suffix. - if prefix == 'RI' and suffix is not None and suffix != '': - raise ValidationError(self.error_messages['invalid']) - - # Number can't be zero. - number = matches.group('number') - if number == '0': - raise ValidationError(self.error_messages['invalid']) - - # CD, CC and B 12345 12 - if len(number) == 5 or prefix in ('CD', 'CC'): - # suffix must be numeric and non-empty - if re.match(r'^\d+$', suffix) is None: - raise ValidationError(self.error_messages['invalid']) - - # Known codes range is 12-124 - if prefix in ('CD', 'CC') and not (12 <= int(number) <= 124): - raise ValidationError(self.error_messages['invalid']) - if len(number) == 5 and not (12 <= int(suffix) <= 124): - raise ValidationError(self.error_messages['invalid']) - else: - # suffix must be non-numeric - if suffix is not None and re.match(r'^[A-Z]{,3}$', suffix) is None: - raise ValidationError(self.error_messages['invalid']) - - return plate_number - - -class IDNationalIdentityNumberField(Field): - """ - An Indonesian national identity number (NIK/KTP#) field. - - http://id.wikipedia.org/wiki/Nomor_Induk_Kependudukan - - xx.xxxx.ddmmyy.xxxx - 16 digits (excl. dots) - """ - default_error_messages = { - 'invalid': _('Enter a valid NIK/KTP number'), - } - - def clean(self, value): - super(IDNationalIdentityNumberField, self).clean(value) - if value in EMPTY_VALUES: - return '' - - value = re.sub(r'[\s.]', '', smart_text(value)) - - if not nik_re.search(value): - raise ValidationError(self.error_messages['invalid']) - - if int(value) == 0: - raise ValidationError(self.error_messages['invalid']) - - def valid_nik_date(year, month, day): - try: - t1 = (int(year), int(month), int(day), 0, 0, 0, 0, 0, -1) - d = time.mktime(t1) - t2 = time.localtime(d) - if t1[:3] != t2[:3]: - return False - else: - return True - except (OverflowError, ValueError): - return False - - year = int(value[10:12]) - month = int(value[8:10]) - day = int(value[6:8]) - current_year = time.localtime().tm_year - if year < int(str(current_year)[-2:]): - if not valid_nik_date(2000 + int(year), month, day): - raise ValidationError(self.error_messages['invalid']) - elif not valid_nik_date(1900 + int(year), month, day): - raise ValidationError(self.error_messages['invalid']) - - if value[:6] == '000000' or value[12:] == '0000': - raise ValidationError(self.error_messages['invalid']) - - return '%s.%s.%s.%s' % (value[:2], value[2:6], value[6:12], value[12:]) diff --git a/django/contrib/localflavor/id/id_choices.py b/django/contrib/localflavor/id/id_choices.py deleted file mode 100644 index 64c4bccf13..0000000000 --- a/django/contrib/localflavor/id/id_choices.py +++ /dev/null @@ -1,107 +0,0 @@ -import warnings -from django.utils.translation import ugettext_lazy as _ - -# Reference: http://id.wikipedia.org/wiki/Daftar_provinsi_Indonesia - -# Indonesia does not have an official Province code standard. -# I decided to use unambiguous and consistent (some are common) 3-letter codes. - -warnings.warn( - 'There have been recent changes to the ID localflavor. See the release notes for details', - RuntimeWarning -) - -PROVINCE_CHOICES = ( - ('ACE', _('Aceh')), - ('BLI', _('Bali')), - ('BTN', _('Banten')), - ('BKL', _('Bengkulu')), - ('DIY', _('Yogyakarta')), - ('JKT', _('Jakarta')), - ('GOR', _('Gorontalo')), - ('JMB', _('Jambi')), - ('JBR', _('Jawa Barat')), - ('JTG', _('Jawa Tengah')), - ('JTM', _('Jawa Timur')), - ('KBR', _('Kalimantan Barat')), - ('KSL', _('Kalimantan Selatan')), - ('KTG', _('Kalimantan Tengah')), - ('KTM', _('Kalimantan Timur')), - ('BBL', _('Kepulauan Bangka-Belitung')), - ('KRI', _('Kepulauan Riau')), - ('LPG', _('Lampung')), - ('MLK', _('Maluku')), - ('MUT', _('Maluku Utara')), - ('NTB', _('Nusa Tenggara Barat')), - ('NTT', _('Nusa Tenggara Timur')), - ('PPA', _('Papua')), - ('PPB', _('Papua Barat')), - ('RIU', _('Riau')), - ('SLB', _('Sulawesi Barat')), - ('SLS', _('Sulawesi Selatan')), - ('SLT', _('Sulawesi Tengah')), - ('SLR', _('Sulawesi Tenggara')), - ('SLU', _('Sulawesi Utara')), - ('SMB', _('Sumatera Barat')), - ('SMS', _('Sumatera Selatan')), - ('SMU', _('Sumatera Utara')), -) - -LICENSE_PLATE_PREFIX_CHOICES = ( - ('A', _('Banten')), - ('AA', _('Magelang')), - ('AB', _('Yogyakarta')), - ('AD', _('Surakarta - Solo')), - ('AE', _('Madiun')), - ('AG', _('Kediri')), - ('B', _('Jakarta')), - ('BA', _('Sumatera Barat')), - ('BB', _('Tapanuli')), - ('BD', _('Bengkulu')), - ('BE', _('Lampung')), - ('BG', _('Sumatera Selatan')), - ('BH', _('Jambi')), - ('BK', _('Sumatera Utara')), - ('BL', _('Nanggroe Aceh Darussalam')), - ('BM', _('Riau')), - ('BN', _('Kepulauan Bangka Belitung')), - ('BP', _('Kepulauan Riau')), - ('CC', _('Corps Consulate')), - ('CD', _('Corps Diplomatic')), - ('D', _('Bandung')), - ('DA', _('Kalimantan Selatan')), - ('DB', _('Sulawesi Utara Daratan')), - ('DC', _('Sulawesi Barat')), - ('DD', _('Sulawesi Selatan')), - ('DE', _('Maluku')), - ('DG', _('Maluku Utara')), - ('DH', _('NTT - Timor')), - ('DK', _('Bali')), - ('DL', _('Sulawesi Utara Kepulauan')), - ('DM', _('Gorontalo')), - ('DN', _('Sulawesi Tengah')), - ('DR', _('NTB - Lombok')), - ('DS', _('Papua dan Papua Barat')), - ('DT', _('Sulawesi Tenggara')), - ('E', _('Cirebon')), - ('EA', _('NTB - Sumbawa')), - ('EB', _('NTT - Flores')), - ('ED', _('NTT - Sumba')), - ('F', _('Bogor')), - ('G', _('Pekalongan')), - ('H', _('Semarang')), - ('K', _('Pati')), - ('KB', _('Kalimantan Barat')), - ('KH', _('Kalimantan Tengah')), - ('KT', _('Kalimantan Timur')), - ('L', _('Surabaya')), - ('M', _('Madura')), - ('N', _('Malang')), - ('P', _('Jember')), - ('R', _('Banyumas')), - ('RI', _('Federal Government')), - ('S', _('Bojonegoro')), - ('T', _('Purwakarta')), - ('W', _('Sidoarjo')), - ('Z', _('Garut')), -) diff --git a/django/contrib/localflavor/ie/__init__.py b/django/contrib/localflavor/ie/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/ie/forms.py b/django/contrib/localflavor/ie/forms.py deleted file mode 100644 index cb401019c2..0000000000 --- a/django/contrib/localflavor/ie/forms.py +++ /dev/null @@ -1,16 +0,0 @@ -""" -UK-specific Form helpers -""" - -from __future__ import absolute_import - -from django.contrib.localflavor.ie.ie_counties import IE_COUNTY_CHOICES -from django.forms.fields import Select - - -class IECountySelect(Select): - """ - A Select widget that uses a list of Irish Counties as its choices. - """ - def __init__(self, attrs=None): - super(IECountySelect, self).__init__(attrs, choices=IE_COUNTY_CHOICES) diff --git a/django/contrib/localflavor/ie/ie_counties.py b/django/contrib/localflavor/ie/ie_counties.py deleted file mode 100644 index c8991e01ae..0000000000 --- a/django/contrib/localflavor/ie/ie_counties.py +++ /dev/null @@ -1,40 +0,0 @@ -""" -Sources: - Irish Counties: http://en.wikipedia.org/wiki/Counties_of_Ireland -""" -from django.utils.translation import ugettext_lazy as _ - -IE_COUNTY_CHOICES = ( - ('antrim', _('Antrim')), - ('armagh', _('Armagh')), - ('carlow', _('Carlow')), - ('cavan', _('Cavan')), - ('clare', _('Clare')), - ('cork', _('Cork')), - ('derry', _('Derry')), - ('donegal', _('Donegal')), - ('down', _('Down')), - ('dublin', _('Dublin')), - ('fermanagh', _('Fermanagh')), - ('galway', _('Galway')), - ('kerry', _('Kerry')), - ('kildare', _('Kildare')), - ('kilkenny', _('Kilkenny')), - ('laois', _('Laois')), - ('leitrim', _('Leitrim')), - ('limerick', _('Limerick')), - ('longford', _('Longford')), - ('louth', _('Louth')), - ('mayo', _('Mayo')), - ('meath', _('Meath')), - ('monaghan', _('Monaghan')), - ('offaly', _('Offaly')), - ('roscommon', _('Roscommon')), - ('sligo', _('Sligo')), - ('tipperary', _('Tipperary')), - ('tyrone', _('Tyrone')), - ('waterford', _('Waterford')), - ('westmeath', _('Westmeath')), - ('wexford', _('Wexford')), - ('wicklow', _('Wicklow')), -) diff --git a/django/contrib/localflavor/il/__init__.py b/django/contrib/localflavor/il/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/il/forms.py b/django/contrib/localflavor/il/forms.py deleted file mode 100644 index de6ba6b23d..0000000000 --- a/django/contrib/localflavor/il/forms.py +++ /dev/null @@ -1,67 +0,0 @@ -""" -Israeli-specific form helpers -""" -from __future__ import unicode_literals -import re - -from django.core.exceptions import ValidationError -from django.core.validators import EMPTY_VALUES -from django.forms.fields import RegexField, Field, EMPTY_VALUES -from django.utils.checksums import luhn -from django.utils.translation import ugettext_lazy as _ - -# Israeli ID numbers consist of up to 8 digits followed by a checksum digit. -# Numbers which are shorter than 8 digits are effectively left-zero-padded. -# The checksum digit is occasionally separated from the number by a hyphen, -# and is calculated using the luhn algorithm. -# -# Relevant references: -# -# (hebrew) http://he.wikipedia.org/wiki/%D7%9E%D7%A1%D7%A4%D7%A8_%D7%96%D7%94%D7%95%D7%AA_(%D7%99%D7%A9%D7%A8%D7%90%D7%9C) -# (hebrew) http://he.wikipedia.org/wiki/%D7%A1%D7%A4%D7%A8%D7%AA_%D7%91%D7%99%D7%A7%D7%95%D7%A8%D7%AA - -id_number_re = re.compile(r'^(?P\d{1,8})-?(?P\d)$') - -class ILPostalCodeField(RegexField): - """ - A form field that validates its input as an Israeli postal code. - Valid form is XXXXX where X represents integer. - """ - - default_error_messages = { - 'invalid': _('Enter a postal code in the format XXXXX'), - } - - def __init__(self, *args, **kwargs): - super(ILPostalCodeField, self).__init__(r'^\d{5}$', *args, **kwargs) - - def clean(self, value): - if value not in EMPTY_VALUES: - value = value.replace(" ", "") - return super(ILPostalCodeField, self).clean(value) - - -class ILIDNumberField(Field): - """ - A form field that validates its input as an Israeli identification number. - Valid form is per the Israeli ID specification. - """ - - default_error_messages = { - 'invalid': _('Enter a valid ID number.'), - } - - def clean(self, value): - value = super(ILIDNumberField, self).clean(value) - - if value in EMPTY_VALUES: - return '' - - match = id_number_re.match(value) - if not match: - raise ValidationError(self.error_messages['invalid']) - - value = match.group('number') + match.group('check') - if not luhn(value): - raise ValidationError(self.error_messages['invalid']) - return value diff --git a/django/contrib/localflavor/in_/__init__.py b/django/contrib/localflavor/in_/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/in_/forms.py b/django/contrib/localflavor/in_/forms.py deleted file mode 100644 index 5c1d009ef4..0000000000 --- a/django/contrib/localflavor/in_/forms.py +++ /dev/null @@ -1,115 +0,0 @@ -""" -India-specific Form helpers. -""" - -from __future__ import absolute_import, unicode_literals - -import re - -from django.contrib.localflavor.in_.in_states import STATES_NORMALIZED, STATE_CHOICES -from django.core.validators import EMPTY_VALUES -from django.forms import ValidationError -from django.forms.fields import Field, RegexField, CharField, Select -from django.utils.encoding import smart_text -from django.utils.translation import ugettext_lazy as _ - - -phone_digits_re = re.compile(r""" -( - (?P # the std-code group - ^0 # all std-codes start with 0 - ( - (?P\d{2}) | # either two, three or four digits - (?P\d{3}) | # following the 0 - (?P\d{4}) - ) - ) - [-\s] # space or - - (?P # the phone number group - [1-6] # first digit of phone number - ( - (?(twodigit)\d{7}) | # 7 more phone digits for 3 digit stdcode - (?(threedigit)\d{6}) | # 6 more phone digits for 4 digit stdcode - (?(fourdigit)\d{5}) # 5 more phone digits for 5 digit stdcode - ) - ) -)$""", re.VERBOSE) - - -class INZipCodeField(RegexField): - default_error_messages = { - 'invalid': _('Enter a zip code in the format XXXXXX or XXX XXX.'), - } - - def __init__(self, max_length=None, min_length=None, *args, **kwargs): - super(INZipCodeField, self).__init__(r'^\d{3}\s?\d{3}$', - max_length, min_length, *args, **kwargs) - - def clean(self, value): - super(INZipCodeField, self).clean(value) - if value in EMPTY_VALUES: - return '' - # Convert to "NNNNNN" if "NNN NNN" given - value = re.sub(r'^(\d{3})\s(\d{3})$', r'\1\2', value) - return value - - -class INStateField(Field): - """ - A form field that validates its input is a Indian state name or - abbreviation. It normalizes the input to the standard two-letter vehicle - registration abbreviation for the given state or union territory - """ - default_error_messages = { - 'invalid': _('Enter an Indian state or territory.'), - } - - def clean(self, value): - super(INStateField, self).clean(value) - if value in EMPTY_VALUES: - return '' - try: - value = value.strip().lower() - except AttributeError: - pass - else: - try: - return smart_text(STATES_NORMALIZED[value.strip().lower()]) - except KeyError: - pass - raise ValidationError(self.error_messages['invalid']) - - -class INStateSelect(Select): - """ - A Select widget that uses a list of Indian states/territories as its - choices. - """ - def __init__(self, attrs=None): - super(INStateSelect, self).__init__(attrs, choices=STATE_CHOICES) - - -class INPhoneNumberField(CharField): - """ - INPhoneNumberField validates that the data is a valid Indian phone number, - including the STD code. It's normalised to 0XXX-XXXXXXX or 0XXX XXXXXXX - format. The first string is the STD code which is a '0' followed by 2-4 - digits. The second string is 8 digits if the STD code is 3 digits, 7 - digits if the STD code is 4 digits and 6 digits if the STD code is 5 - digits. The second string will start with numbers between 1 and 6. The - separator is either a space or a hyphen. - """ - default_error_messages = { - 'invalid': _('Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format.'), - } - - def clean(self, value): - super(INPhoneNumberField, self).clean(value) - if value in EMPTY_VALUES: - return '' - value = smart_text(value) - m = phone_digits_re.match(value) - if m: - return '%s' % (value) - raise ValidationError(self.error_messages['invalid']) - diff --git a/django/contrib/localflavor/in_/in_states.py b/django/contrib/localflavor/in_/in_states.py deleted file mode 100644 index 375b201311..0000000000 --- a/django/contrib/localflavor/in_/in_states.py +++ /dev/null @@ -1,133 +0,0 @@ -""" -A mapping of state misspellings/abbreviations to normalized abbreviations, and -an alphabetical list of states for use as `choices` in a formfield. - -This exists in this standalone file so that it's only imported into memory -when explicitly needed. -""" - -STATE_CHOICES = ( - ('KA', 'Karnataka'), - ('AP', 'Andhra Pradesh'), - ('KL', 'Kerala'), - ('TN', 'Tamil Nadu'), - ('MH', 'Maharashtra'), - ('UP', 'Uttar Pradesh'), - ('GA', 'Goa'), - ('GJ', 'Gujarat'), - ('RJ', 'Rajasthan'), - ('HP', 'Himachal Pradesh'), - ('JK', 'Jammu and Kashmir'), - ('AR', 'Arunachal Pradesh'), - ('AS', 'Assam'), - ('BR', 'Bihar'), - ('CG', 'Chattisgarh'), - ('HR', 'Haryana'), - ('JH', 'Jharkhand'), - ('MP', 'Madhya Pradesh'), - ('MN', 'Manipur'), - ('ML', 'Meghalaya'), - ('MZ', 'Mizoram'), - ('NL', 'Nagaland'), - ('OR', 'Orissa'), - ('PB', 'Punjab'), - ('SK', 'Sikkim'), - ('TR', 'Tripura'), - ('UA', 'Uttarakhand'), - ('WB', 'West Bengal'), - - # Union Territories - ('AN', 'Andaman and Nicobar'), - ('CH', 'Chandigarh'), - ('DN', 'Dadra and Nagar Haveli'), - ('DD', 'Daman and Diu'), - ('DL', 'Delhi'), - ('LD', 'Lakshadweep'), - ('PY', 'Pondicherry'), -) - -STATES_NORMALIZED = { - 'an': 'AN', - 'andaman and nicobar': 'AN', - 'andra pradesh': 'AP', - 'andrapradesh': 'AP', - 'andhrapradesh': 'AP', - 'ap': 'AP', - 'andhra pradesh': 'AP', - 'ar': 'AR', - 'arunachal pradesh': 'AR', - 'assam': 'AS', - 'as': 'AS', - 'bihar': 'BR', - 'br': 'BR', - 'cg': 'CG', - 'chattisgarh': 'CG', - 'ch': 'CH', - 'chandigarh': 'CH', - 'daman and diu': 'DD', - 'dd': 'DD', - 'dl': 'DL', - 'delhi': 'DL', - 'dn': 'DN', - 'dadra and nagar haveli': 'DN', - 'ga': 'GA', - 'goa': 'GA', - 'gj': 'GJ', - 'gujarat': 'GJ', - 'himachal pradesh': 'HP', - 'hp': 'HP', - 'hr': 'HR', - 'haryana': 'HR', - 'jharkhand': 'JH', - 'jh': 'JH', - 'jammu and kashmir': 'JK', - 'jk': 'JK', - 'karnataka': 'KA', - 'karnatka': 'KA', - 'ka': 'KA', - 'kerala': 'KL', - 'kl': 'KL', - 'ld': 'LD', - 'lakshadweep': 'LD', - 'maharastra': 'MH', - 'mh': 'MH', - 'maharashtra': 'MH', - 'meghalaya': 'ML', - 'ml': 'ML', - 'mn': 'MN', - 'manipur': 'MN', - 'madhya pradesh': 'MP', - 'mp': 'MP', - 'mizoram': 'MZ', - 'mizo': 'MZ', - 'mz': 'MZ', - 'nl': 'NL', - 'nagaland': 'NL', - 'orissa': 'OR', - 'odisa': 'OR', - 'orisa': 'OR', - 'or': 'OR', - 'pb': 'PB', - 'punjab': 'PB', - 'py': 'PY', - 'pondicherry': 'PY', - 'rajasthan': 'RJ', - 'rajastan': 'RJ', - 'rj': 'RJ', - 'sikkim': 'SK', - 'sk': 'SK', - 'tamil nadu': 'TN', - 'tn': 'TN', - 'tamilnadu': 'TN', - 'tamilnad': 'TN', - 'tr': 'TR', - 'tripura': 'TR', - 'ua': 'UA', - 'uttarakhand': 'UA', - 'up': 'UP', - 'uttar pradesh': 'UP', - 'westbengal': 'WB', - 'bengal': 'WB', - 'wb': 'WB', - 'west bengal': 'WB' -} diff --git a/django/contrib/localflavor/is_/__init__.py b/django/contrib/localflavor/is_/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/is_/forms.py b/django/contrib/localflavor/is_/forms.py deleted file mode 100644 index 1ae3e012a1..0000000000 --- a/django/contrib/localflavor/is_/forms.py +++ /dev/null @@ -1,86 +0,0 @@ -""" -Iceland specific form helpers. -""" - -from __future__ import absolute_import, unicode_literals - -from django.contrib.localflavor.is_.is_postalcodes import IS_POSTALCODES -from django.core.validators import EMPTY_VALUES -from django.forms import ValidationError -from django.forms.fields import RegexField -from django.forms.widgets import Select -from django.utils.encoding import smart_text -from django.utils.translation import ugettext_lazy as _ - - -class ISIdNumberField(RegexField): - """ - Icelandic identification number (kennitala). This is a number every citizen - of Iceland has. - """ - default_error_messages = { - 'invalid': _('Enter a valid Icelandic identification number. The format is XXXXXX-XXXX.'), - 'checksum': _('The Icelandic identification number is not valid.'), - } - - def __init__(self, max_length=11, min_length=10, *args, **kwargs): - super(ISIdNumberField, self).__init__(r'^\d{6}(-| )?\d{4}$', - max_length, min_length, *args, **kwargs) - - def clean(self, value): - value = super(ISIdNumberField, self).clean(value) - - if value in EMPTY_VALUES: - return '' - - value = self._canonify(value) - if self._validate(value): - return self._format(value) - else: - raise ValidationError(self.error_messages['checksum']) - - def _canonify(self, value): - """ - Returns the value as only digits. - """ - return value.replace('-', '').replace(' ', '') - - def _validate(self, value): - """ - Takes in the value in canonical form and checks the verifier digit. The - method is modulo 11. - """ - check = [3, 2, 7, 6, 5, 4, 3, 2, 1, 0] - return sum([int(value[i]) * check[i] for i in range(10)]) % 11 == 0 - - def _format(self, value): - """ - Takes in the value in canonical form and returns it in the common - display format. - """ - return smart_text(value[:6]+'-'+value[6:]) - -class ISPhoneNumberField(RegexField): - """ - Icelandic phone number. Seven digits with an optional hyphen or space after - the first three digits. - """ - def __init__(self, max_length=8, min_length=7, *args, **kwargs): - super(ISPhoneNumberField, self).__init__(r'^\d{3}(-| )?\d{4}$', - max_length, min_length, *args, **kwargs) - - def clean(self, value): - value = super(ISPhoneNumberField, self).clean(value) - - if value in EMPTY_VALUES: - return '' - - return value.replace('-', '').replace(' ', '') - -class ISPostalCodeSelect(Select): - """ - A Select widget that uses a list of Icelandic postal codes as its choices. - """ - def __init__(self, attrs=None): - super(ISPostalCodeSelect, self).__init__(attrs, choices=IS_POSTALCODES) - diff --git a/django/contrib/localflavor/is_/is_postalcodes.py b/django/contrib/localflavor/is_/is_postalcodes.py deleted file mode 100644 index f1f3357c1c..0000000000 --- a/django/contrib/localflavor/is_/is_postalcodes.py +++ /dev/null @@ -1,152 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -IS_POSTALCODES = ( - ('101', '101 Reykjavík'), - ('103', '103 Reykjavík'), - ('104', '104 Reykjavík'), - ('105', '105 Reykjavík'), - ('107', '107 Reykjavík'), - ('108', '108 Reykjavík'), - ('109', '109 Reykjavík'), - ('110', '110 Reykjavík'), - ('111', '111 Reykjavík'), - ('112', '112 Reykjavík'), - ('113', '113 Reykjavík'), - ('116', '116 Kjalarnes'), - ('121', '121 Reykjavík'), - ('123', '123 Reykjavík'), - ('124', '124 Reykjavík'), - ('125', '125 Reykjavík'), - ('127', '127 Reykjavík'), - ('128', '128 Reykjavík'), - ('129', '129 Reykjavík'), - ('130', '130 Reykjavík'), - ('132', '132 Reykjavík'), - ('150', '150 Reykjavík'), - ('155', '155 Reykjavík'), - ('170', '170 Seltjarnarnes'), - ('172', '172 Seltjarnarnes'), - ('190', '190 Vogar'), - ('200', '200 Kópavogur'), - ('201', '201 Kópavogur'), - ('202', '202 Kópavogur'), - ('203', '203 Kópavogur'), - ('210', '210 Garðabær'), - ('212', '212 Garðabær'), - ('220', '220 Hafnarfjörður'), - ('221', '221 Hafnarfjörður'), - ('222', '222 Hafnarfjörður'), - ('225', '225 Álftanes'), - ('230', '230 Reykjanesbær'), - ('232', '232 Reykjanesbær'), - ('233', '233 Reykjanesbær'), - ('235', '235 Keflavíkurflugvöllur'), - ('240', '240 Grindavík'), - ('245', '245 Sandgerði'), - ('250', '250 Garður'), - ('260', '260 Reykjanesbær'), - ('270', '270 Mosfellsbær'), - ('300', '300 Akranes'), - ('301', '301 Akranes'), - ('302', '302 Akranes'), - ('310', '310 Borgarnes'), - ('311', '311 Borgarnes'), - ('320', '320 Reykholt í Borgarfirði'), - ('340', '340 Stykkishólmur'), - ('345', '345 Flatey á Breiðafirði'), - ('350', '350 Grundarfjörður'), - ('355', '355 Ólafsvík'), - ('356', '356 Snæfellsbær'), - ('360', '360 Hellissandur'), - ('370', '370 Búðardalur'), - ('371', '371 Búðardalur'), - ('380', '380 Reykhólahreppur'), - ('400', '400 Ísafjörður'), - ('401', '401 Ísafjörður'), - ('410', '410 Hnífsdalur'), - ('415', '415 Bolungarvík'), - ('420', '420 Súðavík'), - ('425', '425 Flateyri'), - ('430', '430 Suðureyri'), - ('450', '450 Patreksfjörður'), - ('451', '451 Patreksfjörður'), - ('460', '460 Tálknafjörður'), - ('465', '465 Bíldudalur'), - ('470', '470 Þingeyri'), - ('471', '471 Þingeyri'), - ('500', '500 Staður'), - ('510', '510 Hólmavík'), - ('512', '512 Hólmavík'), - ('520', '520 Drangsnes'), - ('522', '522 Kjörvogur'), - ('523', '523 Bær'), - ('524', '524 Norðurfjörður'), - ('530', '530 Hvammstangi'), - ('531', '531 Hvammstangi'), - ('540', '540 Blönduós'), - ('541', '541 Blönduós'), - ('545', '545 Skagaströnd'), - ('550', '550 Sauðárkrókur'), - ('551', '551 Sauðárkrókur'), - ('560', '560 Varmahlíð'), - ('565', '565 Hofsós'), - ('566', '566 Hofsós'), - ('570', '570 Fljót'), - ('580', '580 Siglufjörður'), - ('600', '600 Akureyri'), - ('601', '601 Akureyri'), - ('602', '602 Akureyri'), - ('603', '603 Akureyri'), - ('610', '610 Grenivík'), - ('611', '611 Grímsey'), - ('620', '620 Dalvík'), - ('621', '621 Dalvík'), - ('625', '625 Ólafsfjörður'), - ('630', '630 Hrísey'), - ('640', '640 Húsavík'), - ('641', '641 Húsavík'), - ('645', '645 Fosshóll'), - ('650', '650 Laugar'), - ('660', '660 Mývatn'), - ('670', '670 Kópasker'), - ('671', '671 Kópasker'), - ('675', '675 Raufarhöfn'), - ('680', '680 Þórshöfn'), - ('681', '681 Þórshöfn'), - ('685', '685 Bakkafjörður'), - ('690', '690 Vopnafjörður'), - ('700', '700 Egilsstaðir'), - ('701', '701 Egilsstaðir'), - ('710', '710 Seyðisfjörður'), - ('715', '715 Mjóifjörður'), - ('720', '720 Borgarfjörður eystri'), - ('730', '730 Reyðarfjörður'), - ('735', '735 Eskifjörður'), - ('740', '740 Neskaupstaður'), - ('750', '750 Fáskrúðsfjörður'), - ('755', '755 Stöðvarfjörður'), - ('760', '760 Breiðdalsvík'), - ('765', '765 Djúpivogur'), - ('780', '780 Höfn í Hornafirði'), - ('781', '781 Höfn í Hornafirði'), - ('785', '785 Öræfi'), - ('800', '800 Selfoss'), - ('801', '801 Selfoss'), - ('802', '802 Selfoss'), - ('810', '810 Hveragerði'), - ('815', '815 Þorlákshöfn'), - ('820', '820 Eyrarbakki'), - ('825', '825 Stokkseyri'), - ('840', '840 Laugarvatn'), - ('845', '845 Flúðir'), - ('850', '850 Hella'), - ('851', '851 Hella'), - ('860', '860 Hvolsvöllur'), - ('861', '861 Hvolsvöllur'), - ('870', '870 Vík'), - ('871', '871 Vík'), - ('880', '880 Kirkjubæjarklaustur'), - ('900', '900 Vestmannaeyjar'), - ('902', '902 Vestmannaeyjar') -) diff --git a/django/contrib/localflavor/it/__init__.py b/django/contrib/localflavor/it/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/it/forms.py b/django/contrib/localflavor/it/forms.py deleted file mode 100644 index 916ce9bb3d..0000000000 --- a/django/contrib/localflavor/it/forms.py +++ /dev/null @@ -1,88 +0,0 @@ -""" -IT-specific Form helpers -""" - -from __future__ import absolute_import, unicode_literals - -import re - -from django.contrib.localflavor.it.it_province import PROVINCE_CHOICES -from django.contrib.localflavor.it.it_region import REGION_CHOICES -from django.contrib.localflavor.it.util import ssn_check_digit, vat_number_check_digit -from django.core.validators import EMPTY_VALUES -from django.forms import ValidationError -from django.forms.fields import Field, RegexField, Select -from django.utils.translation import ugettext_lazy as _ -from django.utils.encoding import smart_text - - -class ITZipCodeField(RegexField): - default_error_messages = { - 'invalid': _('Enter a valid zip code.'), - } - def __init__(self, max_length=None, min_length=None, *args, **kwargs): - super(ITZipCodeField, self).__init__(r'^\d{5}$', - max_length, min_length, *args, **kwargs) - -class ITRegionSelect(Select): - """ - A Select widget that uses a list of IT regions as its choices. - """ - def __init__(self, attrs=None): - super(ITRegionSelect, self).__init__(attrs, choices=REGION_CHOICES) - -class ITProvinceSelect(Select): - """ - A Select widget that uses a list of IT provinces as its choices. - """ - def __init__(self, attrs=None): - super(ITProvinceSelect, self).__init__(attrs, choices=PROVINCE_CHOICES) - -class ITSocialSecurityNumberField(RegexField): - """ - A form field that validates Italian Social Security numbers (codice fiscale). - For reference see http://www.agenziaentrate.it/ and search for - 'Informazioni sulla codificazione delle persone fisiche'. - """ - default_error_messages = { - 'invalid': _('Enter a valid Social Security number.'), - } - - def __init__(self, max_length=None, min_length=None, *args, **kwargs): - super(ITSocialSecurityNumberField, self).__init__(r'^\w{3}\s*\w{3}\s*\w{5}\s*\w{5}$', - max_length, min_length, *args, **kwargs) - - def clean(self, value): - value = super(ITSocialSecurityNumberField, self).clean(value) - if value in EMPTY_VALUES: - return '' - value = re.sub('\s', '', value).upper() - try: - check_digit = ssn_check_digit(value) - except ValueError: - raise ValidationError(self.error_messages['invalid']) - if not value[15] == check_digit: - raise ValidationError(self.error_messages['invalid']) - return value - -class ITVatNumberField(Field): - """ - A form field that validates Italian VAT numbers (partita IVA). - """ - default_error_messages = { - 'invalid': _('Enter a valid VAT number.'), - } - - def clean(self, value): - value = super(ITVatNumberField, self).clean(value) - if value in EMPTY_VALUES: - return '' - try: - vat_number = int(value) - except ValueError: - raise ValidationError(self.error_messages['invalid']) - vat_number = str(vat_number).zfill(11) - check_digit = vat_number_check_digit(vat_number[0:10]) - if not vat_number[10] == check_digit: - raise ValidationError(self.error_messages['invalid']) - return smart_text(vat_number) diff --git a/django/contrib/localflavor/it/it_province.py b/django/contrib/localflavor/it/it_province.py deleted file mode 100644 index 5aad1611dd..0000000000 --- a/django/contrib/localflavor/it/it_province.py +++ /dev/null @@ -1,115 +0,0 @@ -# -*- coding: utf-8 -* -from __future__ import unicode_literals - -PROVINCE_CHOICES = ( - ('AG', 'Agrigento'), - ('AL', 'Alessandria'), - ('AN', 'Ancona'), - ('AO', 'Aosta'), - ('AR', 'Arezzo'), - ('AP', 'Ascoli Piceno'), - ('AT', 'Asti'), - ('AV', 'Avellino'), - ('BA', 'Bari'), - ('BT', 'Barletta-Andria-Trani'), # active starting from 2009 - ('BL', 'Belluno'), - ('BN', 'Benevento'), - ('BG', 'Bergamo'), - ('BI', 'Biella'), - ('BO', 'Bologna'), - ('BZ', 'Bolzano/Bozen'), - ('BS', 'Brescia'), - ('BR', 'Brindisi'), - ('CA', 'Cagliari'), - ('CL', 'Caltanissetta'), - ('CB', 'Campobasso'), - ('CI', 'Carbonia-Iglesias'), - ('CE', 'Caserta'), - ('CT', 'Catania'), - ('CZ', 'Catanzaro'), - ('CH', 'Chieti'), - ('CO', 'Como'), - ('CS', 'Cosenza'), - ('CR', 'Cremona'), - ('KR', 'Crotone'), - ('CN', 'Cuneo'), - ('EN', 'Enna'), - ('FM', 'Fermo'), # active starting from 2009 - ('FE', 'Ferrara'), - ('FI', 'Firenze'), - ('FG', 'Foggia'), - ('FC', 'Forlì-Cesena'), - ('FR', 'Frosinone'), - ('GE', 'Genova'), - ('GO', 'Gorizia'), - ('GR', 'Grosseto'), - ('IM', 'Imperia'), - ('IS', 'Isernia'), - ('SP', 'La Spezia'), - ('AQ', 'L’Aquila'), - ('LT', 'Latina'), - ('LE', 'Lecce'), - ('LC', 'Lecco'), - ('LI', 'Livorno'), - ('LO', 'Lodi'), - ('LU', 'Lucca'), - ('MC', 'Macerata'), - ('MN', 'Mantova'), - ('MS', 'Massa-Carrara'), - ('MT', 'Matera'), - ('VS', 'Medio Campidano'), - ('ME', 'Messina'), - ('MI', 'Milano'), - ('MO', 'Modena'), - ('MB', 'Monza e Brianza'), # active starting from 2009 - ('NA', 'Napoli'), - ('NO', 'Novara'), - ('NU', 'Nuoro'), - ('OG', 'Ogliastra'), - ('OT', 'Olbia-Tempio'), - ('OR', 'Oristano'), - ('PD', 'Padova'), - ('PA', 'Palermo'), - ('PR', 'Parma'), - ('PV', 'Pavia'), - ('PG', 'Perugia'), - ('PU', 'Pesaro e Urbino'), - ('PE', 'Pescara'), - ('PC', 'Piacenza'), - ('PI', 'Pisa'), - ('PT', 'Pistoia'), - ('PN', 'Pordenone'), - ('PZ', 'Potenza'), - ('PO', 'Prato'), - ('RG', 'Ragusa'), - ('RA', 'Ravenna'), - ('RC', 'Reggio Calabria'), - ('RE', 'Reggio Emilia'), - ('RI', 'Rieti'), - ('RN', 'Rimini'), - ('RM', 'Roma'), - ('RO', 'Rovigo'), - ('SA', 'Salerno'), - ('SS', 'Sassari'), - ('SV', 'Savona'), - ('SI', 'Siena'), - ('SR', 'Siracusa'), - ('SO', 'Sondrio'), - ('TA', 'Taranto'), - ('TE', 'Teramo'), - ('TR', 'Terni'), - ('TO', 'Torino'), - ('TP', 'Trapani'), - ('TN', 'Trento'), - ('TV', 'Treviso'), - ('TS', 'Trieste'), - ('UD', 'Udine'), - ('VA', 'Varese'), - ('VE', 'Venezia'), - ('VB', 'Verbano Cusio Ossola'), - ('VC', 'Vercelli'), - ('VR', 'Verona'), - ('VV', 'Vibo Valentia'), - ('VI', 'Vicenza'), - ('VT', 'Viterbo'), -) diff --git a/django/contrib/localflavor/it/it_region.py b/django/contrib/localflavor/it/it_region.py deleted file mode 100644 index e12a1e731b..0000000000 --- a/django/contrib/localflavor/it/it_region.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -* -from __future__ import unicode_literals - -REGION_CHOICES = ( - ('ABR', 'Abruzzo'), - ('BAS', 'Basilicata'), - ('CAL', 'Calabria'), - ('CAM', 'Campania'), - ('EMR', 'Emilia-Romagna'), - ('FVG', 'Friuli-Venezia Giulia'), - ('LAZ', 'Lazio'), - ('LIG', 'Liguria'), - ('LOM', 'Lombardia'), - ('MAR', 'Marche'), - ('MOL', 'Molise'), - ('PMN', 'Piemonte'), - ('PUG', 'Puglia'), - ('SAR', 'Sardegna'), - ('SIC', 'Sicilia'), - ('TOS', 'Toscana'), - ('TAA', 'Trentino-Alto Adige'), - ('UMB', 'Umbria'), - ('VAO', 'Valle d’Aosta'), - ('VEN', 'Veneto'), -) diff --git a/django/contrib/localflavor/it/util.py b/django/contrib/localflavor/it/util.py deleted file mode 100644 index e1aa9c0419..0000000000 --- a/django/contrib/localflavor/it/util.py +++ /dev/null @@ -1,44 +0,0 @@ -from django.utils.encoding import smart_text - -def ssn_check_digit(value): - "Calculate Italian social security number check digit." - ssn_even_chars = { - '0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, - '9': 9, 'A': 0, 'B': 1, 'C': 2, 'D': 3, 'E': 4, 'F': 5, 'G': 6, 'H': 7, - 'I': 8, 'J': 9, 'K': 10, 'L': 11, 'M': 12, 'N': 13, 'O': 14, 'P': 15, - 'Q': 16, 'R': 17, 'S': 18, 'T': 19, 'U': 20, 'V': 21, 'W': 22, 'X': 23, - 'Y': 24, 'Z': 25 - } - ssn_odd_chars = { - '0': 1, '1': 0, '2': 5, '3': 7, '4': 9, '5': 13, '6': 15, '7': 17, '8': - 19, '9': 21, 'A': 1, 'B': 0, 'C': 5, 'D': 7, 'E': 9, 'F': 13, 'G': 15, - 'H': 17, 'I': 19, 'J': 21, 'K': 2, 'L': 4, 'M': 18, 'N': 20, 'O': 11, - 'P': 3, 'Q': 6, 'R': 8, 'S': 12, 'T': 14, 'U': 16, 'V': 10, 'W': 22, - 'X': 25, 'Y': 24, 'Z': 23 - } - # Chars from 'A' to 'Z' - ssn_check_digits = [chr(x) for x in range(65, 91)] - - ssn = value.upper() - total = 0 - for i in range(0, 15): - try: - if i % 2 == 0: - total += ssn_odd_chars[ssn[i]] - else: - total += ssn_even_chars[ssn[i]] - except KeyError: - msg = "Character '%(char)s' is not allowed." % {'char': ssn[i]} - raise ValueError(msg) - return ssn_check_digits[total % 26] - -def vat_number_check_digit(vat_number): - "Calculate Italian VAT number check digit." - normalized_vat_number = smart_text(vat_number).zfill(10) - total = 0 - for i in range(0, 10, 2): - total += int(normalized_vat_number[i]) - for i in range(1, 11, 2): - quotient , remainder = divmod(int(normalized_vat_number[i]) * 2, 10) - total += quotient + remainder - return smart_text((10 - total % 10) % 10) diff --git a/django/contrib/localflavor/jp/__init__.py b/django/contrib/localflavor/jp/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/jp/forms.py b/django/contrib/localflavor/jp/forms.py deleted file mode 100644 index 2529364d5a..0000000000 --- a/django/contrib/localflavor/jp/forms.py +++ /dev/null @@ -1,39 +0,0 @@ -""" -JP-specific Form helpers -""" - -from __future__ import absolute_import - -from django.contrib.localflavor.jp.jp_prefectures import JP_PREFECTURES -from django.forms.fields import RegexField, Select -from django.utils.translation import ugettext_lazy as _ - - -class JPPostalCodeField(RegexField): - """ - A form field that validates its input is a Japanese postcode. - - Accepts 7 digits, with or without a hyphen. - """ - default_error_messages = { - 'invalid': _('Enter a postal code in the format XXXXXXX or XXX-XXXX.'), - } - - def __init__(self, max_length=None, min_length=None, *args, **kwargs): - super(JPPostalCodeField, self).__init__(r'^\d{3}-\d{4}$|^\d{7}$', - max_length, min_length, *args, **kwargs) - - def clean(self, value): - """ - Validates the input and returns a string that contains only numbers. - Returns an empty string for empty values. - """ - v = super(JPPostalCodeField, self).clean(value) - return v.replace('-', '') - -class JPPrefectureSelect(Select): - """ - A Select widget that uses a list of Japanese prefectures as its choices. - """ - def __init__(self, attrs=None): - super(JPPrefectureSelect, self).__init__(attrs, choices=JP_PREFECTURES) diff --git a/django/contrib/localflavor/jp/jp_prefectures.py b/django/contrib/localflavor/jp/jp_prefectures.py deleted file mode 100644 index f079fe6a3d..0000000000 --- a/django/contrib/localflavor/jp/jp_prefectures.py +++ /dev/null @@ -1,51 +0,0 @@ -from django.utils.translation import ugettext_lazy - -JP_PREFECTURES = ( - ('hokkaido', ugettext_lazy('Hokkaido'),), - ('aomori', ugettext_lazy('Aomori'),), - ('iwate', ugettext_lazy('Iwate'),), - ('miyagi', ugettext_lazy('Miyagi'),), - ('akita', ugettext_lazy('Akita'),), - ('yamagata', ugettext_lazy('Yamagata'),), - ('fukushima', ugettext_lazy('Fukushima'),), - ('ibaraki', ugettext_lazy('Ibaraki'),), - ('tochigi', ugettext_lazy('Tochigi'),), - ('gunma', ugettext_lazy('Gunma'),), - ('saitama', ugettext_lazy('Saitama'),), - ('chiba', ugettext_lazy('Chiba'),), - ('tokyo', ugettext_lazy('Tokyo'),), - ('kanagawa', ugettext_lazy('Kanagawa'),), - ('yamanashi', ugettext_lazy('Yamanashi'),), - ('nagano', ugettext_lazy('Nagano'),), - ('niigata', ugettext_lazy('Niigata'),), - ('toyama', ugettext_lazy('Toyama'),), - ('ishikawa', ugettext_lazy('Ishikawa'),), - ('fukui', ugettext_lazy('Fukui'),), - ('gifu', ugettext_lazy('Gifu'),), - ('shizuoka', ugettext_lazy('Shizuoka'),), - ('aichi', ugettext_lazy('Aichi'),), - ('mie', ugettext_lazy('Mie'),), - ('shiga', ugettext_lazy('Shiga'),), - ('kyoto', ugettext_lazy('Kyoto'),), - ('osaka', ugettext_lazy('Osaka'),), - ('hyogo', ugettext_lazy('Hyogo'),), - ('nara', ugettext_lazy('Nara'),), - ('wakayama', ugettext_lazy('Wakayama'),), - ('tottori', ugettext_lazy('Tottori'),), - ('shimane', ugettext_lazy('Shimane'),), - ('okayama', ugettext_lazy('Okayama'),), - ('hiroshima', ugettext_lazy('Hiroshima'),), - ('yamaguchi', ugettext_lazy('Yamaguchi'),), - ('tokushima', ugettext_lazy('Tokushima'),), - ('kagawa', ugettext_lazy('Kagawa'),), - ('ehime', ugettext_lazy('Ehime'),), - ('kochi', ugettext_lazy('Kochi'),), - ('fukuoka', ugettext_lazy('Fukuoka'),), - ('saga', ugettext_lazy('Saga'),), - ('nagasaki', ugettext_lazy('Nagasaki'),), - ('kumamoto', ugettext_lazy('Kumamoto'),), - ('oita', ugettext_lazy('Oita'),), - ('miyazaki', ugettext_lazy('Miyazaki'),), - ('kagoshima', ugettext_lazy('Kagoshima'),), - ('okinawa', ugettext_lazy('Okinawa'),), -) diff --git a/django/contrib/localflavor/kw/__init__.py b/django/contrib/localflavor/kw/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/kw/forms.py b/django/contrib/localflavor/kw/forms.py deleted file mode 100644 index 2c2b023e70..0000000000 --- a/django/contrib/localflavor/kw/forms.py +++ /dev/null @@ -1,65 +0,0 @@ -""" -Kuwait-specific Form helpers -""" -from __future__ import unicode_literals - -import re -from datetime import date - -from django.core.validators import EMPTY_VALUES -from django.forms import ValidationError -from django.forms.fields import Field -from django.utils.translation import gettext as _ - -id_re = re.compile(r'^(?P\d{1})(?P\d\d)(?P\d\d)(?P
    \d\d)(?P\d{4})(?P\d{1})') - -class KWCivilIDNumberField(Field): - """ - Kuwaiti Civil ID numbers are 12 digits, second to seventh digits - represents the person's birthdate. - - Checks the following rules to determine the validty of the number: - * The number consist of 12 digits. - * The birthdate of the person is a valid date. - * The calculated checksum equals to the last digit of the Civil ID. - """ - default_error_messages = { - 'invalid': _('Enter a valid Kuwaiti Civil ID number'), - } - - def has_valid_checksum(self, value): - weight = (2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2) - calculated_checksum = 0 - for i in range(11): - calculated_checksum += int(value[i]) * weight[i] - - remainder = calculated_checksum % 11 - checkdigit = 11 - remainder - if checkdigit != int(value[11]): - return False - return True - - def clean(self, value): - super(KWCivilIDNumberField, self).clean(value) - if value in EMPTY_VALUES: - return '' - - if not re.match(r'^\d{12}$', value): - raise ValidationError(self.error_messages['invalid']) - - match = re.match(id_re, value) - - if not match: - raise ValidationError(self.error_messages['invalid']) - - gd = match.groupdict() - - try: - d = date(int(gd['yy']), int(gd['mm']), int(gd['dd'])) - except ValueError: - raise ValidationError(self.error_messages['invalid']) - - if not self.has_valid_checksum(value): - raise ValidationError(self.error_messages['invalid']) - - return value diff --git a/django/contrib/localflavor/locale/ar/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/ar/LC_MESSAGES/django.mo deleted file mode 100644 index dca9905152..0000000000 Binary files a/django/contrib/localflavor/locale/ar/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/ar/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/ar/LC_MESSAGES/django.po deleted file mode 100644 index 12ae404731..0000000000 --- a/django/contrib/localflavor/locale/ar/LC_MESSAGES/django.po +++ /dev/null @@ -1,3534 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011. -# Ossama Khayat , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:41+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Ossama Khayat \n" -"Language-Team: Arabic (http://www.transifex.net/projects/p/django/language/" -"ar/)\n" -"Language: ar\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\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" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "أدخل رمزاً بريدياً بالنسق NNNN أو ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "يتطلب هذا الحقل أرقاماً فقط." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "يتطلب الحقل 7 أو 8 أعداد." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "أدخل رمز CUIT صحيح بالنسق XX-XXXXXXXX-X أو XXXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "رمز CUIT غير صحيح." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "برغنلاند" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "كارينثيا" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "أدنى النمسا" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "أقصى النمسا" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "سالزبورغ" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "ستيريا" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "تايرُل" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "فورارلبيرغ" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "فيينا" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "أدخل رمز zip بالنسق XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "أدخل رقم ضمان اجتماعي سويدي صحيح بالنسق XXXX XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "بروكسل" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "لوكسومبورج" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "أدخل الرمز البريدي بالتسلسل الصحيح ما بين 1XXX - 9XXX." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"أدخل رقم هاتف صحيح بأي من الأنساق التالية 0x xxx xx xx، 0xx xx xx xx، 04xx " -"xx xx xx، 0x/xxx.xx.xx، 0xx/xx.xx.xx، 04xx/xx.xx.xx، 0x.xxx.xx.xx، 0xx.xx.xx." -"xx، 04xx.xx.xx.xx، 0xxxxxxxx أو 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "أدخل رمزاً بريدياً بالنسق XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "أرقام الهاتف يجب أن تكون بالنسق XX-XXXX-XXXX." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "انتق ولايةً برازيلية صحيحة. تلك الولاية ليست ضمن الولايات المتاحة." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "رقم CPF غير صحيح." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "يتطلب هذا الحقل 11 رقماً أو 14 حرفاً كحد أقصى." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "رقم CNPJ غير صحيح." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "يتطلب هذا الحقل 14 رقماً على الأقل." - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "أدخل رمزاً بريدياً بنسق XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "أدخل رقم ضمان اجتماعي كندي صحيح بالنسق XXX-XXX-XXX." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "أرجاو" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "جنيف" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "زيورخ" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"أدخل رقم هوية سويسرية صحيح أو رقم جواز سفر بالنسق X1234567<0 أو 1234567890." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "أدخل رمز RUT تشيلي صحيح." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "أدخل رمز RUT تشيلي صحيح. النسق هو XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "قيمة RUT التشيلية غير صحيحة." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "براغ" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "وسط منطقة بوهيميا" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "جنوب منطقة بوهيميا" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "منطقة جنوب مورافيا" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "أدخل رمزاً بريدياً بالنسق XXXXX أو XXX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "أدخل رقم الميلاد بالنسق XXXXXX/XXXX أو XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "مُعطى غير صحيح للجنس، الرجاء إدخال القيمة 'f' أو 'm'" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "أدخل رقم ميلاد صحيح." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "أدخل رقم IC صحيح." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "بافاريا" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "برلين" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "هامبورغ" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "أدخل رمز zip بالنسق XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"أدخل رقم بطاقة هوية ألمانية صحيحة بالنسق XXXXXXXXXXX-XXXXXXX-XXXXXXX-X." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "أرافا" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "ألميريا" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "أفيلا" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "باداجوز" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "برشلونة" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "بورجوس" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "كاستلّو" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "قرطبة" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "غرناطة" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "جوادالاخارا" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "ليون" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "مدريد" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "لاس بالماس" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "سالامانكا" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "توليدو" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "فالنسيا" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "الأندلس" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "أراغون" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "جزر الكناري" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "كتالونيا" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "جليقية" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "أدخل رمزاً بريدياً صحيحاً بالمدى والنسق 01XXX - 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "أدخل رقم هاتف صحيح بأحد الأنساق 6XXXXXXXX، 8XXXXXXXX أو 9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "رجاءً أدخل قيمة NIF، NIE أو CIF صحيحة." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "رجاءً أدخل قيمة NIF أو NIE صحيحة." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "تدقيق مجموع NIF غير صحيح." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "تدقيق مجموع NIE غير صحيح." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "تدقيق مجموع CIF غير صحيح." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "رجاءً أدخل رقم حساب بنكي صحيح بالنسق XXXX-XXXX-XX-XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "تدقيق مجموع رقم حساب البنك غير صحيح." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "أدخل رقم ضمان اجتماع فنلندي صحيح." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "أرقام الهاتف يجب أن تكون بالنسق 0X XX XX XX XX." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "أدخل رمزاً بريدياً صحيحاً." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "ديربي شاير" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "دِفون" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "لندن العظمى" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "مانشستر العظمى" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "هامشاير" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "كِنْت" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "شمال يورك شاير" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "أوكسفوردشاير" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "جنوب يوركشاير" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "ستافوردشاير" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "سوفولك" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "مقاطعة ارماغ" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "مقاطعة داون" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "مقاطعة فيرماناغ" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "مقاطعة لندنديري" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "مقاطعة تيرون" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "غوِنْت" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "غوينيد" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "وسط غلامورغان" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "جنوب غلامورغان" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "غرب غلامورغان" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "وسط اسكتلندا" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "هاي لاند" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "لوثيان" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "جزر أوركني" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "جزر شتلاند" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "ستراثكلايد" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "الجزر الغربية" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "إنجلترا" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "شمال ايرلندا" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "اسكوتلندة" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "ويلز" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "أدخل رقم لوحة رخصة مركبة صحيح" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "أدخل رقم هاتف صحيح" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "أدخل رمزاً بريدياً صحيحاً" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "أدخل رقم NIK/KTP صحيح" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "بالي" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "بانتن" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "بنجكولو" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "جاكرتا" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "جامبي" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "جاوة الغربية" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "جاوة الوسطى" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "جاوة الشرقية" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "غرب كاليمانتان" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "جنوب كاليمانتان" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "وسط كاليمانتان" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "شرق كاليمانتان" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "جزر بانكا بليتانج" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "جزر رياو" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "لامبونج" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "مالوكو" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "سومطرة الغربية" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "سومطرة الشرقية" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "سومطرة الشمالية" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "باتي" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "سورابايا" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "الحكومة الاتحادية" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "اكتب الرمز البريدي بالنسق XXXXX" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "أدخل رقم هوية صحيح." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "رجاءً أدخل رقم مُعرّف آيسلندي صحيح. النسق هو XXXXXX-XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "رقم المُعرّف الآيسلندي غير صحيح." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "أدخل رمز zip صحيح." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "أدخل رقم ضمان اجتماعي صحيح." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "أدخل رقم ضريبة VAT صحيح." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "أدخل رمزاً بريدياً بالنسق XXXXXXX أو XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "هوكايدو" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "أوموري" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "ياماغاتا" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "فوكوشيما" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "طوكيو" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "ياماناشي" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "شيغا" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "كيوتو" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "أُساكا" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "هَيوغو" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "نارا" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "واكاياما" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "أوكاياما" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "هيروشيما" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "ياماغوشي" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "توكوشيما" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "كاغاوا" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "ساغا" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "ناجاساكي" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "كوماموتو" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "ميازاكي" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "كاغوشيما" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "أوكيناوا" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "أدخل رقم بطاقة مدنيّة كويتيّة صحيح" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "دورانجو" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "ولاية مكسيكو" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "ميتشواكان" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "موريلوس" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "ناياريت" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "نويفو ليون" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "اواكساكا" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "بويبلا" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "كويريتارو" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "كينتانا رو" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "سونورا" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "تاباسكو" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "تاماوليباس" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "تلاكسكالا" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "أدخل رمزاً بريدياً صحيحاً." - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "أدخل رقم SoFi صحيح." - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "أدخل رقم ضمان اجتماعي نرويجي صحيح." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "يتطلب هذا الحقل 8 أرقام." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "يتطلب هذا الحقل 11 أرقام." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "يتكون رقم الهوية الوطني من 11 رقماً." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "تدقيق مجموع خاطئ لرقم الهوية الوطنية." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "تدقيق مجموع خاطئ لرقم الضريبة (NIP)." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "رقم السجل التجاري الوطني (REGON) يتكون من 9 أو 14 رقم." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "تدقيق مجموع خاطئ لرقم السجل التجاري الوطني (REGON)." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "أدخل رمزاً بريدياً بالنسق XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "أدخل رمزاً بريدياً بالنسق XXXX-XXX." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "يجب أن تحتوي أرقام الهواتف 9 أرقام، أو أن تبدأ بعلامة + أو صفرين." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "أدخل قيمة CIF صحيحة." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "أدخل قيمة CNP صحيحة." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "أدخل رمز IBAN صحيحاً بالنسق ROXX-XXXX-XXXX-XXXX-XXXX-XXXX" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "أرقام الهاتف يجب أن تكون بالنسق XXXX-XXXXXX." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "أدخل رمزاً بريدياً صحيحاً بالنسق XXXXXX" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "أدخل رقم تنظيم سويدي صحيح." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "أدخل رقم مُعرّف شخصي سويدي صحيح." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "أرقام Co-ordination غير مسموح بها." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "أدخل رمز بريدي سويدي بالنسبق XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "ستوكهولم" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "براتيسلافا I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "براتيسلافا II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "براتيسلافا III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "براتيسلافا IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "براتيسلافا V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "تشادسا" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "كوشيتسه I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "كوشيتسه II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "كوشيتسه III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "كوشيتسه IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "كوشيتسه - أوكولي" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "ريمافسكا سوبوتا" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "روتزنافا" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "أدخل الرمز البريدي بالنسق XXXXX." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "أرقام الهواتف يجب أن تكون بالنسق 0XXX XXX XXXX." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "أدخل رقم هوية تركية صحيح." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "رقم الهوية التركي يجب أن يتكون من 11 رقماً." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "أدخل رمز zip بالنسق XXXXX أو XXXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "أرقام الهاتف يجب أن تكون بالنسق XXX-XXX-XXXX." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "أدخل رقم ضمان اجتماعي أميركي صحيح بالنسق XXX-XX-XXXX." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "أدخل اسم ولاية أو إقليم أميركي." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "ولاية أمريكية (حرفان كبيران)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "رمز بريدي أميركي (حرفان لاتينيان كبيران)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "رقم هاتف" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "أدخل رقم CI صحيح بالنسق X.XXX.XXX-X,XXXXXXX-X أو XXXXXXXX." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "أدخل رقم CI صحيح." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "أدخل رقم هويّة جنوب إفريقيّة صحيح" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "أدخل رمز بريد جنوب إفريقي صحيح" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "شرق كيب" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "شمال كيب" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "شمال شرق" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "غير كيب" diff --git a/django/contrib/localflavor/locale/az/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/az/LC_MESSAGES/django.mo deleted file mode 100644 index c18b2b2fd3..0000000000 Binary files a/django/contrib/localflavor/locale/az/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/az/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/az/LC_MESSAGES/django.po deleted file mode 100644 index a91b299ad9..0000000000 --- a/django/contrib/localflavor/locale/az/LC_MESSAGES/django.po +++ /dev/null @@ -1,3543 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Ali Ismayilov , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:41+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Ali Ismayilov \n" -"Language-Team: Azerbaijani (http://www.transifex.net/projects/p/django/" -"language/az/)\n" -"Language: az\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Poçt indeksini NNNN və ya ANNNNAAA formatında daxil edin." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Bu sahəyə ancaq rəqəmlər yazmaq olar." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Bu sahəyə 7 və ya 8 rəqəm yazmaq olar." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "XX-XXXXXXXX-X və ya XXXXXXXXXXXX formatında düzgün CUIT daxil edin." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "Səhv CUIT." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Karintiya" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Aşağı Avstriya" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Yuxarı Avstriya" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Zalsburq" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Ştiriya" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tirol" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlberq" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Vyana" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "XXXX formatında poçt indeksini daxil edin." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"XXXX XXXXXX formatında düzgün Avstriya Sosial Sığorta Nömrəsini daxil edin." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "4-rəqəmli poçt indeksini daxil edin." - -#: au/models.py:9 -msgid "Australian State" -msgstr "Avstraliya ştatı" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "Avstraliya poçt indeksi" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "Avstraliya telefon nömrəsi" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Antverpen" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Brüssel" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Şərqi Flandriya" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Flamand Brabantı" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hainaut" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Lyej" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburq" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Lüksemburq" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Valon Brabantı" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Qərbi Flandriya" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Brüssel Paytaxt Rayonu" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Flamand regionu" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Valoniya" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "1XXX-9XXX diapazonu və formatında düzgün poçt indeksini daxil edin." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"0x xxx xx xx, 0xx xx xx xx, 04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/" -"xx.xx.xx, 0x.xxx.xx.xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx və ya " -"04xxxxxxxx formatlarından birində işlək telefon nömrəsini daxil edin." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "XXXXX-XXX formatında poçt indeksini daxil edin." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Telefon nömrələri XX-XXXX-XXXX formatında olmalıdır." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "Düzgün Braziliya ştatı seçin. Bizim siyahıda belə ştat yoxdur." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Səhv CPF nömrəsi." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Bura ən çoxu 11 rəqəm və ya 14 simvol yaza bilərsiniz." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Səhv CNPJ nömrəsi." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Bu sahəyə ən azı 14 rəqəm yazmaq lazımdır." - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "XXX XXX formatında poçt indeksini daxil edin." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"XXX-XXX-XXX formatında işlək Kanada Sosial Sığorta nömrəsini daxil edin." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aarqo" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appensell İnneroden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appensell Ossearroden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Bazel-Ştadt" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Bazel-Land" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Bern" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Friburg" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Cenevrə" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Qlarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Qraubünden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Cura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lusern" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuşatel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidvalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obvalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Şaffhauzen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Şvis" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Zoloturn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "Sankt-Qallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Turqau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Tiçino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Vale" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vo" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Suq" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Sürix" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"X1234567<0 və ya 1234567890 formatında İsveçrə şəxsiyyət vəsiqəsi və ya " -"pasportu kodunu daxil edin." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Çili üçün RUT daxil edin." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "XX.XXX.XXX-X formatında Çili üçün düzgün RUT daxil edin." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "Çili üçün RUT düzgün deyil." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "XXXXXX formatında poçt indeksini daxil edin." - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "Şəxsiyyət vəsiqəsi kodu 15 və ya 18 rəqəmdən ibarət olmalıdır." - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Praqa" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Mərkəzi Bohemiya vilayəti" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Cənubi Bohemiya vilayəti" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Plsen vilayəti" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Karlsbad vilayəti" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Usti vilayəti" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Liberets vilayəti" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Hradets vilayəti" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Pardubits vilayəti" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Vısoçina vilayəti" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Cənubi Moraviya vilayəti" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Olomouts vilayəti" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Zlin vilayəti" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Moraviya-Silesiya vilayəti" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "XXXXX və ya XXX XX formatında poçt indeksini daxil edin." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "XXXXXX/XXXX və ya XXXXXXXXXX formatında doğum kodunu daxil edin." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "Cins səhv göstərilib, \"f\" və ya \"m\" yazmaq olar." - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Doğum kodunu düzgün yazın." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "IC nömrəsini düzgün yazın." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Vürtemberq" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Bavariya" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlin" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburq" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Bremen" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburq" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hessen" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Meklenburq-Qərbi Pomeraniya" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Aşağı Saksoniya" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "Şimali Reyn-Vestfaliya" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Reynland-Palatinatlıq" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Saar" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Saksoniya" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Saksoniya-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Şlezviq-Holştayn" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Turingiya" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "XXXXX formatında poçt indeksini daxil edin." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"XXXXXXXXXXX-XXXXXXX-XXXXXXX-X formatında Almaniya şəxsiyyət vəsiqəsinin " -"seriya kodunu daxil edin." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Arava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albesete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alakant" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almeriya" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Avila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badaxos" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Balear adaları" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barselona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burqos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Kaseres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Kadis" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Kastelyo" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Syudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Kordoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "La Korunya" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Kuenka" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Xerona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Qrenada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Qvadalaxara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Qipuskoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Uelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Ueska" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Xaen" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "Leon" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lleyda" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioxa" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Luqo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madrid" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Malaqa" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Mursiya" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarra" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Orense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturiya" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palensiya" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las-Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanka" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Kruz de Tenererife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Kantabriya" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Seqoviya" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Sevilya" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soriya" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valensiya" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valyadolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Biskayya" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Saraqosa" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Seuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilya" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Əndəlus" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Araqon" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Asturiya knyazlığı" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Balear adaları" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Basklar Ölkəsi" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Kanar adaları" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Kastiliya-La-Manş" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Kastiliya və Leon" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Kataloniya" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Estremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Qalisiya" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Mursiya vilayəti" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Navarra Foral Cəmiyyəti" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Valensiya Cəmiyyəti" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" -"01XXX - 52XXX formatı və diapazonunda düzgün poçt indeksini daxil edin." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"6XXXXXXXX, 8XXXXXXXX və ya 9XXXXXXXX formatlarından birində düzgün telefon " -"nömrəsini daxil edin." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Düzgün NIF, NIE və ya CIF daxil edin." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Düzgün NIF və ya NIE daxil edin." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "NIF üçün yoxlama cəmi düzgün gəlmədi." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "NIE üçün yoxlama cəmi düzgün gəlmədi." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "CIF üçün yoxlama cəmi düzgün gəlmədi." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"XXXX-XXXX-XX-XXXXXXXXXX formatında düzgün bank hesabı kodunu daxil edin." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Bank hesabı kodu üçün yoxlama cəmi düzgün gəlmədi." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Fin sosial müdafiə kodunu daxil edin." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Telefon nömrələri 0X XX XX XX XX formatında olmalıdır." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Düzgün poçt indeksini daxil edin." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordşir" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Bakinqemşir" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Çeşir" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Kornuoll və Silli adaları" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Kambriya" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbişir" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Darem" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "Şərqi Sasseks" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Esseks" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Qlosesterşir" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Böyük London" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Böyük Mançester" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hempşir" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordşir" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lankaşir" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Lesterşir" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Linkolnşir" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Mersisayd" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "Şimali Yorkşir" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northemptonşir" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Nortumberlend" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinqemşir" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oksfordşir" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Şropşir" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "Cənubi Yorkşir" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordşir" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Saffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Sürrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tayn və Uir" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Uoruikşir" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "Uest-Minlends" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "Qərbi Sasseks" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "Qərbi Yorkşir" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Uiltşir" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Vursterşir" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "Antrim qraflığı" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "Arma qraflığı" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "Daun qraflığı" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "Fermana qraflığı" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "Londonderri qraflığı" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "Tiron qraflığı" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Kluid" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dived" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Quent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Quinet" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid Qlamorqan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Pouis" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "Cənubi Qlamorqan" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "Qərbi Qlamorqan" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Mərkəzi Şotlandiya" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Damfris və Qallouey" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fayf" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Qrampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Haylend" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lotian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Orkni adaları" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Şetlend adaları" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Stratklayd" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Taysayd" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Qərbi adalar" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "İngiltərə" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Şimali İrlandiya" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Şotlandiya" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Uels" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Avtomobil qeydiyyat nömrəsini düzgün daxil edin." - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Telefon nömrəsini düzgün daxil edin." - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Düzgün poçt indeksini daxil edin." - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "NIK/KTP nömrəsini düzgün daxil edin." - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Açex" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Banten" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Benqkulu" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Cokyakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Cakarta" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Qorontalo" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Cambi" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Qərbi Timor" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Mərkəzi Cava" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Şərqi Cava" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Qərbi Kalimantan" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Cənubi Kalimantan" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Mərkəzi Kalimantan" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Şərqi Kalimantan" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Banqka-Belutinq adaları" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Riau adaları" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampunq" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Molukku" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Şimali Molukku" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Qərbi Kiçik Zond adaları" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Şərqi Kiçik Zond adaları" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papua" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Qərbi Papua" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Riau" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Qərbi Sulavesi" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Cənubi Sulavesi" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Mərkəzi Sulavesi" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Cənubi-Şərqi Sulavesi" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Şimali Sulavesi" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Qərbi Sumatra" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Cənubi Sumatra" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Şimali Sumatra" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Magelanq" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Surakarta - Solo" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madiun" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kediri" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanuli" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Nanqore Açeh Darussalam" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Kepulauan Banka Belitunq" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Konsulluq Korpusu" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Diplomatik Korpus" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Bandunq" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Şimali Sulavesi" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timor" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Çimali Sulavesi" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lombok" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Papua və Qərbi Papua" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Çirebon" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbava" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Flores" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Boqor" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalonqan" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Semaranq" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Pati" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Surabaya" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Madura" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malanq" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Cember" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banyumas" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Federal hakimiyyət" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Boconeqoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purvakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarco" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Qarut" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Antrim" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Arma" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Karlou" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Kavan" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Kler" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Kork" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Derri" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Doneqal" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Daun" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Dublin" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fermana" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Qoluey" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerri" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Kilder" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Kilkenni" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Liiş" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Litrim" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerik" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Lonqford" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Laut" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Meyo" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Mit" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Monağan" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Offali" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Roskommon" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Slayqo" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tippereri" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tiron" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Uoterford" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Uestmit" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Ueksford" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Uiklou" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "XXXXX formatında poçt indeksini daxil edin." - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "ID kodunu düzgün daxil edin." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" -"XXXXXX-XXXX formatında düzgün İslandiya identifikasiya kodunu daxil edin." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Bu, düzgün İsland identifikasiya kodu deyil." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Düzgün poçt indeksini daxil edin." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Düzgün Sosial Müdafiə kodunu daxil edin." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Düzgün ƏDV kodunu daxil edin." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Düzgün poçt indeksini XXXXXXX və ya XXX-XXXX formatında daxil edin." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaydo" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "İvate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Yamaqata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukuşima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "İbaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Totiqi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Qunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Tiba" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tokyo" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanaqava" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Yamanasi" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Naqano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niiqata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Toyama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "İsikava" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Qifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Sidzuka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aiçi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Siqa" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kyoto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hyoqo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Vakayama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Simane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okayama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hirosima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Yamaquti" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokusima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kaqava" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Koti" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saqa" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Naqasaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Oita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Miyadzaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kaqosima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinava" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Küveyt şəxsiyyət vəsiqəsinin seriya nömrəsini daxil edin." - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aquaskalyentes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Aşağı Kaliforniya" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Cənubi Aşağı Kaliforniya" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Kampeçe" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Çihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Çyapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Koahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Kolima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Federal vilayət" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Duranqo" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Gerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Quanahuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "İdalqo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Xalisko" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Mexiko" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Miçoakan" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo-Leon" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaka" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Keretaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Kintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Lui Potosi" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasko" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaskala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Verakrus" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Yukatan" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Sakatekas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Düzgün poçt indeksini daxil edin." - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Düzgün SoFi kodunu daxil edin." - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drente" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Frisland" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Qelderland" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Qroningen" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Şimali Brabant" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Şimali Hollandiya" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overeysel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrext" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zellandiya" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Cənubi Hollandiya" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Norveç sosial müdafiə kodunu daxil edin." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Bura 8 rəqəm yazmaq lazımdır." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Bura 11 rəqəm yazmaq lazımdır." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Milli İdentifikasiya Nömrəsi 11 rəqəmdən ibarətdir." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Milli İdentifikasiya Nömrəsi üçün yoxlama cəmi düzgün çıxmadı." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "VÖEN üçün yoxlama cəmi düzgün çıxmadı." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "Milli İş Qeydiyyat Nömrəsi (REGON) 9 və ya 14 rəqəmdən ibarətdir." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "Milli İş Qeydiyyat Nömrəsi (REGON) üçün yoxlama cəmi düzgün çıxmadı." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "XX-XXX formatında poçt indeksini daxil edin." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Aşağı Silesiya" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kuyaviya-Pomeraniya" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lyublyan" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lyubuş" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodz" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Kiçik Polşa" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Mazoviya" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opole" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Aşağı Karpat" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlyasye" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomeraniya" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Silesiya" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Svyetokşiskye" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Varmiya-Mazuriya" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Böyük Polşa" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "Qərbi Pomeraniya" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "XXXX-XXX formatında poçt indeksini daxil edin." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" -"Telefon nömrələri 9 rəqəmdən ibarət olmalı, ya +, ya da 00 ilə başlamalıdır." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Düzgün CIF kodunu daxil edin." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Düzgün CNP kodunu daxil edin." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "ROXX-XXXX-XXXX-XXXX-XXXX-XXXX formatında düzgün IBAN daxil edin." - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Telefon nömrələri XXXX-XXXXXX formatında olmalıdır." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "XXXXXX formatında düzgün poçt indeksini daxil edin." - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "İsveç təşkilatları üçün düzgün nömrəni daxil edin." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Düzgün İsveç şəxsiyyətin təsdiqi kodunu daxil edin." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Koordinasiya nömrələri qadağandır." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "XXXXX formatında İsveç poçt indeksini daxil edin." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Stokholm" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Vesterbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norrbotten" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Uppsala" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Södermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Estergötland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Yonköpinq" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberq" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmar" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Qotland" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Blekinqe" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Skone" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halland" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Vestra-Qotaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Vermland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Erebru" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Vestmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Dalarna" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Yevleborq" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Vesternnorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Yemtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Banska Bistirisa" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banska Ştyavnisa" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardeyov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Banovse nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bitça" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Çadsa" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolnı Kubin" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunayska Seda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Qalanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Qelnisa" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohoves" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenne" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "İlava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kejmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komarno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Koşitse I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Koşitse II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Koşitse III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Koşitse IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Koşitse - okolye" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kisuske Nove Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levitse" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoça" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovski Mikulas" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Luçenets" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malatski" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilabortse" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Mixalovtse" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Miyava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Namestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nove Mesto nad Vahom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nove Zamki" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizanske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Pyeştanı" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltar" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povajska Bistrisa" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Presov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Pryevidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Puxov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revusa" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Rojnyava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Rujomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senes" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senisa" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalisa" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobranse" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spişka Nova Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stara Lyubovna" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidnik" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Sala" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolçanı" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebisov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trençin" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turçanske Teplise" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdosin" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velki Krtis" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravse" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Zarnovitsa" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Jar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Jilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Banska Bistritsa vilayəti" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Bratislava vilayəti" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Koşitse vilayəti" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Nitra vilayəti" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Preşov" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Trençin vilayəti" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Trnava vilayəti" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Jilina vilayəti" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "XXXXX formatında poçt indeksini daxil edin." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "0XXX XXX XXXX formatında telefon nömrəsini daxil edin." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Düzgün Türkiyə identifikasiya kodunu daxil edin." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "Türkiyə identifikasiya kodu 11 rəqəmdən ibarətdir." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "XXXXX və ya XXXXX-XXXX formatında poçt indeksini daxil edin." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Telefon nömrəsi XXX-XXX-XXXX formatında olmalıdır." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "XXX-XX-XXXX formatında ABŞ Sosial Müdafiyə kodunu daxil edin." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "ABŞ ştatı və ya ərazisini daxil edin." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "ABŞ ştatı (iki böyük hərf)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "ABŞ poçt indeksi (iki böyük hərf)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Telefon nömrəsi" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" -"X.XXX.XXX-X,XXXXXXX-X və ya XXXXXXXX formatında düzgün CI kodunu daxil edin." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "CI kodunu düzgün daxil edin." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Cənubi Afrika üçün düzgün identifikasiya kodunu daxil edin." - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Cənubi Afrika üçün düzgün poçt indeksini daxil edin." - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Şərqi Keyp" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Azad Ştat" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Qautenq" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "Kva-Zulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpulamanqa" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Şimali Keyp" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "Şimali-Qərb" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Qərbi Keyp" diff --git a/django/contrib/localflavor/locale/bg/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/bg/LC_MESSAGES/django.mo deleted file mode 100644 index d7166872aa..0000000000 Binary files a/django/contrib/localflavor/locale/bg/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/bg/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/bg/LC_MESSAGES/django.po deleted file mode 100644 index 0f4621f53b..0000000000 --- a/django/contrib/localflavor/locale/bg/LC_MESSAGES/django.po +++ /dev/null @@ -1,3548 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Boris Chervenkov , 2012. -# Jannis Leidel , 2011. -# Todor Lubenov , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:41+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Boris Chervenkov \n" -"Language-Team: Bulgarian (http://www.transifex.net/projects/p/django/" -"language/bg/)\n" -"Language: bg\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Въведете пощенския код във формат NNNN или ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Това поле изисква число." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Това поле изисква 7 или 8 цифри." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "" -"Въведете валиден номер на германска лична карта в формат XX-XXXXXXXX-X или " -"XXXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "Невалиден CUIT." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Бургенланд" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Каринтия" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Долна Австрия" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Горна Австрия" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Залцбург" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Сирия" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Тирол" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Форарлберг" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Виена" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Въведете пощенски код в формат XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Въведете валиден номер на социалната осигуровка австрийски в ХХХХ XXXXXX " -"формат." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Антверпен" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Брюксел" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Източна Фландрия" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Фламандски Брабант" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Ено" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Леге" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburg" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Люксембург" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Намур" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Валонски Брабант" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Западна Фландрия" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Брюксел столица" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Фламандския регион" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Валония" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "Въведете валиден пощенски код в обхвата и формата 1XXX - 9XXX." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Въведете валиден телефонен номер в един от форматите 0x ххх хх хх, хх хх хх " -"0xx, 04xx хх хх хх, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x . xxx.xx." -"xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx или 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Въведете пощенски код в формат XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Телефонните номера трябва да бъдат в формат XX-XXXX-XXXX. " - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "Изберете валиден бразилски щат. Този, не е един отвалидните щати." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Невалиден CPF номер" - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Това поле изисква поне 11 цифри или 14 символа." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Невалиден CNPJ номер" - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Това поле изисква поне 14 цифри." - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Въведете пощенски код в формат XXX XXХ." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"Въведете валиден номер на канадската социална осигуровка в формата XXX-XX-" -"XXXX." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Ааргау" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basel-Stadt" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basel-Land" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Берн" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Фрайбург" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Женева" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Гларус" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubuenden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Юра" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Люцерна" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Нюшател" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Нидвалден" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Шафхаузен" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Швиц" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "Санкт Гален" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Ури" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Во" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Цюрих" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Въведете валиден швейцарски индентификационен номер в X1234567<0 или " -"1234567890 формат" - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Въведете валиден чилийски RUT." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Въведете валиден чилийски RUT. Форпатът представлява ХХ ХХХ ХХХ-Х." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "Чилийският RUT не е валиден." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Прага" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Централна Бохемия" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Южна Бохемия" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Регион Пилзен" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Карлсбад регион" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Усти регион" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Либерец регион" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Храдец регион" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Пардубице регион" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Височински край" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Южноморавски край" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Оломоуц регион" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Регион Злин" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Моравско-Силезия" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Въведете пощенски код в формат XXXXX или XXX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "Въведете номер на раждане във формат XXXXXX / XXXX или XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "Невалиден незадължителен параметър Пол, валидни стойности са 'f' и 'm'" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Въведете валиден номер на раждане." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Въведете валиден IC номер." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Баден-Вюртемберг" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Бавария" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Берлин" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Бранденбург" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Бремен" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Хамбург" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Хесен " - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Мекленбург-Предна Померания" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Долна Саксония " - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "North Rhine-Westphalia" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Райнланд-Пфалц" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Саарланд" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Саксония" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Саксония-Анхалт" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Шлезвиг-Холщайн" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Тюрингия" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Въведете пощенски код в формат XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Въведете валиден номер на германска лична карта в формат XXXXXXXXXXX-" -"XXXXXXX-XXXXXXX-X." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Arava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Албасете" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alacant" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Алмерия" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Авила" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Бадахос" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Балеарски острови" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Барселона" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Бургос" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Касерес" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Кадиз" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castello" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Сиудад Реал" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Кордоба" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "А Коруня" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Куенка" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Хирона" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Гранада" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Гуадалахара" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipuzkoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Уелва" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Хуеска" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Хаен" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "Леон" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Лейда" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "Ла Риоха" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Луго" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Мадрид" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Малага" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Мурсия " - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Навара" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Оуренсе" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Астурия" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Паленсия" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Лас Палмас де Гран Канария" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Понтеведра" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Саламанка" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Санта Круз де Тенерифе" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Cantabria" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Сеговия" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Севиля" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Сория" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Тарагона" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Теруел" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Толедо" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Валенсия" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Валядолид" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Bizkaia" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Замора" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Сарагоса" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Сеута" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Мелила" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Андалусия" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Арагон" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Княжество Астурия" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Балеарските острови" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Страна на баските" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Канарски острови" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Кастилия-Ла Манча" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Кастилия и Леон" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Каталония" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Extremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Галисия" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Района на Мурсия" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Foral област Навара" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Валенсия" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Въведете валиден пощенски код в интервала 01XXX - 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Въведевалиден телефонен номер в един от форматите 6XXXXXXXX, 8XXXXXXXX или " -"9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Въведете валиден НИФ, НИЕ, или ЦИФ." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Въведете валиден НИГ или НИЕ." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Невалидна чексума за НИФ" - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Невалидна чексума за НИЕ" - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Невалидна чексума за ЦИФ" - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Въведете валиден номер на банковата ви сметка във формат XXXX-XXXX-XX-" -"XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Невалидна чексума за номер на банковата сметка" - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Въведете валиден финландски номер на социалната осигуровка." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Телефонните номера трябва да са в 0X XX XX XX XX формат." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Въведете валиден пощенски код." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Бедфордшър" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "Источен Съсек " - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Есекс" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Велик Лондон" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Велик Манчестер " - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Хемпшир" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Кент" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Ланкашър" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Линкълншир" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Норфолк" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "Северен Йоркшир" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Нортхемптъншир" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Нотингамшир" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Оксфордшир" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Съмърсет" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "Южен Йорксър" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "Уест Мидландс" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "Западен Съсекс" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "Западен Йоркшир" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "Англия" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Северна Ирландия" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Шотландия" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Уелс" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Въведете валиден регистрационен номер на превозното средство" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Въведете валиден телефонен номер" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Въведете валиден пощенски код" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Въведете валиден NIIK/KTP номер" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Аче" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Бали" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Banten" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Бенгкулу" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Yogyakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Джакарта" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Gorontalo" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Jambi" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Jawa Barat" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Jawa Tengah" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Източна Ява" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Молукски острови" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Папуа" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Папуа Barat" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Риау" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Сулавеси Барат" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Сулавеси Selatan" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Сулавеси Тенга" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Сулавеси Тенгара" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Сулавеси Утара" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Суматера Барат" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Суматера Селатан" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Суматера Утара" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Ачех" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Федералното правителство" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purwakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Дъблин" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fermanagh" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Голуей" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerry" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Kildare" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Килкени" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Laois" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Leitrim" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Лонгфорд" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Лоут" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Майо" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Мийт" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Монахан" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Offaly" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Roscommon" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Слиго" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tipperary" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Тайрън" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Уотърфорд" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Westmeath" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Уексфорд" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Уиклоу" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Въведете пощенски код в формат XXXXX" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Въведете валиден номер на лична карта." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "Въведете валиден исландски номер. Форматът представлява XXXXXX-XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Исландския номер за индентификация е невлиден" - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Въведете валиден пощенски код." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Въведете валиден номер на социалната ви осигуровка." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Въведете валиден VAT номер." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Въведете пощенски код в формат XXXXXXX или XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Хокайдо" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Амори" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Акита" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Ямагата" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Фукушима" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ибараки" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Tochigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Сайтама" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Чиба" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Токио" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Канагава" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Яманаши" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Нагано" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Ниигата" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Тояма" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ишикава" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Фукуи" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Шизуока" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Мие" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Шига" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Киато" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Осака" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Хиого" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Нара" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Вакаяма" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Окаяма" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Хирошима" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Ямагучи" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Токушима" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Кагава" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ехиме" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Кочи" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Фукуока" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Сага" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Нагазаки" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Кумамото" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Оита" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Миазаки" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Кагошима" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Окинава" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Въведете валиден кувейтски граждански номер" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Агуаскалиентес" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Долна Калифорния" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Баха Калифорния Сур" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Кампече" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Чихуахуа" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Чиапас" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Distrito Federal" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Гереро" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Гуанахуато" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Хидалго" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Estado де Мексико" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Мичоакан" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Нуево Леон" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Оаксака" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Пуебла" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Querétaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Кинтана Роо" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Синалоа" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "Сан Луис Потоси" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Табаско" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Тамаулипас" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Тласкала" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Юкатан" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Закатекас" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Въведете валиден пощенски код." - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Въведете валиден SoFi номер" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Дренте" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Friesland" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Gelderland" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Грьонинген" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Noord-Brabant" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Noord-Holland" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Утрехт" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zeeland" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Zuid-Holland" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Въведете валиден норвежки номер на социалната осигуровка." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Това поле изисква 8 цифри." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Това поле изисква 11 цифри." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Националният индентификационен номер се състои от 11 цифри" - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Грешна чексума за Националния индентификационен номер" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Грешна чексума за данъчен номер (НИП)" - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" -"Национален търговски регистър номер (REGON) се състои от 9 или 14 цифри." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "Грешна чексума за Националния Бизнес Регистрационен Номер (REGON)" - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Въведете пощенски код в формат XX-ХXXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Долна Силезия" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kuyavia-Предна Померания" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Люблин" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Любушко" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Лодз" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Lesser Poland" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Masovia" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Ополе" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Subcarpatia" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlasie" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Померания" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Силезия" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Swietokrzyskie" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Warmia-Masuria" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Велика Полша" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "Западна Померания" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Въведете пощенски код в формат XXXX-XXX." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "Телефонните номера трябва да са 9 цифри, или започнете с + или 00." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Въведете валиден CIF." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Въведете валиден CNP." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "Въведете валиден IBAN в RОXX-XXXX-XXXX-XXXX-XXXX-XXXX формат" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Телефонните номера трябва да са в XXXX-XXXXXX формат." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Въведете валиден пощенски код в формат XXXXXX" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Въведете валиден шведски номер на организация." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Въведете валиден шведско ЕГН." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Ко-ординационни номера не са позволени." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Въведете шведски пощенски код в формат XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Стокхолм" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Västerbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norrbotten" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Упсала" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Södermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Östergötland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Йонкьопинг" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmar" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Готланд" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Блекинге" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Скания" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Халанд" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Västra Götaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Värmland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Örebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Västmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Даларна" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gävleborg" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Västernorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jämtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Банска Бистрица" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Банска Стиавница" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Banovce NAD Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Братислава I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Братислава II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Братислава III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Братислава IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Братислава V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytca" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Čadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Долни Кубин" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajska Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenne" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kezmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Комарно" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Кошице I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Кошице II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Кошице III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Кошице IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Кошице - okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Нове Место Kysucke" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoca" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Липтовски Микулаш" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lučenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Мартин" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Наместово" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Нитра" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Нове Место NAD Vahom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nové Zámky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizánske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piestany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltár" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Попрад" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povazska Бистрица" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Прешов" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Púchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revuca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Rožňava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ruzomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Събинов" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Сенец" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Скалица" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spisska Nova Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Стара Lubovna" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidnik" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Sala" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolcany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebišov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Тренчин" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Търнава" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turčianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdosin" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Veľký Krtíš" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Вранов над Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Зволен" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Žarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Жилина" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Банска Бистрица регион" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Братислава регион" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Кошице регион" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Нитра регион" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Прешов регион" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Тренчин регион" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Търнава регион" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Жилина регион" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Въведете пощенски код в формат XXXXX." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Телефонните номера трябва да са в 0XXX XXX формат XXXX." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Въведете валиден турски идентификационен номер." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "Турски Идентификационен номер трябва да бъде 11 цифри." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Въведете zip код в формат XXXXX или XXXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Телефонните номера трябва да са в XXX-XXX-XXXX формат." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "Въведете валиден номер на социалната осигуровка в формат XXX-XX-XXXX." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Въведете американския щат или територия." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "американски щат (две главни букви)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "САЩ пощенски код (две главни букви)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Телефонен номер" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" -"Въведете валиден номер CI в X.XXX.XXX-X, XXXXXXX-X или XXXXXXXX формат." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Въведете валиден CI номер." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Въведете валиден южно-африкански номер за индентификация" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Въведете валиден пощенски код за Южна Африка" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Източен Кейп" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Свободната държава" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Гаутенг" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "Квазулу-Натал" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Лимпопо" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Мпумаланга" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Northern Cape" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "North West" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Western Cape" diff --git a/django/contrib/localflavor/locale/bn/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/bn/LC_MESSAGES/django.mo deleted file mode 100644 index a749e05020..0000000000 Binary files a/django/contrib/localflavor/locale/bn/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/bn/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/bn/LC_MESSAGES/django.po deleted file mode 100644 index b53e73a392..0000000000 --- a/django/contrib/localflavor/locale/bn/LC_MESSAGES/django.po +++ /dev/null @@ -1,3527 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:41+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Bengali (http://www.transifex.net/projects/p/django/language/" -"bn/)\n" -"Language: bn\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "" - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "" - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "" - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "" - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "" - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "" - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "" - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "" - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "" - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "" - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "" - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "" - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "" - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "" - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "" - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "" - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "" - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "" - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "" - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "" - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "" - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "" - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "" - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "" - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "" - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "" - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "" - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "" - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "" - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "" - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "" - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "" - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "" - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "" - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "" - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "" - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "" - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "" - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "" - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "" - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "" - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "" - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "" - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "" - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "" - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "" - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "ইউ, এস, রাজ্য (দুটো আপারকেস অক্ষর)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "" - -#: us/models.py:26 -msgid "Phone number" -msgstr "ফোন নাম্বার" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "" - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "" diff --git a/django/contrib/localflavor/locale/bs/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/bs/LC_MESSAGES/django.mo deleted file mode 100644 index 80e48b60ac..0000000000 Binary files a/django/contrib/localflavor/locale/bs/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/bs/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/bs/LC_MESSAGES/django.po deleted file mode 100644 index 300951c2ab..0000000000 --- a/django/contrib/localflavor/locale/bs/LC_MESSAGES/django.po +++ /dev/null @@ -1,3542 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Filip Dupanović , 2011. -# Jannis Leidel , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:41+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Filip Dupanović \n" -"Language-Team: Bosnian (http://www.transifex.net/projects/p/django/language/" -"bs/)\n" -"Language: bs\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Unesite poštanski broj u formatu NNNN ili ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Ovo polje zahtjeva samo brojeve." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Ovo polje mora da sadrži 7 ili 8 cifara." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Unesite ispravan CUIT u formatu XX-XXXXXXXX-X or XXXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "Neispravan CUIT." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Karintija" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Donja Austrija" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Gornja Austrija" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salcburg" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Stirija" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tirol" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Voralber" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Beč" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Unesite poštanski broj u formatu XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Unesite važeći austrijski broj socijalnog osiguranja u formatu XXXX XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Antwerpen" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Brisel" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Istočna Flandrija" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Flamanski Brabant" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hainaut" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Liege" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburg" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Luksemburg" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Valonski Brabant" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Zapadna Flandrija" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Regija glavnoga grada Bruxellesa" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Flamanska regija" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Valonija" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "Unesite ispravan poštanski broj u rasponu i formatu 1XXX-9XXX." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Unesite važeći broj telefona u jednom od formata 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx ili 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Unesite zip kod u formatu XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Telefonski brojevi moraju biti u XX-XXXX-XXXX formatu." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "Odaberite ispravnu brazilsku državu. Ta država nije među ponuđenima." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Neispravan CPF broj." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Polje zahtijeva najviše 11 cifri ili 14 znamenki." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Neispravan CNPJ broj." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Polje zahtijeva najmanje 14 cifri." - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Unesite poštanski broj u formtu XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "Unesite ispravan kanadski Social Insurance broj u XXX-XXX-XXX formatu." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aargau" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basel-grad" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basel-provincija" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Bern" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Fribourg" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Ženeva" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubuenden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucern" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchatel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "St. Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zurich" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Unesite ispravan broj švicarske lične karte ili pasoša u X1234567<0 ili u " -"1234567890 formatu." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Unesite ispravan čileanski RUT." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Unesite ispravan čileanski RUT. Format je XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "Čileanski RUT nije ispravan." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Prag" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Centralna Češka" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Južna Češka" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Plzenjski kraj" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Karlovarski kraj" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Ustečki kraj" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Liberečki kraj" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Kralovehradečki kraj" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Pardubički kraj" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Visočina kraj" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Južna Moravska" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Olomoučki kraj" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Zlinski kraj" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Moravsko-seleški kraj" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Unesite poštanski broj u formatu XXXXX ili XX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "Unesite datum rođenja u formatu XXXXXX/XXXX ili XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "Neispravan parametar Pol; ispravne vrijednosti su 'f' i 'm'" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Unesite ispravan datum rođendana." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Unsite ispravan IC broj." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Wuerttemberg" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Bavaria" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlin" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburg" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Bremen" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburg" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hessen" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklenburg-Western Pomerania" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Donja Saška" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "Sjeverno Porajnje-Zapadna Falačka" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Rhineland-Palatinate" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Saarland" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Saška" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Saxony-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Thuringia" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Unesite poštanski broj u formatu XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Unesite ispravan broj njemačke lične karte u XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"formatu." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Arava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alacant" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almeria" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Avila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Illes Balears" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barcelona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Caceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cadiz" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castello" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Kordoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "Korunja" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Kuenka" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Unesite ispravan poštanski broj u nizu i formatu 01XXX - 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Unesite ispravan telefonski broj u jednom od formata 6XXXXXXXX, 8XXXXXXXX " -"ili 9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Unesite ispravan NIF, NIE ili CIF." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Unesite ispravan NIF ili NIE." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Neispravan checksum za NIF." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Neispravan checksum za NIE." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Neispravan checksum za CIF." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Unesite isravan broj bankovnog računa u obliku XXXX-XXXX-XX-XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Neispravan checksum za broj bankovnog računa." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Unesite ispravni finski identifikacijski broj." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Broj telefona mora biti u formatu 0X XX XX XX XX." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "" - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Unesite ispravan broj automobilske tablice" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Unesite ispravan telefonski broj" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Unesite ispravni poštansku kod" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Unesite ispravan NIK/KTP broj" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" -"Unesite ispravan islandski identifikacijski broj. Format je XXXXXX-XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Islanski identifikacijski broj nije ispravan." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Unesite ispravnu zip adresu." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Unesite ispravan Social Security broj." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Unesite ispravan VAT broj." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Unesite poštanski broj u formatu XXXXXXX ili XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Unesite ispravan kuvajtski Civil ID broj" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Unesite ispravnu poštansku adresu" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Unesite ispravan SoFi broj" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Unesite ispravan norveški jedinstveni matični broj građana." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Polje zahtijeva 8 cifri." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Polje zahtijeva 11 cifri." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "National Identification Number sastoji se od 11 cifri." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Pogrešan checksum za National Identification Number." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Pogrešan checksum za Tax Number (NIP)." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" -"National Business Register Number (REGON) sastoji se od 9 ili 14 cifri." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "Pogrešan checksum za National Business Register Number (REGON)." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Unesite ispravnu poštansku adresu u formatu XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Unesite zup kod u formatu XXXX-XXX" - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "Telefonski brojevi moraju imati 9 cifri, ili početi sa + ili 00." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Unesite ispravan CIF." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Unesite ispravan CNP." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "Unesite ispravan IBAN ROXX-XXXX-XXXX-XXXX-XXXX-XXXX formatu" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Telefonski brojevi moraju biti u XXXX-XXXXXX formatu." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Unesite ispravan poštanski broj u formatu XXXXXX" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Unesite ispravan švedski organizacijski broj." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Unesite ispravan švedski identifikacijski broj" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Koordinatni brojevi nisu dozvoljeni." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Unesite švedsku poštansku adresu u formatu XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Unesite poštansku adresu u formatu XXXXX ili XXXXX-XXXX" - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Broj telefona mora biti u formatu XX-XXXX-XXXX." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "Unesite ispravan američki Social Security broj u XXX-XX-XXXX formatu." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Unesite U.S. državu ili teritorij" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Država u SAD (dva velika slova)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Broj telefona" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "Unestie važeći CUIT u formatu XX-XXXXXXXX-X or XXXXXXXXXXXX." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Unsite ispravan IC broj." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Unesite ispravan južnoafrički ID broj" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Unesite ispravnu južnoafričku poštansku adresu" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "" diff --git a/django/contrib/localflavor/locale/ca/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/ca/LC_MESSAGES/django.mo deleted file mode 100644 index eaac30e682..0000000000 Binary files a/django/contrib/localflavor/locale/ca/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/ca/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/ca/LC_MESSAGES/django.po deleted file mode 100644 index 8e81df0bed..0000000000 --- a/django/contrib/localflavor/locale/ca/LC_MESSAGES/django.po +++ /dev/null @@ -1,3566 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Antoni Aloy , 2011. -# Carles Barrobés , 2011, 2012. -# el_libre como el chaval , 2011. -# Jannis Leidel , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:41+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Carles Barrobés \n" -"Language-Team: Catalan (http://www.transifex.net/projects/p/django/language/" -"ca/)\n" -"Language: ca\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Introduïu un codi postal en el format NNNN o ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Aquest camp precisa només números." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Aquest camp precisa 7 o 8 dígits." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "" -"Introduïu un número CUIT vàlid en el format XX-XXXXXXXX-X o XXXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "CUIT invàlid." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Carinthia" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Àustria Inferior" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Àustria Superior" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salzburg" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Styria" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tirol" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlberg" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Viena" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Introduïu un codi zip en el format XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Introduïu un número vàlid de la Seguretat Social Austríaca en el format XXXX " -"XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "Introdueix el codi postal de 4 digits" - -#: au/models.py:9 -msgid "Australian State" -msgstr "Estat australià" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "Codo postal australià" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "Telèfon australià" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Ambers" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Brussel·les" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Flandes de l'est" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Brabant flamenc" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hainaut" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Lieja" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburg" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Luxemburg" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Brabant való" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Flandes de l'oest" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Regió capital de Brussel·les" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Regió flamenca" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Valònia" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "Introduïu un codi postal vàlid en el rang i format 1XXX - 9XXX." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Introduïu un número de telèfon vàlid en un dels formats 0x xxx xx xx, 0xx xx " -"xx xx, 04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx." -"xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx o 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Introduïu un codi zip en el format XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "El número de telèfon ha d'estar en el format XX-XXXX-XXXX." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Seleccioneu un estat brasiler vàlid. Aquest estat no és un dels estats " -"disponibles." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Número CPF invàlid." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Aquest camp precisa com a màxim 11 dígits o 14 caràcters." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Número CNPJ invàlid." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Aquest camp precisa almenys 14 dígits." - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Introduïu un codi postal en el format XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"Introduïu un número vàlid de la Seguretat Social de Canadà en el format XXX-" -"XXX-XXX." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Argau" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Inner-Rhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausser-Rhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basilea-Ciutat" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basilea-Land" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Berna" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Friburg" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Ginebra" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubuenden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucerna" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchatel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "St. Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zuric" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Introduïu un número d'identificació o de passaport Suïssos en els formats " -"1234567890 o X1234567<0." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Introduïu un RUT Xilè vàlid." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Introduïu un RUT Xilè vàlid. El format és XX.XXX.XXX-X" - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "El RUT Xilè no és vàlid." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "Introdueix el codi postal en format XXXXX" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "L'identificador de tarja ha de tenir 15 o 18 dígits" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "Nombre de tarja invàlid: suma de comprovació incorrecta" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "Nombre de tarja invàlid: data de naixement errònia" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "Nombre de tarja d'identificació invàlid: codi d'ubicació incorrecta" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "Introdueix un telèfon vàlid" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "Escriu un número correcte de mòbil" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Praga" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Regió Bohèmia Central" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Regió Bohèmia Sur" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Regió Pilsen" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Regió Carlsbad" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Regió Usti" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Regió Liberec" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Regió Hradec" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Regió Pardubice" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Regió Vysocina" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Regió Moràvia Sur" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Regió Olomouc" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Regió Zlin" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Regió Moràvia-Silesiana" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Introduïu un codi postal en el format XXXXX o XXX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" -"Introduïu un número de naixement en el format XXXXXX/XXXX o XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" -"El paràmetre opcional 'Gènere' és invàlid, els valors vàlids son 'f' i 'm'." - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Introduïu un número de naixement vàlid." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Introduïu un número de IC vàlid." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Württemberg" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Baviera" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlín" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburg" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Bremen" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburg" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hessen" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklenburg-Pomerània Occidental" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Baixa Saxònia" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "Renània del Nord-Westfàlia" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Renània-Palatinat" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Saarland" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Saxònia" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Saxònia-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Slesvig-Holstein" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Turíngia" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Introduïu un codi zip en el format XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Introduïu un número vàlid de tarjeta d'identificació alemanya en el format " -"XXXXXXXXXXX-XXXXXXX-XXXXXXX-X." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Àlaba" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alacant" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almeria" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Àvila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Illes Balears" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barcelona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Càceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cadis" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castelló" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Còrdova" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "La Corunya" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Conca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Girona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipúscoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Osca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaén" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "Lleó" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lleida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madrid" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Màlaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Múrcia" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarra" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Ourense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Astúries" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palència" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Cruz de Tenerife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Cantàbria" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segòvia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Sevilla" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Sòria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Terol" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "València" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Biscaia" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Saragossa" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andalusia" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragó" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Principat d'Astúries" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Illes Balears" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Euskadi" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Canàries" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Castella-La Mancha" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Castella i Lleó" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Catalunya" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Extremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galícia" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Regió de Múrcia" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Comunitat Foral de Navarra" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Comunitat Valenciana" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Introduïu un codi postal en rang i format 01XXX - 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Introduïu un número de telèfon vàlid en un dels formats 6XXXXXXXX, 8XXXXXXXX " -"o 9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Si us plau, introduïu un NIF, NIE o CIF vàlid." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Si us plau, introduïu un NIF o NIE vàlid." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Verificació del NIF invàlida." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Verificació del NIE invàlida." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Verificació del CIF invàlida." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Introduïu un número de compte bancari vàlid en el format XXXX-XXXX-XX-" -"XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Verificació del número de compte bancari invàlida." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Introduïu un número vàlid de la seguretat social finlandesa." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Els números de telèfon han de estar en el format 0X XX XX XX XX." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Introduïu un codi postal vàlid." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Cornwall and Isles of Scilly" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cumbria" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "East Sussex" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Essex" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Greater London" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Greater Manchester" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordshire" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "North Yorkshire" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northamptonshire" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oxfordshire" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "South Yorkshire" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordshire" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne and Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "West Midlands" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "West Sussex" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "West Yorkshire" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "County Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "County Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "County Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "County Fermanagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "County Londonderry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "County Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "Glamorgan Sud" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "Glamorgan Oest" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Escòcia central" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries and Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Illes Orkney" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Illes Shetland" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Illes Occidentals" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "Anglaterra" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Irlanda del Nord" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Escòcia" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Gal·les" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "Introdueixi un codi JMBG de 13 dígits" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "Error en el segment data" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "Introdueixi un codi OIB d'11 dígits" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Introduïu un número de matrícula vàlid." - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "Escriu un codi de localització vàlid" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "La part d'un nombre no pot ser 0" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "Escriu un codi postal de 5 xifres vàlid" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Introduïu un número de telèfon vàlid." - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "Escriu un codi d'àrea o prefix mòbil correcte" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "El número de telèfon és massa llarg" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "Introdueix un codi JMBAG vàlid de 19 dígits que comenci per 601983" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "El nombre d'expedició de la tarja no pot ser zero" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "Grad Zagreb" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "Bjelovarsko-bilogorska županija" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "Brodsko-posavska županija" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "Dubrovačko-neretvanska županija" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "Istarska županija" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "Karlovačka županija" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "Koprivničko-križevačka županija" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "Koprivnica-Krizevci" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "Ličko-senjska županija" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "Međimurska županija" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "Osječko-baranjska županija" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "Požeško-slavonska županija" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "Primorsko-goranska županija" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "Sisačko-moslavačka županija" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "Splitsko-dalmatinska županija" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "Šibensko-kninska županija" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "Varaždinska županija" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "Virovitičko-podravska županija" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "Vukovarsko-srijemska županija" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "Zadarska županija" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "Zagrebačka županija" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Introduïu un codi postal vàlid." - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Introduïu un número NIK/KTP vàlid." - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Aceh" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Banten" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Bengkulu" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Yogyakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Jakarta" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Gorontalo" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Jambi" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Jawa Barat" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Jawa Tengah" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Jawa Timur" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Kalimantan Barat" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Kalimantan Selatan" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Kalimantan Tengah" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Kalimantan Timur" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Kepulauan Bangka-Belitung" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Kepulauan Riau" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampung" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Maluku" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Maluku Utara" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Nusa Tenggara Barat" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Nusa Tenggara Timur" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papua" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Papua Barat" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Riau" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Sulawesi Barat" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Sulawesi Selatan" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Sulawesi Tengah" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Sulawesi Tenggara" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Sulawesi Utara" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Sumatera Barat" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Sumatera Selatan" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Sumatera Utara" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Magelang" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Surakarta - Solo" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madiun" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kediri" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanuli" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Nanggroe Aceh Darussalam" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Kepulauan Bangka Belitung" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Corps Consulate" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Corps Diplomatic" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Bandung" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Sulawesi Utara Daratan" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timor" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Sulawesi Utara Kepulauan" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lombok" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Papua dan Papua Barat" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Cirebon" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbawa" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Flores" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Bogor" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalongan" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Semarang" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Pati" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Surabaya" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Madura" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malang" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Jember" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banyumas" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Govern Federal" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purwakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarjo" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Garut" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Antrim" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Armagh" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Carlow" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Cavan" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Clare" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Cork" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Derry" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Donegal" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Down" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Dublin" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fermanagh" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Galway" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerry" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Kildare" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Kilkenny" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Laois" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Leitrim" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerick" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Longford" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Louth" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Mayo" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Meath" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Monaghan" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Offaly" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Roscommon" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Sligo" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tipperary" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tyrone" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Waterford" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Westmeath" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Wexford" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Wicklow" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Introduïu un codi postal amb el format XXXXX" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Introduïu un número de ID vàlid." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "Escriu un codi postal en format XXXXXX o XXX XXX" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "Introdueix un estat o territori de l'India" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "Els números de telèfon han de tenir el format 02X-8X, 03X-7X o 04X-6X." - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" -"Introduïu un número vàlid d'identificació d'Islàndia. El format és XXXXXX-" -"XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "El número d'identificació d'Islàndia no és vàlid." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Introduïu un codi zip vàlid." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Introduïu un número valid de la Seguretat Social." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Introduïu un número d'IVA (VAT) vàlid." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Introduïu un codi postal en el format XXXXXXX o XX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaido" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Yamagata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukushima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Tochigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Chiba" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tokyo" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Yamanashi" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Toyama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ishikawa" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Shizuoka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Shiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kyoto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hyogo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakayama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okayama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hiroshima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Yamaguchi" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokushima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Kochi" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Oita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Miyazaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagoshima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinawa" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Introduïu un número d'Identitat Kuwaitià vàlid" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" -"Les targes d'identitat han de tenir 4 o 7 dígits o una lletra majúscula i 7 " -"dígits." - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "Aquest camp ha de tenir exactament 13 dígits." - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" -"Els 7 primers dígits de l'UMCM han de representar una data passada vàlida" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "El UMCN no es vàlid" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "Aerodrom" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "Aračinovo" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "Berovo" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "Bitola" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "Bogdanci" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "Bogovinje" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "Bosilovo" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "Brvenica" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "Butel" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "Valandovo" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "Vasileva" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "Vevcani" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "Veles" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "Vinica" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "Vraneštica" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "Vrapčište" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "Gazi Baba" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "Gevgelija" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "Gostivar" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "Gradsko" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "Debar" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "Debarca" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "Delčevo" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "Demir Kapija" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "Demir Hisar" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "Dolneni" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "Drugovo" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "Gjorče Petrov" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "Želino" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "Zajas" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "Zelenikovo" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "Zrnovci" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "Ilinden" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "Jegunovce" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "Kavadarci" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "Karbinci" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "Karpoš" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "Kisela Voda" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "Kičevo" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "Konče" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "Koćani" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "Kratovo" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "Kriva Palanka" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "Krivogaštani" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "Kruševo" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "Kumanovo" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "Lipkovo" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "Lozovo" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "Mavrovo i Rostuša" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "Makedonska Kamenica" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "Makedonski Brod" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "Mogila" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "Negotino" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "Novaci" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "Novo Selo" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "Oslomej" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "Ohrid" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "Petrovec" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "Pehčevo" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "Plasnica" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "Prilep" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "Probištip" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "Radoviš" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "Rankovce" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "Resen" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "Vraneštica" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "Saraj" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "Sveti Nikole" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "Sopište" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "Star Dojran" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "Staro Nagoričane" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "Struga" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "Strumica" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "Studeničani" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "Tearce" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "Tetovo" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "Centar" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "Centar-Župa" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "Cair" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "Čaška" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "Češinovo-Obleševo" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "Čučer-Sandevo" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "Štip" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "Šuto Orizari" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "Tajra d'identificació macedònia" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "Un municipi de Macedònia (2 codi de caràcters)" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "Identificació de ciutadà (13 dígits)" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "Entreu un codi postal vàlid amb el format XXXXX." - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "Entreu un RFC vàlid." - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "Suma de verificació invàlida per RFC." - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "Entreu un CURP vàlid." - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "Suma de verificació invàlida per CURP." - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "Estat mexicà (tres lletres majúscules)" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "Codi postal mexicà" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "RFC mexicà" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "CURP mexicà" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baixa Califòrnia" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baixa Califòrnia Sud" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Districte Federal" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Estat de Mèxic" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacán" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo León" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Querétaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potosí" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Yucatán" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Introduïu un codi postal vàlid." - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Introduïu un número SoFi vàlid." - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drenthe" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Friesland" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Gelderland" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groningen" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Noord-Brabant" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Noord-Holland" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrecht" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zeeland" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Zuid-Holland" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Introduïu un número de la seguretat social Noruega vàlid." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Aquest camp precisa 8 dígits." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Aquest camp precisa 11 dígits." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "El número d'identidicació nacional està compost de 11 digits." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Verificació del número d'identificació nacional invàlida." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" -"El nombre de la tarja d'identificació nacional consisteix en 3 lletres i 6 " -"dígits" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "Suma de comprovació incorrecta pel nombre d'identificació nacional" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" -"Entreu un número tributari (NIP) en el format XXX-XXX-XX-XX, XXX-XX-XX-XXX o " -"XXXXXXXXXX." - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Verificació del número tributari (NIP) invàlida." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" -"El número nacional de registre de negocis (REGON) està compost de 9 o 14 " -"dígits." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "Verificació del número nacional de registre de negocis invàlida." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Introduïu un codi postal en el format XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Baixa Silèsia" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kuyavia-Pomerania" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublin" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubusz" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodz" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Polònia Menor" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Masovia" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opole" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Subcarpatia" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlasie" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomerània" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Silèsia" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Swietokrzyskie" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Warmia-Masuria" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Polònia Major" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "Pomerània Oest" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Introduïu un codi postal en el format XXXX-XXX." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "Els números de telèfon han de tenir 9 dígits, o començar per + o 00." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Introduïu un CIF vàlid." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Introduïu un CNP vàlid." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "Introduïu un IBAN vàlid en el format ROXX-XXXX-XXXX-XXXX-XXXX-XXXX." - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "El número de telèfon ha d'estar en el format XXXX-XXXXXX." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Introduïu un codi postal vàlid en el format XXXXXX." - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "Introdueixi un codi posta en format XXXXXX." - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "Introdueixi un número de passaport en format XXXX XXXXXX." - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "Introdueixi un número de passaport en format XX XXXXXXX." - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "Central Federal County" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "South Federal County" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "North-West Federal County" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "Far-East Federal County" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "Siberian Federal County" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "Ural Federal del Comtat" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "Privolzhsky Federal del Comtat" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "North-Caucasian Federal County" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "Moskva" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "Saint-Peterburg" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "Moskovskaya Oblast '" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "Adygeya, Respublika" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "Bashkortostan, Respublika" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "Buryatia, Respublika" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "Altay, Respublika" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "Dagestan, Respublika" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "Ingushskaya Respublika" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "Kabardino-Balkarskaya Respublika" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "Kalmykia, Respublika" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "Karachaevo-Cherkesskaya Respublika" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "Karelia, Respublika" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "Komi, Respublika" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "Mariy Ehl, Respublika" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "Mordovia, Respublika" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "Sakha, Respublika (Yakutiya)" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "Severnaya Osetia, Respublika (Alania)" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "Tatarstan, Respublika" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "Tyva, Respublika (Tuva)" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "Udmurtskaya Respublika" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "Khakassiya, Respublika" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "Chechenskaya Respublika" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "Chuvashskaya Respublika" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "Altayskiy Kray" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "Zabaykalskiy Kray" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "Kamchatskiy Kray" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "Krasnodarskiy Kray" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "Krasnoyarskiy Kray" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "Permskiy Kray" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "Primorskiy Kray" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "Stavropol'siyy Kray" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "Khabarovskiy Kray" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "Amurskaya oblast'" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "Arkhangel'skaya oblast'" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "Astrakhanskaya oblast'" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "Belgorodskaya oblast'" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "Bryanskaya oblast'" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "Vladimirskaya oblast'" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "Volgogradskaya oblast'" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "Vologodskaya oblast'" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "Voronezhskaya oblast'" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "Ivanovskaya oblast'" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "Irkutskaya oblast'" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "Kaliningradskaya oblast'" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "Kaluzhskaya oblast'" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "Kemerovskaya oblast'" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "Kirovskaya oblast'" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "Kostromskaya oblast'" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "Kurganskaya oblast'" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "Kurskaya oblast'" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "Leningradskaya oblast'" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "Lipeckaya oblast'" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "Magadanskaya oblast'" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "Murmanskaya oblast'" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "Nizhegorodskaja oblast '" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "Novgorodskaya oblast'" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "Novosibirskaya oblast'" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "Omskaya oblast'" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "Orenburgskaya oblast'" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "Orlovskaya oblast '" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "Penzenskaya oblast '" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "Pskovskaya oblast'" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "Rostovskaya oblast'" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "Rjazanskaya oblast'" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "Samarskaya oblast'" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "Saratovskaya oblast'" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "Sakhalinskaya oblast'" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "Sverdlovskaya oblast'" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "Smolenskaya oblast'" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "Tambovskaya oblast'" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "Tverskaya oblast'" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "Tomskaya oblast '" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "Tul'skaya oblast '" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "Tyumenskaya oblast '" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "Ul'ianovskaya oblast '" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "Chelyabinskaya oblast '" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "Yaroslavl Oblast '" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "Evreyskaya avtonomnaja oblast '" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "Neneckiy autonomnyy okrug" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "Chukotskiy avtonomnyy okrug" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "Yamalo-Neneckiy avtonomnyy okrug" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Introduïu un número d'organització Sueca vàlid." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Introduïu un número d'identitat personal suec vàlid." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "No es permeten números de coordinació." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Introduïu un codi postal suec en el format XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Estocolm" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Västerbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norrbotten" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Uppsala" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Södermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Östergötland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Jönköping" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmar" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Gotland" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Blekinge" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Skåne" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halland" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Västra Götaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Värmland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Örebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Västmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Dalarna" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gävleborg" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Västernorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jämtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" -"Els 7 primers dígits de l'EMSO han de representar una data vàlida en el " -"passat." - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "L'EMSO no és vàlid." - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "Entreu un número vàlid per a impostos en el format SIXXXXXXXX" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "Entreu un número de telèfon en el format +386XXXXXXXX o 0XXXXXXXX." - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Banska Bystrica" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banska Stiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Banovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytca" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Cadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolny Kubin" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajska Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenne" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kezmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komarno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Kosice I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Kosice II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Kosice III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Kosice IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Kosice - okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucke Nove Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoca" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovsky Mikulas" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lucenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Namestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nove Mesto nad Vahom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nove Zamky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizanske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piestany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltar" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povazska Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Presov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Puchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revuca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Roznava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ruzomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spisska Nova Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stara Lubovna" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidnik" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Sala" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolcany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebisov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trencin" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turcianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdosin" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velky Krtis" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Zarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Zilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Regió de Banska Bystrica" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Regió de Bratislava" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Regió de Kosice" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Regió de Nitra" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Regió de Presov" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Regió de Trencin" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Regió de Trnava" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Regió de Zilina" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Introduïu un codi postal amb el format XXXXX." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Els números de telèfon han de tenir el format 0XXX XXX XXXX." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Introduïu un número d'identificació turc vàlid." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "Els números d'identificació turcs han de tenir 11 dígits." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Introduïu un codi postal en el format XXXXX o XXXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Els números de telèfon han d'estar en el format XXX-XXX-XXXX." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" -"Introduïu un número vàlid de la Seguretat Social dels E.U.A. en el format " -"XXX-XX-XXXX." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Introduïu un estat o territori dels E.U.A." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Estat dels E.U.A. (dues lletres majúscules)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "Codi postal dels EUA (dues lletres majúscules)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Número de telèfon" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" -"Introduïu un número CI vàlid en el format X.XXX.XXX-X,XXXXXXX-X o XXXXXXXX." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Introduïu un número CI vàlid." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Introduïu un número d'Identitat Sud Africà vàlid" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Introduïu un codi postal Sud Africà vàlid." - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Cap Oriental" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Estat lliure" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Cap Nord" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "Cap Oest" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Cap Occidental" diff --git a/django/contrib/localflavor/locale/cs/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/cs/LC_MESSAGES/django.mo deleted file mode 100644 index c01aa55583..0000000000 Binary files a/django/contrib/localflavor/locale/cs/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/cs/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/cs/LC_MESSAGES/django.po deleted file mode 100644 index 8b91dfae94..0000000000 --- a/django/contrib/localflavor/locale/cs/LC_MESSAGES/django.po +++ /dev/null @@ -1,3545 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011. -# Jirka Vejrazka , 2011. -# Vlada Macek , 2011, 2012. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:41+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Vlada Macek \n" -"Language-Team: Czech (http://www.transifex.net/projects/p/django/language/" -"cs/)\n" -"Language: cs\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Zadejte poštovní směrovací číslo ve tvaru NNNN nebo ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Pole smí obsahovat pouze číslice." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Pole smí obsahovat jen 7 nebo 8 číslic." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "" -"Zadejte platné identifikační číslo CUIT ve tvaru XX-XXXXXXXX-X nebo " -"XXXXXXXXXXXX" - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "Neplatné CUIT" - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Hradsko" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Korutany" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Dolní Rakousko" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Horní Rakousko" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salcbursko" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Štýrsko" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tyrolsko" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlbersko" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Vídeň" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Zadejte poštovní směrovací číslo ve tvaru XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "Zadejte platné rodné číslo (ASSN) ve tvaru XXXX XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "Zadejte čtyřmístné poštovní číslo." - -#: au/models.py:9 -msgid "Australian State" -msgstr "Australský stát" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "Australské poštovní číslo" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "Australské telefonní číslo" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Antverpy" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Brusel" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Východní Flandry" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Vlámský Brabant" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Henegavsko" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Lutych" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburk" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Lucembursko" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Valonský Brabant" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Západní Flandry" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Brusel-hlavní město" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Vlámský region" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Valonsko" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "Vložte platné poštovní směrovací číslo v rozsahu a tvaru 1XXX - 9XXX." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Vložte platné telefonní číslo v jednom z tvarů 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Zadejte poštovní směrovací číslo ve tvaru XXXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Telefonní číslo smí být pouze ve tvaru XX-XXXX-XXXX." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "Neplatný brazilský stát. Vyberte jeden z nabízených států." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Neplatné číslo CPF." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Pole smí obsahovat nejvýše 11 číslic nebo 14 znaků." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Neplatné číslo CNPJ." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Pole smí obsahovat nejméně 14 číslic." - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Zadejte poštovní směrovací číslo ve tvaru XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"Zadejte platné kanadské číslo soc. pojištění (SID) ve tvaru XXX-XXX-XXX." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aargau" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basilej-město" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basilej-venkov" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Bern" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Fribourg" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Ženeva" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubünden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucern" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchâtel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "St. Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Curych" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Zadejte platné švýcarské identifikační číslo nebo číslo cestovního pasu ve " -"tvaru X1234567<0 nebo 1234567890." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Zadejte platné chilské RUT." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Zadejte platné chilské RUT ve tvaru XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "Neplatné RUT." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "Zadejte poštovní číslo ve tvaru XXXXXX." - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "Číslo identifikačního průkazu má 15 nebo 18 číslic." - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "Neplatné číslo identifikačního průkazu: Špatný kontrolní součet" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "Neplatné číslo identifikačního průkazu: Špatné datum narození" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "Neplatné číslo identifikačního průkazu: Špatný kód oblasti" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "Zadejte platné telefonní číslo." - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "Zadejte platné číslo buňky." - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Praha" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Středočeský kraj" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Jihočeský kraj" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Plzeňský kraj" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Karlovarský kraj" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Ústecký kraj" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Liberecký kraj" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Královéhradecký kraj" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Pardubický kraj" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Vysočina" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Jihomoravský kraj" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Olomoucký kraj" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Zlínský kraj" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Moravskoslezský kraj" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Zadejte poštovní směrovací číslo ve tvaru XXXXX nebo XXX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "Zadejte rodné číslo ve tvaru XXXXXX/XXXX nebo XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "Neplatný nepovinný parametr Gender, platné hodnoty jsou 'f' a 'm'." - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Zadejte platné rodné číslo." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Zadejte platné IČ." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Bádensko-Württembersko" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Bavorsko" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlín" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Braniborsko" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Brémy" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburk" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hesensko" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Meklenbursko-Přední Pomořansko" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Dolní Sasko" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "Severní Porýní-Vestfálsko" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Porýní-Falc" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Sársko" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Sasko" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Sasko-Anhaltsko" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Šlesvicko-Holštýnsko" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Durynsko" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Zadejte poštovní směrovací číslo ve tvaru XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Zadejte platné německé identifikační číslo ve tvaru XXXXXXXXXXX-XXXXXXX-" -"XXXXXXX-X." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Araba" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alacant" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almería" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Ávila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Baleáry" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barcelona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Caceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cádiz" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castellón" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Córdoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "A Coruña" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Girona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipúzcoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaén" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "León" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lérida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madrid" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Málaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murcie" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarra" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Orense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturie" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palencia" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Cruz de Tenerife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Kantábrie" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Sevilla" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valencie" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Biskajsko" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Zaragoza" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andalusie" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragonie" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Asturské knížectví" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Baleáry" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Baskicko" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Kanárské ostrovy" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Kastilie-La Mancha" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Kastilie a León" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Katalánsko" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Extremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galicie" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Murcie" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Navarra" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Valencie" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Zadejte platné poštovní směrovací číslo ve tvaru 01XXX - 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Zadejte platné telefonní číslo v jednom ze tvarů 6XXXXXXXX, 8XXXXXXXX nebo " -"9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Zadejte platné hodnoty NIF, NIE nebo CIF." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Zadejte platné hodnoty NIF nebo NIE." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Neplatný kontrolní součet pro NIF." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Neplatný kontrolní součet pro NIE." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Neplatný kontrolní součet pro CIF." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "Zadejte platné číslo bankovního účtu ve tvaru XXXX-XXXX-XX-XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Neplatný kontrolní součet pro číslo bankovního účtu." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Zadejte platné finské rodné číslo." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Telefonní číslo musí být ve tvaru 0X XX XX XX XX." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Zadejte platné poštovní směrovací číslo." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Cornwall" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cumbria" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "East Sussex" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Essex" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Velký Londýn" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Velký Manchester" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordshire" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "North Yorkshire" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northamptonshire" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oxfordshire" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "South Yorkshire" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordshire" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne a Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "West Midlands" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "West Sussex" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "West Yorkshire" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "County Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "County Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "County Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "County Fermanagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "County Londonderry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "County Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "South Glamorgan" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "West Glamorgan" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Střední Skotsko" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries a Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Orkneje" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Shetlandy" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Západní ostrovy" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "Anglie" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Severní Irsko" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Skotsko" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Wales" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "Zadejte platné JMBG o 13 číslicích." - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "Chybný segment data" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "Zadejte jedenáctimístné číslo OIB" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Vložte platné číslo poznávací značky vozu" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "Zadejte platný kód oblasti" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "Číselná část nesmí být nulová." - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "Zadejte platné pětimístné poštovní směrovací číslo." - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Zadejte platné telefonní číslo" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "Zadejte platnou oblast nebo kód mobilní sítě." - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "Telefonní číslo je příliš dlouhé." - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "Zadejte platné 19imístné JMBAG začínající na 601983." - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "Číslo vydání karty nemůže být nula" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "Grad Zagreb" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "Bjelovarsko-bilogorská župa" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "Brodsko-posávská župa" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "Dubrovnicko-neretvanská župa" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "Istrijská župa" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "Karlovacká župa" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "Koprivnicko-križevecká župa" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "Krapinsko-zagorská župa" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "Licko-senjská župa" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "Mezimuřská župa" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "Osijecko-baranjská župa" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "Požežsko-slavonská župa" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "Přímořsko-gorskokotarská župa" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "Sisacko-moslavinská župa" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "Splitsko-dalmatská župa" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "Šibenicko-kninská župa" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "Varaždinská župa" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "Viroviticko-podrávská župa" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "Vukovarsko-sremská župa" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "Zadarská župa" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "Záhřebská župa" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Zadejte platné poštovní směrovací číslo." - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Vložte platné číslo NIK/KTP" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Aceh" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Banten" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Bengkulu" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Yogyakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Jakarta" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Gorontalo" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Jambi" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Jawa Barat" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Jawa Tengah" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Jawa Timur" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Kalimantan Barat" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Kalimantan Selatan" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Kalimantan Tengah" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Kalimantan Timur" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Kepulauan Bangka-Belitung" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Kepulauan Riau" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampung" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Maluku" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Maluku Utara" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Nusa Tenggara Barat" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Nusa Tenggara Timur" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papua" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Papua Barat" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Riau" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Sulawesi Barat" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Sulawesi Selatan" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Sulawesi Tengah" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Sulawesi Tenggara" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Sulawesi Utara" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Sumatera Barat" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Sumatera Selatan" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Sumatera Utara" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Magelang" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Surakarta - Solo" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madiun" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kediri" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanuli" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Nanggroe Aceh Darussalam" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Kepulauan Bangka Belitung" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Corps Consulate" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Corps Diplomatic" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Bandung" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Sulawesi Utara Daratan" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timor" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Sulawesi Utara Kepulauan" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lombok" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Papua dan Papua Barat" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Cirebon" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbawa" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Flores" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Bogor" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalongan" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Semarang" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Pati" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Surabaya" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Madura" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malang" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Jember" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banyumas" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Federální vláda" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purwakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarjo" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Garut" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Antrim" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Armagh" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Carlow" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Cavan" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Clare" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Cork" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Derry" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Donegal" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Down" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Dublin" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fermanagh" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Galway" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerry" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Kildare" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Kilkenny" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Laois" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Leitrim" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerick" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Longford" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Louth" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Mayo" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Meath" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Monaghan" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Offaly" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Roscommon" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Sligo" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tipperary" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tyrone" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Waterford" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Westmeath" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Wexford" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Wicklow" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Zadejte poštovní směrovací číslo ve tvaru XXXXX" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Vložte platné číslo ID" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "Zadejte kód ZIP ve tvaru XXXXXX nebo XXX XXX." - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "Zadejte indický stát nebo teritorium." - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "Telefonní čísla musí být ve tvaru 02X-8X, 03X-7X nebo 04X-6X." - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "Zadejte platné islandské identifikační číslo ve tvaru XXXXXX-XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Neplatné islandské identifikační číslo." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Zadejte platné poštovní směrovací číslo." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Zadejte platné číslo SSN." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Zadejte platné daňové identifikační číslo." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Zadejte poštovní směrovací číslo ve tvaru XXXXXXX nebo XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaidó" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Mijagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Jamagata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukušima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Točigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Čiba" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tokio" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Jamanaši" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Tojama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Išikawa" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Šizuoka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aiči" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Šiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kjóto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Ósaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hjógo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakajama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Šimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okajama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hirošima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Jamaguči" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokušima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Kóči" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Óita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Mijazaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagošima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinawa" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Vložte platné kuvajtské občanské identifikační číslo" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" -"Číslo identifikačního průkazu musí buď obsahovat 4 či 7 číslic nebo z velké " -"písmo a 7 číslic." - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "Toto pole by mělo obsahovat přesně 13 číslic." - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "Prvních 7 číslic UMCN musí být platné uplynulé datum." - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "UMCN je neplatné." - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "Aerodrom" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "Aračinovo" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "Berovo" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "Bitola" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "Bogdanci" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "Bogovinje" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "Bosilovo" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "Brvenica" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "Butel" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "Valandovo" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "Vasilevo" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "Vevčani" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "Veles" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "Vinica" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "Vraneštica" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "Vrapčište" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "Gazi Baba" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "Gevgelija" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "Gostivar" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "Gradsko" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "Debar" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "Debarca" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "Delčevo" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "Demir Kapija" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "Demir Hisar" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "Dolneni" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "Drugovo" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "Gjorče Petrov" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "Želino" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "Zajas" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "Zelenikovo" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "Zrnovci" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "Ilinden" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "Jegunovce" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "Kavadarci" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "Karbinci" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "Karpoš" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "Kisela Voda" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "Kičevo" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "Konče" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "Koćani" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "Kratovo" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "Kriva Palanka" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "Krivogaštani" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "Kruševo" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "Kumanovo" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "Lipkovo" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "Lozovo" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "Mavrovo a Rostuša" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "Makedonska Kamenica" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "Makedonski Brod" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "Mogila" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "Negotino" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "Novaci" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "Novo Selo" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "Oslomej" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "Ohrid" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "Petrovec" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "Pehčevo" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "Plasnica" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "Prilep" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "Probištip" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "Radoviš" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "Rankovce" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "Resen" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "Rosoman" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "Saraj" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "Sveti Nikole" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "Sopište" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "Star Dojran" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "Staro Nagoričane" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "Struga" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "Strumica" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "Studeničani" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "Tearce" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "Tetovo" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "Centar" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "Centar-Župa" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "Čair" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "Čaška" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "Češinovo-Obleševo" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "Čučer-Sandevo" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "Štip" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "Šuto Orizari" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "Číslo makedonského identifikačního průkazu" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "Makedonská obec (dvoupísmenný kód)" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "Rodné číslo (13 číslic)" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "Zadejte platné PSČ ve tvaru XXXXX." - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "Zadejte platné RFC." - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "Neplatný kontrolní součet RFC." - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "Zadejte platný CURP." - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "Neplatný kontrolní součet CURP." - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "Mexický stát (tři velká písmena)" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "Mexické PSČ" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "Mexické RFC" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "Mexický CURP" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baja California" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baja California Sur" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Distrito Federal" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "México" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacán" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo León" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Querétaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potosí" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Yucatán" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Zadejte platné poštovní směrovací číslo" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Zadejte platné číslo SoFi" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drenthe" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Friesland" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Gelderland" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groningen" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Severní Brabantsko" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Severní Holandsko" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrecht" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zeeland" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Jižní Holandsko" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Zadejte platné norské číslo sociálního pojištěni (SSN)." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Pole musí obsahovat 8 číslic." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Pole musí obsahovat 11 číslic." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Národní identifikační číslo obsahuje 11 číslic." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Neplatný kontrolní součet pro Národní identifikační číslo." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "Číslo národního identifikačního průkazu (3 písmena a 6 číslic)" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "Špatný kontrolní součet čísla národního identifikačního průkazu." - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" -"Zadejte pole daňového čísla (NIP) ve tvaru XXX-XXX-XX-XX, XXX-XX-XX-XXX nebo " -"XXXXXXXXXX." - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Neplatný kontrolní součet pro daňové identifikační číslo." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "Identifikační číslo podnikatele (REGON) obsahuje 9 až 14 číslic." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "Neplatný kontrolní součet pro identifikační číslo podnikatele (REGON)." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Zadejte poštovní směrovací číslo ve tvaru XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Dolnoslezské vojvodství" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kujavsko-pomořské vojvodství" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublinské vojvodství" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubušské vojvodství" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodžské vojvodství" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Malopolské vojvodství" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Mazovské vojvodství" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opolské vojvodství" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Podkarpatské vojvodství" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podleské vojvodství" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomořské vojvodství" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Slezské vojvodství" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Svatokřížské vojvodství" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Varmijsko-mazurské vojvodství" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Velkopolské vojvodství" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "Západopomořanské vojvodství" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Zadejte poštovní směrovací číslo ve tvaru XXXX-XXX." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "Telefonní číslo musí mít 9 číslo nebo začínat + či 00." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Zadejte platné CIF." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Zadejte platné CNP." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "Zadejte platné IBAN ve tvaru ROXX-XXXX-XXXX-XXXX-XXXX-XXXX." - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Telefonní číslo musí být ve tvaru XXXX-XXXXXX." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Zadejte platné poštovní směrovací číslo ve tvaru XXXXXX." - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "Zadejte poštovní směrovací číslo ve tvaru XXXXXX." - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "Zadejte číslo pasu ve tvaru XXXX XXXXXX." - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "Zadejte číslo pasu ve tvaru XX XXXXXXX." - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "Centrální federální okruh" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "Jižní federální okruh" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "Severozápadní federální okruh" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "Dálněvýchodní federální okruh" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "Sibiřský federální okruh" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "Uralský federální okruh" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "Povolžský federální okruh" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "Severokavkazský federální okruh" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "Moskva" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "Petrohrad" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "Moskevská oblast" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "Adygejsko" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "Baškortostán" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "Burjatsko" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "Republika Altaj" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "Dagestán" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "Ingušsko" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "Kabardsko-Balkarsko" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "Kalmycko" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "Karačajevsko-Čerkesko" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "Republika Karélie" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "Komi" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "Marij El" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "Mordvinsko" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "Sacha" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "Severní Osetie (Alanie)" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "Tatarstán" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "Tuva" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "Udmurtsko" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "Chakasie" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "Čečensko" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "Čuvašsko" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "Altajský kraj" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "Zabajkalský kraj" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "Kamčatský kraj" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "Krasnodarský kraj" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "Krasnojarský kraj" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "Permský kraj" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "Přímořský kraj" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "Stavropolský kraj" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "Chabarovský kraj" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "Amurská oblast" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "Archangelská oblast" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "Astrachaňská oblast" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "Belgorodská oblast" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "Brjanská oblast" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "Vladimirská oblast" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "Volgogradská oblast" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "Vologdská oblast" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "Voroněžská oblast" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "Ivanovská oblast" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "Irkutská oblast" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "Kaliningradská oblast" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "Kalužská oblast" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "Kemerovská oblast" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "Kirovská oblast" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "Kostromská oblast" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "Kurganská oblast" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "Kurská oblast" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "Leningradská oblast" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "Lipecká oblast" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "Magadanská oblast" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "Murmanská oblast" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "Nižněnovgorodská oblast" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "Novgorodská oblast" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "Novosibirská oblast" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "Omská oblast" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "Orenburská oblast" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "Orelská oblast" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "Penzenská oblast" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "Pskovská oblast" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "Rostovská oblast" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "Rjazaňská oblast" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "Sachalinská oblast" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "Saratovská oblast" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "Sachalinská oblast" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "Sverdlovská oblast" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "Smolenská oblast" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "Tambovská oblast" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "Tverská oblast" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "Tomská oblast" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "Tomská oblast" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "Ťumenská oblast" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "Uljanovská oblast" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "Čeljabinská oblast" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "Jaroslavská oblast" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "Židovská autonomní oblast" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "Něnecký autonomní okruh" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "Chantymansijský autonomní okruh - Jugra" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "Čukotský autonomní okruh" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "Jamalskoněnecký autonomní okruh" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Vložte platné číslo švédské organizace." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Vložte platné švédské osobní identifikační číslo." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Koordinační čísla nejsou povolena." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Vložte švédské poštovní směrovací číslo ve tvaru XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Stockholm" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Västerbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norrbotten" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Uppsala" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Södermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Östergötland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Jönköping" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmar" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Gotland" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Blekinge" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Skåne" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halland" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Västra Götaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Värmland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Örebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Västmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Dalarna" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gävleborg" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Västernorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jämtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "Prvních 7 číslic EMSO musí představovat datum uplynulého dne." - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "EMSO je neplatné." - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "Zadejte platné daňové číslo ve tvaru SIXXXXXXXX." - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "Zadejte telefonní číslo ve tvaru +386XXXXXXXX nebo 0XXXXXXXX." - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Banská Bystrica" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banská Štiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Bánovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytča" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Čadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolný Kubín" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajská Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenné" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kežmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komárno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Košice I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Košice II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Košice III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Košice IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Košice-okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucké Nové Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoča" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovský Mikuláš" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lučenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Námestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nové Mesto nad Váhom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nové Zámky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizánske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piešťany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltár" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Považská Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Prešov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Púchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revúca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavská Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Rožňava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ružomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spišská Nová Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stará Ľubovňa" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidník" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Šaľa" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topoľčany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebišov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trenčín" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turčianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdošín" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Veľký Krtíš" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Topľou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlaté Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Žarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Žiar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Žilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Banskobystrický kraj" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Bratislavský kraj" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Košický kraj" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Nitranský kraj" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Prešovský kraj" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Trenčínský kraj" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Trnavský kraj" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Žilinský kraj" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Zadejte poštovní směrovací číslo ve tvaru XXXXX." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Telefonní čísla musí být ve tvaru 0XXX XXX XXXX." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Vložte platné Turecké Identifikační číslo." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "Turecké Identifikační číslo musí obsahovat 11 číslic." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Zadejte poštovní směrovací číslo ve tvaru XXXXX nebo XXXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Telefonní číslo musí být ve tvaru XXX-XXX-XXXX." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "Zadejte platné osobní číslo (U.S. SSN) ve tvaru XXX-XX-XXXX." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Vložte stát USA nebo teritorium." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Stát v USA (dvě velká písmena)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "Poštovní směrovací číslo v USA (dvě velká písmena)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Telefonní číslo" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "Vložte platné číslo CI ve tvaru X.XXX.XXX-X,XXXXXXX-X nebo XXXXXXXX." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Vložte platné číslo CI." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Zadejte platné jihoafrické identifikační číslo" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Zadejte platné jihoafrické poštovní směrovací číslo" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Východní Kapsko" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Svobodný stát" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Severní Kapsko" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "Severozápadní provincie" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Západní Kapsko" diff --git a/django/contrib/localflavor/locale/cy/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/cy/LC_MESSAGES/django.mo deleted file mode 100644 index 61193a49f4..0000000000 Binary files a/django/contrib/localflavor/locale/cy/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/cy/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/cy/LC_MESSAGES/django.po deleted file mode 100644 index 1568c36845..0000000000 --- a/django/contrib/localflavor/locale/cy/LC_MESSAGES/django.po +++ /dev/null @@ -1,3527 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:41+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: English \n" -"Language: cy\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != " -"11) ? 2 : 3\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "" - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "" - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "" - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "" - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "" - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "" - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "" - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "" - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "" - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "" - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "" - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "" - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "" - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "" - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "" - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "" - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "" - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "" - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "" - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "" - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "" - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "" - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "" - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "" - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "" - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "" - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "" - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "" - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "" - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "" - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "" - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "" - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "" - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "" - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "" - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "" - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "" - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "" - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "" - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "" - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "" - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "" - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "" - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "" - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "" - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "" - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Talaith U.D. (dwy briflythyren)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Rhif ffôn" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "" - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "" diff --git a/django/contrib/localflavor/locale/da/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/da/LC_MESSAGES/django.mo deleted file mode 100644 index b032b35e72..0000000000 Binary files a/django/contrib/localflavor/locale/da/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/da/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/da/LC_MESSAGES/django.po deleted file mode 100644 index 5f8be6d6e2..0000000000 --- a/django/contrib/localflavor/locale/da/LC_MESSAGES/django.po +++ /dev/null @@ -1,3551 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Christian Joergensen , 2012. -# Erik Wognsen , 2012. -# Finn Gruwier , 2011. -# Jannis Leidel , 2011. -# , 2012. -# Kristian Øllegaard , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:41+0100\n" -"PO-Revision-Date: 2012-03-20 07:36+0000\n" -"Last-Translator: Erik Wognsen \n" -"Language-Team: Danish (http://www.transifex.net/projects/p/django/language/" -"da/)\n" -"Language: da\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Indtast et postnummer i formatet NNNN eller ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "I dette felt skal kun indtastes cifre." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Dette felt kræver 7 eller 8 cifre." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Indtast en gyldig CUIT i format XX-XXXXXXXX-X eller XXXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "Ugyldig CUIT." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Carinthia" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Lower Austria" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Upper Austria" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salzburg" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Styria" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tyrol" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlberg" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Vienna" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Indtast et postnummer i formatet XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "Indtast et gyldigt østrigsk sygesikringsnummer i format XXXX XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "Indtast et firecifret postnummer." - -#: au/models.py:9 -msgid "Australian State" -msgstr "Australsk stat" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "Australsk postnummer" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "Australsk telefonnummer" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Antwerpen" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Bruxelles" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Østflandern" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Flamsk Brabant" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hainaut" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Liege" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburg" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Luxembourg" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Vallonsk Brabant" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Vestflandern" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Hovedstadsregionen Bruxelles" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Flamske region" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Vallonien" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "Indtast et gyldigt postnummer i område og format 1XXX - 9xxx." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Indtast et gyldigt telefonnummer i et af formaterne 0x xxx xx xx, 0xx xx xx " -"xx, 04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x . xxx.xx." -"xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx eller 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Indtast et postnummer i formatet XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Telefonnumre skal være i formatet XX-XXXX-XXXX." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "Vælg en gyldig brasiliansk provins. Denne provins er ikke gyldig." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Ugyldigt CPF-nummer." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Dette felt kræver mindst 11 og højst 14 tegn." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Ugyldigt CNPJ-nummer." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "dette felt kræver mindst 14 cifre." - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Indtast et postnummer i formatet XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "Indtast et gyldigt canadisk sygesikringsnummer i formatet XXX-XXX-XXX." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aargau" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basel-Stadt" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basel-Land" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Berne" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Fribourg" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Geneva" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubuenden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucerne" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchatel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "St. Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zurich" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Indtast et svejtsisk identitets- eller pasnr. i format X1234567<0 eller " -"1234567890." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Indtast en gyldig chilensk RUT" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Indtast en gyldig chilensk RUT. Formatet er XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "Den chilenske RUT er ugyldig." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "Indtast et postnummer i formatet XXXXXX." - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "ID-kortnummer består af 15 eller 18 cifre." - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "Ugyldigt ID-kortnummer: Forkert kontrolsum" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "Ugyldigt ID-kortnummer: Forkert fødselsdato" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "Ugyldigt ID-kortnummer: Forkert lokationskode" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "Indtast et gyldigt telefonnummer." - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "Indtast et gyldigt mobilnummer" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Prag" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Centrale Böhmen" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Sydlige Böhmen" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Pilsen-regionen" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Carlsbad-regionen" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Usti-regionen" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Liberec-regionen" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Hradec-regionen" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Pardubice-region" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Vysocina region" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Sydmoravien" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Olomuc-regionen" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Zlin-regionen" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Moravien-Silesien" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Indtast et postnr. i format XXXXX eller XXX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "Indtast et fødselsnr. i formatet XXXXXX/XXXX or XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "Ugyldig værdi for køn. Gyldige værdier er 'f' og 'm'." - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Indtast et gyldigt fødselsnummer." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Indtast et IC-nummer." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Wuerttemberg" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Bavaria" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlin" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburg" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Bremen" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburg" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hessen" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklenburg-Western Pomerania" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Lower Saxony" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "North Rhine-Westphalia" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Rhineland-Palatinate" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Saarland" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Saxony" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Saxony-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Thuringia" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Indtast et postnummer i formatet XXXXX" - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Indtast et tysk identiteskortsnr. i formatet XXXXXXXXXXX-XXXXXXX-XXXXXXX-X." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Arava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alacant" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almeria" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Avila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Illes Balears" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barcelona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Caceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cadiz" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castello" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Cordoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "A Coruna" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Girona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipuzkoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaen" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "Leon" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lleida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madrid" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Malaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murcia" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarre" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Ourense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturias" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palencia" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Cruz de Tenerife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Cantabria" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Seville" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valencia" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Bizkaia" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Zaragoza" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andalusia" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragon" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Principality of Asturias" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Balearic Islands" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Basque Country" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Canary Islands" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Castile-La Mancha" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Castile and Leon" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Catalonia" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Extremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galicia" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Region of Murcia" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Foral Community of Navarre" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Valencian Community" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Indtast et gyldigt postnr. i området 01XXX - 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Indtast et gyldigt telefonnr. i et af disse formater: 6XXXXXXXX, 8XXXXXXXX, " -"9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Indtast venligst gyldig NIF, NIE eller CIF." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Indtast venligst gyldig NIF eller NIE." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Ugyldig kontrolsum for NIF." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Ugyldig kontrolsum for NIE." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Ugyldig kontrolsum for CIF." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Indtast venligst et gyldigt bankkontonr. i formatet XXX-XXXX-XX-XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Ugyldig kontrolsum for bankkontonr." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Indtast et gyldigt finsk sygesikringsnummer." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Telefonnumre skal være i formatet 0X XX XX XX XX." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Indtast et gyldigt postnummer." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Cornwall and Isles of Scilly" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cumbria" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "East Sussex" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Essex" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Greater London" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Greater Manchester" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordshire" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "North Yorkshire" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northamptonshire" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oxfordshire" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "South Yorkshire" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordshire" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne and Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "West Midlands" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "West Sussex" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "West Yorkshire" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "County Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "County Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "County Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "County Fermanagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "County Londonderry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "County Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "South Glamorgan" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "West Glamorgan" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Central Scotland" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries and Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Orkney Islands" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Shetland Islands" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Western Isles" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "England" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Northern Ireland" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Scotland" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Walisisk" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "Indtast et gyldigt 13-cifret JMBG" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "Fejl i dato-segment" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "Indtast et gyldigt 11-cifret OIB" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Indtast et gyldigt bilnummer" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "Indtast en gyldig lokationskode" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "Tal-delen kan ikke være nul" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "Indtast et gyldigt femcifret postnummer" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Indtast et gyldigt telefonnummer" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "Indtast en gyldig område- eller mobilnetværkskode" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "Telefonnummeret er for langt" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "Indtast et gyldigt 19-cifret JMBAG startende med 601983" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "Kortudgivelsesnummer kan ikke være nul" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "Grad Zagreb" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "Bjelovarsko-bilogorska županija" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "Brodsko-posavska županija" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "Dubrovačko-neretvanska županija" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "Istarska županija" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "Karlovačka županija" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "Koprivničko-križevačka županija" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "Krapinsko-zagorska županija" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "Ličko-senjska županija" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "Međimurska županija" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "Osječko-baranjska županija" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "Požeško-slavonska županija" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "Primorsko-goranska županija" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "Sisačko-moslavačka županija" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "Splitsko-dalmatinska županija" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "Šibensko-kninska županija" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "Varaždinska županija" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "Virovitičko-podravska županija" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "Vukovarsko-srijemska županija" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "Zadarska županija" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "Zagrebačka županija" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Indtast et gyldigt postnummer" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Indtast et gyldigt NIK/KTP-nummer." - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Aceh" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Banten" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Bengkulu" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Yogyakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Jakarta" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Gorontalo" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Jambi" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Jawa Barat" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Jawa Tengah" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Jawa Timur" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Kalimantan Barat" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Kalimantan Selatan" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Kalimantan Tengah" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Kalimantan Timur" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Kepulauan Bangka-Belitung" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Kepulauan Riau" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampung" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Maluku" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Maluku Utara" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Nusa Tenggara Barat" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Nusa Tenggara Timur" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papua" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Papua Barat" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Riau" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Sulawesi Barat" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Sulawesi Selatan" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Sulawesi Tengah" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Sulawesi Tenggara" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Sulawesi Utara" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Sumatera Barat" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Sumatera Selatan" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Sumatera Utara" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Magelang" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Surakarta - Solo" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madiun" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kediri" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanuli" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Nanggroe Aceh Darussalam" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Kepulauan Bangka Belitung" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Corps Consulate" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Corps Diplomatic" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Bandung" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Sulawesi Utara Daratan" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timor" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Sulawesi Utara Kepulauan" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lombok" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Papua dan Papua Barat" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Cirebon" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbawa" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Flores" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Bogor" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalongan" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Semarang" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Pati" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Surabaya" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Madura" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malang" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Jember" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banyumas" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Federal Government" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purwakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarjo" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Garut" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Antrim" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Armagh" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Carlow" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Cavan" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Clare" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Cork" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Derry" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Donegal" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Down" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Dublin" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fermanagh" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Galway" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerry" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Kildare" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Kilkenny" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Laois" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Leitrim" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerick" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Longford" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Louth" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Mayo" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Meath" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Monaghan" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Offaly" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Roscommon" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Shigo" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tipperary" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tyrol" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Waterford" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Westmeath" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Wexford" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Wicklow" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Indtast et postnummer i formatet XXXXX" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Indtast et gyldigt ID-nummer." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "Indtast et postnummer i formatet XXXXXX eller XXX XXX." - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "Indtast en indisk stat eller territorie." - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "Telefonnumre skal være angivet i 02X-8x, 03X-7X eller 04X-6X format." - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" -"Indtast et gyldigt islandsk identifikationsnr. Formatet er XXXXXX-XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Det islandske identifikationsnummer er ikke gyldigt." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Indtast et gyldigt postnummer." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Indtast et gyldigt sygesikringsnummer." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Indtast et gyldigt momsnummer." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Indtast et gyldigt postnr. i formatet XXXXXXX eller XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaido" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Yamagata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukushima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Tochigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Chiba" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tokyo" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Yamanashi" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Toyama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ishikawa" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Shizuoka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Shiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kyoto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hyogo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakayama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okayama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hiroshima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Yamaguchi" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokushima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Kochi" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Oita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Miyazaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagoshima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinawa" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Indtast et gyldigt kuwaitisk personnummer." - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" -"Identitetskortnummer skal indeholde enten mellem fire og syv cifre eller et " -"stort bogstav og syv cifre" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "Dette felt burde indeholde præcis 13 cifre." - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" -"De første syv cifre af UMCN'en skal repræsentere en gyldig dato i fortiden." - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "UMCN'en er ikke gyldig." - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "Aerodrom" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "Aračinovo" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "Berovo" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "Bitola" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "Bogdanci" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "Bogovinje" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "Bosilovo" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "Brvenica" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "Butel" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "Valandovo" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "Vasilevo" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "Vevčani" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "Veles" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "Vinica" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "Vraneštica" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "Vrapčište" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "Gazi Baba" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "Gevgelija" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "Gostivar" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "Gradsko" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "Debar" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "Debarca" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "Delčevo" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "Demir Kapija" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "Demir Hisar" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "Dolneni" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "Drugovo" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "Gjorče Petrov" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "Želino" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "Zajas" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "Zelenikovo" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "Zrnovci" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "Ilinden" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "Jegunovce" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "Kavadarci" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "Karbinci" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "Karpoš" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "Kisela Voda" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "Kičevo" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "Konče" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "Koćani" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "Kratovo" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "Kriva Palanka" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "Krivogaštani" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "Kruševo" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "Kumanovo" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "Lipkovo" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "Lozovo" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "Mavrovo i Rostuša" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "Makedonska Kamenica" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "Makedonski Brod" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "Mogila" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "Negotino" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "Novaci" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "Novo Selo" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "Oslomej" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "Ohrid" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "Petrovec" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "Pehčevo" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "Plasnica" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "Prilep" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "Probištip" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "Radoviš" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "Rankovce" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "Resen" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "Rosoman" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "Saraj" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "Sveti Nikole" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "Sopište" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "Star Dojran" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "Staro Nagoričane" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "Struga" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "Strumica" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "Studeničani" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "Tearce" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "Tetovo" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "Centar" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "Centar-Župa" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "Čair" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "Čaška" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "Češinovo-Obleševo" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "Čučer-Sandevo" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "Štip" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "Šuto Orizari" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "Makedonsk identitetskort-nummer" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "En makedonsk kommune (2 bogstaver)" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "Unikt hovedborgernummer (13 tal)" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "Indtast et gyldigt postnummer angivet i formatet XXXXX." - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "Indtast en gyldig RFC." - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "Ugyldig kontrolsum for RFC." - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "Indtast en gyldig CURP." - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "Ugyldig kontrolsum for CURP." - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "Mexikansk stat (3 store bogstaver)" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "Mexikansk postnummer." - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "Mexikansk RFC" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "Mexikansk CURP" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baja California" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baja California Sur" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Distrito Federal" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Estado de México" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacán" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo León" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Querétaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potosí" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Yucatán" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Indtast et gyldigt postnummer" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Indtast et gyldigt SoFi-nummer" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drenthe" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Friesland" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Gelderland" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groningen" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Noord-Brabant" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Noord-Holland" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrecht" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zeeland" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Zuid-Holland" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Indtast et gyldigt norsk sygesikringsnummer." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Dette felt kræver 8 cifre." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Dette felt kræver 11 cifre." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Nationale identifikationsnumre kræver 11 cifre." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Forkert kontrolsum for nationalt identifikationsnummer." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "Nationalt ID-kortnummer består af 3 bostaver og 6 tal" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "Forkert kontrolsum for det nationale ID-kortnummer." - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" -"Indtast et momsregistreringsnummer felt (NIP) angivet i formatet XXX-XXX-XX-" -"XX, XXX-XX-XX-XXX eller XXXXXXXXXX." - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Forkert kontrolsum for NIP. " - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "National Business Register Number (REGON) består af 9 eller 14 cifre." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "Forkert kontrolsum for REGON-nr." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Indtast et postnummer i formatet XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Lower Silesia" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kuyavia-Pomerania" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublin" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubusz" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodz" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Lesser Poland" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Masovia" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opole" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Subcarpatia" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlasie" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomerania" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Silesia" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Swietokrzyskie" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Warmia-Masuria" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Greater Poland" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "West Pomerania" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Indtast et postnummer i formatet XXXX-XXX." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "Telefonnumre skal have 9 cifre, eller starte med + eller 00." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Indtast et gyldigt CIF." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Indtast et gyldigt CNP." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "Indtast et gyldigt IBAN i formatet ROXX-XXXX-XXXX-XXXX-XXXX-XXXX." - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Telefinnumre skal være i formatet XXXX-XXXXXX." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Indtast et gyldigt postnummer i formatet XXXXXX" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "Indtast et postnummer med formatet XXXXXX." - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "Indtast pasnummer i formatet XXXX XXXXXX." - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "Indtast pasnummer i formatet XX XXXXXXX." - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "Central Federal County" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "South Federal County" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "North-West Federal County" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "Far-East Federal County" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "Siberian Federal County" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "Ural Federal County" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "Privolzhsky Federal County" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "North-Caucasian Federal County" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "Moskva" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "Skt. Petersborg" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "Moskovskaya oblast'" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "Adygeya, Respublika" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "Bashkortostan, Respublika" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "Buryatia, Respublika" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "Altay, Respublika" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "Dagestan, Respublika" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "Ingushskaya Respublika" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "Kabardino-Balkarskaya Respublika" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "Kalmykia, Respublika" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "Karachaevo-Cherkesskaya Respublika" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "Karelia, Respublika" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "Komi, Respublika" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "Mariy Ehl, Respublika" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "Mordovia, Respublika" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "Sakha, Respublika (Yakutiya)" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "Severnaya Osetia, Respublika (Alania)" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "Tatarstan, Respublika" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "Tyva, Respublika (Tuva)" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "Udmurtskaya Respublika" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "Khakassiya, Respublika" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "Chechenskaya Respublika" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "Chuvashskaya Respublika" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "Altayskiy Kray" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "Zabaykalskiy Kray" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "Kamchatskiy Kray" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "Krasnodarskiy Kray" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "Krasnoyarskiy Kray" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "Permskiy Kray" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "Primorskiy Kray" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "Stavropol'siyy Kray" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "Khabarovskiy Kray" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "Amurskaya oblast'" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "Arkhangel'skaya oblast'" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "Astrakhanskaya oblast'" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "Belgorodskaya oblast'" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "Bryanskaya oblast'" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "Vladimirskaya oblast'" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "Volgogradskaya oblast'" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "Vologodskaya oblast'" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "Voronezhskaya oblast'" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "Ivanovskaya oblast'" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "Irkutskaya oblast'" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "Kaliningradskaya oblast'" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "Kaluzhskaya oblast'" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "Kemerovskaya oblast'" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "Kirovskaya oblast'" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "Kostromskaya oblast'" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "Kurganskaya oblast'" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "Kurskaya oblast'" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "Leningradskaya oblast'" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "Lipeckaya oblast'" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "Magadanskaya oblast'" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "Murmanskaya oblast'" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "Nizhegorodskaja oblast'" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "Novgorodskaya oblast'" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "Novosibirskaya oblast'" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "Omskaya oblast'" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "Orenburgskaya oblast'" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "Orlovskaya oblast'" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "Penzenskaya oblast'" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "Pskovskaya oblast'" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "Rostovskaya oblast'" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "Rjazanskaya oblast'" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "Samarskaya oblast'" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "Saratovskaya oblast'" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "Sakhalinskaya oblast'" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "Sverdlovskaya oblast'" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "Smolenskaya oblast'" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "Tambovskaya oblast'" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "Tverskaya oblast'" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "Tomskaya oblast'" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "Tul'skaya oblast'" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "Tyumenskaya oblast'" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "Ul'ianovskaya oblast'" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "Chelyabinskaya oblast'" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "Yaroslavskaya oblast'" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "Evreyskaya avtonomnaja oblast'" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "Neneckiy autonomnyy okrug" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "Chukotskiy avtonomnyy okrug" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "Yamalo-Neneckiy avtonomnyy okrug" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Indtast et gyldigt svensk organisationsnummer." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Indtast et gyldigt svensk personnummer." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Koordinationsnumre er ikke tilladt." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Indtast et svensk postnummer i formatet XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Stockholm" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Västerbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norrbotten" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Uppsala" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Södermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Östergötland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Jönköping" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmar" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Gotland" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Blekinge" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Skåne" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halland" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Västra Götaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Värmland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Örebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Västmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Dalarna" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gävleborg" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Västernorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jämtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" -"De første 7 cifre i EMSOen skal representere en gyldig dato i fortiden." - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "Denne EMSO er ugyldig." - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" -"Indtast et gyldigt momsregistreringsnummer angivet i formatet SIXXXXXXXX" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" -"Indtast telefonnummer angivet i formatet +386 XXXXXXXX eller 0XXXXXXXX." - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Banska Bystrica" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banska Stiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Banovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytca" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Cadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolny Kubin" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajska Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenne" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kezmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komarno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Kosice I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Kosice II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Kosice III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Kosice IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Kosice - okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucke Nove Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoca" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovsky Mikulas" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lucenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Namestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nove Mesto nad Vahom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nove Zamky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizanske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piestany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltar" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povazska Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Presov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Puchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revuca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Roznava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ruzomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "nov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spisska Nova Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stara Lubovna" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidnik" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Slovakisk" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolcany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebisov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Fransk" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turcianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdosin" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velky Krtis" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Zarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Zilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Banska Bystrica region" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Bratislava region" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Kosice region" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Nitra region" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Presov region" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Trencin region" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Trnava region" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Zilina region" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Indtast et postnummer i formatet XXXXX." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Telefonnumre skal være i formatet 0XXX XXX XXXX." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Indtast et gyldigt tyrkisk identifikationsnummer." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "Tyrkisk Identifikationsnummer skal være 11 cifre." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Indtast et postnr. i format XXXXX eller XXXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Telefonnumre skal være i formatet XXX-XXX-XXXX." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "Indtast et gyldigt U. S sygesikringsnummer i format XXX-XX-XXXX." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Indtast en amerikansk stat." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Stat (i USA, to store bogstaver)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "USA-postnummer (to store bogstaver)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Telefonnummer" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" -"Indtast et gyldigt CI-nummer i formatet X.XXX.XXX-X,XXXXXXX-X eller XXXXXXXX." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Indtast et gyldigt CI-nummer." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Indtast et gyldigt sydafrikansk sygesikringsnummer." - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Indtast et gyldigt sydafrikansk postnummer." - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Eastern Cape" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Free State" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Northern Cape" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "North West" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Western Cape" diff --git a/django/contrib/localflavor/locale/de/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/de/LC_MESSAGES/django.mo deleted file mode 100644 index 3a6e2fa200..0000000000 Binary files a/django/contrib/localflavor/locale/de/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/de/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/de/LC_MESSAGES/django.po deleted file mode 100644 index fdb45773a8..0000000000 --- a/django/contrib/localflavor/locale/de/LC_MESSAGES/django.po +++ /dev/null @@ -1,3567 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011, 2012. -# Mark Raddatz , 2011. -# , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:41+0100\n" -"PO-Revision-Date: 2012-03-14 06:52+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: German (http://www.transifex.net/projects/p/django/language/" -"de/)\n" -"Language: de\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Bitte eine gültige Postleitzahl im Format NNNN oder ANNNNAAA eingeben." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Dieses Feld darf nur Ziffern enthalten." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Dieses Feld benötigt 7 oder 8 Ziffern." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "" -"Bitte eine gültige CUIT im Format XX-XXXXXXXX-X oder XXXXXXXXXXXX eingeben." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "Ungültige CUIT." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Kärnten" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Niederösterreich" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Oberösterreich" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salzburg" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Steiermark" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tirol" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlberg" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Wien" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Bitte eine gültige Postleitzahl im Format XXXX eingeben." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Bitte eine gültige österreichische Sozialversicherungsnummer im Format XXXX " -"XXXXXX eingeben." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "Bitte eine 4-stellig Postleitzahl eingeben." - -#: au/models.py:9 -msgid "Australian State" -msgstr "Australischer Bundesstaat" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "Australisch Postleitzahl" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "Australisch Telefonnummer" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Antwerpen" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Brüssel" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Ostflandern" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Flämisch-Brabant" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hennegau" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Lüttich" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburg" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Luxemburg" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namür" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Wallonisch-Brabant" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Westflandern" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Region Brüssel-Hauptstadt" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Flandern" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Wallonie" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "Bitte eine gültige Postleitzahl im Format 1XXX bis 9XXX eingeben." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Bitte eine gültige Telefonnummer in einem der folgenden Formate eingeben 0x " -"xxx xx xx, 0xx xx xx xx, 04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx." -"xx.xx, 0x.xxx.xx.xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx " -"eingeben." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Bitte eine gültige Postleitzahl im Format XXXXX-XXX eingeben." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Telefonnummern müssen das Format XX-XXXX-XXXX haben." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "Bitte einen gültigen brasilianischen Bundesstaat auswählen." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Ungültige CPF-Nummer." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Dieses Feld benötigt mindestens 11 Ziffern oder 14 Zeichen." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Ungültige CNPJ-Nummer." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Dieses Feld benötigt mindestens 14 Ziffern" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Bitte eine gültige Postleitzahl im Format XXX XXX eingeben." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"Bitte eine gültige kanadische Sozialversicherungsnummer im Format XXX-XXX-" -"XXX eingeben." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aargau" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basel-Stadt" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basel-Land" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Bern" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Freiburg" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Genf" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubünden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Luzern" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchatel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "St. Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zürich" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Bitte eine gültige Schweizer Identifikations- oder Reisepassnummer im " -"FormatX1234567<0 oder 1234567890 eingeben." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Bitte eine gültige chilenische RUT eingeben." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Bitte eine chilenische RUT im Format XX.XXX.XXX-X eingeben." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "Diese chilenische RUT ist ungültig." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "Bitte eine Postleitzahl im Format XXXXXX eingeben." - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "Die Ausweisnummer besteht aus 15 oder 18 Ziffern." - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "Ungültige Ausweisnummer: Falsche Prüfsumme" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "Ungültige Ausweisnummer: Falsches Geburtsdatum" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "Ungültige Ausweisnummer: Falsche Ortskennzahl" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "Bitte eine gültige Telefonnummer eingeben." - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "Bitte eine gültige Handynummer eingeben." - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Prag" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Mittelböhmische Region" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Südböhmische Region" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Region Pilsen" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Region Karlsbad" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Region Ústí" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Region Liberec" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Region Königgrätz" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Region Pardubice" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Region Vysočina" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Südmährische Region" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Region Olmütz" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Region Zlín" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Mährisch-Schlesische Region" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Bitte eine gültige Postleitzahl im Format XXXXX oder XXX XX eingeben." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" -"Bitte eine Geburtsnummer im Format XXXXXX/XXXX oder XXXXXXXXXX eingeben." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "Ungültiger Wert für Geschlecht, gültig sind: 'f' und 'm'" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Bitte eine gültige Geburtsnummer eingeben." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Bitte eine gültige IC-Nummer eingeben." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Württemberg" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Bayern" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlin" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburg" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Bremen" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburg" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hessen" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklenburg-Vorpommern" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Niedersachsen" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "Nordrhein-Westfalen" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Rheinland-Pfalz" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Saarland" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Sachsen" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Sachsen-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Thüringen" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Bitte eine gültige Postleitzahl im Format XXXXX eingeben." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Bitte eine gültige deutsche Personalausweisnummer im Format XXXXXXXXXXX-" -"XXXXXXX-XXXXXXX-X eingeben." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Arava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alacant" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almería" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Ávila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Balearische Inseln" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barcelona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Cáceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cádiz" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castello" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Córdoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "A Coruña" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Girona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipuzkoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaén" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "León" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lleida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madrid" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Málaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murcia" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarre" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Ourense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturien" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palencia" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Cruz de Tenerife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Kantabrien" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Sevilla" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valencia" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Bizkaia" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Zaragoza" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andalusien" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragonien" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Fürstentum Asturien" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Balearische Inseln" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Baskenland" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Kanarische Inseln" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Kastilien-La Mancha" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Kastilien-León" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Katalonien" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Extremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galicien" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Murcia" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Foralgemeinschaft Navarra" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Valencia" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Bitte eine gültige Postleitzahl im Format 01XXX bis 52XXX eingeben." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Bitte eine gültige Telefonnummer in einem der folgenden Formate eingeben " -"6XXXXXXXX, 8XXXXXXXX oder 9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Bitte eine gültige NIF, NIE oder CIF eingeben." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Bitte eine gültige NIF oder NIE eingeben." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Ungültige Prüfsumme für NIF." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Ungültige Prüfsumme für NIE." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Ungültige Prüfsumme für CIF." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Bitte eine gültige Kontonummer im Format XXXX-XXXX-XX-XXXXXXXXXX eingeben." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Ungültige Prüfsumme für Kontonummer." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Bitte eine gültige finnische Sozialversicherungsnummer eingeben." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Telefonnummern müssen das Format 0X XX XX XX XX haben." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Bitte eine gültige Postleitzahl eingeben." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Cornwall and Isles of Scilly" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cumbria" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "East Sussex" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Essex" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Greater London" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Greater Manchester" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordshire" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "North Yorkshire" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northamptonshire" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oxfordshire" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "South Yorkshire" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordshire" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne and Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "West Midlands" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "West Sussex" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "West Yorkshire" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "County Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "County Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "County Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "County Fermanagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "County Londonderry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "County Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "South Glamorgan" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "West Glamorgan" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Central Scotland" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries and Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Orkney Islands" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Shetland Islands" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Western Isles" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "England" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Nordirland" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Schottland" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Wales" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "Bitte eine gültige 13-stellige JMBG eingeben" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "Fehler im Datums-Segment" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "Bitte eine gültige 11-stellige OIB eingeben" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Bitte eine gültige Nummernschildnummer eingeben" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "Bitte eine gültige Ortskennzahl eingeben" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "Der Nummernteil darf nicht Null sein" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "Bitte eine gültige 5-stellige Postleitzahl eingeben" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Bitte eine gültige Telefonnummer eingeben" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "Geben Sie eine gültige Bereichs- oder Mobilfunknetz-Vorwahl ein" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "Die Telefonnummer ist zu lang" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "Geben Sie eine gültige 19-stellige JMBAG beginnend mit 601983 ein" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "Die Ausstellungsnummer der Karte darf nicht Null sein" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "Stadt Zagreb" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "Gespanschaft Bjelovar-Bilogora" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "Gespanschaft Brod-Posavina" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "Gespanschaft Dubrovnik-Neretva" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "Gespanschaft Istrien" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "Gespanschaft Karlovac" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "Gespanschaft Koprivnica-Križevci" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "Gespanschaft Krapina-Zagorje" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "Gespanschaft Lika-Senj" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "Gespanschaft Međimurje" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "Gespanschaft Osijek-Baranja" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "Gespanschaft Požega-Slawonien" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "Gespanschaft Primorje-Gorski kotar" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "Gespanschaft Sisak-Moslavina" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "Gespanschaft Split-Dalmatien" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "Gespanschaft Šibenik-Knin" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "Gespanschaft Varaždin" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "Gespanschaft Virovitica-Podravina" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "Gespanschaft Vukovar-Syrmien" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "Gespanschaft Zadar" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "Gespanschaft Zagreb" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Bitte eine gültige Postleitzahl eingeben" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Bitte eine gültige NIK/KTP-Nummer eingeben." - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Aceh" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Banten" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Bengkulu" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Yogyakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Jakarta" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Gorontalo" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Jambi" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Jawa Barat" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Jawa Tengah" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Jawa Timur" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Kalimantan Barat" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Kalimantan Selatan" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Kalimantan Tengah" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Kalimantan Timur" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Kepulauan Bangka-Belitung" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Kepulauan Riau" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampung" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Maluku" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Maluku Utara" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Nusa Tenggara Barat" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Nusa Tenggara Timur" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papua" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Papua Barat" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Riau" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Sulawesi Barat" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Sulawesi Selatan" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Sulawesi Tengah" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Sulawesi Tenggara" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Sulawesi Utara" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Sumatera Barat" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Sumatera Selatan" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Sumatera Utara" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Magelang" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Surakarta - Solo" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madiun" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kediri" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanuli" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Nanggroe Aceh Darussalam" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Kepulauan Bangka Belitung" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Corps Diplomatic" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Corps Diplomatic" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Bandung" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Sulawesi Utara Daratan" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timor" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Sulawesi Utara Kepulauan" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lombok" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Papua dan Papua Barat" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Cirebon" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbawa" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Flores" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Bogor" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalongan" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Semarang" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Pati" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Surabaya" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Madura" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malang" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Jember" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banyumas" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Bundesregierung" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purwakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarjo" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Garut" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Antrim" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Armagh" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Carlow" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Cavan" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Clare" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Cork" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Derry" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Donegal" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Down" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Dublin" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fermanagh" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Galway" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerry" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Kildare" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Kilkenny" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Laois" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Leitrim" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerick" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Longford" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Louth" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Mayo" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Meath" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Monaghan" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Offaly" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Roscommon" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Sligo" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tipperary" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tyrone" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Waterford" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Westmeath" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Wexford" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Wicklow" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Bitte eine gültige Postleitzahl im Format XXXXX eingeben." - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Bitte eine gültige Ausweisnummer eingeben." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" -"Bitte eine gültige Postleitzahl im Format XXXXXX oder XXX XXX eingeben." - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "Geben Sie einen indischen Bundesstaat oder Territorium ein." - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "Telefonnummern müssen im Format 02X-8X, 03X-7X oder 04X-6X sein." - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" -"Bitte eine gültige isländische Identifikationsnummer im Format XXXXXX-XXXX " -"eingeben." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Die isländische Identifikationsnummer ist nicht gültig." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Bitte eine gültige Postleitzahl eingeben." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Bitte eine gültige Sozialversicherungsnummer eingeben." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Bitte eine gültige Umsatzsteuernummer eingeben." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "" -"Bitte eine gültige Postleitzahl im Format XXXXXXX oder XXX-XXXX eingeben." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaidō" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Yamagata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukushima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Tochigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Chiba" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tokio" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Yamanashi" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Toyama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ishikawa" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Shizuoka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Shiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kyōto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Ōsaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hyōgo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakayama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okayama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hiroshima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Yamaguchi" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokushima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Kochi" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Ōita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Miyazaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagoshima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinawa" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Bitte eine gültige Kuwaitische Identifikationsnummer eingeben" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" -"Ausweisnummern muss entweder 4 bis 7 Ziffern oder einen Großbuchstaben und 7 " -"Ziffern enthalten." - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "Dieses Feld sollte genau 13 Ziffern enthalten." - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" -"Die ersten 7 Ziffern der UMCN müssen ein gültiges Datum in der Vergangenheit " -"darstellen." - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "Die UMCN ist nicht gültig." - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "Aerodrom" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "Aračinovo" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "Berovo" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "Bitola" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "Bogdanci" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "Bogovinje" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "Bosilovo" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "Brvenica" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "Butel" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "Valandovo" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "Vasilevo" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "Vevčani" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "Veles" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "Vinica" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "Vraneštica" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "Vrapčište" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "Gazi Baba" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "Gevgelija" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "Gostivar" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "Gradsko" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "Debar" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "Debarca" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "Delčevo" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "Demir Kapija" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "Demir Hisar" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "Dolneni" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "Drugovo" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "Gjorče Petrov" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "Želino" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "Zajas" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "Zelenikovo" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "Zrnovci" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "Ilinden" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "Jegunovce" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "Kavadarci" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "Karbinci" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "Karpoš" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "Kisela Voda" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "Kičevo" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "Konče" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "Koćani" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "Kratovo" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "Kriva Palanka" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "Krivogaštani" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "Kruševo" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "Kumanovo" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "Lipkovo" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "Lozovo" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "Mavrovo und Rostuša" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "Makedonska Kamenica" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "Makedonski Brod" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "Mogila" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "Negotino" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "Novaci" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "Novo Selo" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "Oslomej" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "Ohrid" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "Petrovec" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "Pehčevo" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "Plasnica" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "Prilep" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "Probištip" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "Radoviš" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "Rankovce" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "Resen" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "Rosoman" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "Saraj" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "Sveti Nikole" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "Sopište" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "Star Dojran" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "Staro Nagoričane" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "Struga" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "Strumica" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "Studeničani" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "Tearce" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "Tetovo" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "Centar" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "Centar Župa" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "Čair" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "Čaška" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "Češinovo-Obleševo" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "Čučer-Sandevo" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "Štip" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "Šuto Orizari" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "Mazedonische Ausweisnummer" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "Eine mazedonischen Gemeinde (2 Zeichen-Code)" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "Eindeutige Bürger-Nummer (13 Ziffern)" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "Bitte eine gültige Postleitzahl im Format XXXXX eingeben." - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "Bitte gültige RFC eingeben." - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "Ungültige Prüfsumme für RFC-Nummer." - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "Bitte gültige CURP eingeben." - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "Ungültige Prüfsumme für CURP eingegeben." - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "Mexikanischer Bundesstaat (dreistellige Abkürzung)" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "Mexikanische Postleitzahl" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "Mexikanische RFC" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "Mexikanische CURP" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baja California" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baja California Sur" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Distrito Federal" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Estado de México" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacán" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo León" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Querétaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potosí" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Yucatán" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Bitte eine gültige Postleitzahl eingeben" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Bitte eine gültige SoFi-Nummer eingeben" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drente" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Friesland" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Gelderland" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groningen" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Nordbrabant" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Nordholland" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrecht" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zeeland" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Südholland" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Bitte eine gültige norwegische Sozialversicherungsnummer eingeben." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Dieses Feld benötigt 8 Zeichen." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Dieses Feld benötigt 11 Zeichen." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Nationale Identifikationsnummer besteht aus 11 Ziffern." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Falsche Prüfsumme für die nationale Identifikationsnummer." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "Die nationale Ausweisnummer besteht aus 3 Buchstaben und 6 Ziffern." - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "Falsche Prüfsumme für die nationale Ausweisnummer." - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" -"Bitte eine Steuernummer (NIP) im Format XXX-XXX-XX-XX, XXX-XX-XX-XXX oder " -"XXXXXXXXXX eingeben." - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Falsche Prüfsumme für die Steuernummer (NIP)." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" -"Nationale Geschäftsregistrierungsnummer (REGON) besteht aus 9 oder 14 " -"Zeichen." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" -"Falsche Prüfsumme für die nationale Geschäftsregistrierungsnummer (REGON)." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Bitte eine gültige Postleitzahl im Format XX-XXX eingeben." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Niederschlesien" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kujawien-Pommern" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublin" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Land Lebus" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Łódź" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Kleinpolen" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Masowien" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Oppeln" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Karpatenvorland" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlasie" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pommern" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Schlesien" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Heiligkreuz" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Ermland-Masuren" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Großpolen" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "Vorpommern" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Bitte eine gültige Postleitzahl im Format XXXX-XXX eingeben." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" -"Telefonnummern müssen aus 9 Ziffern bestehen, oder mit + oder 00 beginnen." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Bitte eine gültige CIF eingeben." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Bitte eine gültige CNP eingeben." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "" -"Bitte eine gültige IBAN im Format ROXX-XXXX-XXXX-XXXX-XXXX-XXXX eingeben." - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Telefonnummern müssen das Format XXXX-XXXXXX haben." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Bitte eine gültige Postleitzahl im Format XXXXXX eingeben" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "Bitte eine Postleitzahl im Format XXXXXX eingeben." - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "Bitte eine Reisepassnummer im Format XXXX XXXXXX eingeben." - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "Bitte eine Reisepassnummer im Format XX XXXXXXX eingeben." - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "Föderationskreis Zentralrussland" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "Föderationskreis Südrussland" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "Föderationskreis Nordwestrussland" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "Föderationskreis Ferner Osten" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "Föderationskreis Sibirien" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "Föderationskreis Ural" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "Föderationskreis Wolga" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "Föderationskreis Nordkaukasus" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "Moskau" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "Sankt Petersburg" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "Oblast Moskau" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "Republik Adygeja" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "Republik Baschkortostan" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "Republik Burjatien" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "Republik Altai" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "Republik Dagestan" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "Republik Inguschetien" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "Kabardino-Balkarische Republik" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "Republik Kalmückien" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "Karatschai-Tscherkessische Republik" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "Republik Karelien" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "Republik Komi" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "Republik Mari El" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "Republik Mordwinien" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "Republik Sacha (Jakutien)" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "Republik Nordossetien-Alanien" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "Republik Tatarstan" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "Republik Tuwa" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "Udmurtische Republik" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "Republik Chakassien" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "Tschetschenische Republik" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "Tschuwaschische Republik" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "Region Altai" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "Region Transbaikalien" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "Region Kamtschatka" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "Region Krasnodar" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "Region Krasnojarsk" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "Region Perm" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "Region Primorje" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "Region Stawropol" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "Region Chabarowsk" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "Oblast Amur" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "Oblast Archangelsk" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "Oblast Astrachan" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "Oblast Belgorod" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "Oblast Brjansk" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "Oblast Wladimir" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "Volgogradskaya Oblast '" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "Oblast Wolgograd" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "Oblast Woronesch" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "Oblast Iwanowo" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "Oblast Irkutsk" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "Oblast Kaliningrad" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "Oblast Kaluga" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "Oblast Kemerowo" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "Oblast Kirow" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "Oblast Kostroma" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "Oblast Kurgan" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "Oblast Kursk" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "Oblast Leningrad" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "Oblast Lipezk" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "Oblast Magadan" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "Oblast Murmansk" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "Oblast Nischni Nowgorod" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "Oblast Nowgorod" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "Oblast Nowosibirsk" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "Oblast Omsk" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "Oblast Orenburg" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "Oblast Orjol" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "Oblast Pensa" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "Oblast Pskow" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "Oblast Rostow" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "Oblast Rjasan" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "Oblast Samara" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "Oblast Saratow" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "Oblast Sachalin" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "Oblast Swerdlowsk" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "Oblast Smolensk" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "Oblast Tambow" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "Oblast Twer" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "Oblast Tomsk" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "Oblast Tula" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "Oblast Tjumen" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "Oblast Uljanowsk" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "Oblast Tscheljabinsk" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "Oblast Jaroslawl" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "Jüdische Autonome Oblast" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "Autonomer Kreis der Nenzen" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "Autonomer Kreis der Chanten und Mansen - Jugra" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "Autonomer Kreis der Tschuktschen" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "Autonomer Kreis der Jamal-Nenzen" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Bitte eine gültige Schwedische Organisationsnummer eingeben." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Bitte eine gültige schwedische Personenidentifikationsnummer eingeben." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Ordnungsnummern sind nicht erlaubt." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Bitte eine gültige schwedische Postleitzahl im Format XXXXX eingeben." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Stockholm" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Västerbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norrbotten" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Uppsala" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Södermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Östergötland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Jönköping" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmar" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Gotland" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Blekinge" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Skåne" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halland" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Västra Götaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Värmland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Örebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Västmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Dalarna" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gävleborg" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Västernorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jämtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" -"Die ersten 7 Stellen der EMSO Ziffer muss einem vergangenen Datum " -"entsprichen. " - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "EMSO ungültig." - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "Bitte eine gültige Steuernummer im Format SIXXXXXXXX eingeben" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "Bitte eine Telefonnummer im Format +386XXXXXXXX or 0XXXXXXXX eingeben." - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Banská Bystrica" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banská Štiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Bánovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytča" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Čadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolný Kubín" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajská Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenné" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kežmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komarno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Kosice I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Kosice II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Kosice III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Kosice IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Kosice - okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucké Nové Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoča" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovský Mikuláš" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lučenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Námestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nové Mesto nad Váhom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nové Zámky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizánske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piešťany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltár" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Považská Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Prešov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Púchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revúca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Rožňava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ružomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spišská Nová Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stará Ľubovňa" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidník" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Sala" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topoľčany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebišov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trenčín" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turčianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdošín" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Veľký Krtíš" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Topľou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Žarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Žiar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Žilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Banská Bystrica Region" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Bratislavský kraj" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Kosice" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Nitra" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Prešov" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Trenčín" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Trnava" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Žilina" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Geben Sie eine Postleitzahl im Format XXXXX ein." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Telefonnummern müssen im Format 0XXX XXX XXXX sein." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Geben Sie eine valide Türkische Identifikationsnummer ein." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "Türkische Identifikationsnummern benötigen 11 Zeichen." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "" -"Bitte eine gültige Postleitzahl im Format XXXXX oder XXXXX-XXXX eingeben." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Telefonnummern müssen das Format XXX-XXX-XXXX haben." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" -"Bitte eine gültige US-amerikanische Sozialversicherungsnummer im Format XXX-" -"XX-XXXX eingeben." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Geben Sie einen US-Bundesstaat oder Territorium ein." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "U.S.-Bundesstaat (zwei Großbuchstaben)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "US-Postleitzahl (zwei Großbuchstaben)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Telefonnummer" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" -"Bitte eine gültige CI im Format X.XXX.XXX-X,XXXXXXX-X oder XXXXXXXX eingeben." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Bitte eine gültige CI-Nummer eingeben." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Bitte eine gültige südafrikanische Identifikationsnummer eingeben" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Bitte eine gültige südafrikanische Postleitzahl eingeben" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Ostkap" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Freistaat" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Nordkap" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "Nordwest" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Westkap" diff --git a/django/contrib/localflavor/locale/el/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/el/LC_MESSAGES/django.mo deleted file mode 100644 index 20078ffe5e..0000000000 Binary files a/django/contrib/localflavor/locale/el/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/el/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/el/LC_MESSAGES/django.po deleted file mode 100644 index ccba8da991..0000000000 --- a/django/contrib/localflavor/locale/el/LC_MESSAGES/django.po +++ /dev/null @@ -1,3556 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Dimitris Glezos , 2011. -# Jannis Leidel , 2011. -# Yorgos Pagles , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:41+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Yorgos Pagles \n" -"Language-Team: Greek (http://www.transifex.net/projects/p/django/language/" -"el/)\n" -"Language: el\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Εισαγάγετε έναν ταχυδρομικό κώδικα σε μορφή NNNN ή ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Αυτό το πεδίο απαιτεί μόνο αριθμούς." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Αυτό το πεδίο απαιτεί 7 ή 8 ψηφία." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Εισάγετε έγκυρο CUIT στη μορφή ΧΧ-XXXXXXXX-X ή XXXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "Λανθασμένο CUIT." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Μπούργκενλαντ" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Καρινθία" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Κάτω Αυστρία" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Άνω Αυστρία" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Σάλτσμπουργκ" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Στυρία" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Τυρόλο" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlberg" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Βιέννη" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Πληκτρολογήστε έναν ταχυδρομικό κωδικό στο ΧΧΧΧ μορφή." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Εισάγετε έναν έγκυρθ αυστριακό Αριθμό Κοινωνικής Ασφάλισης στη μορφή XXXX " -"XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Αμβέρσα" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Βρυξέλλες" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Ανατολική Φλάνδρα" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Φλαμανδική Μπραμπάντ" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hainaut" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Λιέγη" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburg" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Λουξεμβούργο" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Ουαλονική/Βαλλονική Μπραμπάντ" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Δυτική Φλάνδρα" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Περιφέρεια Βρυξελλών Capital" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Περιφέρεια της Φλάνδρας" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Βαλλονία - γαλλόφωνο Βέλγιο" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" -"Εισάγετε έναν έγκυρο ταχυδρομικό κώδικα με εύρος και μορφή 1xxx - 9XXX." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Εισάγετε έναν έγκυρο αριθμό τηλεφώνου σε μία από τις μορφές 0x xxx xx xx, " -"0xx xx xx xx, 04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x." -"xxx.xx.xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Πληκτρολογήστε έναν ταχυδρομικό κώδικα σε μορφή ΧΧΧΧΧ-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Οι αριθμοί τηλεφώνου πρέπει να έχουν μορφή XX-XXXX-XXXX." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Επιλέξτε μια έγκυρη βραζιλιάνικη πριφέρεια. Το όνομα της περιφέρειας αυτής " -"δεν είναι έγκυρο." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Ο αριθμός CPF δεν είναι έγκυρος." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Αυτό το πεδίο απαιτεί το πολύ 11 ψηφία ή 14 χαρακτήρες." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Ο αριθμός CNPJ δεν είναι έγκυρος." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Αυτό το πεδίο απαιτεί τουλάχιστον 14 ψηφία" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Εισαγάγετε έναν ταχυδρομικό κώδικα με τη μορφή ΧΧΧ ΧΧΧ." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"Εισάγετε έναν έγκυρο καναδικό αριθμό κοινωνικής ασφάλισης στη μορφή ΧΧΧ-ΧΧΧ." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aargau" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basel-Stadt" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basel-Land" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Βέρνη" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Φράιμπουργκ" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Γενεύη" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubuenden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Λουκέρνη" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchatel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "Σεντ Γκάλεν" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Ζυρίχη" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Εισάγετε έναν έγκυρο αριθμό ελβετικής ταυτότητας ή διαβατηρίου με μορφή " -"X1234567<0 ή 1234567890." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Εισάγετε ένα έγκυρο αριθμό RUT Χιλής." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Εισάγετε ένα έγκυρο αριθμό RUT Χιλής. Η μορφή του είναι XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "Αυτός ο αριθμός RUT Χιλής δεν είναι έγκυρος. " - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Πράγα" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Κεντρική Περιφέρεια Βοημίας" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Περιφέρεια Νοτίου Βοημίας" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Περιφέρεια Pilsen" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Περιφέρεια Carlsbad" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Περιφέρεια Usti" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Περιφέρεια Liberec" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Περιφέρεια Χράντεκ" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Περιφέρεια Pardubice" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Περιφέρεια Vysocina" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Περιφέρεια Νότιας Μοραβίας" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Περιφέρεια Olomouc" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Περιφέρεια Zlin" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Περιφέρεια Μοραβίας-Σιλεσίας" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Εισαγάγετε έναν ταχυδρομικό κώδικα σε μορφή XXXXX ή XXX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" -"Πληκτρολογήστε έναν αριθμό γέννησης με τη μορφή XXXXXX / XXXX ή XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" -"Μη έγυρη επιλογή για την προεραιτική παράμετρο \"Φύλο\". Έγκυρες επιλογές " -"είναι 'f' για αρσνικό και 'm' για θυληκό." - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Πληκτρολογήστε έναν έγκυρο αριθμό γέννησης." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Πληκτρολογήστε έναν έγκυρο αριθμό IC." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Wuerttemberg" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Βαυαρία" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Βερολίνο" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Βραδεμβούργο" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Βρέμη" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Αμβούργο" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Έσσεν" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Μεκλεμβούργο-Δυτική Προπομερανία" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Κάτω Σαξονία" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "Βόρεια Ρηνανία-Βεστφαλία" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Ρηνανία-Παλατινάτο" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Σάαρλαντ" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Σαξωνία" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Σαξονία-Άνχαλτ" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Θουριγγία" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Πληκτρολογήστε έναν ταχυδρομικό κωδικό στο XXXXX σχήμα." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Πληκτρολογήστε έναν έγκυρο γερμανικό αριθμό ταυτότητας με μορφή XXXXXXXXXXX-" -"XXXXXXX-XXXXXXX-X." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Arava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Αλμπαθέτε" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alacant" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Αλμερία" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Avila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Βαλεαρίδες Νήσοι" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Βαρκελώνη" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Caceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Καντίζ" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castello" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Κόρδοβα" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "A Coruna" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Girona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Γρανάδα" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Γκουανταλαχάρα" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipuzkoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Ουέλβα" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaen" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "Leon" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lleida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Μαδρίτη" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Μάλαγα" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Μούρθια" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Ναβάρα" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Ουρένσε" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Αστούριας" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palencia" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Λας Πάλμας" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Σαλαμάνκα" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Σάντα Κρούζ Τενερίφης" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Cantabria" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Σεβίλλη" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Σόρια" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Ταραχόνα" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Τολέδο" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Βαλένθια" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Βαγιαδολίδ" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Βισκάια" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Ζαμόρα" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Σαραγόσα" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Θέουτα" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Μελίλια" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Ανδαλουσία" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragon" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Πριγκιπάτο της Αστούριας" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Βαλεαρίδες Νήσοι" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Χώρα των Βάσκων" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Κανάριοι Νήσοι" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Castilla-La Mancha" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Καστίλλη και Λεόν" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Καταλονία" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Εξτρεμαδούρα" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Γαλικία" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Περιφέρεια της Μούρθια" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Κοινότητας Foral της Ναβάρρας" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Κοινότητα της Βαλένθια" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" -"Εισάγετε έναν έγκυρο ταχυδρομικό κώδικα με εύρος και μορφή 01XXX - 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Πληκτρολογήστε έναν έγκυρο αριθμό τηλεφώνου μία από τις μορφές 6XXXXXXXX, " -"8XXXXXXXX ή 9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Παρακαλώ εισάγετε έναν έγκυρο αριθμό NIF, ΝΙΕ ή CIF." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Παρακαλώ εισάγετε έναν έγκυρο αριθμό NIF ή ΝΙΕ." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Ο αριθμός NIF δεν επαληθεύεται." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Ο αριθμός NIE δεν επαληθεύεται." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Ο αριθμός CIF δεν επαληθεύεται." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Πρακαλούμε εισάγετε έναν έγκυρο αριθμό τραπεζικού λογαριασμού σε μορφή ΧΧΧΧ-" -"ΧΧΧΧ-ΧΧ-XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Ο αριθμός τραπεζικού λογαριασμού δεν επαληθεύεται." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Εισάγετε έναν έγκυρο φινλανδικό αριθμό μητρώου κοινωνικής ασφάλισης." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Οι αριθμοί τηλεφώνου πρέπει να είναι σε μορφή 0X XX XX XX XX." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Εισάγετε ένα έγκυρο ταχυδρομικό κώδικα." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Μπεντφορντσάιρ" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Μπακινγκχαμσάιρ" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Κορνουάλη και νήσοι Scilly" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cumbria" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Ντερμπυσάιρ" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Ντέβον" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Ντόρσετ" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Ντάρχαμ" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "Ανατολικό Σάσεξ" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Έσσεξ" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Ευρύτερο Λονδίνο" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Ευρύτερο Μάντσεστερ" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Χάμπσάιρ" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Χαρτφορντσάιρ" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Κέντ" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Μερσερσάιντ" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Νόρφολκ" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "Βόρειο Γιόρκσαϊρ" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Νόρθχαμπτονσαϊρ" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Νότιγχαμσαϊρ" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Όξφορντσαϊρ" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Σόμερσετ" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "Νότιο Γιόρκσαϊρ" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Στάφορντσαϊρ" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Σάφολκ" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Σάρεϊ" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne and Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Γουόργουικσαϊρ" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "West Midlands" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "Δυτικό Σάσεξ" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "Δυτικό Γιόρκσαϊρ" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "Επαρχία Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "Επαρχία Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "Επαρχία Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "Επαρχία Fermanagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "County Londonderry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "County Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Κεντρικό Γκλαμόργκαν" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "Νότιο Γκλαμόργκαν" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "Δυτικό Γκλαμόργκαν" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Μπόρντερς" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Κεντρική Σκωτία" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Ντάμφρις και Γκάλοουέι" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Φλογέρα" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Χάιλαντ" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Orkney Islands" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Shetland Islands" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Western Isles" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "Αγγλία" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Βόρεια Ιρλανδία" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Σκωτία" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Ουαλία" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Εισάγετε έναν έγυρο αριθμό πινακίδας οχήματος." - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Εισάγετε έναν έγκυρο αριθμό τηλεφώνου" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Εισάγετε έναν έγκυρο ταχυδρομικό κώδικα" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Εισάγετε έναν έγκυρο αριθμό ΝΙΚ/KTP" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Ατσέ" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Μπαλί" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Banten" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Μπενγκουλού" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Yogyakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Τζακάρτα" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Γκοροντάλο" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Jambi" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Jawa Barat" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Jawa Tengah" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Jawa Timur" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Kalimantan Barat" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Kalimantan Selatan" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Kalimantan Tengah" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Kalimantan Timur" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Kepulauan Bangka-Belitung" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Kepulauan Riau" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampung" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Μαλούκου" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Maluku Utara" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Nusa Tenggara Barat" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Nusa Tenggara Timur" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Παπούα" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Παπούα Barat" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Riau" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Sulawesi Barat" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Sulawesi Selatan" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Sulawesi Tengah" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Sulawesi Tenggara" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Sulawesi Utara" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Sumatera Barat" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Sumatera Selatan" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Sumatera Utara" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Magelang" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Surakarta - Solo" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madiun" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kediri" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanuli" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Nanggroe Aceh Darussalam" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Kepulauan Bangka Belitung" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Σώμα Προξενείων" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Διπλωματικό Σώμα" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Bandung" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Sulawesi Daratan Utara" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timor" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Sulawesi Kepulauan Utara" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lombok" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Papua dan Papua Barat" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Cirebon" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbawa" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Flores" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Bogor" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalongan" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Semarang" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Pati" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Σουραμπάγια" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Madura" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malang" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Jember" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banyumas" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Ομοσπονδιακή κυβέρνηση" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purwakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarjo" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Garut" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Antrim" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Armagh" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Carlow" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Cavan" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Clare" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Cork" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Derry" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Donegal" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Down" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Δουβλίνο" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fermanagh" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Galway" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerry" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Kildare" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Kilkenny" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Laois" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Leitrim" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerick" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Λόνγκφορντ" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Louth" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Mayo" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Meath" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Monaghan" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Offaly" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Roscommon" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Sligo" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tipperary" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tyrone" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Waterford" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Westmeath" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Wexford" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Wicklow" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Εισαγάγετε έναν ταχυδρομικό κώδικα σε μορφή XXXXX" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Πληκτρολογήστε έναν έγκυρο αριθμό ταυτότητας." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" -"Εισάγετε έναν έγκυρο αριθμό ισλανδικής ταυτότητας. Η μορφή είναι XXXXXX-ΧΧΧΧ." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Μη έγκυρος αριθμός ισλανδικής ταυτότητας. " - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Εισάγετε έναν έγκυρο ταχυδρομικό κώδικα." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Πληκτρολογήστε έναν έγκυρο αριθμό Κοινωνικής Ασφάλισης." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Πληκτρολογήστε έναν έγκυρο αριθμό ΦΠΑ." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Εισαγάγετε έναν ταχυδρομικό κώδικα σε μορφή XXXXXXX ή XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaido" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Αομόρι" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Ακίτα" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Γιαμαγκάτα" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Φουκουσίμα" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Tochigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Σαϊτάμα" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Τσίμπα" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Τόκιο" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Γιαμανάσι" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Ναγκάνο" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Νιιγκάτα" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Τογιάμα" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ισικάουα" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Φουκούι" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Σιζουόκα" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Shiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Κιότο" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Οσάκα" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hyogo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakayama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okayama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Χιροσίμα" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Γιαμαγκούτσι" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokushima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Κότσι" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Φουκουόκα" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Ναγκασάκι" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Κουμαμότο" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Οϊτά" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Μιγιαζάκι" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Καγκοσίμα" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Οκινάουα" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Εισάγετε έναν έγκυρο αριθμό ταυτότητας Κουβέιτ." - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baja California" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baja California Sur" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Τσιουάουα" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Distrito Federal" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Estado de México" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacán" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo León" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Querétaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potosí" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Yucatán" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Εισάγετε έναν έγκυρο ταχυδρομικό κώδικα" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Πληκτρολογήστε έναν έγκυρο αριθμό SoFi" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Ντρέντε" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Friesland" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Gelderland" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Γκρόνινγκεν" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Noord-Brabant" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Noord-Holland" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Ουτρέχτη" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zeeland" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Zuid-Holland" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Εισάγετε έναν έγκυρο νορβηγικό αριθμό μητρώου κοινωνικής ασφάλισης." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Αυτό το πεδίο απαιτεί 8 ψηφία." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Αυτό το πεδίο απαιτεί 11 ψηφία." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Ο Αριθμός Ταυτότητας αποτελείται από 11 ψηφία." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Ο Αριθμός Ταυτότητας δεν επαληθεύεται" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Ο αριθμό φορολογικού μητρώου (ΑΦΜ) δεν επαληθεύεται." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" -"Ο Αριθμός Εθνικού Μητρώου Επιχειρήσεων (REGON) αποτελείται από 9 ή 14 ψηφία." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "Ο Αριθμός Εθνικού Μητρώου Επιχειρήσεων (REGON) δεν επαληθεύεται." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Εισαγάγετε έναν ταχυδρομικό κώδικα με τη μορφή XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Κάτω Σιλεσία" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kuyavia-Πομερανίας" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublin" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubusz" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodz" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Lesser Poland" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Masovia" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opole" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Subcarpatia" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlasie" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Πομερανία" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Silesia" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Swietokrzyskie" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Warmia-Masuria" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Greater Poland" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "Δυτική Πομερανία" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Πληκτρολογήστε έναν ταχυδρομικό κώδικα σε μορφή ΧΧΧΧ-ΧΧΧ." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "Οι αριθμοί τηλεφώνου πρέπει να έχουν 9 ψηφία, ή να αρχίζουν με + ή 00." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Εισάγετε έναν έγκυρο αριθμό CIF." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Εισάγετε έναν έγκυρο αριθμό CNP." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "" -"Εισάγετε έναν έγκυρο αριθμό IBAN με μορφή ROXX-XXXX-XXXX-XXXX-XXXX-XXXX" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Οι αριθμοί τηλεφώνου πρέπει να έχουν μορφή XXXX-XXXXXX." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Εισάγετε έναν έγκυρο ταχυδρομικό κώδικα με τη μορφή XXXXXX" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Εισάγετε έγκυρο αριθμό Σουηδικής οργάνωσης." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Εισάγετε έναν έγκυρο Σουηδικό αριθμό ταυτότητας." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Δεν επιτρέπονται αριθμοί συντονισμού (coordination numbers)" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Εισάγετε ένα σουηδικό ταχυδρομικό κώδικα στην μορφή XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Στοκχόλμη" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Västerbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norrbotten" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Ουψάλα" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Södermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Östergötland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Jönköping" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmar" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Gotland" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Blekinge" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Skåne" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halland" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Västra Götaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Värmland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Örebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Västmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Dalarna" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gävleborg" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Västernorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jämtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Banska Bystrica" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banska Stiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Bánovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Μπρατισλάβα Ι" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Μπρατισλάβα ΙΙ" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Μπρατισλάβα ΙΙΙ" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Μπρατισλάβα IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Μπρατισλάβα V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytca" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Cadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolny Kubin" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajska Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Γιέλνιτσα" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenne" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kezmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komarno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Κόσιτσε Ι" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Κόσιτσε ΙΙ" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Κόσιτσε ΙΙΙ" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Κόσιτσε IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Κόσιτσε - okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucke Nove Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoca" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovsky Mikulas" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lucenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Námestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nove Mesto nad Váhom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nove Zamky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizanske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piestany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltar" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povazska Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Presov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Puchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revuca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Rožňava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ruzomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spisska Nova Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stara Lubovna" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Στρόπκοβ" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidnik" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Sala" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolcany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebisov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trencin" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turcianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdosin" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velky Krtis" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Zarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Zilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Περιφέρεια Banska Bystrica" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Περιφέρεια Μπρατισλάβας" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Περιφέρεια Κόσιτσε" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Περιφέρεια Nitra" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Περιφέρεια Presov" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Περιφέρεια Trencin" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Περιφέρεια Trnava" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Περιφέρεια της Ζίλινα" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Εισαγάγετε έναν ταχυδρομικό κώδικα στη μορφή XXXXX." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Οι αριθμοί τηλεφώνου πρέπει να είναι στη μορφή 0XXX ΧΧΧ ΧΧΧΧ." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Εισάγετε ένα έγκυρο τουρκικό αριθμός ταυτότητας." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "Ο Τουρκικός αριθμός ταυτότητας είναι 11 ψηφία." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Πληκτρολογήστε έναν ταχυδρομικό κώδικα σε μορφή XXXXX ή XXXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Οι αριθμοί τηλεφώνου πρέπει να έχουν μορφή ΧΧΧ-ΧΧΧΧ." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" -"Εισάγετε έναν έγκυρο αριθμό Κοινωνικής Ασφάλισης Η.Π.Α με μορφή XXX-XX-XXXX." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Εισάγετε μια πολιτεία των Η.Π.Α. ή επικράτεια." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Πολιτεία ΗΠΑ. (δύο κεφαλαία γράμματα)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "Ταχυδρομικός κώδικας Η.Π.Α. (δύο κεφαλαία γράμματα)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Αριθμός τηλεφώνου" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" -"Πληκτρολογήστε έναν έγκυρο αριθμό CI σε μορφή X.XXX.XXX-X, XXXXXXX-X ή " -"XXXXXXXX." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Πληκτρολογήστε έναν έγκυρο αριθμό CI." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Εισάγετε έναν έγκυρο αριθμό ταυτότητας Νοτίου Αφρικής." - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Εισάγετε έναν έγκυρο ταχυδρομικό κώδικα Νοτίου Αφρικής." - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Ανατολικό Ακρωτήρι" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Free State" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Βόρειο Ακρωτήριο" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "Βορειοδυτική" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Δυτικό Ακρωτήριο" diff --git a/django/contrib/localflavor/locale/en/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/en/LC_MESSAGES/django.mo deleted file mode 100644 index 4f431ef8a1..0000000000 Binary files a/django/contrib/localflavor/locale/en/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/en/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/en/LC_MESSAGES/django.po deleted file mode 100644 index ffccefdfbc..0000000000 --- a/django/contrib/localflavor/locale/en/LC_MESSAGES/django.po +++ /dev/null @@ -1,3546 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-10-15 10:57+0200\n" -"PO-Revision-Date: 2010-05-13 15:35+0200\n" -"Last-Translator: Django team\n" -"Language-Team: English \n" -"Language: en\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "" - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "" - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "" - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "" - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "" - -#: ar/forms.py:84 -msgid "Invalid legal type. Type must be 27, 20, 23 or 30." -msgstr "" - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "" - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "" - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "" - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "" - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "" - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "" - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "" - -#: ca/forms.py:47 us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "" - -#: ca/forms.py:69 -msgid "Enter a Canadian province or territory." -msgstr "" - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "" - -#: ch/forms.py:37 -msgid "Phone numbers must be in 0XX XXX XX XX format." -msgstr "" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "" - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "" - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "" - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" - -#: cz/forms.py:53 -msgid "Enter a valid birth number." -msgstr "" - -#: cz/forms.py:102 -msgid "Enter a valid IC number." -msgstr "" - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "" - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" - -#: es/es_provinces.py:5 -msgid "Araba" -msgstr "" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "" - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "" - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "" - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "" - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "" - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "" - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "" - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "" - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "" - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "" - -#: hk/forms.py:37 -#, python-format -msgid "Phone number should not start with one of the followings: %s." -msgstr "" - -#: hk/forms.py:40 -#, python-format -msgid "Phone number must be in one of the following formats: %s." -msgstr "" - -#: hk/forms.py:42 -#, python-format -msgid "Phone number should start with one of the followings: %s." -msgstr "" - -#: hr/forms.py:76 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:77 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:33 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:34 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "" - -#: il/forms.py:32 -msgid "Enter a postal code in the format XXXXX" -msgstr "" - -#: il/forms.py:51 -msgid "Enter a valid ID number." -msgstr "" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "" - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "" - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "" - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "" - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "" - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "" - -#: kw/forms.py:27 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:92 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:93 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:67 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:110 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:111 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:191 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:192 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:14 -msgid "Aguascalientes" -msgstr "" - -#: mx/mx_states.py:15 -msgid "Baja California" -msgstr "" - -#: mx/mx_states.py:16 -msgid "Baja California Sur" -msgstr "" - -#: mx/mx_states.py:17 -msgid "Campeche" -msgstr "" - -#: mx/mx_states.py:18 -msgid "Chihuahua" -msgstr "" - -#: mx/mx_states.py:19 -msgid "Chiapas" -msgstr "" - -#: mx/mx_states.py:20 -msgid "Coahuila" -msgstr "" - -#: mx/mx_states.py:21 -msgid "Colima" -msgstr "" - -#: mx/mx_states.py:22 -msgid "Distrito Federal" -msgstr "" - -#: mx/mx_states.py:23 -msgid "Durango" -msgstr "" - -#: mx/mx_states.py:24 -msgid "Guerrero" -msgstr "" - -#: mx/mx_states.py:25 -msgid "Guanajuato" -msgstr "" - -#: mx/mx_states.py:26 -msgid "Hidalgo" -msgstr "" - -#: mx/mx_states.py:27 -msgid "Jalisco" -msgstr "" - -#: mx/mx_states.py:28 -msgid "Estado de México" -msgstr "" - -#: mx/mx_states.py:29 -msgid "Michoacán" -msgstr "" - -#: mx/mx_states.py:30 -msgid "Morelos" -msgstr "" - -#: mx/mx_states.py:31 -msgid "Nayarit" -msgstr "" - -#: mx/mx_states.py:32 -msgid "Nuevo León" -msgstr "" - -#: mx/mx_states.py:33 -msgid "Oaxaca" -msgstr "" - -#: mx/mx_states.py:34 -msgid "Puebla" -msgstr "" - -#: mx/mx_states.py:35 -msgid "Querétaro" -msgstr "" - -#: mx/mx_states.py:36 -msgid "Quintana Roo" -msgstr "" - -#: mx/mx_states.py:37 -msgid "Sinaloa" -msgstr "" - -#: mx/mx_states.py:38 -msgid "San Luis Potosí" -msgstr "" - -#: mx/mx_states.py:39 -msgid "Sonora" -msgstr "" - -#: mx/mx_states.py:40 -msgid "Tabasco" -msgstr "" - -#: mx/mx_states.py:41 -msgid "Tamaulipas" -msgstr "" - -#: mx/mx_states.py:42 -msgid "Tlaxcala" -msgstr "" - -#: mx/mx_states.py:43 -msgid "Veracruz" -msgstr "" - -#: mx/mx_states.py:44 -msgid "Yucatán" -msgstr "" - -#: mx/mx_states.py:45 -msgid "Zacatecas" -msgstr "" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "" - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "" - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "" - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "" - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "" - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "" - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "" - -#: pt/forms.py:19 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "" - -#: pt/forms.py:39 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" - -#: ro/forms.py:22 -msgid "Enter a valid CIF." -msgstr "" - -#: ro/forms.py:59 -msgid "Enter a valid CNP." -msgstr "" - -#: ro/forms.py:143 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "" - -#: ro/forms.py:175 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "" - -#: ro/forms.py:200 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "" - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "" - -#: se/se_counties.py:16 -msgid "Stockholm" -msgstr "" - -#: se/se_counties.py:17 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:19 -msgid "Uppsala" -msgstr "" - -#: se/se_counties.py:20 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:22 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:23 -msgid "Kronoberg" -msgstr "" - -#: se/se_counties.py:24 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:25 -msgid "Gotland" -msgstr "" - -#: se/se_counties.py:26 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:27 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:28 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:31 -msgid "Örebro" -msgstr "" - -#: se/se_counties.py:32 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:33 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:34 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:35 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:36 -msgid "Jämtland" -msgstr "" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "" - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "" - -#: us/models.py:26 -msgid "Phone number" -msgstr "" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "" - -#: za/forms.py:22 -msgid "Enter a valid South African ID number" -msgstr "" - -#: za/forms.py:56 -msgid "Enter a valid South African postal code" -msgstr "" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "" diff --git a/django/contrib/localflavor/locale/en_GB/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/en_GB/LC_MESSAGES/django.mo deleted file mode 100644 index 4dba2ddb26..0000000000 Binary files a/django/contrib/localflavor/locale/en_GB/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/en_GB/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/en_GB/LC_MESSAGES/django.po deleted file mode 100644 index a3f472c8f1..0000000000 --- a/django/contrib/localflavor/locale/en_GB/LC_MESSAGES/django.po +++ /dev/null @@ -1,3544 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Ross Poulton , 2011, 2012. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:41+0100\n" -"PO-Revision-Date: 2012-03-12 23:53+0000\n" -"Last-Translator: Ross Poulton \n" -"Language-Team: English (United Kingdom) (http://www.transifex.net/projects/p/" -"django/language/en_GB/)\n" -"Language: en_GB\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Enter a postal code in the format NNNN or ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "This field requires only numbers." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "This field requires 7 or 8 digits." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "Invalid CUIT." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Carinthia" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Lower Austria" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Upper Austria" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salzburg" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Styria" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tyrol" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlberg" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Vienna" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Enter a zip code in the format XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "Enter a 4 digit postcode." - -#: au/models.py:9 -msgid "Australian State" -msgstr "Australian State" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "Australian Postcode" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "Australian Phone number" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Antwerp" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Brussels" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "East Flanders" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Flemish Brabant" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hainaut" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Liege" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburg" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Luxembourg" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Walloon Brabant" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "West Flanders" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Brussels Capital Region" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Flemish Region" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Wallonia" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "Enter a valid postal code in the range and format 1XXX - 9XXX." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Enter a zip code in the format XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Phone numbers must be in XX-XXXX-XXXX format." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Select a valid brazilian state. That state is not one of the available " -"states." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Invalid CPF number." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "This field requires at most 11 digits or 14 characters." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Invalid CNPJ number." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "This field requires at least 14 digits" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Enter a postal code in the format XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aargau" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basel-Stadt" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basel-Land" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Berne" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Fribourg" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Geneva" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubuenden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucerne" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchatel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "St. Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zurich" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Enter a valid Chilean RUT." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "The Chilean RUT is not valid." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "Enter a post code in the format XXXXXX." - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "ID Card Number consists of 15 or 18 digits." - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "Invalid ID Card Number: Wrong checksum" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "Invalid ID Card Number: Wrong birthdate" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "Invalid ID Card Number: Wrong location code" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "Enter a valid phone number." - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "Enter a valid cell number." - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Prague" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Central Bohemian Region" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "South Bohemian Region" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Pilsen Region" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Carlsbad Region" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Usti Region" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Liberec Region" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Hradec Region" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Pardubice Region" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Vysocina Region" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "South Moravian Region" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Olomouc Region" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Zlin Region" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Moravian-Silesian Region" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Enter a postal code in the format XXXXX or XXX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "Invalid optional parameter Gender, valid values are 'f' and 'm'" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Enter a valid birth number." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Enter a valid IC number." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Wuerttemberg" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Bavaria" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlin" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburg" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Bremen" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburg" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hessen" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklenburg-Western Pomerania" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Lower Saxony" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "North Rhine-Westphalia" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Rhineland-Palatinate" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Saarland" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Saxony" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Saxony-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Thuringia" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Enter a zip code in the format XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Arava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alacant" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almeria" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Avila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Illes Balears" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barcelona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Caceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cadiz" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castello" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Cordoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "A Coruna" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Girona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipuzkoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaen" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "Leon" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lleida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madrid" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Malaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murcia" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarre" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Ourense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturias" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palencia" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Cruz de Tenerife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Cantabria" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Seville" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valencia" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Bizkaia" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Zaragoza" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andalusia" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragon" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Principality of Asturias" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Balearic Islands" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Basque Country" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Canary Islands" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Castile-La Mancha" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Castile and Leon" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Catalonia" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Extremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galicia" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Region of Murcia" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Foral Community of Navarre" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Valencian Community" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Enter a valid postal code in the range and format 01XXX - 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Please enter a valid NIF, NIE, or CIF." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Please enter a valid NIF or NIE." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Invalid checksum for NIF." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Invalid checksum for NIE." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Invalid checksum for CIF." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Invalid checksum for bank account number." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Enter a valid Finnish social security number." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Phone numbers must be in 0X XX XX XX XX format." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Enter a valid postcode." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Cornwall and Isles of Scilly" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cumbria" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "East Sussex" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Essex" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Greater London" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Greater Manchester" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordshire" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "North Yorkshire" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northamptonshire" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oxfordshire" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "South Yorkshire" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordshire" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne and Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "West Midlands" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "West Sussex" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "West Yorkshire" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "County Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "County Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "County Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "County Fermanagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "County Londonderry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "County Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "South Glamorgan" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "West Glamorgan" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Central Scotland" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries and Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Orkney Islands" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Shetland Islands" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Western Isles" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "England" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Northern Ireland" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Scotland" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Wales" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "Enter a valid 13 digit JMBG" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "Error in date segment" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "Enter a valid 11 digit OIB" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Enter a valid vehicle license plate number" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "Enter a valid location code" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "Number part cannot be zero" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "Enter a valid 5 digit postal code" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Enter a valid phone number" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "Enter a valid area or mobile network code" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "The phone number is too long" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "Enter a valid 19 digit JMBAG starting with 601983" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "Card issue number cannot be zero" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "Grad Zagreb" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "Bjelovarsko-bilogorska županija" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "Brodsko-posavska županija" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "Dubrovačko-neretvanska županija" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "Istarska županija" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "Karlovačka županija" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "Koprivničko-križevačka županija" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "Krapinsko-zagorska županija" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "Ličko-senjska županija" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "Međimurska županija" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "Osječko-baranjska županija" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "Požeško-slavonska županija" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "Primorsko-goranska županija" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "Sisačko-moslavačka županija" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "Splitsko-dalmatinska županija" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "Šibensko-kninska županija" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "Varaždinska županija" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "Virovitičko-podravska županija" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "Vukovarsko-srijemska županija" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "Zadarska županija" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "Zagrebačka županija" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Enter a valid post code" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Enter a valid NIK/KTP number" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Aceh" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Banten" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Bengkulu" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Yogyakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Jakarta" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Gorontalo" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Jambi" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Jawa Barat" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Jawa Tengah" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Jawa Timur" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Kalimantan Barat" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Kalimantan Selatan" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Kalimantan Tengah" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Kalimantan Timur" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Kepulauan Bangka-Belitung" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Kepulauan Riau" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampung" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Maluku" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Maluku Utara" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Nusa Tenggara Barat" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Nusa Tenggara Timur" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papua" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Papua Barat" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Riau" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Sulawesi Barat" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Sulawesi Selatan" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Sulawesi Tengah" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Sulawesi Tenggara" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Sulawesi Utara" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Sumatera Barat" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Sumatera Selatan" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Sumatera Utara" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Magelang" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Surakarta - Solo" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madiun" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kediri" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanuli" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Nanggroe Aceh Darussalam" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Kepulauan Bangka Belitung" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Corps Consulate" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Corps Diplomatic" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Bandung" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Sulawesi Utara Daratan" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timor" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Sulawesi Utara Kepulauan" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lombok" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Papua dan Papua Barat" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Cirebon" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbawa" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Flores" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Bogor" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalongan" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Semarang" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Pati" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Surabaya" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Madura" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malang" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Jember" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banyumas" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Federal Government" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purwakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarjo" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Garut" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Antrim" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Armagh" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Carlow" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Cavan" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Clare" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Cork" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Derry" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Donegal" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Down" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Dublin" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fermanagh" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Galway" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerry" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Kildare" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Kilkenny" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Laois" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Leitrim" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerick" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Longford" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Louth" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Mayo" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Meath" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Monaghan" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Offaly" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Roscommon" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Sligo" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tipperary" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tyrone" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Waterford" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Westmeath" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Wexford" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Wicklow" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Enter a postal code in the format XXXXX" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Enter a valid ID number." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "Enter a zip code in the format XXXXXX or XXX XXX." - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "Enter an Indian state or territory." - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "The Icelandic identification number is not valid." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Enter a valid zip code." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Enter a valid Social Security number." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Enter a valid VAT number." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Enter a postal code in the format XXXXXXX or XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaido" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Yamagata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukushima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Tochigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Chiba" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tokyo" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Yamanashi" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Toyama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ishikawa" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Shizuoka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Shiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kyoto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hyogo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakayama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okayama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hiroshima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Yamaguchi" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokushima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Kochi" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Oita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Miyazaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagoshima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinawa" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Enter a valid Kuwaiti Civil ID number" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "This field should contain exactly 13 digits." - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "The first 7 digits of the UMCN must represent a valid past date." - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "The UMCN is not valid." - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "Aerodrom" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "Aračinovo" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "Berovo" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "Bitola" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "Bogdanci" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "Bogovinje" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "Bosilovo" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "Brvenica" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "Butel" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "Valandovo" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "Vasilevo" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "Vevčani" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "Veles" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "Vinica" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "Vraneštica" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "Vrapčište" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "Gazi Baba" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "Gevgelija" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "Gostivar" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "Gradsko" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "Debar" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "Debarca" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "Delčevo" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "Demir Kapija" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "Demir Hisar" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "Dolneni" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "Drugovo" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "Gjorče Petrov" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "Želino" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "Zajas" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "Zelenikovo" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "Zrnovci" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "Ilinden" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "Jegunovce" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "Kavadarci" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "Karbinci" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "Karpoš" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "Kisela Voda" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "Kičevo" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "Konče" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "Koćani" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "Kratovo" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "Kriva Palanka" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "Krivogaštani" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "Kruševo" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "Kumanovo" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "Lipkovo" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "Lozovo" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "Mavrovo i Rostuša" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "Makedonska Kamenica" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "Makedonski Brod" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "Mogila" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "Negotino" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "Novaci" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "Novo Selo" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "Oslomej" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "Ohrid" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "Petrovec" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "Pehčevo" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "Plasnica" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "Prilep" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "Probištip" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "Radoviš" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "Rankovce" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "Resen" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "Rosoman" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "Saraj" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "Sveti Nikole" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "Sopište" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "Star Dojran" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "Staro Nagoričane" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "Struga" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "Strumica" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "Studeničani" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "Tearce" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "Tetovo" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "Centar" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "Centar-Župa" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "Čair" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "Čaška" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "Češinovo-Obleševo" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "Čučer-Sandevo" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "Štip" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "Šuto Orizari" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "Macedonian identity card number" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "A Macedonian municipality (2 character code)" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "Unique master citizen number (13 digits)" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "Enter a valid zip code in the format XXXXX." - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "Enter a valid RFC." - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "Invalid checksum for RFC." - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "Enter a valid CURP." - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "Invalid checksum for CURP." - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "Mexico state (three uppercase letters)" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "Mexico zip code" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "Mexican RFC" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "Mexican CURP" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baja California" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baja California Sur" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Distrito Federal" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Estado de México" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacán" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo León" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Querétaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potosí" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Yucatán" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Enter a valid postal code" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Enter a valid SoFi number" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drenthe" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Friesland" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Gelderland" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groningen" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Noord-Brabant" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Noord-Holland" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrecht" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zeeland" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Zuid-Holland" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Enter a valid Norwegian social security number." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "This field requires 8 digits." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "This field requires 11 digits." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "National Identification Number consists of 11 digits." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Wrong checksum for the National Identification Number." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "National ID Card Number consists of 3 letters and 6 digits." - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "Wrong checksum for the National ID Card Number." - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Wrong checksum for the Tax Number (NIP)." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "National Business Register Number (REGON) consists of 9 or 14 digits." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "Wrong checksum for the National Business Register Number (REGON)." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Enter a postal code in the format XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Lower Silesia" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kuyavia-Pomerania" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublin" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubusz" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodz" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Lesser Poland" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Masovia" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opole" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Subcarpatia" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlasie" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomerania" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Silesia" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Swietokrzyskie" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Warmia-Masuria" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Greater Poland" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "West Pomerania" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Enter a zip code in the format XXXX-XXX." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "Phone numbers must have 9 digits, or start by + or 00." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Enter a valid CIF." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Enter a valid CNP." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Phone numbers must be in XXXX-XXXXXX format." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Enter a valid postal code in the format XXXXXX" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "Enter a postal code in the format XXXXXX." - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "Enter a passport number in the format XXXX XXXXXX." - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "Enter a passport number in the format XX XXXXXXX." - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "Central Federal County" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "South Federal County" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "North-West Federal County" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "Far-East Federal County" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "Siberian Federal County" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "Ural Federal County" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "Privolzhsky Federal County" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "North-Caucasian Federal County" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "Moskva" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "Saint-Peterburg" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "Moskovskaya oblast'" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "Adygeya, Respublika" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "Bashkortostan, Respublika" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "Buryatia, Respublika" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "Altay, Respublika" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "Dagestan, Respublika" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "Ingushskaya Respublika" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "Kabardino-Balkarskaya Respublika" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "Kalmykia, Respublika" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "Karachaevo-Cherkesskaya Respublika" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "Karelia, Respublika" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "Komi, Respublika" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "Mariy Ehl, Respublika" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "Mordovia, Respublika" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "Sakha, Respublika (Yakutiya)" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "Severnaya Osetia, Respublika (Alania)" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "Tatarstan, Respublika" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "Tyva, Respublika (Tuva)" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "Udmurtskaya Respublika" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "Khakassiya, Respublika" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "Chechenskaya Respublika" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "Chuvashskaya Respublika" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "Altayskiy Kray" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "Zabaykalskiy Kray" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "Kamchatskiy Kray" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "Krasnodarskiy Kray" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "Krasnoyarskiy Kray" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "Permskiy Kray" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "Primorskiy Kray" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "Stavropol'siyy Kray" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "Khabarovskiy Kray" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "Amurskaya oblast'" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "Arkhangel'skaya oblast'" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "Astrakhanskaya oblast'" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "Belgorodskaya oblast'" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "Bryanskaya oblast'" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "Vladimirskaya oblast'" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "Volgogradskaya oblast'" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "Vologodskaya oblast'" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "Voronezhskaya oblast'" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "Ivanovskaya oblast'" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "Irkutskaya oblast'" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "Kaliningradskaya oblast'" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "Kaluzhskaya oblast'" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "Kemerovskaya oblast'" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "Kirovskaya oblast'" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "Kostromskaya oblast'" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "Kurganskaya oblast'" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "Kurskaya oblast'" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "Leningradskaya oblast'" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "Lipeckaya oblast'" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "Magadanskaya oblast'" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "Murmanskaya oblast'" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "Nizhegorodskaja oblast'" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "Novgorodskaya oblast'" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "Novosibirskaya oblast'" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "Omskaya oblast'" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "Orenburgskaya oblast'" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "Orlovskaya oblast'" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "Penzenskaya oblast'" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "Pskovskaya oblast'" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "Rostovskaya oblast'" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "Rjazanskaya oblast'" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "Samarskaya oblast'" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "Saratovskaya oblast'" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "Sakhalinskaya oblast'" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "Sverdlovskaya oblast'" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "Smolenskaya oblast'" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "Tambovskaya oblast'" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "Tverskaya oblast'" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "Tomskaya oblast'" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "Tul'skaya oblast'" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "Tyumenskaya oblast'" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "Ul'ianovskaya oblast'" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "Chelyabinskaya oblast'" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "Yaroslavskaya oblast'" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "Evreyskaya avtonomnaja oblast'" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "Neneckiy autonomnyy okrug" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "Chukotskiy avtonomnyy okrug" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "Yamalo-Neneckiy avtonomnyy okrug" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Enter a valid Swedish organisation number." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Enter a valid Swedish personal identity number." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Co-ordination numbers are not allowed." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Enter a Swedish postal code in the format XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Stockholm" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Västerbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norrbotten" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Uppsala" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Södermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Östergötland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Jönköping" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmar" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Gotland" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Blekinge" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Skåne" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halland" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Västra Götaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Värmland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Örebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Västmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Dalarna" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gävleborg" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Västernorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jämtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "The first 7 digits of the EMSO must represent a valid past date." - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "The EMSO is not valid." - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "Enter a valid tax number in form SIXXXXXXXX" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Banska Bystrica" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banska Stiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Banovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytca" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Cadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolny Kubin" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajska Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenne" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kezmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komarno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Kosice I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Kosice II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Kosice III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Kosice IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Kosice - okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucke Nove Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoca" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovsky Mikulas" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lucenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Namestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nove Mesto nad Vahom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nove Zamky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizanske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piestany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltar" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povazska Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Presov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Puchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revuca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Roznava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ruzomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spisska Nova Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stara Lubovna" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidnik" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Sala" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolcany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebisov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trencin" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turcianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdosin" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velky Krtis" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Zarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Zilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Banska Bystrica region" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Bratislava region" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Kosice region" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Nitra region" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Presov region" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Trencin region" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Trnava region" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Zilina region" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Enter a postal code in the format XXXXX." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Phone numbers must be in 0XXX XXX XXXX format." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Enter a valid Turkish Identification number." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "Turkish Identification number must be 11 digits." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Enter a zip code in the format XXXXX or XXXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Phone numbers must be in XXX-XXX-XXXX format." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Enter a U.S. state or territory." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "U.S. state (two uppercase letters)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "U.S. postal code (two uppercase letters)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Phone number" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Enter a valid CI number." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Enter a valid South African ID number" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Enter a valid South African postal code" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Eastern Cape" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Free State" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Northern Cape" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "North West" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Western Cape" diff --git a/django/contrib/localflavor/locale/eo/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/eo/LC_MESSAGES/django.mo deleted file mode 100644 index 4b0fef3411..0000000000 Binary files a/django/contrib/localflavor/locale/eo/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/eo/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/eo/LC_MESSAGES/django.po deleted file mode 100644 index 1ff986a74d..0000000000 --- a/django/contrib/localflavor/locale/eo/LC_MESSAGES/django.po +++ /dev/null @@ -1,3543 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jaffa McNeill , 2012. -# , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:41+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Jaffa McNeill \n" -"Language-Team: Esperanto (http://www.transifex.net/projects/p/django/" -"language/eo/)\n" -"Language: eo\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Enigu poŝtan kodon en la formato NNNN aŭ ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Ĉi tiu kampo bezonas sole nombrojn." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Ĉi tiu kampo bezonas 7 aŭ 8 ciferoj." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Enigu validan CUIT en XX-XXXXXXXX-X aŭ XXXXXXXXXXXX formato." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "Malvalida CUIT." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenlando" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Karintio" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Malsupra Aŭstrujo" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Supra Aŭstrujo" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salcburgo" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Stirio" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tirolo" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlbergo" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Vieno" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Enigu poŝtan kodon en la formato XXXX" - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "Enigu validan Aŭstran Socialasekuran numeron en XXXX XXXXXX formato." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "Enigu 4 ciferon postkodon." - -#: au/models.py:9 -msgid "Australian State" -msgstr "Aŭstralia ŝtato" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "Aŭstralia Posta Kodo" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "Aŭstralia Telefonnumero" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Antverpeno" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Bruselo" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Orienta Flandrio" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Flandra Brabanto" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Henegovio" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Lieĝo" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburgo" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Luksemburgio" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namuro" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Valona Brabanto" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Okcidenta Flandrio" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Bruselo Ĉefurbo Regiono" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Flandra Regiono" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Valonio" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "Enigu validan poŝtan kodon en la variado kaj formato 1XXX - 9XXX." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Enigu validan telefonnumeron en unu el la formatoj 0x xxx xx xx, 0xx xx xx " -"xx, 04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, " -"0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Enigu poŝtan kodon en la formato XXXXX-XXX" - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Telefonnumeroj devas esti en la formato XX-XXXX-XXXX." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Elektu validan brazilan staton. Kiu stato ne estas unu el la haveblaj statoj." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Nevalida CPF numero" - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Ĉi tiu kampo bezonas maksimume 11 ciferojn aŭ 14 karakterojn." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Nevalida CNPJ numero." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Ĉi tiu kampo bezonas almenaŭ 14 ciferojn" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Enigu poŝtan kodon en la formato XXX XXX" - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "Enigu validan Kanadan Socian Asekuron nombron en XXX-XXX-XXX formato." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Argovio" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Apencelo Interna" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Apencelo Ekstera" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Bazelo-Stado" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Bazelo-Lando" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Berno" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Friburgo" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Ĝenevo" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glaruso" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graŭbendeno" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Juro" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucerno" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuŝatelo" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidvaldo" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obvaldo" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Ŝafhaŭzo" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Ŝvico" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Soloturno" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "Sankt-Galo" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Turgovio" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Tiĉino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Urio" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valezo" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaŭdo" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zugo" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zuriko" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Enigu validan Svisan identecon aŭ pasporton karton nombro laŭ formato " -"X1234567<0 aŭ 1234567890." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Enigu validan Ĉilian RUT." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Enigu validan Ĉilian RUT. La formato estas XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "La Ĉilia RUT ne estas valida." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "Enigu postan kodon laŭformate XXXXXX." - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "Identiga Karta Nombro konsistas el 15 aŭ 18 ciferoj." - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "Nevalida Identiga Karta Nombro: Malĝusta kontrolsumo" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "Nevalida Identiga Karta Nombro: Malĝusta naskiĝodato" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "Nevalida Identiga Karta Nombro: Malĝusta loka kodo" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "Enigu validan Telefonnumeron" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "Enigu validan poŝtelefonnumeron" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Prago" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Mezbohemia regiono" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Sudbohemia regiono" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Regiono Pilseno" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Regiono Karlsbado" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Regiono Ustio" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Regiono Liberec" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Regiono Hradeco" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Pardubico regiono" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Regiono Vysočina" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Sudmoravia regiono" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Olomouc-regiono" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Regiono Zlín" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Moraviasilezia regiono" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Enigu poŝtan kodon laŭ la formato XXXXX aŭ XXX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "Enigu naskiĝon nombron laŭ la formato XXXXXX/XXXX aŭ XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "Nuligita laŭvola parametro Sekso, validaj valoroj estas 'f' kaj 'm'" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Enigu validan naskiĝon nombron." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Enigu validan IC nombron." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Virtembergo" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Bavario" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlino" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburgo" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Bremeno" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburgo" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hesio" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Meklenburg-okcidenta Pomerio" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Malsupra Saksio" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "Nordrejn-Vestfalio" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Rejnlando-Palatino" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Sarlando" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Saksio" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Saksio-Anhalto" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Ŝlesvigo-Holstinio" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Turingio" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Enigu poŝtan kodon laŭformate XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Enigu validan Germanan identigan karton nombron laŭformate XXXXXXXXXXX-" -"XXXXXXX-XXXXXXX-X." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Aravo" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albaketo" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alikanto" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almerio" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Avilo " - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badaĥozo" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Balearoj" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barcelono " - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgoso" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Cakereso" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Kadizo" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Kastelo" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Kjudad Realo" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Kordoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "Korunjo" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Kuenco" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Ĝirono" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granado" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Gvadalaharo" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Gipuzkoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Onubo" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Uesko" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Ĥaeno" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "Leono" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Ilerdo" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "Rioĥo" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madrido" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Malago" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murcio" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navaro" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Orenso" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturio" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palencio" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmaso" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedro" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanco" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Sant-Kruzo de Tenerifo" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Kantabrio" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovio" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Sevilo" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Sorio" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Taragono" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruelo" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valencio" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valadolido" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Biskajo" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamoro" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Zaragozo" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceŭto" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilo" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andaluzio" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragono" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Princlando de Asturio" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "La Balearoj" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Eŭskio" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "La Kanaraj insuloj" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Kastilio-Manĉo" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Kastilio kaj leon" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Katalunio" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Ekstremaduro" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galegio" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Regiono de Murcio" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Luita Komunuma de Navaro" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Valencia komunumo" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Enigu validan poŝtan kodon en la gamo kaj formato 01XXX - 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Enigu validan telefonnumeron laŭformate 6XXXXXXXX, 8XXXXXXXX aŭ 9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Bonvolu enigu validan NIF, NIE, aŭ CIF." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Bonvolu enigu validan NIF aŭ NIE." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Nevalida kontrolsumo por NIF." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Nevalida kontrolsumo por NIE." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Nevalida kontrolsumo por CIF." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Bonvolu enigu validan bankokonton nombron laŭformate XXXX-XXXX-XX-" -"XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Nevalida kontrolsumo por bankokonto nombro." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Enigu validan Finnan socialasekuran numeron." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Telefonnumeroj devus esti formate 0X XX XX XX XX." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Enigu validan poŝtan kodon." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordŝiro" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Bukinghamŝiro" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Ĉeŝiro" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Kornvalo kaj Insuloj de Silio" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Kumbrio" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbiŝiro" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devono" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorseto" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durhamo" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "Orienta Susekso" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Esekso" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Glosterŝiro" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Granda Londono" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Granda Manĉestro" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampŝiro" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordŝiro" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kento" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lankaŝiro" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Lesterŝiro" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Linconŝiro" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Mersiflanko" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfoko" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "Norda Jorkŝiro" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Nordhamptonŝiro" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Nordhumberlando" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Notinghamŝiro" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oksfordŝiro" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Ŝropŝiro" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerseto" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "Suda Jorkŝiro" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Stafordŝiro" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Sufoko" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surejo" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tijno kaj Viero" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Varvikŝiro" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "Okcidenta Mezlando" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "Okcidenta Susekso" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "Okcidenta Jorkŝiro" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Viltŝiro" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Vorĉesterŝiro" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "Distrikto Antrimo" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "Distrikto Armao" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "Distrikto Doŭno" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "Distrikto Fermano" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "Distrikto Londonderio" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "Distrikto Tirono" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clujido" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Difedo" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gŭento" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gŭinedo" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Meza Glamorgano" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Poŭiso" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "Suda Glamorgano" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "Okcidenta Glamorgano" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Landlimoj" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Meza Skotlando" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfrizo kaj Galovajo" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fifo" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampiano" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Altlando" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lotiano" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Orknija Insuloj" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Ŝetlando Insuloj" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Stratklido" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tajflanko" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Okcidenta Insuloj" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "Anglujo" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Norda Irlando" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Skotlando" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Kimrio" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "Enigu validan 13 cifero JMBG" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "Eraro en dato segmento" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "Enigu validan 11 cifero OIB" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Enigu validan veturilon licencplaton nombron" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "Enigu validan lokan kodon" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "Nombra parto ne povas esti nulo" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "Enigu validan 5 cifero postan kodon" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Enigu validan telefonnumeron" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "Eniri validan lokan aŭ moveblan retan kodo" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "La telefonnumero estas tro longa" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "Eniri validan 19 ciferan JMBAG komence 601983" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "Karta eldona nombro ne povas est nulo" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "Grad Zagrebo" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "Bjelovar-Bilogora Distrikto" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "Brod-Posavina Distrikto" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "Dubrovnik-Neretva Distrikto" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "Istria Distrikto" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "Karlovaka Distrikto" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "Koprivnica-Krizevcia Distrikto" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "Krapinska Zagorska Distrikto" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "Lika Senjska Distrikto" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "Međimurska Distrikto" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "Osijek-Baranja distrikto" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "Pozega-Slavonia Distrikto" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "Primorsko-Goranska Distrikto" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "Sisako-Moslavaka Distrikto" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "Split-Dalmatio Distrikto" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "Ŝibenik-Knin Distrikto" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "Varazdin Distrikto" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "Virovitica-Podravina Distrikto" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "Vukovar Srem Distrikto" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "Zadarska Distrikto" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "Zagrebačka Distrikto" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Enigu validan poŝtkodon" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Enigu validan NIK/KTP nombron" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Aceho" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Balio" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Bantamo" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Bengkulo" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Jogjakarto" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Ĝakarto" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Gorontalo" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Ĝambio" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Okcidenta Javo" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Centra Javo" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Orienta Javo" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Okcidenta Kalimantano" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Suda Kalimantano" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Centra Kalimantano" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Orienta Kalimantano" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Bangka-Belitung Insuloj" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Riau Insuloj" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampungo" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Moluko" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Norda Maluko" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Okcidenta Nusa Tengaro" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Orienta Nusa Tengaro" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papuo" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Papuo-Barato" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Riao" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Okcidenta Sulaveso" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Suda Sulaveso" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Centra Sulaveso" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Suda Orienta Sulaveso" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Norda Sulaveso" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Okcidenta Sumatro" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Suda Sumatro" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Norda Sumatro" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Magelango" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Surakarto" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madjuno" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kedirio" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanulo" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Aĉeho" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Bangka-Belitung Insuloj" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Konsulejo" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Diplomatiaj gildoj" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Bandungo" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Norda Sulaveso" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timoro" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Norda Sulavesa Insuloj" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lomboko" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Papuo-Barato" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Norda Sulaveso" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbavo" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Flores" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumbao" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Bogoro" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalongano" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Semarango" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Patio" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Surabajo" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Maduro" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malango" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Jembero" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banjumaso" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Federacia registaro" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Puruakarto" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarjo" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Garuto" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Antrimo" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Armaho" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Karlo" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Kavano" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Klaro" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Korko" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Derio" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Donegalo" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Doaŭno" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Dublino" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fermano" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Galvao" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerio" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Kildaro" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Kilkenio" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Laoiso" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Letrimo" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limeriko" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Longfordo" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Louto" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Majo" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Meato" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Monahano" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Ofalio" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Roskomono" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Sligo" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tiperaro" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tirono" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Vaterfordo" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Vestmeato" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Veksfordo" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Viklovo" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Enigu poŝtan kodon laŭformate XXXXX" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Enigu validan identan nombron." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "Enigu poŝtan kodon laŭformate XXXXXX aŭ XXX XXX." - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "Enigu Baratan staton aŭ teritorion." - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "Telefonnumeroj devus esti formate laŭ 02X-8X aŭ 03X-7X aŭ 04X-6X" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "Enigu validan Islandan identigan nombron laŭformate XXXXXX-XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "La Icelandic identiga nombro ne estas valida." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Enigu validan poŝtan kodon." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Enigu validan Socialasekuran numeron." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Enigu validann AVI nombro." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Enigu poŝtan kodon laŭformate XXXXXXX aŭ XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokajdo" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomoro" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iŭato" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Mijago" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akito" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Yamagato" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukuŝimo" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibarako" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Toĉigo" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunmao" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitamo" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Ĉibo" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tokio" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagaŭo" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Jamanaŝio" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Nijgato" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Tojamo" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Iŝikaŭo" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukuo" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifuo" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Ŝizuoko" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aiĉio" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie-prefektejo" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Ŝigao" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kioto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osako" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hjogo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Narao" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Ŭakajamo" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Totorio" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Ŝimano" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okajamo" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hiroŝimo" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Jamaguĉo" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokuŝimo" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagaŭo" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehimo" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Koĉio" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoko" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Sagao" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasako" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Oita prefektejo" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Mijazako" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagoshimo" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinavo" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Enigu validan Kuvajtan Civilan Identigan Kartan nombron" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" -"Identiga karta nombroj devus enhavi aŭ 4 - 7 ciferoj aŭ majuskla letero kaj " -"7 ciferoj." - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "Ĉi tiu kampo enhavus ĝuste 13 ciferojn." - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" -"La unuaj 7 ciferoj de la UMCN devus reprezenti validan pasintecon daton." - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "La UMCN ne estas valida." - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "Aerodromo" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "Aračinovo" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "Berovo" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "Bitolao" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "Bogdancio" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "Bogovinjeo" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "Bosilovo" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "Brvenicao" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "Butelo" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "Valandovo" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "Vasilevo" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "Vevčanio" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "Veleso" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "Vinicao" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "Vranešticao" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "Vrapčišteo" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "Gazi Babao" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "Gevgelijao" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "Gostivaro" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "Gradsko" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "Debaro" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "Debarcao" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "Delčevo" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "Demir Kapijao" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "Demir Hisaro" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "Dolnenio" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "Drugovo" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "Gjorče Petrovo" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "Zelino" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "Zajaso" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "Zelenikovo" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "Zrnovcio" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "Ilindeno" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "Jegunovco" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "Kavadarcio" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "Karbincio" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "Karpošo" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "Kisela Vodao" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "Kičevo" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "Končeo" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "Koćanio" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "Kratovo" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "Kriva Palankao" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "Krivogaštanio" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "Kruševo" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "Kumanovo" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "Lipkovo" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "Lozovo" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "Mavrovo kaj Rostušao" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "Makedonska Kamenicao" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "Makedonski Brodo" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "Mogilao" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "Negotino" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "Novacio" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "Novo Selo" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "Oslomejo" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "Oĥrido" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "Petroveco" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "Pečevo" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "Plasnicao" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "Prilepo" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "Probištipo" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "Radovišo" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "Rankovceo" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "Reseno" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "Rosomano" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "Sarajo" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "Sveti Nikolo" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "Sopišteo" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "Star Dojrano" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "Staro Nagoričaneo" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "Strugao" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "Strumicao" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "Studeničanio" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "Tearceo" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "Tetovo" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "Centaro" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "Centar-Zupao" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "Čairo" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "Čaškao" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "Češinovo-Obleševo" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "Čučer-Sandevo" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "Štipo" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "Šuto Orizario" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "Macedonia identiga karta nombro" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "Macedonia urbo (2 karaktero kodo)" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "Unika mastra civitana nombro (13 ciferoj)" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "Enigu validan poŝtan kodon laŭformate XXXXX." - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "Enigu validan RFC." - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "Nevalida kontrolsumo por RFC." - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "Enigu validan CURP." - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "Nevalida kontrolsumo por CURP." - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "Meksika stato (tri majusklaj leteroj)" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "Meksika poŝta kodo" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "Meksika RFC" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "Meksika CURP" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascaliento" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Basa Kalifornio" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Basa Kalifornio Suro" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeĉeo" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Ĉihuahuao" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Ĉiapaso" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Koahuilo" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Kolimo" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Federacia Distrikto" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Ŝtato de Méksiko" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Miĥoakáno" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Moreloso" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Najarito" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo Leono" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaksako" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Pueblo" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Kueretaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Kvintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinalo" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "Sankta Luiz Potosio" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonorao" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasko" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaŭlipaso" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlakskalao" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Verakruzo" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Jukatanio" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zakatecaso" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Enigu validan poŝtan kodon." - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Enigu validan SoFi nombron." - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drento" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevolando" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Frislando" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Gelderlando" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groningeno" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Norda Brabanto" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Norda Holando" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijselo" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrekto" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zelando" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Suda Holando" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Enigu validan Norvegan socialasekuran numeron." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Ĉi tiu kampo bezonas 8 ciferojn." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Ĉi tiu kampo bezonas 11 ciferojn." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Nacia Identiga Nombro konsistas el 11 ciferoj." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Malĝusta kontrolsumo por la Nacia Identiga Nombro." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "Nacia Identiga Karta Nombro konsistas el 3 leteroj kaj 6 ciferoj." - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "Malĝusta kontrolsumo por la Nacia Identiga Karta Nombro" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Malĝusta kontrolsumo por la imposta nombro (NIP)." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "Nacia Komerca Registra Nombro (REGON) konsistas el 9 aŭ 14 ciferoj." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "Malĝusta kontrolsumo por la Komerca Registra Nombro (REGON)." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Enigu poŝtan kodon laŭformate XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Malsupra Silezio" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kujavia-Pomerio" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublino" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubuŝo" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodzo" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Pli malgranda Pollando" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Masovio" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opolo" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Subkarpatio" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlaĥio" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomerio" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Silezio" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Sŭietokrziskio" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Varmia-Masurio" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Granda Pollando" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "Okcidenta Pomerio" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Enigu poŝtan kodon laŭformate XXXX-XXX." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "Telefonnumeroj devas havi 9 ciferoj, aŭ komenco de + aŭ 00." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Enigu validan CIF." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Enigu validan CNP." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "Enigu validan IBAN laŭformate ROXX-XXXX-XXXX-XXXX-XXXX-XXXX." - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Telefonnumeroj devas esti laŭformate XXXX-XXXXXX." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Enigu validan poŝtan kodon laŭformate XXXXXX." - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "Enigu poŝtan kodon laŭformate XXXXXX." - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "Enigu pasportan nombron laŭformate XXXX XXXXXX." - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "Enigu pasportan nombron laŭformate XX XXXXXXX." - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "Centra Federacia Distrikto" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "Suda Federacia Distrikto" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "Norda-Okcidenta Federacia Distrikto" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "Fora-Orienta Federacia Distrikto" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "Siberia Federacia Distrikto" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "Urals Federacia Distrikto" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "Privolzskio Federacia Distrikto" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "Norda Kaŭkasina Federacia Distrikto" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "Moskvo" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "Sankt-Peterburgo" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "Moskva provinco" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "Respubliko de Adigeo" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "Respubliko de Baŝkirio" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "Respubliko de Burjatio" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "Respubliko de Altaio" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "Respubliko de Dagestano" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "Respubliko de Inguŝskajo" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "Respubliko de Kabardio-Balkario" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "Respubliko de Kalmukio" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "Respubliko de Karaĉajio-Ĉerkesio" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "Respubliko de Karelio" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "Respubliko de Komio" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "Respubliko de Mari Elo" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "Respubliko de Mordvio" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "Respubliko de Saka (Jakutijo)" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "Respubliko de Severnaja Osetio (Alanio)" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "Respubliko de Tatarstano" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "Respubliko de Tijvao (Tuvao)" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "Respubliko de Udmurtskajao" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "Respubliko de Kakasijao" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "Ĉeĉenskaja Respubliko" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "Ĉuvaŝskaya Respubliko" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "Altajskia Federacio" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "Zabajkalski Federacio" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "Kamĉatski Federacio" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "Krasnodarski Federacio" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "Krasnojarski Federacio" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "Permski Federacio" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "Primorski Federacio" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "Stavropolsij Federacio" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "Kabarovski Federacio" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "Amurskaja Provinco" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "Arkangelskaja Provinco" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "Astrakanskaja Provinco" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "Belgorodskaja Provinco" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "Brijanskaja Provinco" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "Vladimirskaja Provinco" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "Volgogrodskaja Provinco" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "Vologodskaja Provinco" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "Voronezskaja Provinco" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "Ivanovskaja Provinco" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "Irkutskaja Provinco" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "Kaliningradskaja Provinco" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "Kaluzskaja Provinco" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "Kemerovskaja Provinco" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "Kirovskaja Provinco" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "Kostromskaja Provinco" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "Kurganskaja Provinco" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "Kurskaja Provinco" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "Leningradskaja Provinco" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "Lipekaja Provinco" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "Magadanskaja Provinco" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "Murmanskaja Provinco" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "Nizhegorodskaja Provinco" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "Novgorodskaja Provinco" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "Novosibirskaja Provinco" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "Omskaja Provinco" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "Orenburgskaja Provinco" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "Orlovskaja Provinco" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "Penzenskaja Provinco" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "Skovskaja Provinco" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "Rostovskaj Provinco" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "Rjazanskaja Provinco" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "Samarskaja Provinco" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "Saratovskaja Provinco" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "Sakhalinskaja Provinco" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "Sverdlovskaja Provinco" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "Smolenskaja Provinco" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "Tambovskaja Provinco" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "Tverskaja Provinco" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "Tomskaja Provinco" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "Tulskaja Provinco" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "Tjumenskaja Provinco" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "Ulianovskaja Provinco" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "Ĉeljabinskaja Provinco" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "Jaroslavskaja Provinco" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "Evrejskaja Aŭtonoma Provinco" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "Nenekija Aŭtonoma Areo" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "Ĥanti-Mansa Aŭtonoma Areo - Yugra" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "Ĉukotka Aŭtonoma Areo" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "Jamalo-Nenekija Aŭtonoma Areo" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Enigu validan Svedan organizaĵon nombron." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Enigu validan Svedan propran identecon nombron." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Kunordigado nombroj ne permesita." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Enigu validan Svedan poŝtan kodon laŭformate XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Stokholmo" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Vasterboteno" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norboteno" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Upsalo" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Sodermanlando" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Ostrogotio" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Jonkopingo" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronobergo" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmaro" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Gotlando" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Blekingo" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Skaneo" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halando" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Vastra Gotalando" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Varmlando" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Orebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Vastmanlando" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Dalarnao" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gavelborgo" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Vasternorlando" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jamtlando" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" -"La unuaj 7 ciferoj de la EMSO devas reprezenti validan pasintecon daton." - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "La EMSO ne estas valida." - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "Enigu validan imposton nombron laŭformate SIXXXXXXXX" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "Enigu telefonnumeron laŭformate +386XXXXXXXX aŭ 0XXXXXXXX." - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Banska Bijstricao" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banska Stiavnicao" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejovo" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Banovce nad Bebravo" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratislavo 1" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratislavo 2" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratislavo 3" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratislavo 4" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratislavo 5" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bijtĉao" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Cadĉao" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detvao" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolni Kubino" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajska Stredao" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galantao" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnicao" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Ĥohoveco" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humeno" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilavao" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kezmaroko" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komarno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Kosiĉeo 1" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Kosiĉeo 2" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Kosiĉeo 3" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Kosiĉeo 4" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Kosiĉeo - okolio" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupino" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kjsuka Nova Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levico" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoco" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovskij Mikulaso" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Luceneco" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malakijo" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martino" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborco" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Miĉalovco" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Mijavo" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Namestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitrao" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nova Mesto nad Vahomo" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nova Zamkijo" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizansko" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinoko" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Pistanio" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltaro" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povazska Bijstriko" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Presovo" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidzao" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Puĉovo" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revuko" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobotao" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Roznavao" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ruzomberoko" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinovo" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Seneco" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senicao" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalicao" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Sninao" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobranzo" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spiska Nova Vezo" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stara Lubovnao" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkovo" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidniko" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Salao" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolĉanio" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebiŝovo" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trenĉino" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trinavo" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turcianska Teplico" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdoŝino" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velkij Krtiso" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplo" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlata Moravco" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvoleno" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Zarnovico" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronomo" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Zilino" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Regiono Banska Bijstrico" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Regiono Bratislavo" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Regiono Kosico" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Regiono Nitrao" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Regiono Presovo" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Regiono Trencino" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Regiono Tirnavo" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Regiono Zilino" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Enigu poŝtan kodon laŭformate XXXXX." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Telefonnumeroj dev esti en laŭformate 0XXX XXX XXXX." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Enigu validan Turkan Identigon nombron." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "Turka Identigo nombro dev esti 11 ciferoj." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Enigu poŝtan kodon laŭformate XXXXX aŭ XXXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Telefonnumeroj devus esti formate kiel XXX-XXX-XXXX." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "Enigu validan usonan Socialasekuran numeron formate kiel XXX-XX-XXXX." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Enigu usonan staton aŭ teritorion." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Usonan stato (du majusklaj leteroj)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "Usonan poŝta kodo (du majusklaj leteroj)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Telefonnumero" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "Enigu validan CI numbron laŭformate X.XXX.XXX-X,XXXXXXX-X aŭ XXXXXXXX." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Enigu validan CI numbron." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Eniri validan Sudafrikan identigan kartan nombron" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Eniri validan Sudafrikan identigan poŝtan kodon" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Orienta Kabo" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Liberŝtato" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gaŭtengo" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "Kvazulu-Natalo" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalango" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Norda Kabo" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "Norda Okcidento" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Okcidenta Kabo" diff --git a/django/contrib/localflavor/locale/es/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/es/LC_MESSAGES/django.mo deleted file mode 100644 index f7ebde81e0..0000000000 Binary files a/django/contrib/localflavor/locale/es/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/es/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/es/LC_MESSAGES/django.po deleted file mode 100644 index 88d26b452e..0000000000 --- a/django/contrib/localflavor/locale/es/LC_MESSAGES/django.po +++ /dev/null @@ -1,3571 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Abraham Estrada , 2011. -# Antoni Aloy , 2011, 2012. -# Jannis Leidel , 2011. -# Juan Antonio Infantes Díaz , 2011. -# Leonardo J. Caballero G. , 2011. -# Marc Garcia , 2011. -# , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:41+0100\n" -"PO-Revision-Date: 2012-03-13 19:47+0000\n" -"Last-Translator: Antoni Aloy \n" -"Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/" -"django/language/es/)\n" -"Language: es\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Introduzca un código postal en el formato NNNN or ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Este campo sólo acepta números." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Este campo necesita 7 u 8 dígitos." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Introduzca un CUIT válido en el formato XX-XXXXXXXX-X o XXXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "CUIT inválido." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Carinthia" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Australia Baja" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Australia Alta" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salzburg" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Styria" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tyrol" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlberg" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Viena" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Introduzca un código postal en el formato XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Introduzca un número de la Seguridad Social Austriaca válido en el formato " -"XXXX XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "Introducir 4 dígitos del un código postal." - -#: au/models.py:9 -msgid "Australian State" -msgstr "Estado australiano" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "Código postal de Australia" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "Número de teléfono de Australia" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Antwerp" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Bruselas" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Flandes Oriental" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Flemish Brabant" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hainaut" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Liege" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburg" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Luxemburgo" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Walloon Brabant" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Flandes Occidental" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Región de Bruselas Capital" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Región Flamenca" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Wallonia" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "Introduzca un código postal en el rango y formato 01XXX - 52XXX." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Introduzca un número de teléfono válido según los siguientes formatos: 0x " -"xxx xx xx, 0xx xx xx xx, 04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx." -"xx.xx, 0x.xxx.xx.xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Introduzca un código postal en el formato XXXX-XXXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Los números de teléfono deben tener el formato XXX-XXX-XXXX." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Seleccione un estado brasileño válido. Este estado no es uno de los estados " -"disponibles." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Número CPF inválido." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Este campo necesita un máximo de 11 dígitos o 14 caracteres." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Número CNPJ inválido." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Este campo necesita 14 dígitos como mínimo" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Introduzca un código postal en el formato XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"Introduzca un Número del Seguro Social de Canadá válido en el formato XXX-" -"XXX-XXX." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aargau" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basel-Stadt" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basel-Land" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Berne" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Fribourg" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Geneva" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubuenden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucerne" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchatel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "St. Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zurich" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Introduzca un número de identificación o pasaporte suizos válidos en el " -"formato X1234567<0 o 1234567890." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Introduzca un RUT chileno válido." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Introduzca un RUT chileno válido. El formato es XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "El RUT chileno no es válido." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "Introduzca un código postal en el formato XXXXXX." - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" -"Identificación de número de tarjetas que se compone de 15 o 18 dígitos." - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" -"Inválido número de Identificación digital: suma de comprobación incorrecta" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" -"Inválido número de Identificación digital: fecha de nacimiento incorrecta" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "Inválido número de Identificación digital: Código de Ubicación errónea" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "Introduzca un número de teléfono válido." - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "Introduzca un número celular/movil válido." - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Praga" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Región Bohemia Central" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Región Bohemia Sur" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Región Pilsen" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Región Carlsbad" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Región Usti" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Región Liberec" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Región Hradec" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Región Pardubice" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Región Vysocina" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Región Moravia Sur" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Región Olomouc" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Región Zlin" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Región Moravia-Silesiana" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Introduzca un código postal en el formato XXXXX o XXX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" -"Introduzca un número de nacimiento en el formato XXXXXX/XXXX o XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" -"El parámetro opcional 'Género' es inválido, los valores válidos son 'f' y 'm'" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Introduzca un número de nacimiento válido." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Introduzca un número IC válido." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Wuerttemberg" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Bavaria" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlín" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburg" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Bremen" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburgo" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hessen" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklenburg-Western Pomerania" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Lower Saxony" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "North Rhine-Westphalia" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Rhineland-Palatinate" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Saarland" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Saxony" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Saxony-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Thuringia" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Introduzca un código postal en el formato XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Introduzca un número de tarjeta de identidad de Alemania válida en el " -"formato XXXXXXXXXXX-XXXXXXX-XXXXXXX-X." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Álava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alicante" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almería" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Ávila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Islas Baleares" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barcelona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Cáceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cádiz" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castellón" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Córdoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "La Coruña" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Gerona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipúzcoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaén" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "León" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lérida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madrid" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Málaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murcia" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarra" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Orense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturias" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palencia" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Cruz de Tenerife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Cantabria" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Sevilla" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valencia" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Vizcaya" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Zaragoza" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andalucía" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragón" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Principado de Asturias" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Islas Baleares" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "País Vasco" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Canarias" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Castilla-La Mancha" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Castilla y León" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Cataluña" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Extremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galicia" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Región de Murcia" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Comunidad Foral de Navarra" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Comunidad Valenciana" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Introduzca un código postal en el rango y formato 01XXX - 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Introduzca un número de teléfono válido en el formato 6XXXXXXXX, 8XXXXXXXX o " -"9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Por favor introduzca un NIF, NIE o CIF válido." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Por favor, introduzca un NIF o NIE válido." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "El NIF es incorrecto." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "El NIE es incorrecto." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "El CIF es incorrecto." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Introduzca un número de cuenta bancaria en el formato XXXX-XXXX-XX-" -"XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "El número de cuenta bancaria es incorrecto." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Introduzca un número de seguro social finlandés válido." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Los números de teléfono deben tener el formato 0X XX XX XX XX." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Introduzca un código postal válido." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Cornwall e Islas de Scilly" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cumbria" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "East Sussex" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Essex" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Londres (área metropolitana)" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Manchester (área metropolitana)" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordshire" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "North Yorkshire" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northamptonshire" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oxfordshire" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "South Yorkshire" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordshire" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne y Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "West Midlands" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "West Sussex" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "West Yorkshire" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "Condado de Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "Condado de Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "Condado de Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "Condado de Fermanagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "Condado de Londonderry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "Condado de Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "South Glamorgan" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "West Glamorgan" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Central Scotland" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries y Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Orkney Islands" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Shetland Islands" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Western Isles" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "Inglaterra" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Irlanda del Norte" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Escocia" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Gales" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "Escriba un JMBG valido de 13 dígitos" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "Error en el segmento de la fecha" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "Escriba un OIB valido de 11 dígitos" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Introduzca un número de placa vehicular válido" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "Introduzca un código de ubicación válido" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "Parte del número no puede ser cero" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "Introduzca un código postal válido de 5 dígitos" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Introduzca un número de teléfono válido" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "Ingrese en un área válida o código de red móvil" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "El número teléfono es demasiado largo" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "Escriba un JMBAG de 19 dígitos iniciando con 601983" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "El número de expedición de la tarjeta no puede ser cero" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "Grad Zagreb" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "Bjelovarsko-bilogorska županija" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "Brodsko-posavska županija" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "Dubrovačko-neretvanska županija" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "Istarska županija" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "Karlovačka županija" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "Koprivničko-križevačka županija" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "Krapinsko-Zagorska županija" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "Ličko-senjska županija" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "Međimurska županija" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "Osjecko-baranjska županija" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "Požeško-slavonska županija" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "Primorsko-Goranska županija" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "Sisačko-Moslavačka županija" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "Splitsko-Dalmatinska županija" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "Šibensko-Kninska županija" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "Varaždinska županija" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "Viroviticko-Podravska županija" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "Vukovarsko-srijemska županija" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "Zadarska županija" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "Zagrebačka županija" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Introduzca un código postal válido" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Introduzca un número NIK/KTP válido." - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Aceh" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Banten" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Bengkulu" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Yogyakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Jacarta" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Gorontalo" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Jambi" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Jawa Barat" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Jawa Tengah" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Jawa Timur" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Kalimantan Barat" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Kalimantan Selatan" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Kalimantan Tengah" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Kalimantan Timur" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Kepulauan Bangka-Belitung" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Kepulauan Riau" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampung" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Maluku" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Maluku Utara" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Nusa Tenggara Barat" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Nusa Tenggara Timur" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papua" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Papua Barat" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Riau" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Sulawesi Barat" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Sulawesi Selatan" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Sulawesi Tengah" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Sulawesi Tenggara" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Sulawesi Utara" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Sumatera Barat" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Sumatera Selatan" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Sumatera Utara" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Magelang" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Surakarta - Solo" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madiun" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kediri" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanuli" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Nanggroe Aceh Darussalam" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Kepulauan Bangka Belitung" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Corps Consulate" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Corps Diplomatic" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Bandung" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Sulawesi Utara Daratan" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timor" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Sulawesi Utara Kepulauan" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lombok" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Papua dan Papua Barat" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Cirebon" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbawa" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Flores" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Bogor" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalongan" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Semarang" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Pati" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Surabaya" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Madura" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malang" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Jember" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banyumas" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Gobierno Federal" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purwakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarjo" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Garut" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Antrim" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Armagh" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Carlow" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Cavan" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Clare" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Cork" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Derry" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Donegal" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Down" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Dublin" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "de Fermanagh" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Galway" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerry" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Kildare" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Kilkenny" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Laois" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Leitrim" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerick" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Longford" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "sesión" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Mayo" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Meath" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Monaghan" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Offaly" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Roscommon" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Sligo" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tipperary" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tyrone" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Waterford" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Westmeath" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Wexford" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Wicklow" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Introduzca un código postal en el formato XXXXX" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Introduzca un número de identificación válido." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "Introduzca un código postal en el formato XXXXXX o XXX XXX." - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "Ingrese un estado o territorio indio." - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "Los números de teléfono deben empezar por 2X-8X o 03X-7X o 04X-6X." - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" -"Introduzca un número de identificación de Islandia válido. El formato es " -"XXXXXX-XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "El número de identificación de Islandia no es válido." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Introduzca un código postal válido." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Introduzca un número de Seguro Social válido." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Introduzca un número VAT válido." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Introduzca un código postal en el formato XXXXX o XXXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaido" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Yamagata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukushima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Tochigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Chiba" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tokyo" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Yamanashi" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Toyama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ishikawa" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Shizuoka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Shiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kyoto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hyogo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakayama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okayama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hiroshima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Yamaguchi" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokushima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Kochi" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Oita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Miyazaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagoshima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinawa" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Introduzca un ID Civil kuwaití válido" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" -"Números de cédula de identidad debe contener 4 a 7 dígitos o una letra " -"mayúscula y 7 dígitos." - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "Este campo debe contener exactamente 13 dígitos." - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" -"Los 7 primeros dígitos de la UMCN debe representar una fecha válida pasado." - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "El UMCN no es válido." - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "Aerodrom" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "Aracinovo" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "Berovo" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "Bitola" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "Bogdanci" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "Bogovinje" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "Bosilovo" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "Brvenica" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "Butel" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "Valandovo" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "Vasilevo" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "Vevcani" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "Veles" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "Vinica" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "Vraneštica" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "Vrapčište" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "Gazi Baba" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "Gevgelija" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "Gostivar" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "Gradsko" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "Excluir" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "Debarca" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "Delcevo" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "Demir Kapija" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "Demir Hisar" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "Dolneni" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "Drugovo" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "Gjorce Petrov" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "Zelino" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "Zajas" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "Zelenikovo" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "Zrnovci" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "Ilinden" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "Jegunovce" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "Kavadarci" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "Karbinci" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "Karpos" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "Kisela Voda" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "Kičevo" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "Konče" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "Kocani" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "Kratovo" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "Kriva Palanka" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "Krivogaštani" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "Krusevo" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "Kumanovo" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "Lipkovo" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "Lozovo" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "Mavrovo i Rostuša" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "Makedonska Kamenica" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "Makedonski Brod" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "Mogila" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "Negotino" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "Novaci" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "Novo Selo" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "Oslomej" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "Ohrid" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "Petrovec" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "Pehcevo" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "Plasnica" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "Prilep" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "Probištip" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "Radoviš" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "Rankovce" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "Resen" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "Rosoman" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "Saraj" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "Sveti Nikole" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "Sopište" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "Star Dojran" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "Staro Nagoricane" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "Struga" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "Strumica" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "Studeničani" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "Tearce" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "Tetovo" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "Centar" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "-Centar Župa" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "Cair" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "Caska" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "Češinovo-Obleševo" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "Cucer-Sandevo" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "Štip" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "Suto Orizari" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "Número de la tarjeta de identidad macedonia " - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "Un municipio de Macedonia (2 código de caracteres)" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "Número maestro único de ciudadanos (13 dígitos)" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "Entre un código zip válido en el formato XXXXX." - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "Entre un RFC válido." - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "Suma de verificación incorrecta." - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "Entre un CURP válido." - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "Suma de verificación de CURP inválida." - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "Estado de México (tres letras mayúsculas)" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "Código zip de México" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "RFC de México" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "CURP de México" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baja California" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baja California Sur" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Distrito Federal" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Estado de México" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacán" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo León" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Querétaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potosí" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Yucatán" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Introduzca un código postal válido" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Introduzca un número SoFi válido" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drenthe" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Friesland" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Gelderland" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groningen" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Noord-Brabant" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Noord-Holland" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrecht" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zeeland" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Zuid-Holland" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Introduzca un número de seguro social de Noruega válido." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Este campo necesita 8 dígitos." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Este campo necesita 11 dígitos." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Número de Identificación Nacional consiste en 11 dígitos" - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "El Número de Identificación Nacional es incorrecto." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" -"Número de Tarjeta Identificador del Documento Nacional de Identidad que se " -"compone de 3 letras y 6 dígitos." - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" -"Suma de comprobación incorrecta para el número de tarjetas de identificación " -"nacional." - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" -"Entre un campo de identificación fiscal con el formato XXX-XXX-XX-XX, XXX-" -"XX-XX-XXX o XXXXXXXXXX." - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "El Número de Identificación Tributaria (NIP) es incorrecto." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" -"El Número Nacional de Registro de Negocios (REGON) consiste en 9 o 14 " -"dígitos." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "El Número Nacional de Registro de Negocios (REGON) es incorrecto." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Introduzca un código postal en el formato XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Lower Silesia" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kuyavia-Pomerania" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublin" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubusz" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodz" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Lesser Poland" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Masovia" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opole" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Subcarpatia" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlasie" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomerania" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Silesia" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Swietokrzyskie" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Warmia-Masuria" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Greater Poland" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "West Pomerania" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Introduzca un código postal en el formato XXXX-XXX." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "Los números de teléfono deben ser de 9 dígitos, o comenzar con + o 00." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Introduzca un CIF válido." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Introduzca un CNP válido." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "Introduzca un IBAN válido en el formato ROXX-XXXX-XXXX-XXXX-XXXX-XXXX." - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Los números de teléfono deben tener el formato XXXX-XXXXXX." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Introduzca un código postal válido en el formato XXXXXX" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "Introduzca un código postal en el formato XXXXXX." - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "Introduzca un número de pasaporte en el formato XXXX XXXXXX." - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "Introduzca un número de pasaporte en el formato XX XXXXXXX." - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "Condado Federal Central " - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "Condado Federal del Sur" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "Condado Federal del Norte-Oeste" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "Condado Federal del Extremo Oriente" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "Condado Federal de Siberia" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "Condado Federal de Ural" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "Condado Federal de Privolzhsky" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "Condado Federal del Norte del Cáucaso" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "Moskva" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "Saint-Peterburg" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "Moskovskaya Oblast '" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "Adigueya, Respublika" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "Bashkortostán, Respublika" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "Buriatia, Respublika" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "Altay, Respublika" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "Daguestán, Respublika" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "Ingushskaya Respublika" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "Kabardino-Balkarskaya Respublika" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "Kalmykia, Respublika" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "Karachaevo-Cherkesskaya Respublika" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "Karelia, Respublika" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "Komi, Respublika" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "Mariy Ehl, Respublika" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "Mordovia, Respublika" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "Saja, Respublika (Yakutia)" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "Severnaya Osetia, Respublika (Alania)" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "Tatarstán, Respublika" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "Tyva, Respublika (Tuva)" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "Udmurtskaya Respublika" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "Khakassiya, Respublika" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "Chechenskaya Respublika" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "Chuvashskaya Respublika" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "Altayskiy Kray" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "Zabaykalskiy Kray" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "Kamchatskiy Kray" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "Krasnodarskiy Kray" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "Krasnoyarskiy Kray" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "Permskiy Kray" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "Primorskiy Kray" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "Stavropol'siyy Kray" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "Khabarovskiy Kray" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "Amurskaya Oblast '" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "Arkhangel'skaya Oblast '" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "Astrakhanskaya oblast '" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "Belgorodskaya Oblast '" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "Bryanskaya oblast '" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "Vladimirskaya Oblast '" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "Volgogradskaya oblast '" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "Vologodskaya oblast '" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "Voronezhskaya oblast '" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "Ivanovskaya Oblast '" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "Irkutskaya Oblast '" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "Kaliningradskaya Oblast '" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "Kaluga Oblast '" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "Kemerovskaya Oblast '" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "Kirovskaya Oblast '" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "Kostromskaya Oblast '" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "Kurganskaya oblast'" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "Kurskaya Oblast '" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "Leningradskaya Oblast '" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "Lipeckaya Oblast '" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "Magadanskaya oblast '" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "Murmanskaya oblast '" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "Nizhegorodskaja Oblast '" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "Novgorodskaya oblast '" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "Novosibirskaya oblast '" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "Omskaya Oblast '" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "Orenburgskaya oblast '" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "Orlovskaya oblast '" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "Penzenskaya oblast '" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "Pskovskaya oblast '" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "Rostovskaya Oblast '" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "Rjazanskaya Oblast '" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "Samarskaya Oblast '" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "Saratovskaya Oblast '" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "Sakhalinskaya oblast '" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "Sverdlovsk \"" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "Smolensk '" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "Tambovskaya oblast '" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "Tverskaya Oblast '" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "Tomskaya oblast '" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "Tul'skaya oblast '" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "Tyumenskaya oblast '" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "Ul'ianovskaya Oblast '" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "Chelyabinskaya Oblast '" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "Yaroslavskaya Oblast '" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "Evreyskaya avtonomnaja Oblast '" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "Neneckiy autonomnyy okrug" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "Chukotskiy avtonomnyy okrug" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "Yamalo-Neneckiy avtonomnyy okrug" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Introduzca un número de organización sueca válido." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Introduzca un número de identidad personal sueco válido." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "No se admiten número de Co-ordinación." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Introduzca un código postal en el formato XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Estocolmo" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Västerbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norrbotten" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Uppsala" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Södermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Östergötland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Jönköping" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmar" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Gotland" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Blekinge" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Skåne" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halland" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Västra Götaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Värmland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Örebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Västmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Dalarna" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gävleborg" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Västernorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jämtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "Los primeros 7 dígitos del EMSO deben representar un fecha válida." - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "El EMSO no es válido." - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "Entre un número de identificación fiscal de la forma SIXXXXXXXX" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "Entre un número de teléfonocon la forma +386XXXXXXXX o 0XXXXXXXX." - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Región de Bystrica" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Región de Banska Stiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Región de Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Región de Banovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Región de Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Región de Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Región de Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Región de Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Región de Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Región de Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Región de Bytca" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Región de Cadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Región de Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Región de Dolny Kubin" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Región de Dunajska Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenne" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kezmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komarno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Kosice I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Kosice II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Kosice III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Kosice IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Kosice - okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucke Nove Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoca" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovsky Mikulas" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lucenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Namestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nove Mesto nad Vahom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nove Zamky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizanske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piestany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltar" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povazska Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Presov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Puchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revuca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Roznava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ruzomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spisska Nova Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stara Lubovna" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidnik" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Sala" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolcany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebisov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trencin" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turcianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdosin" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velky Krtis" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Zarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Zilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Región de Banska Bystrica" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Región de Bratislava" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Región de Kosice" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Región de Nitra" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Región de Presov" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Región de Trencin" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Región de Trnava" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Región de Zilina" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Introduzca un código postal en el formato XXXXX" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Los número de teléfono deben tener en el formato 0XXX XXX XXXX." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Introduzca un número de identificador turco válido." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "El número de identificación turco debe contener 11 dígitos." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Introduzca un código postal en el formato XXXXX o XXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Los números de teléfono deben tener el formato XXX-XXX-XXXX." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" -"Introduzca un Número Seguro Social de EEUU válido en el formato XXX-XX-XXXX" - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Introduzca un estado o territorio de los EEUU." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Estado de los EEUU (dos letras mayúsculas)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "Código postal de EE.UU. (dos letras mayúsculas)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Número de teléfono" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" -"Introduzca un número de CI válido en el formato X.XXX.XXX-X,XXXXXXX-X o " -"XXXXXXXX." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Introduzca un número CI válido." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Introduzca un ID surafricano válido" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Introduzca un código postal surafricano válido" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Eastern Cape" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Free State" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Northern Cape" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "North West" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Western Cape" diff --git a/django/contrib/localflavor/locale/es_AR/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/es_AR/LC_MESSAGES/django.mo deleted file mode 100644 index f8597784b0..0000000000 Binary files a/django/contrib/localflavor/locale/es_AR/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/es_AR/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/es_AR/LC_MESSAGES/django.po deleted file mode 100644 index d0d435f28c..0000000000 --- a/django/contrib/localflavor/locale/es_AR/LC_MESSAGES/django.po +++ /dev/null @@ -1,3570 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011. -# Ramiro Morales , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:41+0100\n" -"PO-Revision-Date: 2012-03-21 15:04+0000\n" -"Last-Translator: Ramiro Morales \n" -"Language-Team: Spanish (Argentina) (http://www.transifex.net/projects/p/" -"django/language/es_AR/)\n" -"Language: es_AR\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Introduzca un código postal en formato NNNN o ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Este campo sólo permite valores numéricos." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Este campo requiere 7 u 8 dígitos." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Introduzca un CUIT válido en formato XX-XXXXXXXX-X o XXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "CUIT inválido." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Carintia" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Baja Austria" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Alta Austria" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salzburgo" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Estiria" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tirol" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlberg" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Viena" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Introduzca un zip code en formato XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Introduzca un Número de Seguridad Social austríaco válido en formato XXXX " -"XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "Introduzca un código postal de 4 dígitos." - -#: au/models.py:9 -msgid "Australian State" -msgstr "Estado australiano" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "Código postal de Australia" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "Número de teléfono de Australia" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Amberes" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Bruselas" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Flandes Oriental" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Brabante Flamenco" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Henao" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Lieja" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburgo" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Luxemburgo" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Brabante Valón" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Flandes Occidental" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Región de Bruselas-Capital" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Región Flamenca" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Valonia" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" -"Introduzca un código postal válido con el rango y el formato 1XXX - 9XXX." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Introduzca un número telefónico en uno de los formatos 0x xxx xx xx, 0xx xx " -"xx xx, 04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx." -"xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx ó 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Introduzca un zip code en formato XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Los números telefónicos deben respetar el formato XX-XXXX-XXXX." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Seleccione un estado Brasileño válido. Ese estado no es uno de los estados " -"disponibles." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Número CPF inválido." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Este campo requiere como máximo 11 dígitos o 14 caracteres." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Número CNPJ inválido." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Este campo requiere al menos 14 dígitos." - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Introduzca un código postal en formato XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"Introduzca un Número de Seguridad Social Canadiense válido en formato XXX-" -"XXX-XXX." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aargau" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basel-Stadt" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basel-Land" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Berne" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Fribourg" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Geneva" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubuenden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucerne" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchatel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "St. Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zurich" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Introduzca un número válido de tarjeta de identidad o pasaporte Suizos en " -"formato X1234567<0 o 1234567890." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Introduzca un RUT chileno válido." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Introduzca un RUT chileno válido. EL formato es XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "El RUT chileno no es válido." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "Introduzca un código postal en el formato XXXXXX." - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" -"Identificación de número de tarjetas que se compone de 15 o 18 dígitos." - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" -"número de Identificación digital inválido: Suma de comprobación incorrecta" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" -"Número de Identificación digital inválido: Fecha de nacimiento incorrecta" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "Número de Identificación digital inválido: Código de Ubicación errónea" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "Introduzca un número de teléfono válido." - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "Introduzca un número celular/movil válido." - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Praga" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "región Bohemia Central" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "región Bohemia Meridional" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "región Pilsen" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "región Karlovy Vary" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "región Ústí nad Labem" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "región Liberec" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "región Hradec Králové" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "región Pardubice" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "región Vysočina" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "región Moravia Meridional" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "región Olomouc" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "región Zlín" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "región Moravia-Silesia" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Introduzca un código postal en formato XXXXX o XXX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" -"Introduzca un número de nacimiento en formato XXXXXX/XXXX o XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" -"Valor erróneo para el parámetro opcional género. Los valores válidos son 'f' " -"y 'm'" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Introduzca un número de nacimiento válido." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Introduzca un número IC válido." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Wuerttemberg" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Bavaria" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlín" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburgo" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Bremen" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburg" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hessen" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklenburg-Western Pomerania" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Lower Saxony" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "Renania septentrional-Westfalia" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Rhineland-Palatinate" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Saarland" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Saxony" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Saxony-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Thuringia" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Introduzca un zip code en formato XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Introduzca un número de tarjeta de identidad alemán válido en formato " -"XXXXXXXXXXX-XXXXXXX-XXXXXXX-X." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Álava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alicante" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almería" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Ávila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Islas Baleares" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barcelona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Cáceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cádiz" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castellón" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Córdoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "La Coruña" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Gerona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipúzcoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaén" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "León" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lérida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madrid" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Málaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murcia" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarra" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Orense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturias" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palencia" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Cruz de Tenerife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Cantabria" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Sevilla" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valencia" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Vizcaya" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Zaragoza" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andalucía" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragón" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Principado de Asturias" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Islas Baleares" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "País Vasco" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Islas Canarias" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Castilla-La Mancha" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Castilla y León" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Cataluña" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Extremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galicia" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Región de Murcia" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Comunidad Foral de Navarra" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Comunidad Valenciana" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" -"Introduzca un código postal en el siguiente rango y con el siguiente " -"formato: 01XXX - 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Introduzca un número telefónico en uno de los siguientes formatos: " -"6XXXXXXXX, 8XXXXXXXX o 9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Por favor introduzca un NIF, NIE o CIF válidos." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Por favor, introduzca un NIF o CIE válidos." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Código de verificación de NIF inválido." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Código de verificación de NIE inválido." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Código de verificación de CIF inválido." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Por favor introduzca un número de cuenta bancaria válido en formato XXXX-" -"XXXX-XX-XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Código de verificación de número de cuenta bancaria inválido." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Introduzca un número de seguridad social finlandés válido." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Los números telefónicos deben respetar el formato 0X XX XX XX XX." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Introduzca un postcode válido." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Cornwall e Islas de Scilly" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cumbria" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "East Sussex" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Essex" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Greater London" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Greater Manchester" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordshire" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "North Yorkshire" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northamptonshire" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oxfordshire" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "South Yorkshire" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordshire" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne and Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "West Midlands" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "West Sussex" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "West Yorkshire" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "County Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "County Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "County Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "County Fermarmagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "County Londonderry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "County Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "South Glamorgan" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "West Glamorgan" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Escocia Central" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries and Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Orkney Islands" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Shetland Islands" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Western Isles" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "Inglaterra" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Irlanda del Norte" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Escocia" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Gales" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "Introduzca un JMBG de 13 dígitos valido" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "Error en el segmento de la fecha" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "Introduzca un OIB de 11 dígitos válido" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Introduzca un número de placa de licencia de vehículo válido." - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "Introduzca un código de ubicación válido" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "Parte del número no puede ser cero" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "Introduzca un código postal de 5 dígitos válido" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Introduzca un número telefónico válido." - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "Introduzca un área o código de red móvil válidos" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "El número teléfono es demasiado largo" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "Introduzca un JMBAG de 19 dígitos iniciando con 601983" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "El número de emisión de la tarjeta no puede ser cero" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "Grad Zagreb" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "Bjelovarsko-bilogorska županija" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "Brodsko-posavska županija" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "Dubrovačko-neretvanska županija" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "Istarska županija" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "Karlovačka županija" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "Koprivničko-križevačka županija" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "Krapinsko-Zagorska županija" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "Ličko-senjska županija" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "Međimurska županija" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "Osjecko-baranjska županija" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "Požeško-slavonska županija" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "Primorsko-Goranska županija" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "Sisačko-Moslavačka županija" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "Splitsko-Dalmatinska županija" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "Šibensko-Kninska županija" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "Varaždinska županija" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "Viroviticko-Podravska županija" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "Vukovarsko-srijemska županija" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "Zadarska županija" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "Zagrebačka županija" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Introduzca un código postal válido." - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Introduzca un número NIK/KTP válido." - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Aceh" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Banten" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Bengkulu" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Yogyakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Jakarta" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Gorontalo" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Jambi" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Java Barat" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Java Central" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Java Oriental" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Kalimantan Occidental" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Kalimantan Meridional" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Kalimantan Central" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Kalimantan Oriental" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Kepulauan Bangka-Belitung" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Islas Riau" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampung" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Molucas" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Molucas Septentrional" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Nusatenggara Occidental" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Nusatenggara Oriental" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papúa" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Provincia de Papúa Occidental" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Riau" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Célebes Occidental" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Célebes Meridional" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Célebes Central" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Célebes Suroriental" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Molucas Septentrional" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Sumatra Occidental" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Sumatra Meridional" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Sumatra Septentrional" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Magelang" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Surakarta - Solo" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madiun" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kediri" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanuli" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Aceh" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Kepulauan Bangka Belitung" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Corps Consulate" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Corps Diplomatic" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Bandung" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Sulawesi Utara Daratan" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timor" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Sulawesi Utara Kepulauan" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lombok" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Papua dan Papua Barat" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Cirebon" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbawa" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Flores" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Bogor" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalongan" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Semarang" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Pati" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Surabaya" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Madura" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malang" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Jember" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banyumas" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Federal Government" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purwakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarjo" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Garut" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Antrim" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Armagh" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Carlow" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Cavan" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Clare" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Cork" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Derry" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Donegal" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Down" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Dublin" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fermanagh" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Galway" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerry" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Kildare" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Kilkenny" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Laois" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Leitrim" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerick" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Longford" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Louth" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Mayo" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Meath" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Monaghan" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Offaly" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Roscommon" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Sligo" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tipperary" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tyrone" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Waterford" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Westmeath" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Wexford" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Wicklow" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Introduzca un código postal en el formato XXXXX." - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Introduzca número ID válido." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "Introduzca un código postal en el formato XXXXXX o XXX XXX." - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "Introduzca un estado o territorio indio." - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "Los números de teléfono deben empezar por 2X-8X o 03X-7X o 04X-6X." - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" -"Introduzca un número de identificación islandés válido. El formato es XXXXXX-" -"XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "El número de identificación islandés no es válido." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Introduzca un zip code válido." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Introduzca un número de Seguridad Social válido." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Introduzca un número VAT válido." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Introduzca un código postal en formato XXXXXX o XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaido" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Yamagata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukushima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Tochigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Chiba" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tokio" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Yamanashi" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Toyama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ishikawa" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Shizuoka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Shiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kyoto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hyogo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakayama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okayama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hiroshima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Yamaguchi" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokushima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Kochi" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Oita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Miyazaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagoshima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinawa" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Introduzca un número de ID civil kuwaití válido." - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" -"Números de cédula de identidad debe contener 4 a 7 dígitos o una letra " -"mayúscula y 7 dígitos." - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "Este campo debe contener exactamente 13 dígitos." - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" -"Los 7 primeros dígitos de la UMCN deben representar una fecha válida pasado." - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "El UMCN no es válido." - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "Aerodrom" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "Aracinovo" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "Berovo" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "Bitola" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "Bogdanci" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "Bogovinje" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "Bosilovo" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "Brvenica" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "Butel" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "Valandovo" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "Vasilevo" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "Vevcani" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "Veles" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "Vinica" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "Vraneštica" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "Vrapčište" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "Gazi Baba" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "Gevgelija" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "Gostivar" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "Gradsko" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "Excluir" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "Debarca" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "Delcevo" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "Demir Kapija" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "Demir Hisar" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "Dolneni" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "Drugovo" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "Gjorce Petrov" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "Zelino" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "Zajas" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "Zelenikovo" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "Zrnovci" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "Ilinden" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "Jegunovce" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "Kavadarci" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "Karbinci" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "Karpos" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "Kisela Voda" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "Kičevo" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "Konče" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "Kocani" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "Kratovo" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "Kriva Palanka" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "Krivogaštani" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "Krusevo" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "Kumanovo" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "Lipkovo" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "Lozovo" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "Mavrovo i Rostuša" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "Makedonska Kamenica" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "Makedonski Brod" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "Mogila" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "Negotino" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "Novaci" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "Novo Selo" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "Oslomej" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "Ohrid" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "Petrovec" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "Pehcevo" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "Plasnica" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "Prilep" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "Probištip" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "Radoviš" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "Rankovce" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "Resen" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "Rosoman" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "Saraj" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "Sveti Nikole" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "Sopište" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "Star Dojran" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "Staro Nagoricane" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "Struga" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "Strumica" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "Studeničani" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "Tearce" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "Tetovo" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "Centar" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "-Centar Župa" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "Cair" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "Caska" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "Češinovo-Obleševo" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "Cucer-Sandevo" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "Štip" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "Suto Orizari" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "Número de la tarjeta de identidad macedonia " - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "Un municipio de Macedonia (2 código de caracteres)" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "Número maestro único de ciudadanos (13 dígitos)" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "Entre un código zip válido en el formato XXXXX." - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "Entre un RFC válido." - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "Suma de verificación incorrecta." - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "Entre un CURP válido." - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "Suma de verificación de CURP inválida." - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "Estado de México (tres letras mayúsculas)" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "Código zip de México" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "RFC de México" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "CURP de México" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baja California" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baja California Sur" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Distrito Federal" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Estado de México" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacán" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo León" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Querétaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potosí" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Yucatán" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Introduzca un código postal válido." - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Introduzca un número SoFi válido." - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drente" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevolanda" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Frisia" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Güeldres" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groninga" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Brabante Septentrional" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Holanda Septentrional" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrecht" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zelanda" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Holanda Meridional" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Introduzca un número de seguridad social Noruego válido." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Este campo requiere 8 dígitos." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Este campo requiere 11 dígitos." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Los Números Nacionales de Identificación constan de 11 dígitos." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Código de verificación de Número Nacional de Identificación inválido." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" -"Número de Tarjeta Identificador del Documento Nacional de Identidad que se " -"compone de 3 letras y 6 dígitos." - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" -"Suma de comprobación incorrecta para el número de tarjetas de identificación " -"nacional." - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" -"Entre un campo de identificación fiscal con el formato XXX-XXX-XX-XX, XXX-" -"XX-XX-XXX o XXXXXXXXXX." - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Código de verificación de Número Impositivo (NIP) inválido." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" -"Los Números Nacionales de Registro de Negocios (REGON) constan de 9 o 14 " -"dígitos." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" -"Código de verificación de Número Nacional de Registro de Negocios (REGON) " -"inválido." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Introduzca un código postal en formato XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Baja Silesia" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Cuyavia y Pomerania" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublin" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubus" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodz" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Pequeña Polonia" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Masovia" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opole" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Subcarpacia" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlaquia" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomerania" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Silesia" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Swietokrzyskie" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Varmia y Masuria" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Gran Polonia" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "Pomerania Occidental" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Introduzca un zip code en formato XXXX-XXX." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "Los números telefónicos deben ser de 9 dígitos o comenzar con + o 00." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Introduzca un CIF válido." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Introduzca un CNP válido." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "Introduzca un IBAN válido en formato ROXX-XXXX-XXXX-XXXX-XXXX-XXXX" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Los números telefónicos deben respetar el formato XXXX-XXXXXX." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Introduzca un código postal válido en formato XXXXXX" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "Introduzca un código postal en el formato XXXXXX." - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "Introduzca un número de pasaporte en el formato XXXX XXXXXX." - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "Introduzca un número de pasaporte en el formato XX XXXXXXX." - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "Condado Federal Central " - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "Condado Federal del Sur" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "Condado Federal del Norte-Oeste" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "Condado Federal del Extremo Oriente" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "Condado Federal de Siberia" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "Condado Federal de Ural" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "Condado Federal de Privolzhsky" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "Condado Federal del Norte del Cáucaso" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "Moskva" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "Saint-Peterburg" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "Moskovskaya Oblast '" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "Adigueya, Respublika" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "Bashkortostán, Respublika" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "Buriatia, Respublika" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "Altay, Respublika" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "Daguestán, Respublika" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "Ingushskaya Respublika" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "Kabardino-Balkarskaya Respublika" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "Kalmykia, Respublika" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "Karachaevo-Cherkesskaya Respublika" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "Karelia, Respublika" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "Komi, Respublika" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "Mariy Ehl, Respublika" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "Mordovia, Respublika" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "Saja, Respublika (Yakutia)" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "Severnaya Osetia, Respublika (Alania)" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "Tatarstán, Respublika" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "Tyva, Respublika (Tuva)" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "Udmurtskaya Respublika" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "Khakassiya, Respublika" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "Chechenskaya Respublika" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "Chuvashskaya Respublika" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "Altayskiy Kray" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "Zabaykalskiy Kray" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "Kamchatskiy Kray" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "Krasnodarskiy Kray" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "Krasnoyarskiy Kray" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "Permskiy Kray" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "Primorskiy Kray" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "Stavropol'siyy Kray" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "Khabarovskiy Kray" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "Amurskaya Oblast '" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "Arkhangel'skaya Oblast '" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "Astrakhanskaya oblast '" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "Belgorodskaya Oblast '" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "Bryanskaya oblast '" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "Vladimirskaya Oblast '" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "Volgogradskaya oblast '" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "Vologodskaya oblast '" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "Voronezhskaya oblast '" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "Ivanovskaya Oblast '" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "Irkutskaya Oblast '" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "Kaliningradskaya Oblast '" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "Kaluga Oblast '" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "Kemerovskaya Oblast '" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "Kirovskaya Oblast '" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "Kostromskaya Oblast '" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "Kurganskaya oblast'" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "Kurskaya Oblast '" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "Leningradskaya Oblast '" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "Lipeckaya Oblast '" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "Magadanskaya oblast '" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "Murmanskaya oblast '" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "Nizhegorodskaja Oblast '" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "Novgorodskaya oblast '" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "Novosibirskaya oblast '" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "Omskaya Oblast '" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "Orenburgskaya oblast '" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "Orlovskaya oblast '" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "Penzenskaya oblast '" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "Pskovskaya oblast '" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "Rostovskaya Oblast '" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "Rjazanskaya Oblast '" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "Samarskaya Oblast '" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "Saratovskaya Oblast '" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "Sakhalinskaya oblast '" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "Sverdlovsk \"" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "Smolensk '" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "Tambovskaya oblast '" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "Tverskaya Oblast '" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "Tomskaya oblast '" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "Tul'skaya oblast '" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "Tyumenskaya oblast '" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "Ul'ianovskaya Oblast '" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "Chelyabinskaya Oblast '" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "Yaroslavskaya Oblast '" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "Evreyskaya avtonomnaja Oblast '" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "Neneckiy autonomnyy okrug" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "Chukotskiy avtonomnyy okrug" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "Yamalo-Neneckiy avtonomnyy okrug" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Introduzca un número de organización sueco válido." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Introduzca un número de identidad personal sueco válido." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "No se admiten números de co-ordinación" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Introduzca un código postal sueco en formato XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Estocolmo" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Västerbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norrbotten" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Uppsala" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Södermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Östergrötland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Jönköping" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmar" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Gotland" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Blekinge" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Escania" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halland" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Västra Götaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Värmland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Örebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Västmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Dalarna" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gävleborg" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Västernorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jämtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "Los primeros 7 dígitos del EMSO deben representar un fecha válida." - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "El EMSO no es válido." - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "Entre un número de identificación fiscal de la forma SIXXXXXXXX" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "Entre un número de teléfonocon la forma +386XXXXXXXX o 0XXXXXXXX." - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Banska Bystrica" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banska Stiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Banovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytca" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Cadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolny Kubin" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajska Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenne" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kezmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komarno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Kosice I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Kosice II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Kosice III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Kosice IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Kosice - okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucke Nove Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoca" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovsky Mikulas" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lucenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Namestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nove Mesto nad Vahom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nove Zamky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizanske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piestany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltar" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povazska Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Presov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Puchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revuca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Roznava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ruzomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spisska Nova Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stara Lubovna" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidnik" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Sala" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolcany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebisov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trencin" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turcianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdosin" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velky Krtis" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Zarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Zilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "región Banska Bystrica" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "región Bratislava" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "región Kosice" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "región Nitra" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "región Presov" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "región Trencin" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "región Trnava" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "región Zilina" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Introduzca un código postal en el formato XXXXX." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Los números telefónicos deben tener el formato 0XXX XXX XXXX." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Introduzca número de identificación turco válido." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "Los números de identificación turcos deben consistir de 11 dígitos." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Introduzca un zip code en el formato XXXXX o XXXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Los números telefónicos deben respetar el formato XXX-XXX-XXXX." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "Introduzca un Número de Seguridad Social en formato XXX-XX-XXXX." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Introduzca un estado de EE.UU. o un territorio." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Estado de los EE.UU. (dos letras mayúsculas)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "Código postal de EE.UU. (dos letras en mayúscula)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Número de teléfono" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" -"Introduzca un número CI válido en formato X.XXX.XXX-X,XXXXXXX-X o XXXXXXXX." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Introduzca un número CI válido." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Introduzca un número de ID de Sudáfrica válido." - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Introduzca un código postal de Sudáfrica válido." - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Eastern Cape" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Free State" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Northern Cape" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "North West" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Western Cape" diff --git a/django/contrib/localflavor/locale/es_MX/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/es_MX/LC_MESSAGES/django.mo deleted file mode 100644 index af01e2457d..0000000000 Binary files a/django/contrib/localflavor/locale/es_MX/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/es_MX/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/es_MX/LC_MESSAGES/django.po deleted file mode 100644 index 0f8f58252f..0000000000 --- a/django/contrib/localflavor/locale/es_MX/LC_MESSAGES/django.po +++ /dev/null @@ -1,3566 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Abraham Estrada , 2011, 2012. -# msmtotti , 2011. -# zodman , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:41+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Abraham Estrada \n" -"Language-Team: Spanish (Mexico) (http://www.transifex.net/projects/p/django/" -"language/es_MX/)\n" -"Language: es_MX\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Introduzca un código postal en el formato NNNN o ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Este campo requiere sólo números." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Este campo requiere 7 u 8 dígitos." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Ingrese un CUIT válido en el formato XX-XXXXXXXX-X o XXXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "CUIT inválido." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Carintia" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Baja Austria" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Alta Austria" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salzburgo" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Estiria" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tirol" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlberg" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Viena" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Introduzca un código postal en el formato XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Introduzca un número de Seguro Social de Austria en el formato XXXX XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "Introduzca un código postal de 4 dígitos." - -#: au/models.py:9 -msgid "Australian State" -msgstr "Estado australiano" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "Código postal australiano" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "Número telefónico australiano" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Amberes" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Bruselas" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Flanders del este" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Brabante Flamenc" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hainaut" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Liege" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburgo" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Luxemburgo" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Walloon Brabant" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Flandes Occidental" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Región de Bruselas Capital" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Región Flamenca" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Wallonia" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "Introduzca un código postal válido en el formato 1XXX - 9XXX." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Introduzca un número de teléfono válido en uno de los formatos xx xx xxx 0x, " -"xx xx xx 0xx, 04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x . " -"xxx.xx.xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx o 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Introduzca un código postal en el formato XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Los números de teléfono debe estar en formato XX-XXXX-XXXX." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Seleccione un estado brasileño válido. Ese estado no es uno de los estados " -"disponibles." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Número CPF inválido" - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Este campo requiere un máximo de 11 dígitos o caracteres 14." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Número CNPJ inválido" - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Este campo requiere un mínimo de 14 dígitos" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Introduzca un código postal en el formato XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"Introduzca un número de Seguro Social de Canadá en formato XXX-XXX-XXX." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Argovia" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basel-Stadt" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basel-Land" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Berna" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Friburgo" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Ginebra" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Cantón de Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubuenden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucerne" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchatel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "St. Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Cantón del Tesino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Cantón del Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "República y cantón de Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zúrich" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Introduzca una identidad Suiza válida o número de pasaporte en el formato " -"X1234567<0 ó 1234567890." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Introduzca un RUT chileno válido." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Introduzca un RUT chileno válido. El formato es XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "El RUT chileno no es válido." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "Introduzca un código postal en el formato de XXXXXX." - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "El número de tarjeta de identificación consta de 15 o 18 dígitos." - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "Número de Tarjeta de Identificación Inválido: Comprobación incorrecta" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "Número de Tarjeta de Identificación Inválido: Fecha incorrecta" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" -"Número de Tarjeta de Identificación Inválido: Código de ubicación incorrecto" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "Introduzca un número de teléfono válido." - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "Introduzca un número de teléfono celular válido." - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Praga" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Región de Bohemia Central" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Región de Bohemia del Sur" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Región de Pilsen" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Región de Carlsbad" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Región de Ústí nad Labem" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Región de Liberec" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Región de Hradec Králové" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Región de Pardubice" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Región de Vysocina" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Región Moravia del Sur" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Región de Olomouc" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Región de Zlín" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Región de Moravia-Silesia" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Introduzca un código postal en el formato XXXXX o XX XXX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" -"Introduzca una fecha de nacimiento en el formato XXXXXX / XXXX o XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" -"Parámetro de Genero opcional inválido, los valores válidos son 'f' y 'm'" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Introduzca una fecha de nacimiento válida." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Introduzca un número IC válido." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Wurtemberg" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Bavaria" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlín" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandeburgo" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Bremen" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburgo" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hesse" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklemburgo-Pomerania Occidental" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Baja Sajonia " - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "North Rhine-Westphalia" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Rhineland-Palatinate" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Saarland" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Sajonia" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Sajonia-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Thuringia" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Introduzca el código postal en el formato XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Introduzca un número válido de tarjeta de identidad alemana en formato " -"XXXXXXXXXXX-XXXXXXX-XXXXXXX-X." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Álava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alicante" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almería" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Avila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Islas Baleares" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barcelona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Cáceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cádiz" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castellon" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Córdoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "La Coruña" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Gerona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipúzcoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaén" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "León" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lérida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madrid" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Málaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murcia" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarra" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Orense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturias" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palencia" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Cruz de Tenerife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Cantabria" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Sevilla" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valencia" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Vizcaya" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Zaragoza" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andalucía" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragón" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Principado de Asturias" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Islas Baleares" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "País Vasco" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Islas Canarias" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Castilla y La Mancha" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Castilla y León" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Cataluña" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Extremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galicia" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Región de Murcia" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Comunidad Foral de Navarra" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Comunidad Valenciana" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Introduzca un código postal válido en el formato 01XXX al 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Introduzca un número de teléfono válido en uno de los formatos 6XXXXXXXX, " -"8XXXXXXXX o 9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Por favor introduzca una NIF, NIE o CIF válida." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Por favor introduzca una NIF o NIE válida." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "El NIF es incorrecto." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "El NIE es incorrecto." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "El CIF es incorrecto." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Por favor, introduzca un número de cuenta bancaria válida en el formato XXXX-" -"XXXX-XX-XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Suma de chequeo inválido para el número de banco." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Introduzca un número válido de seguridad social finlandés." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "El número de teléfono debe estar en el formato 0X XX XX XX XX." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Introduzca un código postal válido." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Cornwall e Islas de Scilly" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cumbria" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "East Sussex" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Essex" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Greater London" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Greater Manchester" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordshire" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "Yorkshire del Norte" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northamptonshire" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oxfordshire" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "Yorkshire del Sur" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordshire" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne y Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "West Midlands" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "Sussex Occidental" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "Yorkshire Occidental" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "Condado de Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "Condado de Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "Condado de Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "Condado de Fermanagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "Condado de Londonderry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "Condado de Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "Glamorgan del Sur" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "Glamorgan Occidental" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Escocia Central" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries y Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Islas Orcadas" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Islas Shetland" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Islas Occidentales" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "Inglaterra" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Irlanda del Norte" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Escocia" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "País de Gales" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "Introduzca un JMBG válido de 13 dígitos." - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "Error en el segmento de la fecha" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "Introduzca un OIB de 11 dígitos" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Introduzca una matrícula de vehículo válida." - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "Introduzca un código de ubicación válido" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "El número de pieza no puede ser cero" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "Introduzca un código postal válido de 5 dígitos" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Introduzca un número de teléfono válido" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "Introduzca una área válida o código de red móvil" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "El número de teléfono es demasiado largo." - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "Introduzca un JMBAG válido de 19 dígitos iniciando con 601983" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "Número de expedición de la tarjeta no puede ser cero" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "Grad Zagreb" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "Bjelovarsko-bilogorska županija" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "Brodsko-posavska županija" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "Dubrovačko-neretvanska županija" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "Istarska županija" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "Karlovačka županija" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "Koprivničko-križevačka županija" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "Krapinsko-zagorska županija" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "Ličko-senjska županija" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "Međimurska županija" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "Osječko-baranjska županija" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "Požeško-slavonska županija" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "Primorsko-goranska županija" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "Sisačko-moslavačka županija" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "Splitsko-dalmatinska županija" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "Šibensko-kninska županija" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "Varaždinska županija" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "Virovitičko-podravska županija" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "Vukovarsko-srijemska županija" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "Zadarska županija" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "Zagrebačka županija" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Introduzca un código postal válido" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Introduzca un NIK/KTP número." - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Aceh" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Banten" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Bengkulu" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Yogyakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Jakarta" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Gorontalo" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Jambi" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Jawa Barat" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Jawa Tengah" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Jawa Timur" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Kalimantan Barat" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Kalimantan Selatan" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Kalimantan Tengah" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Kalimantan Timur" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Kepulauan Bangka-Belitung" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Kepulauan Riau" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampung" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Maluku" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Maluku Utara" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Nusa Tenggara Barat" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Nusa Tenggara Timur" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papua" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Papua Barat" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Riau" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Sulawesi Barat" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Sulawesi Selatan" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Sulawesi Tengah" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Sulawesi Tenggara" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Sulawesi Utara" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Sumatera Barat" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Sumatera Selatan" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Sumatera Utara" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Magelang" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Surakarta - Solo" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madiun" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kediri" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanuli" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Nanggroe Aceh Darussalam" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Kepulauan Bangka Belitung" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Corps Consulate" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Corps Diplomatic" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Bandung" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Sulawesi Utara Daratan" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timor" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Sulawesi Utara Kepulauan" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lombok" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Papua dan Papua Barat" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Cirebon" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbawa" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Flores" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Bogor" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalongan" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Semarang" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Pati" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Surabaya" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Madura" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malang" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Jember" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banyumas" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Gobierno Federal" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purwakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarjo" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Garut" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Antrim" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Armagh" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Carlow" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Cavan" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Clare" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Cork" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Derry" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Donegal" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Down" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Dublin" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fermanagh" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Galway" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerry" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Kildare" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Kilkenny" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Laois" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Leitrim" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerick" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Longford" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Louth" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Mayo" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Meath" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Monaghan" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Offaly" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Roscommon" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Sligo" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tipperary" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tyrone" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Waterford" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Westmeath" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Wexford" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Wicklow" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Introduzca un código postal en el formato XXXXX" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Introduzca un número de identificación válido." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "Introduzca un código postal en el formato XXXXXX o XXX XXX." - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "Introduzca en un estado o territorio Indú." - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" -"Los números de teléfono deben estar en el formato 02X-8X o 03X-7X o 04X-6X." - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" -"Introduzca un número válido de identificación islandesa. El formato es " -"XXXXXX-XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "El número de identificación islandesa no es válido." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Introduzca un código postal válido." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Introduzca un número de Seguro Social." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Introduzca un número VAT válido." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Introduzca un código postal en el formato XXXXXXX o XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaido" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Yamagata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukushima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Tochigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Chiba" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tokyo" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Yamanashi" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Toyama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ishikawa" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Shizuoka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Shiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kyoto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hyogo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakayama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okayama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hiroshima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Yamaguchi" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokushima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Kochi" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Oita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Miyazaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagoshima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinawa" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Introduzca un número de identificación civil kuwaití" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" -"Los números de la tarjeta de identidad deben contener de 4 a 7 dígitos o una " -"letra mayúscula y dígitos 7." - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "Este campo debe contener exactamente 13 dígitos." - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" -"Los 7 primeros dígitos de la UMCN deben representar una fecha pasada válida." - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "El UMCN no es válido." - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "Aerodrom" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "Aračinovo" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "Berovo" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "Bitola" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "Bogdanci" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "Bogovinje" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "Bosilovo" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "Brvenica" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "Butel" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "Valandovo" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "Vasilevo" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "Vevčani" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "Veles" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "Vinica" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "Vraneštica" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "Vrapčište" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "Gazi Baba" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "Gevgelija" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "Gostivar" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "Gradsko" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "Debar" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "Debarca" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "Delčevo" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "Demir Kapija" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "Demir Hisar" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "Dolneni" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "Drugovo" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "Gjorče Petrov" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "Želino" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "Zajas" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "Zelenikovo" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "Zrnovci" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "Ilinden" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "Jegunovce" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "Kavadarci" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "Karbinci" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "Karpoš" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "Kisela Voda" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "Kičevo" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "Konče" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "Koćani" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "Kratovo" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "Kriva Palanka" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "Krivogaštani" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "Kruševo" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "Kumanovo" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "Lipkovo" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "Lozovo" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "Mavrovo i Rostuša" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "Makedonska Kamenica" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "Makedonski Brod" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "Mogila" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "Negotino" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "Novaci" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "Novo Selo" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "Oslomej" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "Ohrid" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "Petrovec" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "Pehčevo" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "Plasnica" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "Prilep" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "Probištip" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "Radoviš" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "Rankovce" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "Resen" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "Rosoman" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "Saraj" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "Sveti Nikole" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "Sopište" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "Star Dojran" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "Staro Nagoričane" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "Struga" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "Strumica" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "Studeničani" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "Tearce" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "Tetovo" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "Centar" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "Centar-Župa" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "Čair" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "Čaška" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "Češinovo-Obleševo" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "Čučer-Sandevo" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "Štip" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "Šuto Orizari" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "Número de tarjeta de identidad de Macedonia" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "Un municipio de Macedonia (Código de 2 caracteres)" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "Cédula maestra única de ciudadanía número (13 dígitos)" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "Introduzca un código postal válido en el formato de XXXXX." - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "Ingresa un RFC válido." - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "RFC inválido." - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "Ingresa una CURP válida." - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "CURP inválido." - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "Estado de México (tres letras mayúsculas)" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "Código postal mexicano" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "RFC mexicano" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "CURP mexicano" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baja California" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baja California Sur" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Distrito Federal" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Estado de México" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacán" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo León" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Querétaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potosí" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Yucatán" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Introduzca un código postal válido" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Introduzca un número SoFi válido" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drenthe" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Friesland" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Gelderland" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groningen" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Noord-Brabant" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Noord-Holland" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrecht" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zeeland" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Zuid-Holland" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Introduzca un número válido de la seguridad social noruego." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Este campo requiere de 8 dígitos." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Este campo requiere de 11 dígitos." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Número de Identidad Nacional se compone de 11 dígitos." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "El Número de Identificación Nacional es incorrecto." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" -"El número de tarjeta de identificación nacional se compone de 3 letras y " -"dígitos 6." - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "El número de tarjeta de identificación nacional es inválido." - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" -"Introduzca un campo de número de identificación fiscal (NIP) en el formato " -"XXX-XXX-XX-XX, XXX-XX-XX-XXX o XXXXXXXXXX." - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "El Número de Identificación Tributaria (NIP) es incorrecto." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" -"El Número Nacional de Registro de Negocios (REGON) consiste en 9 o 14 " -"dígitos." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "El Número Nacional de Registro de Negocios (REGON) es incorrecto." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Introduzca un código postal en el formato XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Baja Silesia" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kuyavia-Pomerania" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublin" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubusz" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodz" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Lesser Poland" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Masovia" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opole" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Subcarpatia" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlasie" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomerania" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Silesia" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Swietokrzyskie" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Warmia-Masuria" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Greater Poland" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "Pomerania Occidental" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Introduzca un código postal en el formato XXXX-XXX." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "Los número de teléfono debe tener 9 dígitos, o empezar con + ó 00." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Introduzca un CIF válido." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Introduzca un CNP válido." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "" -"Introduzca un código IBAN válido en el formato ROXX-XXXX-XXXX-XXXX-XXXX-XXXX." - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Los números de teléfono debe estar en formato XXXX-XXXXXX." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Introduzca un código postal válido en el formato XXXXXX" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "Introduzca un código postal en el formato XXXXXX." - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "Introduzca un número de pasaporte en el formato XXXX XXXXXX." - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "Introduzca un número de pasaporte en el formato XX XXXXXXX." - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "Condado Federal Central" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "Condado Federal Sur" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "Condado Federal Noroeste" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "Condado Federal de Lejano Oriente" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "Condado Federal Siberio" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "Condado Federal Ural" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "Privolzhsky Condado Federal" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "North-Caucasian Condado Federal" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "Moskva" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "San Petersburgo" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "Moskovskaya oblast'" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "Adygeya, Respublika" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "Bashkortostan, Respublika" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "Buryatia, Respublika" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "Altay, Respublika" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "Dagestan, Respublika" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "Ingushskaya Respublika" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "Kabardino-Balkarskaya Respublika" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "Kalmykia, Respublika" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "Karachaevo-Cherkesskaya Respublika" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "Karelia, Respublika" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "Komi, Respublika" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "Mariy Ehl, Respublika" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "Mordovia, Respublika" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "Sakha, Respublika (Yakutiya)" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "Severnaya Osetia, Respublika (Alania)" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "Tatarstan, Respublika" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "Tyva, Respublika (Tuva)" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "Udmurtskaya Respublika" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "Khakassiya, Respublika" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "Chechenskaya Respublika" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "Chuvashskaya Respublika" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "Altayskiy Kray" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "Zabaykalskiy Kray" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "Kamchatskiy Kray" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "Krasnodarskiy Kray" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "Krasnoyarskiy Kray" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "Permskiy Kray" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "Primorskiy Kray" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "Stavropol'siyy Kray" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "Khabarovskiy Kray" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "Amurskaya oblast'" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "Arkhangel'skaya oblast'" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "Astrakhanskaya oblast'" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "Belgorodskaya oblast'" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "Bryanskaya oblast'" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "Vladimirskaya oblast'" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "Volgogradskaya oblast'" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "Vologodskaya oblast'" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "Voronezhskaya oblast'" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "Ivanovskaya oblast'" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "Irkutskaya oblast'" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "Kaliningradskaya oblast'" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "Kaluzhskaya oblast'" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "Kemerovskaya oblast'" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "Kirovskaya oblast'" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "Kostromskaya oblast'" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "Kurganskaya oblast'" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "Kurskaya oblast'" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "Leningradskaya oblast'" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "Lipeckaya oblast'" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "Magadanskaya oblast'" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "Murmanskaya oblast'" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "Nizhegorodskaja oblast'" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "Novgorodskaya oblast'" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "Novosibirskaya oblast'" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "Omskaya oblast'" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "Orenburgskaya oblast'" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "Orlovskaya oblast'" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "Penzenskaya oblast'" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "Pskovskaya oblast'" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "Rostovskaya oblast'" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "Rjazanskaya oblast'" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "Samarskaya oblast'" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "Saratovskaya oblast'" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "Sakhalinskaya oblast'" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "Sverdlovskaya oblast'" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "Smolenskaya oblast'" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "Tambovskaya oblast'" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "Tverskaya oblast'" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "Tomskaya oblast'" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "Tul'skaya oblast'" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "Tyumenskaya oblast'" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "Ul'ianovskaya oblast'" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "Chelyabinskaya oblast'" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "Yaroslavskaya oblast'" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "Evreyskaya avtonomnaja oblast'" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "Neneckiy autonomnyy okrug" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "Chukotskiy avtonomnyy okrug" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "Yamalo-Neneckiy avtonomnyy okrug" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Introduzca un número válido de organización sueca." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Introduzca un número válido de identidad personal sueco." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Los números de coordinación no se admiten." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Introduzca un código postal sueco en el formato XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Estocolmo" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Västerbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norrbotten" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Uppsala" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Södermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Östergötland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Jönköping" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmar" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Gotland" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Blekinge" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Skåne" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halland" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Västra Götaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Värmland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Örebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Västmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Dalarna" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gävleborg" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Västernorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jämtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" -"Los 7 primeros dígitos del EMSO deben representar una fecha pasada válida." - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "El EMSO no es válido." - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" -"Introduzca un número de identificación fiscal válida en forma SIXXXXXXXX" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" -"Introduzca el número de teléfono en el formato +386 XXXXXXXX o 0XXXXXXXX." - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Región de Bystrica" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Región de Banska Stiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Región de Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Región de Banovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Región de Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Región de Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Región de Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Región de Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Región de Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Región de Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Región de Bytca" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Cadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Región de Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Región de Dolny Kubin" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Región de Dunajska Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenne" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kezmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komarno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Kosice I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Kosice II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Kosice III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Kosice IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Kosice - okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucke Nove Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoca" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovsky Mikulas" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lucenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Namestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nove Mesto nad Vahom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nove Zamky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizanske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piestany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltar" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povazska Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Presov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Puchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revuca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Roznava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ruzomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spisska Nova Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stara Lubovna" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidnik" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Sala" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolcany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebisov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trencin" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turcianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdosin" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velky Krtis" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Zarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Zilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Región de Banska Bystrica" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Región de Bratislava" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Región de Kosice" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Región de Nitra" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Región de Presov" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Región de Trencin" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Región de Trnava" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Región de Zilina" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Introduzca un código postal en el formato XXXXX." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Los números de teléfono deben estar en el formato 0XXX XXX XXXX." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Introduzca un número de identificación turco válido." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "El número de identificación turco debe ser de 11 dígitos." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Introduzca un código postal en el formato XXXXX o XXXXX XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Números de teléfono deben estar en el formato XXX-XXX-XXXX." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" -"Introduzca un número de Seguro Social de los EE.UU. en formato XXX-XX-XXXX." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Ingresar un estado de EE.UU. o territorio." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Estado de EE.UU. (dos letras mayúsculas)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "EE.UU. código postal (dos letras mayúsculas)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Número de teléfono" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" -"Introduzca un número válido de CI en formato X.XXX.XXX-X,XXXXXXX-X ó " -"XXXXXXXX." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Introduzca un número CI válido." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Introduzca un número de identificación de Sudáfrica válido" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Introduzca un código postal de Sudáfrica válido" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Provincia Oriental del Cabo" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Estado Libre" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "La Provincia de Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Provincia Septentrional del Cabo" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "Noroeste" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Occidental del Cabo" diff --git a/django/contrib/localflavor/locale/et/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/et/LC_MESSAGES/django.mo deleted file mode 100644 index 1b3dae17b2..0000000000 Binary files a/django/contrib/localflavor/locale/et/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/et/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/et/LC_MESSAGES/django.po deleted file mode 100644 index fbe31e83c0..0000000000 --- a/django/contrib/localflavor/locale/et/LC_MESSAGES/django.po +++ /dev/null @@ -1,3539 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011. -# madisvain , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:41+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: madisvain \n" -"Language-Team: Estonian (http://www.transifex.net/projects/p/django/language/" -"et/)\n" -"Language: et\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Sisesta postiindeks kujul NNNN või ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "See väli peab koosnema ainult numbritest." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Siin väljal peab olema kas 7 või 8 numbrit." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Sisesta korrektne CUIT kujul XX-XXXXXXXX-X or XXXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "Vale CUIT." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Kärnten" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Alam-Austria" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Ülem-Austria" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salzburg" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Steiermark" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tirool" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlberg" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Viin" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Sisesta postiindeks kujul XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "Sisesta kehtiv Austria sotsiaalkindlustusnumber formaadis XXX-XX-XXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburgi provints" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Luksenburg" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "Sisestage kehtiv postiindeks vahemikus ja formaadis 1XXX - 9XXX." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Sisestage kehtiv telefoninumber ühes järgnevatest formaatidest 0x xxx xx xx, " -"0XX xx xx xx, 04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x . " -"xxx.xx.xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx või 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Sisesta postiindeks kujul XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Telefoninumbrid peavad olema kujul XX-XXXX-XXXX." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "Vali korrektne Brasiilia osariik. Valitud osariik ei ole korrektne." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Mittekorrektne CPF number." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "See väli võib olla maksimaalselt 11 või 14 sümbolit." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Mittekorrektne CNPJ number." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "See väli peab olema vähemalt 14-kohaline arv." - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Sisesta postiindeks kujul XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "Sisesta korrektne Kanada sotsiaalturvatunnus formaadis XXX-XXX-XXXX." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aargau" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basel-Stadt" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basel-Land" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Berne" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Fribourg" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Geneva" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubuenden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucerne" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchatel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "St. Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zurich" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Sisesta kehtiv Šveitsi isiku- või passinumber kujul X1234567<0 või " -"1234567890." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Sisesta korrektne Tšiili RUT." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Sisesta korrektne Tšiili RUT formaadis XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "Tšiili RUT on ebakorrektne." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Praha" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Kesk-Boheemia regioon" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Lõuna-Boheemia regioon" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Pilseni regioon" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Carlsbadi regioon" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Usti regioon" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Libereci regioon" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Hradeci regioon" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Pardubice regioon" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Vysocina regioon" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Lõuna-Moraavia regioon" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Olomouci regioon" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Zlini regioon" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Moraavia-Sileesia regioon" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Sisesta postiindeks kujul XXXXX või XXX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "Sisesta sünninumber formaadis XXXXXX/XXXX või XXXXXXXXXX" - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" -"Ebasobiv valikuline parameeter Sugu, sobivad väärtused on 'f' (naine) ja " -"'m' (mees)" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Sisesta sobiv sünninumber." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Sisesta ID kaardi number." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Württemberg" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Baieri" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berliin" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburg" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Bremen" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburg" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hessen" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklenburg-Vorpommern" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Alam-Saksi" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "Nordrhein-Westfalen" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Rheinland-Pfalz" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Saarimaa" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Saksimaa" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Saksi-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Tüüringi" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Sisesta postiindeks kujul XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Sisesta kehtiv Saksamaa ID-kaardi number kujul XXXXXXXXXXX-XXXXXXX-XXXXXXX-X." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Álava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alicante" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almería" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Ávila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Baleaarid" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barcelona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Cáceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cádiz" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castellón" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Córdoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "A Coruna" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Girona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipúzcoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaén" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "León" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lleida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madrid" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Málaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murcia" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarra" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Orense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Astuuria" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palencia" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Tenerife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Cantabria" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Sevilla" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valencia" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Vizcaya" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Zaragoza" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andaluusia" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragón" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Astuuria" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Baleaarid" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Baskimaa" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Kanaari saared" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Castilla-La Mancha" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Castilla-León" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Kataloonia" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Extremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galicia" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Murcia" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Navarra" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Valencia" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Sisesta korrektne postiindeks vahemikus 01XXX - 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Sisesta korrektne telefoninumber, mis on formaadis 6XXXXXXXX, 8XXXXXXXX või " -"9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Palun sisesta korrektne NIF, NIE või CIF." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Palun sisesta korrektne NIF või NIE." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Vale NIF-i kontrollsumma." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Vale NIE kontrollsumma." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Vale CIF-i kontrollsumma." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "Palun sisesta korrektne kontonumber formaadis XXXX-XXXX-XX-XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Pangakonto numbri kontrollsumma on vale." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Sisesta korrektne Soome sotsiaalturvatunnus." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Telefoninumbrid peavad olema 0X XX XX XX XX formaadis." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Sisesta kehtiv postiindeks." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Cornwall and Isles of Scilly" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cumbria" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "East Sussex" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Essex" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Suur-London" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Suur-Manchester" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordshire" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "North Yorkshire" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northamptonshire" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oxfordshire" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "Lõuna-Yorkshire" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordshire" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne ja Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "West Midlands" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "Lääne-Sussex" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "Lääne-Yorkshire" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "County Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "County Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "County Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "County Fermanagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "County Londonderry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "County Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "South Glamorgan" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "Lääne-Glamorgan" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Piirid" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Kesk-Šotimaa" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries and Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Orkney saared" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Shetlandi saared" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Western Isles" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "Inglismaa" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Põhja-Iirimaa" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Šotimaa" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Wales" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Sisestage kehtiv sõiduki numbrimärk" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Sisesta kehtiv telefoninumber" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Sisestage kehtiv postiindeks" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Sisestage kehtiv NIK / KTP number" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "Sisesta kehtiv Islandi isikukood formaadis XXXXXX-XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Islandi isikukood ei ole korrektne." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Sisesta korrektne postiindeks." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Sisesta korrektne sotsiaalturvatunnus." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Sisesta korrektne käibemaksukohuslase kood." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Sisesta postiindeks kujul XXXXXXX või XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaido" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Yamagata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukushima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Tochigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Chiba" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tokyo" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Yamanashi" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Toyama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ishikawa" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Shizuoka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Shiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kyoto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hyogo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakayama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okayama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hiroshima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Yamaguchi" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokushima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Kochi" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Oita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Miyazaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagoshima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinawa" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baja California" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baja California Sur" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Distrito Federal" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Estado de México" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacán" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo León" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Querétaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potosí" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Yucatán" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Sisesta kehtiv postiindeks" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Sisesta kehtiv SoFi number" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drenthe" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Friisimaa" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Gelderland" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groningeni provints" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Põhja-Brabant" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Põhja-Holland" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrechti provints" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zeeland" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Lõuna-Holland" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Sisesta kehtiv Norra sotsiaalturvatunnus." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Sellel väljal peab olema 8 numbrit." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Sellel väljal peab olema 11 numbrit." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Riiklik isikukood koosneb 11 numbrist." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Isikukoodil on vale kontrollsumma." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Maksukohustusnumbril (NIP) on vale kontrollsumma." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "Riikliku Äriregistri Number (REGON) koosneb 9 või 14 numbrist." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "Riiklikul Äriregistri Numbri (REGON) kontrollsumma on vale." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Sisesta postiindeks kujul XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Alam-Sileesia" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kujawy-Pomorze" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublin" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubusz" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Łódź" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Väike-Poola" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Masoovia" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opole" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Podkarpacie" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlaasia" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomorze" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Sileesia" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Święty Krzyżi" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Warmia-Masuuria" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Suur-Poola" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "Lääne-Pomorze" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "" - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Sisestage korrektne CIF." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Sisestage korrektne CNP." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "Sisesta korrektne IBAN kujul ROXX-XXXX-XXXX-XXXX-XXXX-XXXX" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Telefoninumbrid peavad olema kujul XXXX-XXXXXX" - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Sisesta postiindeks kujul XXXXXX" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "" - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "" - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Banska Bystrica" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banska Stiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Banovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytca" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Cadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolny Kubin" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajska Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenne" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kezmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komarno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Kosice I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Kosice II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Kosice III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Kosice IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Kosice - okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucke Nove Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoca" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovsky Mikulas" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lucenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Namestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nove Mesto nad Vahom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nove Zamky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizanske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piestany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltar" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povazska Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Presov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Puchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revuca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Roznava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ruzomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spisska Nova Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stara Lubovna" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidnik" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Sala" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolcany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebisov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trencin" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turcianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdosin" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velky Krtis" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Zarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Zilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Banská Bystrica regioon" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Bratislava regioon" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Košice regioon" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Nitra regioon" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Prešovi regioon" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Trenšíni regioon" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Trnava regioon" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Žilina regioon" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Sisestage postiindeks XXXXX formaadis." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Telefoninumbrid peavad olema 0XXX XXX XXXX formaadis." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Sisestage kehtiv Türgi identifitseerimisnumber." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "Türgi Identifitseerimisnumber peab olema 11 numbrit." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Sisesta postiindeks kujul XXXXX või XXXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Telefoninumbrid peavad olema XXX-XXX-XXX formaadis." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "Sisesta kehtiv U.S. Social Security number formaadis XXX-XX-XXXX." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Sisestage USA osariik või piirkond." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "U.S.A. osariik (kaks suurt tähte)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "USA postiindeks (kaks suurtähte)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Telefoninumber" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" -"Sisestage kehtiv CI number X.XXX.XXX-X, XXXXXXX-X või XXXXXXXX formaadis." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Sisestage kehtiv CI number." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Sisesta kehtiv Lõuna-Aafrika ID-number" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Sisesta kehtiv Lõuna-Aafrika postiindeks" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Eastern Cape" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Free State" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Northern Cape" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "North West" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Western Cape" diff --git a/django/contrib/localflavor/locale/eu/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/eu/LC_MESSAGES/django.mo deleted file mode 100644 index 5be22d0f13..0000000000 Binary files a/django/contrib/localflavor/locale/eu/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/eu/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/eu/LC_MESSAGES/django.po deleted file mode 100644 index 85942faa0a..0000000000 --- a/django/contrib/localflavor/locale/eu/LC_MESSAGES/django.po +++ /dev/null @@ -1,3550 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Aitzol Naberan , 2012. -# Jannis Leidel , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:41+0100\n" -"PO-Revision-Date: 2012-03-09 11:05+0000\n" -"Last-Translator: Aitzol Naberan \n" -"Language-Team: Basque (http://www.transifex.net/projects/p/django/language/" -"eu/)\n" -"Language: eu\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "NNNN edo ANNNNAAA formatoan idatzi posta kode bat." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Eremu honek zenbakiak bakarrik behar ditu." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Eremu honek 7 edo 8 digito behar ditu." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "CUIT zuzena idatzi XX-XXXXXXXX-X edo XXXXXXXXXXXX formatoan." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "CUIT okerra." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Carinthia" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Behe Australia" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Goi Australia" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salzburg" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Styria" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tyrol" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlberg" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Vienna" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "zip kodea XXXX formatoan idatzi." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Australiako Gizarte Segurantza kode zuzena sartu XXXX XXXXXX formatuan." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "Sartu 4 digituko posta kodea" - -#: au/models.py:9 -msgid "Australian State" -msgstr "Australian State" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "Australiar postakodea" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "Australiar telefono zenbakia" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Antwerp" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Brussels" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "East Flanders" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Flemish Brabant" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hainaut" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Liege" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburg" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Luxembourg" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Walloon Brabant" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "West Flanders" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Brussels Capital Region" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Flemish Region" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Wallonia" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "Sartu 1XXX - 9XXX tartean dagoen posta kode zuzen bat." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Onartutako telefono zenbaki formatuak 0x xxx xx xx, 0xx xx xx xx, 04xx xx " -"xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx.xx.xx." -"xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "XXXXX-XXX formatoan zip kodea idatzi." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Telefono zenbakiak XX-XXXX-XXXX formatoa behar dute." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "Brasilgo estatu zuzen bat aukeratu. Hori ez dago aukeran." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "CPF zenbaki okerra." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Eremu honek gehienez 11 digito edo 14 karaktere behar ditu." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "CNPJ zenbaki okerra." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Eremu honek 14 digito behar ditu gutxienez" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Posta kodea idatzi XXX XXX formatoan." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"Sartu Kanadako segurtasun sozialeko zenbaki zuzen bat XXX-XXX-XXX formatoan." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aargau" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basel-Stadt" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basel-Land" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Berne" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Fribourg" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Geneva" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubuenden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucerne" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchatel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "St. Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zurich" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Saru Suitzako Nortasun agiri edo pasaporte zenbaki zuzen bat X1234567<0 edo " -"1234567890 formatuan." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Txileko RUT zuzen bat sartu" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Txileko RUT zuzen bat sartu. Formatoa: XX.XXX.XXX.X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "Txileko RUTa ez da baliozkoa" - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "Sartu posta kodea XXXXXX formatuan." - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "ID Txartel Zenbakiak 15 edo 18 digitu dauzka." - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "ID Txartel Zenbaki okerra: konprobazio batura ez da zuzena" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "ID Txartel Zenbaki okerra: jaiotza data ez da zuzena" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "ID Txartel Zenbaki okerra: kokalekua ez da zuzena" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "Sartu telefono zenbaki zuzen bat." - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "Saru mugikor zenbaki zuzen bat." - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Prague" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Central Bohemian Region" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "South Bohemian Region" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Pilsen Region" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Carlsbad Region" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Usti Region" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Liberec Region" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Hradec Region" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Pardubice Region" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Vysocina Region" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "South Moravian Region" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Olomouc Region" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Zlin Region" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Moravian-Silesian Region" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Sartu XXXXX edo XXX XX formatuko posta kode zuzena." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "Saru jaiotza zenbakia XXXXXX/XXXX edo XXXXXXXXXX formatuan" - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "Aukerako Genero parametro okerra, onartutako balioak 'f' eta 'm' dira" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Urtebetetze zenbaki okerra" - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Sartu IC zenbaki zuzena." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Wuerttemberg" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Bavaria" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlin" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburg" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Bremen" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburg" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hessen" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklenburg-Western Pomerania" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Lower Saxony" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "North Rhine-Westphalia" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Rhineland-Palatinate" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Saarland" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Saxony" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Saxony-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Thuringia" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Sartu zip kodea XXXXX formatoan" - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Sartu Alemaniako Nortasun agiri zenbaki zuzena XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"formatuan." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Araba" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albazete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alacant" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almeria" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Ávila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Illes Balears" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Bartzelona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Caceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cadiz" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castello" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Cordoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "A Coruna" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Girona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Gupuzkoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaen" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "Leon" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lleida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "Errioxa" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madrid" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Malaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murtzia" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Nafarroa" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Ourense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturias" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palentzia" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Cruz de Tenerife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Cantabria" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Sevila" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valencia" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Bizkaia" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Zaragoza" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andaluzia" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragoi" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Asturiaseko printzipadoa" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Balear uharteak" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Euskal Herria" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Canaria uharteak" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "La Mancha-Gaztela" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Gaztela eta Leon" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Katalunia" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Extremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galizia" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Murtzia" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Nafarroako komunitate forala" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Valenciako komunitatea" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Kode postal bat idatzi hurrengo formato eta tartearekin: 01XXX - 52XXX" - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Telefono zenbaki bat idatzi hurrengo formato batekin: 6XXXXXXXX, 8XXXXXXXX " -"edo 9XXXXXXXX" - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Idatzi NIF,NIE edo CIF zuzena." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Idatzi NIF edo NIE zuzena." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "NIF kontrol kode okerra." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "NIE kontrol kode okerra." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "CIF kontrol kode okerra." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Mesedez idatzi banku kontu zenbaki zuzena XXXX-XXXX-XX-XXXXXXXXXX " -"formatoarekin." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Banku kontu zenbakian kontrol digito okerra." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Sartu Finlandialko Gizarte segurantza zenbaki zuzena" - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Telefono zenabkiak 0X XX XX XX XX formatuan egon behar dira." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Sartu posta kokde zuzen bat" - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Cornwall and Isles of Scilly" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cumbria" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "East Sussex" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Essex" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Greater London" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Greater Manchester" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordshire" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "North Yorkshire" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northamptonshire" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oxfordshire" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "South Yorkshire" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordshire" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne and Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "West Midlands" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "West Sussex" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "West Yorkshire" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "County Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "County Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "County Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "County Fermanagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "County Londonderry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "County Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "South Glamorgan" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "West Glamorgan" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Central Scotland" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries and Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Orkney Islands" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Shetland Islands" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Western Isles" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "England" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Northern Ireland" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Scotland" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Wales" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "Sartu 13 digituko JMBG zuzena" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "Errorea data atalean" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "Sartu 11 digituko OIB zuzena" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Sartu ibilgailu matrikula zenbaki zuzena" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "Sartu kokaleku kode zuzena" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "Zenbaki atala ezin da zero izan" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "Sartu 5 digituko posta kode zuzena" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Sartu telefono zenbaki zuzen bat" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "Sartu ingurune edo sare mugikor kode zuzena" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "Telefono zenbakia luzeegia da" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "Satu 601983 hasten den 19 digituko JMBAG zuzena" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "Card issue zenbakia ezin da zero izan" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "Grad Zagreb" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "Bjelovarsko-bilogorska županija" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "Brodsko-posavska županija" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "Dubrovačko-neretvanska županija" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "Istarska županija" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "Karlovačka županija" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "Koprivničko-križevačka županija" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "Krapinsko-zagorska županija" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "Ličko-senjska županija" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "Međimurska županija" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "Osječko-baranjska županija" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "Požeško-slavonska županija" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "Primorsko-goranska županija" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "Sisačko-moslavačka županija" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "Splitsko-dalmatinska županija" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "Šibensko-kninska županija" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "Varaždinska županija" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "Virovitičko-podravska županija" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "Vukovarsko-srijemska županija" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "Zadarska županija" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "Zagrebačka županija" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Sartu posta kode zuzen bat" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Sartu NIK/KTP zenbaki zuzena" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Aceh" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Banten" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Bengkulu" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Yogyakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Jakarta" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Gorontalo" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Jambi" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Jawa Barat" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Jawa Tengah" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Jawa Timur" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Kalimantan Barat" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Kalimantan Selatan" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Kalimantan Tengah" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Kalimantan Timur" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Kepulauan Bangka-Belitung" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Kepulauan Riau" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampung" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Maluku" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Maluku Utara" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Nusa Tenggara Barat" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Nusa Tenggara Timur" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papua" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Papua Barat" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Riau" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Sulawesi Barat" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Sulawesi Selatan" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Sulawesi Tengah" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Sulawesi Tenggara" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Sulawesi Utara" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Sumatera Barat" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Sumatera Selatan" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Sumatera Utara" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Magelang" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Surakarta - Solo" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madiun" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kediri" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanuli" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Nanggroe Aceh Darussalam" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Kepulauan Bangka Belitung" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Corps Consulate" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Corps Diplomatic" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Bandung" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Sulawesi Utara Daratan" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timor" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Sulawesi Utara Kepulauan" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lombok" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Papua dan Papua Barat" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Cirebon" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbawa" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Flores" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Bogor" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalongan" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Semarang" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Pati" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Surabaya" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Madura" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malang" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Jember" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banyumas" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Federal Government" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purwakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarjo" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Garut" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Antrim" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Armagh" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Carlow" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Cavan" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Clare" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Cork" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Derry" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Donegal" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Down" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Dublin" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fermanagh" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Galway" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerry" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Kildare" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Kilkenny" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Laois" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Leitrim" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerick" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Longford" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Louth" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Mayo" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Meath" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Monaghan" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Offaly" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Roscommon" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Sligo" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tipperary" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tyrone" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Waterford" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Westmeath" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Wexford" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Wicklow" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Sartu posta kode zuzena XXXXXX formatuan" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Sartu ID zenbaki zuzena" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "Sartu zip kode zuzena XXXXXX edo XXX XXX formatuan." - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "Sartu Indiako estatu edo lurraldea." - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "no zenbakiak 02X-8X edo 03X-7X edo 04X-6X formatuan egon behar dira." - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "Sartu Islandiako identifikazio zenbaki zuzena. Fomatua XXXXXX-XXXX da." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Islandiako identifikazio zenbakia ez da zuzena." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Sartu posta kode zuzena" - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Gizarte Segurantza zenbaki zuzena." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Sartu VAT zenbaki zuzena." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Sartu posta kode zuzena XXXXXXX edo XXX-XXXX formatuan." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaido" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Yamagata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukushima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Tochigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Chiba" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tokyo" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Yamanashi" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Toyama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ishikawa" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Shizuoka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Shiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kyoto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hyogo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakayama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okayama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hiroshima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Yamaguchi" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokushima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Kochi" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Oita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Miyazaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagoshima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinawa" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Sartu Kuwaiteko Civil ID zenbaki zuzena" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" -"Identifikazio txartel zenbakiek 4 edo 7 digitu izan ditzazkete, edo " -"maiuskula bat eta 7 digitu." - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "Eremu honek zehazki 13 digitu izan behar ditu." - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" -"UMCNaren lehen 7 digituek iraganeko data zuzen bat adierazi behar dute." - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "UMCN ez da zuzena." - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "Aerodrom" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "Aračinovo" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "Berovo" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "Bitola" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "Bogdanci" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "Bogovinje" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "Bosilovo" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "Brvenica" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "Butel" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "Valandovo" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "Vasilevo" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "Vevčani" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "Veles" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "Vinica" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "Vraneštica" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "Vrapčište" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "Gazi Baba" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "Gevgelija" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "Gostivar" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "Gradsko" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "Debar" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "Debarca" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "Delčevo" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "Demir Kapija" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "Demir Hisar" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "Dolneni" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "Drugovo" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "Gjorče Petrov" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "Želino" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "Zajas" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "Zelenikovo" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "Zrnovci" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "Ilinden" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "Jegunovce" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "Kavadarci" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "Karbinci" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "Karpoš" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "Kisela Voda" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "Kičevo" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "Konče" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "Koćani" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "Kratovo" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "Kriva Palanka" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "Krivogaštani" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "Kruševo" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "Kumanovo" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "Lipkovo" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "Lozovo" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "Mavrovo i Rostuša" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "Makedonska Kamenica" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "Makedonski Brod" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "Mogila" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "Negotino" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "Novaci" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "Novo Selo" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "Oslomej" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "Ohrid" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "Petrovec" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "Pehčevo" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "Plasnica" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "Prilep" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "Probištip" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "Radoviš" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "Rankovce" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "Resen" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "Rosoman" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "Saraj" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "Sveti Nikole" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "Sopište" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "Star Dojran" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "Staro Nagoričane" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "Struga" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "Strumica" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "Studeničani" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "Tearce" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "Tetovo" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "Centar" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "Centar-Župa" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "Čair" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "Čaška" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "Češinovo-Obleševo" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "Čučer-Sandevo" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "Štip" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "Šuto Orizari" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "Mazedoniako identifikazio txartel zenbakia" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "Mazedoniako herria (2 karaktereko kodea)" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "Hiritar zenbaki nagusi bakarra (13 digitu)" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "Sartu zip kode zuzena XXXXX formatuan." - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "Sartu RFC zuzena." - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "RFCaren konprobazio batura okerra." - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "Sartu CURP zuzena." - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "CURParen konprobazio batura okerra." - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "Mexikar estatua (hiru letra maiuskula)" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "Mexikar zip kodea" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "Mexikar RFCa" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "Mexikar CURPa" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baja California" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baja California Sur" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Distrito Federal" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Estado de México" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacán" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo León" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Querétaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potosí" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Yucatán" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Posta kode zuzena sartu" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Sartu SoFi zenbaki zuzena" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drenthe" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Friesland" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Gelderland" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groningen" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Noord-Brabant" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Noord-Holland" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrecht" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zeeland" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Zuid-Holland" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Sartu Norbegiako Gizarte Segurantze zenbaki zuzena." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Eremu honek 8 digitu behar ditu" - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Eremu honek 11 digitu behar ditu" - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Identifikaizio Zenbaki Nazionalak 11 digitu dauzka." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Identifikazio Zenbaki Nazionalaren konprobazio batura okerra." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "Nazio ID Txartel Zenbakiak 3 letra eta 6 digitu dauzka." - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "Nazio ID Txartel Zenbakiaren konprobazio batura okerra." - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" -"Sartu zerga zenbaki (NIP) zuzena XXX-XXX-XX-XX, XXX-XX-XX-XXX edo XXXXXXXXXX " -"formatuan." - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Tax Number (NIP)ren konprobazio zenbaki okerra." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" -"National Business Register Number (REGON) 9 - 14 zenbakiz osatuta dago." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" -"Konprobazio batura okerra National Buseness Register Number (REGON) " -"zenbakirako." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Sartu posta kode zuzena XX-XXX formatuan." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Lower Silesia" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kuyavia-Pomerania" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublin" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubusz" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodz" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Lesser Poland" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Masovia" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opole" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Subcarpatia" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlasie" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomerania" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Silesia" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Swietokrzyskie" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Warmia-Masuria" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Greater Poland" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "West Pomerania" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Sartu zip kode zuzena XXXX-XXX formatuan." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "Telefono zenbakiek 9 digito izan behar dute, edo + edo 00 hasi." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Sartu CIF zuzena." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Sartu CNP zuzena." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "Sartu IBAN zuzena ROXX-XXXX-XXXX-XXXX-XXXX-XXXX formatuan." - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Telefono zenbakiak XXXX-XXXXXX formatuan egon behar dira." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Sartu baleko posta kodea XXXXXX formatuan" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "Sartu posta kode zuzena XXXXXX formatuan." - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "Sartu pasaporte zenbakia XXXX XXXXXX formatuan." - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "Sartu pasaporte zenbakia XX XXXXXXX formatuan." - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "Central Federal County" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "South Federal County" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "North-West Federal County" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "Far-East Federal County" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "Siberian Federal County" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "Ural Federal County" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "Privolzhsky Federal County" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "North-Caucasian Federal County" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "Moskva" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "Saint-Peterburg" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "Moskovskaya oblast'" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "Adygeya, Respublika" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "Bashkortostan, Respublika" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "Buryatia, Respublika" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "Altay, Respublika" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "Dagestan, Respublika" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "Ingushskaya Respublika" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "Kabardino-Balkarskaya Respublika" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "Kalmykia, Respublika" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "Karachaevo-Cherkesskaya Respublika" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "Karelia, Respublika" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "Komi, Respublika" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "Mariy Ehl, Respublika" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "Mordovia, Respublika" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "Sakha, Respublika (Yakutiya)" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "Severnaya Osetia, Respublika (Alania)" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "Tatarstan, Respublika" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "Tyva, Respublika (Tuva)" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "Udmurtskaya Respublika" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "Khakassiya, Respublika" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "Chechenskaya Respublika" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "Chuvashskaya Respublika" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "Altayskiy Kray" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "Zabaykalskiy Kray" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "Kamchatskiy Kray" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "Krasnodarskiy Kray" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "Krasnoyarskiy Kray" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "Permskiy Kray" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "Primorskiy Kray" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "Stavropol'siyy Kray" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "Khabarovskiy Kray" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "Amurskaya oblast'" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "Arkhangel'skaya oblast'" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "Astrakhanskaya oblast'" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "Belgorodskaya oblast'" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "Bryanskaya oblast'" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "Vladimirskaya oblast'" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "Volgogradskaya oblast'" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "Vologodskaya oblast'" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "Voronezhskaya oblast'" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "Ivanovskaya oblast'" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "Irkutskaya oblast'" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "Kaliningradskaya oblast'" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "Kaluzhskaya oblast'" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "Kemerovskaya oblast'" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "Kirovskaya oblast'" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "Kostromskaya oblast'" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "Kurganskaya oblast'" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "Kurskaya oblast'" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "Leningradskaya oblast'" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "Lipeckaya oblast'" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "Magadanskaya oblast'" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "Murmanskaya oblast'" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "Nizhegorodskaja oblast'" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "Novgorodskaya oblast'" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "Novosibirskaya oblast'" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "Omskaya oblast'" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "Orenburgskaya oblast'" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "Orlovskaya oblast'" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "Penzenskaya oblast'" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "Pskovskaya oblast'" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "Rostovskaya oblast'" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "Rjazanskaya oblast'" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "Samarskaya oblast'" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "Saratovskaya oblast'" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "Sakhalinskaya oblast'" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "Sverdlovskaya oblast'" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "Smolenskaya oblast'" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "Tambovskaya oblast'" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "Tverskaya oblast'" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "Tomskaya oblast'" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "Tul'skaya oblast'" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "Tyumenskaya oblast'" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "Ul'ianovskaya oblast'" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "Chelyabinskaya oblast'" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "Yaroslavskaya oblast'" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "Evreyskaya avtonomnaja oblast'" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "Neneckiy autonomnyy okrug" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "Chukotskiy avtonomnyy okrug" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "Yamalo-Neneckiy avtonomnyy okrug" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Sartu Suediako erakunde zenbaki zuzena." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Sartu Suediako identifikazio zenbaki pertsonala." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Ko-ordenazio zenbakiak ez daude baimenduta." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Sartu Suediako posta kode zuzena XXXXX formatuan." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Stockholm" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Västerbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norrbotten" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Uppsala" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Södermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Östergötland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Jönköping" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmar" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Gotland" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Blekinge" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Skåne" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halland" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Västra Götaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Värmland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Örebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Västmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Dalarna" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gävleborg" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Västernorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jämtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" -"EMSOaren lehen 7 digituek iraganeko data zuzen bat adierazi behar dute." - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "EMSO ez da zuzena." - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "Sartu zerga zenbaki zuzena SIXXXXXXXX formatuan" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "Sartu telefono zenbakia +386XXXXXXXX edo 0XXXXXXXX formatuan." - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Banska Bystrica" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banska Stiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Banovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytca" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Cadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolny Kubin" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajska Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenne" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kezmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komarno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Kosice I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Kosice II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Kosice III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Kosice IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Kosice - okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucke Nove Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoca" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovsky Mikulas" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lucenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Namestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nove Mesto nad Vahom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nove Zamky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizanske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piestany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltar" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povazska Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Presov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Puchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revuca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Roznava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ruzomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spisska Nova Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stara Lubovna" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidnik" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Sala" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolcany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebisov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trencin" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turcianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdosin" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velky Krtis" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Zarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Zilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Banska Bystrica region" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Bratislava region" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Kosice region" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Nitra region" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Presov region" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Trencin region" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Trnava region" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Zilina region" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Sartu posta kode zuzena XXXXX formatuan." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Telefono zenbakiak 0XXX XXX XXXX formatuan egon behar dira." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Sartu Turkiako Identifikazio zenbaki zuzena." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "Turkiako Identifikazio zenbakiak 11 digitu dauzka." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Sartu posta kode zuzena XXXXX edo XXXXX-XXXX formatuan." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Telefono zenbakiak XXX-XXX-XXXX formatuan egon behar dira." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "Sartu EEBBtako Gizarte Segurantza zenbakia XXX-XX-XXXX formatuan." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Sartu EEBB estatu edo lurralde bat." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "AEB estatua (bi letra maiuskula)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "EEBB posta kodea (bi letra maiuskula)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Telefono zenbakia" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "Sartu CI zenbaki zuzena X.XXX.XXX-X,XXXXXXX-X edo XXXXXXXX formatuan." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Sartu CI zenbaki zuzena." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Sartu Hego Afrikako ID zenbaki zuzena" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Sartu Hego Afrikako posta kode zuzena" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Eastern Cape" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Free State" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Northern Cape" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "North West" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Western Cape" diff --git a/django/contrib/localflavor/locale/fa/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/fa/LC_MESSAGES/django.mo deleted file mode 100644 index 2a431c69c4..0000000000 Binary files a/django/contrib/localflavor/locale/fa/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/fa/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/fa/LC_MESSAGES/django.po deleted file mode 100644 index fd1b2582ff..0000000000 --- a/django/contrib/localflavor/locale/fa/LC_MESSAGES/django.po +++ /dev/null @@ -1,3529 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Ali Nikneshan , 2011. -# iman darabi , 2011. -# Jannis Leidel , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:41+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: iman darabi \n" -"Language-Team: Persian (http://www.transifex.net/projects/p/django/language/" -"fa/)\n" -"Language: fa\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "کد پستی را به شکل NNNN یا ANNNNAAA وارد کنید." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "در این فیلد فقط عدد می‌توانید وارد کنید." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "این فیلد ۷ یا ۸ رقم لازم دارد." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "یک مقدار CUITمعتبر به فرم XX-XXXXXXXX-X یا XXXXXXXXXXXX وارد کنید." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "" - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "بورگن لاند" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "کرنتن" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "اتریش سفلا" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "اتریش بالا" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "سالزبورگ" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Styria" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tyrol" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "فورآلبرگ" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "وین" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "کد پستی صحیح را به شکل XXXX وارد کنید." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "شماره معتبر اتريشي تامين اجتماعي را به فرمت xxxxx xxxxxx وارد نماييد" - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "آنتورپ" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "بروکسل" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "فلاندر شرق" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "اهل فلاندرز Brabant" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hainaut" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "صاحب تیول" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburg" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "لوکزامبورگ" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "والونی Brabant" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "فلاندر غرب" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "منطقه بروکسل پایتخت" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "اهل فلاندرز منطقه" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "کد پستی را به شکل XXXXX-XXX وارد کنید." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "شماره تلفنها باید به شکل XX-XXXX-XXXX باشند." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "" - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "طول این فیلد حداقل ۱۱ شماره و حداکثر ۱۴ حرف می باشد." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "" - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "فیلد حداقل باید ۱۴ شماره باشد" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "کد پستس را به شکل XXX·XXX. وارد کنید." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "خیابان Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "" - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "" - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "" - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "" - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "" - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "کد پستی را به شکل XXXXX وارد کنید." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "" - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "" - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "" - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "" - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "" - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "" - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "" - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "" - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "یک کد پستی وارد کنید." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "یک شماره تلفن معتبر وارد کنید." - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "" - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "" - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "" - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "" - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "" - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "" - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "این فیلد، ۸ رقم لازم دارد." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "این فیلد ۱۱ رقم لازم دارد." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "" - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "" - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "" - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "" - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "" - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "" - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "" - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "" - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "" - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "" - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "" - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "ایالت آمریکا(دو حرف بزرگ)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "" - -#: us/models.py:26 -msgid "Phone number" -msgstr "شماره تلفن" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "" - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "" diff --git a/django/contrib/localflavor/locale/fi/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/fi/LC_MESSAGES/django.mo deleted file mode 100644 index 6bfb0e66e0..0000000000 Binary files a/django/contrib/localflavor/locale/fi/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/fi/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/fi/LC_MESSAGES/django.po deleted file mode 100644 index d63b69b9d9..0000000000 --- a/django/contrib/localflavor/locale/fi/LC_MESSAGES/django.po +++ /dev/null @@ -1,3542 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Antti Kaihola , 2011. -# Jannis Leidel , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:41+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Antti Kaihola \n" -"Language-Team: Finnish (http://www.transifex.net/projects/p/django/language/" -"fi/)\n" -"Language: fi\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Syötä postinumero muodossa NNNN tai ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Tähän kenttään kelpaavat vain numerot." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Tähän kenttään vaaditaan 7 tai 8 numeroa." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Syötä oikea CUIT joko XX-XXXXXXXX-X tai XXXXXXXXXXXX -muodossa." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "Virheellinen CUIT." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Kärnten" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Ala-Itävalta" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Ylä-Itävalta" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salzburg" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Steiermark" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tiroli" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlberg" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Wien" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Syötä postinumero muodossa XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "Syötä oikea itävaltalainen henkilötunnus muodossa XXXX XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "Anna nelinumeroinen postinumero." - -#: au/models.py:9 -msgid "Australian State" -msgstr "Australian osavaltio" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "australialainen postinumero" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "australialainen puhelinnumero" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Antwerpen" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Bryssel" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Itä-Flanderi" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Flaamilainen Brabant" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hainaut" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Liege" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburg" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Luxemburg" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Vallonian Brabant" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Länsi-Flanderi" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Brysselin metropolialue" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "flaamilainen alue" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Vallonia" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "Syötä postinumero muodossa ja välillä 1XXX–9XXX." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Syötä puhelinnumero muodossa 0x xxx xx xx, 0xx xx xx xx, 04xx xx xx xx, 0x/" -"xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx.xx.xx.xx, 04xx.xx." -"xx.xx, 0xxxxxxxx tai 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Syötä postinumero muodossa XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Puhelinnumeron tulee olla muodossa XX-XXXX-XXXX." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Valitse oikea brasilialainen osavaltio. Valitsemasi osavaltio ei ole yksi " -"sallituista osavaltiosta." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Virheellinen CPF-numero." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Tämä kenttä vaatii vähintään 11 ja enintään 14 merkkiä." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Virheellinen CNPJ-numero." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Tähän kenttään vaaditaan ainakin 14 numeroa." - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Syötä postinumero muodossa XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "Syötä oikea kanadalainen henkilötunnus muodossa XXX-XXX-XXX." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aargau" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basel-Stadt" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basel-Land" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Berne" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Fribourg" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Geneva" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubuenden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucerne" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchatel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "St. Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zurich" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Syötä oikea chileläinen RUT" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "The Chilean RUT is not valid." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "Syötä postinumero muodossa XXXXXX." - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "Henkilökortin tunnisteessa on 15 tai 18 numeroa." - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "Virheellinen henkilökortin numero: väärä tarkistussumma" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "Virheellinen henkilökortin numero: virheellinen syntymäaika" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "Virheellinen henkilökortin numero: virheellinen sijaintikoodi" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "Anna voimassa oleva puhelinnumero." - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "Anna voimassa oleva matkapuhelinnumero." - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Praha" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Central Bohemian Region" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "South Bohemian Region" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Pilsen Region" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Carlsbad Region" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Usti Region" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Liberec Region" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Hradec Region" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Pardubice Region" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Vysocina Region" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "South Moravian Region" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Olomouc Region" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Zilin region" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Moravian-Silesian Region" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Syötä postinumero muodossa XXXXX tai XXX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "Syötä henkilötunnus muodossa XXXXXX/XXXX tai XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" -"Virheellinen valinnainen sukupuoli, valitse 'f' (nainen) tai 'm' (mies)" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Syötä oikea henkilötunnus." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Syötä oikea IC-tunnus." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Wuerttemberg" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Bavaria" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlin" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburg" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Bremen" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburg" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hessen" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklenburg-Western Pomerania" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Lower Saxony" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "North Rhine-Westphalia" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Rhineland-Palatinate" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Saarland" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Saxony" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Saxony-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Thuringia" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Syötä postinumero muodossa XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Syötä oikea saksalainen henkilötunnus muodossa XXXXXXXXXXX-XXXXXXX-XXXXXXX-X." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Álava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alicante" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almería" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Ávila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Baleaarit" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barcelona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Cáceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cádiz" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castellón" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Córdoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "A Coruña" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Girona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipúzcoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaén" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "León" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lleida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madrid" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Málaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murcia" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarra" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Ourense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturia" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palencia" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Cruz de Tenerife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Cantabria" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Seville" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valencia" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Vizcaya" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Zaragoza" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andalusia" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragonia" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Asturian ruhtinaskunta" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Baleaarit" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Baskimaa" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Kanariansaaret" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Kastilia-La Mancha" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Kastilia ja León" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Katalonia" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Extremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galicia" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Murcia" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Navarra" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Valencia" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Syötä oikea postinumero väliltä ja muodossa 01XXX-52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Syötä oikea puhelinnumero muodoissa 6XXXXXXXX, 8XXXXXXXX tai 9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Syötä oikea NIF, NIE tai CIF." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Syötä oikea NIF tai NIE." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Väärä tarkistusnumero NIF:lle." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Väärä tarkistusnumero NIE:lle." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Väärä tarkistusnumero CIF:lle." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "Syötä oikea pankin tilinumero muodossa XXXX-XXXX-XX-XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Väärä tarkistusnumero pankin tilinumerolle." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Syötä oikea suomalainen henkilötunnus." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Puhelinnumeroiden on ontava muodossa 0X XX XX XX XX." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Syötä oikea postinumero." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Cornwall and Isles of Scilly" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cumbria" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "East Sussex" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Essex" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Greater London" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Greater Manchester" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordshire" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "North Yorkshire" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northamptonshire" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oxfordshire" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "South Yorkshire" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordshire" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne and Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "West Midlands" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "West Sussex" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "West Yorkshire" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "County Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "County Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "County Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "County Fermanagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "County Londonderry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "County Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "South Glamorgan" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "West Glamorgan" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Central Scotland" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries and Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Orkney Islands" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Shetland Islands" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Western Isles" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "England" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Northern Ireland" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Scotland" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Scotland" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "Anna kelvollinen 13-numeroinen JMBG" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "Virhe päivämääräosassa" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "Anna kelvollinen 11-numeroinen OIB" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Syötä oikea rekisterikilpi" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "Anna kelvollinen sijaintikoodi" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "Numero-osa ei voi olla nolla" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "Anna kelvollinen 5-numeroinen postinumero" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Syötä oikea puhelinnumero" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "Anna oikea suunta- tai matkaviestinverkon numero" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "Puhelinnumero on liian pitkä" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "Anna kelvollinen 19-numeroinen ja 601983-alkuinen JMBAG" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Syötä oikea postinumero" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Syötä oikea NIK/KTP numero" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Aceh" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Banten" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Bengkulu" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Yogyakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Jakarta" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Gorontalo" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Jambi" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Jawa Barat" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Jawa Tengah" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Jawa Timur" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Kalimantan Barat" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Kalimantan Selatan" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Kalimantan Tengah" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Kalimantan Timur" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Kepulauan Bangka-Belitung" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Kepulauan Riau" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampung" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Maluku" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Maluku Utara" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Nusa Tenggara Barat" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Nusa Tenggara Timur" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papua" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Papua Barat" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Riau" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Sulawesi Barat" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Sulawesi Selatan" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Sulawesi Tengah" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Sulawesi Tenggara" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Sulawesi Utara" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Sumatera Barat" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Sumatera Selatan" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Sumatera Utara" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Magelang" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Surakarta - Solo" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madiun" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kediri" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanuli" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Nanggroe Aceh Darussalam" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Kepulauan Bangka Belitung" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Corps Consulate" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Corps Diplomatic" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Bandung" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Sulawesi Utara Daratan" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timor" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Sulawesi Utara Kepulauan" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lombok" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Papua dan Papua Barat" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Cirebon" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbawa" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Flores" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Bogor" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalongan" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Semarang" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Pati" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Surabaya" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Madura" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malang" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Jember" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banyumas" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Federal Government" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purwakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarjo" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Garut" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Antrim" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Armagh" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Carlow" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Cavan" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Clare" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Cork" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Derry" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Donegal" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Down" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Dublin" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fermanagh" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Galway" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerry" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Kildare" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Kilkenny" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Laois" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Leitrim" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerick" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Longford" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Louth" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Mayo" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Meath" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Monaghan" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Offaly" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Roscommon" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Sligo" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tipperary" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tyrone" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Waterford" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Westmeath" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Wexford" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Wicklow" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Syötä postinumero muodossa XXXXX" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Syötä oikea henkilötunnus." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "Syötä postinumero muodossa XXXXXX tai XXX XXX." - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "Anna Intian osavaltio tai territorio." - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "Syötä oikea islantilainen henkilötunnus muodossa XXXXXX-XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Islantilainen henkilötunnus on virheellinen." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Syötä oikea postinumero." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Syötä oikea henkilötunnus." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Syötä oikea ALV-tunnus." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Syötä postinumero muodossa XXXXXXX tai XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaido" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Yamagata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukushima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Tochigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Chiba" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tokio" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Yamanashi" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Toyama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ishikawa" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Shizuoka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Shiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kioto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hyogo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakayama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okayama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hiroshima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Yamaguchi" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokushima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Kochi" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Oita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Miyazaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagoshima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinawa" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Syötä oikea kuwaitilainen henkilötunnus" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" -"Henkilökortin tunnisteessa on oltava 4 tai 7 numeroa tai iso kirjain ja 7 " -"numeroa." - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "Tässä kentässä pitää olla tasan 13 numeroa." - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "UMCN:n ensimmäisten 7 numeron tulee vastata kelvollista päivämäärää." - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "UMCN ei kelpaa." - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baja California" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baja California Sur" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Distrito Federal" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Estado de México" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacán" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo León" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Querétaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potosí" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Yucatán" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Syötä oikea postinumero" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Syötä ikea SoFi-numero" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drenthe" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Friesland" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Gelderland" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groningen" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Noord-Brabant" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Noord-Holland" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrecht" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zeeland" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Zuid-Holland" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Syötä oikea norjalainen henkilötunnus." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Tähän kenttään vaaditaan 8 numeroa." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Tähän kenttään vaaditaan 11 numeroa." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Henkilötunnus koostuu 11 numerosta." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Virheellinen tarkistusnumero henkilötunnukselle." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Väärä tarkistusnumero veronumerolle (NIP)." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "National Business Register -numerossa (REGON) on 9 tai 14 numeroa." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "Wrong checksum for the National Business Register Number (REGON)." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Syötä postinumero muodossa XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Lower Silesia" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kuyavia-Pomerania" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublin" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubusz" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodz" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Lesser Poland" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Masovia" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opole" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Subcarpatia" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlasie" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomerania" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Silesia" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Swietokrzyskie" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Warmia-Masuria" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Greater Poland" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "West Pomerania" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Syötä postinumero muodossa XXXX-XXX." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" -"Puhelinnumeroissa tulee olla 9 numeroa tai niiden kuuluu alkaa +:lla tai 00:" -"lla." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Syötä oikea CIF." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Syötä oikea CNP." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "Syötä oikea IBAN muodossa ROXX-XXXX-XXXX-XXXX-XXXX-XXXX" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Puhelinnumeron tulee olla muodossa XXXX-XXXXXX." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Syötä postinumero muodossa XXXXXX." - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Syötä oikea ruotsalainen yritystunnus." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Syötä oikea ruotsalainen henkilötunnus." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Co-ordination numbers are not allowed." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Syötä ruotsalainen postinumero muodossa XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Tukholma" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Västerbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norrbotten" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Uppsala" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Södermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Östergötland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Jönköping" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmar" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Gotland" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Blekinge" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Skåne" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halland" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Västra Götaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Värmland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Örebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Västmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Dalarna" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gävleborg" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Västernorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jämtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Banska Bystrica" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banska Stiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Banovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytca" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Cadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolny Kubin" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajska Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenne" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kezmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komarno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Kosice I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Kosice II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Kosice III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Kosice IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Kosice - okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucke Nove Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoca" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovsky Mikulas" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lucenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Namestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nove Mesto nad Vahom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nove Zamky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizanske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piestany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltar" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povazska Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Presov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Puchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revuca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Roznava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ruzomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spisska Nova Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stara Lubovna" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidnik" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Sala" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolcany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebisov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trencin" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turcianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdosin" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velky Krtis" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Zarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Zilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Banská Bystrican alue" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Bratislavan alue" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Košicen alue" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Nitran alue" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Prešovin alue" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Trenčínin alue" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Trnava region" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Zilina region" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Syötä postinumero muodossa XXXXX." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Puhelinnumeroiden pitää olla muodossa 0XXX XXX XXXX." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Syötä oikea turkkilainen henkilötunnus." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "Turkkilaisessa henkilötunnuksessa pitää olla 11 numeroa." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Enter a zip code in the format XXXXX or XXXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Phone numbers must be in XXX-XXX-XXXX format." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Enter a U.S. state or territory." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "USA:n osavaltio (suuraakkosin, kaksi kirjainta)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "USA:n postikoodi (kaksi isoa kirjainta)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Puhelinnumero" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Enter a valid CI number." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Enter a valid South African ID number" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Enter a valid South African postal code" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Eastern Cape" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Free State" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Northern Cape" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "North West" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Western Cape" diff --git a/django/contrib/localflavor/locale/fr/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/fr/LC_MESSAGES/django.mo deleted file mode 100644 index a902dc53ef..0000000000 Binary files a/django/contrib/localflavor/locale/fr/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/fr/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/fr/LC_MESSAGES/django.po deleted file mode 100644 index 5c9c480ddd..0000000000 --- a/django/contrib/localflavor/locale/fr/LC_MESSAGES/django.po +++ /dev/null @@ -1,3564 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# , 2011, 2012. -# Claude Paroz , 2011. -# claudep , 2011. -# Jannis Leidel , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:41+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: claudep \n" -"Language-Team: French (http://www.transifex.net/projects/p/django/language/" -"fr/)\n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Saisissez un code postal au format NNNN ou ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Ce champ ne doit contenir que des nombres." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Ce champ requiert 7 ou 8 chiffres." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Saisissez un numéro CUIT au format XX-XXXXXXXX-X ou XXXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "CUIT non valide." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Carinthie" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Basse-Autriche" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Haute-Autriche" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salzburg" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Styrie" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tyrol" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlberg" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Vienne" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Saisissez un code postal norvégien au format XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Saisissez un numéro de sécurité sociale autrichien valide au format XXXX " -"XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "Saisissez un code postal à 4 chiffres." - -#: au/models.py:9 -msgid "Australian State" -msgstr "État australien" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "Code postal australien" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "Numéro de téléphone australien" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Anvers" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Bruxelles" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Flandre Orientale" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Brabant flamand" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hainaut" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Liège" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limbourg" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Luxembourg" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Brabant wallon" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Flandre Occidentale" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Région de Bruxelles-Capitale" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Région flamande" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Wallonie" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" -"Saisissez un code postal valide au format et dans l'intervalle 1XXX-9XXX." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Saisissez un numéro de téléphone valide dans l'un des formats 0x xxx xx xx, " -"0xx xx xx xx, 04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x." -"xxx.xx.xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx ou 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Saisissez un code postal brésilien au format XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Les numéros de téléphone doivent être au format XX-XXXX-XXXX." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Sélectionnez un état brésilien valide. Cet état ne fait pas partie de ceux " -"disponibles." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Numéro CPF non valide." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Ce champ requiert au plus 11 chiffres ou 14 caractères." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Numéro CNPJ non valide." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Ce champ requiert au minimum 14 chiffres" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Saisissez un code postal au format XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"Saisissez un numéro de sécurité sociale canadien au format XXX-XXX-XXX." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Argovie" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Rhodes-Intérieures" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Rhodes-Extérieures" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Bâle-Ville" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Bâle-Campagne" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Berne" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Fribourg" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Genève" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glaris" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Grisons" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucerne" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchâtel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwald" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwald" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhouse" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Soleure" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "Saint Gall" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgovie" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Tessin" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zoug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zurich" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Saisissez un numéro de passeport ou de carte d'identité suisse valide au " -"format X1234567<0 ou 1234567890." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Saisissez un RUT chilien valide." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Saisissez un RUT chilien valide au format XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "Ce RUT chilien est non valide." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "Saisissez un code postal au format XXXXXX." - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "Le numéro de carte d'identité consiste en 15 ou 18 chiffres." - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "Numéro de carte d'identité non valide : mauvaise somme de contrôle" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "Numéro de carte d'identité non valide : mauvaise date de naissance" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "Numéro de carte d'identité non valide : mauvais code d'emplacement" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "Saisissez un numéro de téléphone valide." - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "Saisissez un numéro de portable valide." - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Prague" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Bohême du Centre" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Bohême du Sud" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Pilsen" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Carlsbad" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Usti" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Liberec" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Hradec" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Pardubice" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Vysocina" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Moravie du Sud" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Olomouc" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Zlin" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Moravie-Silésie" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Saisissez un code postal au format XXXXX ou XXX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "Saisissez une date de naissance au format XXXXXX/XXXX ou XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" -"Le paramètre optionnel du genre est non valide, les valeurs autorisées sont " -"« f » et « m »" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Saisissez une date de naissance valide." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Saisissez un numéro IC valide." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Bade-Wurtemberg" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Bavière" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlin" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandebourg" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Brême" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hambourg" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hess" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklembourg-Poméranie occidentale" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Basse Saxe" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "Rhénanie-du-Nord-Westphalie" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Rhénanie-Palatinat" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Sarre" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Saxe" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Saxe-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Thuringe" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Saisissez un code postal au format XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Saisissez un numéro de carte d'identité allemande au format XXXXXXXXXXX-" -"XXXXXXX-XXXXXXX-X." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Álava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alicante" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almería" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Ávila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Îles Baléares" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barcelone" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Cáceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cadix" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castellón" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Córdoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "La Corogne" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Gérone" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Grenade" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipúzcoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaén" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "León" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lérida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madrid" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Málaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murcie" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarre" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Orense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturias" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palencia" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Cruz de Ténérife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Cantabrie" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Ségovie" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Séville" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragone" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valence" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Biscaye" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Saragosse" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andalousie" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragon" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Principauté des Asturies" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Îles Baléares" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Pays basque" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Îles Canaries" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Castille-La Manche" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Castille-et-León" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Catalogne" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Estrémadure" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galice" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Murcie" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Navarre" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Communauté valencienne" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Saisissez un code postal dans l'intervalle et au format 01XXX - 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Saisissez un numéro de téléphone au format 6XXXXXXXX, 8XXXXXXXX ou 9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Saisissez une adresse NIF, NIE ou CIF valide." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Saisissez un NIF ou NIE valide." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Mauvais checksum pour NIF." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Mauvais checksum pour NIE." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Mauvais checksum pour CIF." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Saisissez un numéro de compte bancaire valide au format XXXXX-XXXX-XX-" -"XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Somme de contrôle non valide pour le numéro de compte bancaire." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Saisissez un numéro de sécurité sociale finlandais." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Les numéros de téléphone doivent être au format 0X XX XX XX XX." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Saisissez un code postal valide." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Cornouailles et les îles Scilly" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cumbrie" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "Sussex de l'Est" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Essex" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Grand Londres" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Grand Manchester" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordshire" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancastre" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "Yorkshire du Nord" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northamptonshire" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oxfordshire" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "Yorkshire du Su" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordshire" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne et Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "Midlands de l'Ouest" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "Sussex de l'Ouest" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "Yorkshire de l'Ouest" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "Comté d'Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "Comté d'Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "Comté de Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "Comté de Fermanagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "Comté de Londonderry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "Comté de Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid·Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "South Glamorgan" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "West Glamorgan" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Écosse centrale" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries and Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Orcades" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Îles Shetland" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Hébrides extérieures" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "Angleterre" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Irlande du Nord" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Écosse" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Pays de Galles" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "Saisissez un JMBG à 13 chiffres valide" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "Erreur dans le segmenet de date" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "Saisissez un OIB à 11 chiffres valide" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Saisissez un numéro de plaque d'immatriculation valide" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "Saisissez un code d'emplacement valide" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "La partie nombre ne peut pas être à zéro" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "Saisissez un code postal à 5 chiffres valide" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Saisissez un numéro de téléphone valide" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "Saisissez un code de zone ou de réseau mobile valide" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "Le numéro de téléphone est trop long" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "Saisissez un JMBAG à 19 chiffres valide, en commençant par 601983" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "Le numéro de délivrance de la carte ne peut pas être à zéro" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "Ville de Zagreb" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "Comitat de Bjelovar-Bilogora" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "Comitat de Brod-Posavina" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "Comitat de Dubrovnik-Neretva" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "Comitat d'Istrie" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "Comitat de Karlovac" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "Comitat de Koprivnica-Križevci" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "Comitat de Krapina-Zagorje" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "Comitat de Lika-Senj" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "Comitat de Međimurje" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "Comitat d'Osijek-Baranja" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "Comitat de Požega-Slavonie" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "Comitat de Primorje-Gorski Kotar" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "Comitat de Sisak-Moslavina" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "Comitat de Split-Dalmatie" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "Comitat de Šibenik-Knin" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "Comitat de Varaždin" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "Comitat de Virovitica-Podravina" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "Comitat de Vukovar-Syrmie" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "Comitat de Zadar" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "Comitat de Zagreb" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Saisissez un code postal valide" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Saisissez un numéro NIK/KTP valide" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Aceh" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Banten" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Bengkulu" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Yogyakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Jakarta" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Gorontalo" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Jambi" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Java occidental" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Java central" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Java oriental" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Kalimantan occidental" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Kalimantan du sud" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Kalimantan central" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Kalimantan oriental" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Île Bangka-Belitung" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Île Riau" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampung" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Moluques" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Moluques du nord" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Nusa Tenggara occidental" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Nusa Tenggara oriental" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papouasie" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Papouasie occidentale" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Riau" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Sulawesi occidental" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Sulawesi du Sud" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Sulawesi central" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Sulawesi du Sud-Est" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Sulawesi du Nord" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Sumaratera occidental" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Sumatera du Sud" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Sumatera du Nord" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Megelang" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Surakarta - Solo" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madiun" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kediri" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanuli" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Nanggroe Aceh Darussalam" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Kepulauan Bangka Belitung" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Corps consulaire" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Corps diplomatique" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Bandung" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Sulawesi du Nord" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timor" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Îles de Sulawesi du Nord" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lombok" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Papua dan Papua Barat" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Cirebon" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbawa" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Florès" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Bogor" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalongan" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Semarang" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Pati" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Surabaya" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Madura" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malang" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Jember" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banyumas" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Gouvernement fédéral" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purwakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarjo" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Garut" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Antrim" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Armagh" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Carlow" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Cavan" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Clare" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Cork" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Derry" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Donegal" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Down" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Dublin" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fermanagh" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Galway" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerry" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Kildare" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Kilkenny" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Laois" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Leitrim" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerick" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Longford" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Louth" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Mayo" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Meath" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Monaghan" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Offaly" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Roscommon" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Sligo" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tipperary" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tyrone" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Waterford" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Westmeath" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Wexford" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Wicklow" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Saisissez un code postal au format XXXXX" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Saisissez un numéro d'identification valide." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "Saisisset un code postal au format XXXXXX ou XXX XXX." - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "Saisissez un état ou un territoire indien." - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" -"Les numéros de téléphone doivent être au format 02X-8X, 03X-7X ou 04X-6X." - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "Saisissez un code postal islandais valide au format XXXXXX-XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Le numéro d'identification islandais est non valide." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Saisissez un code postal valide." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Saisissez un numéro valide de Sécurité Sociale." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Saisissez un numéro de TVA valide." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Saisissez un code postal japonais au format XXXXXXX ou XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaidō" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Yamagata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukushima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Tochigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Chiba" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tokyo" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Yamanashi" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Toyama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ishikawa" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Shizuoka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Shiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kyōto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hyōgo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakayama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okayama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hiroshima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Yamaguchi" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokushima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Kochi" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Ōita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Miyazaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagoshima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinawa" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Saisissez un numéro d'identification civil koweïtien valide" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" -"Les numéros de cartes d'identité doivent contenir soit 4 ou 7 chiffres, soit " -"une lettre majuscule et 7 chiffres." - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "Ce champ doit contenir exactement 13 chiffres." - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" -"Les 7 premiers chiffres de l'UMCN doivent constituer un date passée valide." - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "L'UMCN n'est pas valide." - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "Aerodrom" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "Aračinovo" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "Berovo" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "Bitola" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "Bogdanci" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "Bogovinje" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "Bosilovo" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "Brvenica" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "Butel" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "Valandovo" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "Vasilevo" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "Vevčani" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "Veles" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "Vinica" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "Vraneštica" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "Vrapčište" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "Gazi Baba" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "Gevgelija" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "Gostivar" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "Gradsko" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "Debar" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "Debarca" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "Delčevo" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "Demir Kapija" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "Demir Hisar" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "Dolneni" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "Drugovo" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "Gjorče Petrov" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "Želino" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "Zajas" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "Zelenikovo" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "Zrnovci" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "Ilinden" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "Jegunovce" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "Kavadarci" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "Karbinci" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "Karpoš" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "Kisela Voda" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "Kičevo" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "Konče" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "Koćani" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "Kratovo" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "Kriva Palanka" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "Krivogaštani" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "Kruševo" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "Kumanovo" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "Lipkovo" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "Lozovo" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "Mavrovo i Rostuša" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "Makedonska Kamenica" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "Makedonski Brod" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "Mogila" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "Negotino" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "Novaci" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "Novo Selo" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "Oslomej" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "Ohrid" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "Petrovec" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "Pehčevo" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "Plasnica" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "Prilep" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "Probištip" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "Radoviš" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "Rankovce" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "Resen" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "Rosoman" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "Saraj" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "Sveti Nikole" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "Sopište" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "Star Dojran" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "Staro Nagoričane" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "Struga" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "Strumica" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "Studeničani" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "Tearce" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "Tetovo" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "Centar" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "Centar-Župa" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "Čair" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "Čaška" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "Češinovo-Obleševo" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "Čučer-Sandevo" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "Štip" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "Šuto Orizari" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "Numéro de carte d'identité de Macédoine" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "Une ville de Macédoine (code à 2 caractères)" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "Numéro de citoyen unique (13 chiffres)" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "Saisissez un code postal valide au format XXXXX." - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "Saisissez un RFC valide." - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "Somme de contrôle incorrecte pour le RFC." - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "Saisissez un CURP valide." - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "Somme de contrôle incorrecte pour le CURP." - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "État mexicain (trois lettres majuscules)" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "Code postal mexicain" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "Numéro RFC mexicain" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "Numéro CURP mexicain" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baja California" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baja California Sur" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "District fédéral" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "État de Mexico" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacán" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo León" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Querétaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potosí" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Yucatán" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Saisissez un code postal valide." - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Saisissez un numéro SoFi valide." - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drenthe" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Frise" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Gueldre" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groningue" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Brabant-du-Nord" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Hollande-du-Nord" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrecht" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zeeland" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Hollande-Méridionale" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Saisissez un numéro de sécurité sociale norvégien valide." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Ce champ requiert 8 chiffres." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Ce champ requiert 11 chiffres." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Le numéro national d'identification (NIN) comporte 11 chiffres." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Somme de contrôle non valide pour le numéro d'identification national." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" -"Le numéro de carte d'identité nationale consiste en 3 lettres et 6 chiffres." - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "Mauvaise somme de contrôle du numéro de carte d'identité nationale." - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" -"Saisissez un code NIP (impôts) au format XXX-XXX-XX-XX, XXX-XX-XX-XXX ou " -"XXXXXXXXXX." - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Somme de contrôle non valide du numéro de taxe (NIP)." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" -"Le numéro de registre du commerce national (REGON) comporte 9 ou 14 chiffres." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" -"Somme de contrôle non valide pour le numéro de registre du commerce national " -"(REGON)." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Saisissez un code postal au format XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Basse-Silésie" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Cujavie-Poméranie" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublin" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubusz" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Łódź" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Petite-Pologne" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Mazovie " - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opole" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Basses-Carpates" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlachie" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Poméranie" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Silésie" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Swietokrzyskie" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Varmie-Mazurie" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Grande-Pologne" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "Poméranie Occidentale" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Saisissez un code postal au format XXXX-XXX." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" -"Les numéros de téléphone doivent comporter 9 chiffres, ou débuter par un + " -"ou 00." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Saisissez une CIF valide." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Saisissez une CNP valide." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "Saisissez un IBAN valide au format ROXX-XXXX-XXXX-XXXX-XXXX-XXXX." - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Les numéros de téléphone doivent être au format XXXX-XXXXXX." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Saisissez un code postal valide au format XXXXXX" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "Saisissez un code postal au format XXXXXX." - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "Saisissez un numéro de passeport au format XXXX XXXXXX." - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "Saisissez un numéro de passeport au format XX XXXXXXX." - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "District fédéral central" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "District fédéral du Sud" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "District fédéral du Nord-Ouest" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "District fédéral extrême-oriental" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "District fédéral sibérien" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "District fédéral de l'Oural" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "District fédéral de la Volga" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "District fédéral du Nord-Caucase" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "Moscou" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "Saint-Pétersbourg" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "Moscou, Oblast de" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "Adyguée, République d’" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "Bachkirie, République de" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "Bouriatie, République de" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "Altaï, République de l'" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "Daguestan, République du" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "Ingouchie, République d'" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "Kabardino-Balkarie, République de" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "Kalmoukie, République de" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "Karatchaïévo-Tcherkessie, République de" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "Carélie, République de" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "Komis, Répiblique des" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "Maris, République des" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "Mordovie, République de" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "Sakha, République de (Iakoutie)" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "Ossétie-du-Nord-Alanie, République d’" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "Tatarstan, République du" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "Touva, République de" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "Oudmourtie, République d’" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "Khakassia, République de" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "Tchétchénie, République de" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "Tchouvachie, République de" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "Altaï, Kraï de l’" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "Transbaïkalie, Kraï de" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "Kamtchatka, Kraï du" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "Krasnodar, Kraï de" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "Krasnoïarsk, Kraï de" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "Perm, Kraï de" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "Primorie, Kraï du" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "Stavropol, Kraï de" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "Khabarovsk, Kraï de" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "Amour, Oblast d’" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "Arkhangelsk, Oblast d’" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "Astrakhan, Oblast d‘" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "Belgorod, Oblast de" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "Briansk, Oblast de" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "Vladimir, Oblast de" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "Volgograd, Oblast de" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "Vologda, Oblast de" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "Voronej, Oblast de" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "Ivanovo, Oblast d’" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "Irkoutsk, Oblast d'" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "Kaliningrad, Oblast de " - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "Kalouga, Oblast de" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "Kemerovo, Oblast de" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "Kirov, Oblast de" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "Kostroma, Oblast de" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "Kourgan, Oblast de" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "Koursk, Oblast de" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "Léningrad, Oblast de" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "Lipetsk, Oblast de" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "Magadan, Oblast de" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "Mourmansk, Oblast de" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "Nijni Novgorod, Oblast de" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "Novgorod, Oblast de" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "Novossibirsk, Oblast de" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "Omsk, Oblast d'" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "Orenbourg, Oblast d’" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "Orel, Oblast d'" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "Penza, Oblast de" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "Pskov, Oblast de" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "Rostov, Oblast de" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "Riazan, Oblast de" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "Samara, Oblast de" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "Saratov, Oblast de" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "Sakhaline, Oblast de" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "Sverdlovsk, Oblast de" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "Smolensk, Oblast de" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "Tambov, Oblast de" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "Tver, Oblast de" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "Tomsk, Oblast de" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "Toula, Oblast de" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "Tioumen, Oblast de" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "Oulianovsk, Oblast d’" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "Tcheliabinsk, Oblast de" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "Iaroslavl, Oblast de" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "Oblast autonome juif" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "Nénétsie, District autonome de" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "Khantys-Mansis, District autonome des" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "Tchoukotka, District autonome de" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "Iamalo-Nénétsie, District autonome de" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Saisissez un numéro d'organisation suédois valide." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Saisissez un numéro d'identité personnelle suédois valide." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Le nombres de co-ordination ne sont pas autorisés." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Saisissez un code postal suédois au format XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Stockholm" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Västerbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norrbotten" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Uppsala" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Södermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Östergötland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Jönköping" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmar" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Gotland" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Blekinge" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Skåne" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halland" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Västra Götaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Värmland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Örebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Västmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Dalarna" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gävleborg" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Västernorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jämtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" -"Les 7 premiers chiffres du EMSO doivent correspondre à une date valide dans " -"le passé." - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "Le EMSO n'est pas valide." - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "Saisissez un code fiscal valide au format SIXXXXXXXX" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "Saisissez un numéro de téléphone au format +386XXXXXXXX ou 0XXXXXXXX." - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Banská Bystrica" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banská Štiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Bánovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytča" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Čadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolný Kubín" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajská Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenné" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kežmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komárno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Košice I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Košice·II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Košice III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Košice·IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Košice–okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucké Nové Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoča" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovský Mikuláš" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lučenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Námestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nové Mesto nad Váhom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nové Zámky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizánske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piešťany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltár" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Považská Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Prešov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Púchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revúca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavská Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Rožňava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ružomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spišská Nová Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stará Ľubovňa" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidník" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Šaľa" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topoľčany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebišov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trenčín" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turčianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdošín" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Veľký Krtíš" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Topľou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlaté Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Žarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Žiar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Žilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Région de Banská Bystrica" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Région de Bratislava" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Région de Košice" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Nitra" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Prešov" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Trenčín" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Trnava" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Žilina" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Saisissez un code postal au format XXXXX." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Les numéros de téléphone doivent correspondre au format 0XXX XXX XXXX." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Saisissez un numéro d'identification turc valide." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "Les numéros d'identification turcs sont formés de 11 chiffres." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Saisissez un code postal américain au format XXXXX ou XXXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Les numéros de téléphone doivent être au format XXX-XXX-XXXX." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" -"Saisissez un numéro de sécurité sociale américain au format XXX-XX-XXXX." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Saisissez un état ou un territoire américain." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "État Américain (deux lettres majuscules)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "Code postal des États-Unis (deux lettres majuscules)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Numéro de téléphone" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" -"Saisissez un numéro de CI valide au format X.XXX.XXX-X,XXXXXXX-X ou XXXXXXXX." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Saisissez un numéro CI valide." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Saisissez un numéro d'identification sud-africain valide." - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Saisissez un code postal sud-africain valide." - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Cap-Oriental" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "État-Libre" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Cap-du-Nord" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "Nord-Ouest" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Cap-Occidental" diff --git a/django/contrib/localflavor/locale/fy_NL/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/fy_NL/LC_MESSAGES/django.mo deleted file mode 100644 index 89e6b75028..0000000000 Binary files a/django/contrib/localflavor/locale/fy_NL/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/fy_NL/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/fy_NL/LC_MESSAGES/django.po deleted file mode 100644 index 9fe32d7d7c..0000000000 --- a/django/contrib/localflavor/locale/fy_NL/LC_MESSAGES/django.po +++ /dev/null @@ -1,3524 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:41+0100\n" -"PO-Revision-Date: 2011-03-15 15:41+0000\n" -"Last-Translator: Django team\n" -"Language-Team: English \n" -"Language: fy_NL\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "" - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "" - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "" - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "" - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "" - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "" - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "" - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "" - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "" - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "" - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "" - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "" - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "" - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "" - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "" - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "" - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "" - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "" - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "" - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "" - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "" - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "" - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "" - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "" - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "" - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "" - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "" - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "" - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "" - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "" - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "" - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "" - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "" - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "" - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "" - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "" - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "" - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "" - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "" - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "" - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "" - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "" - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "" - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "" - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "" - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "" - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "" - -#: us/models.py:26 -msgid "Phone number" -msgstr "" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "" - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "" diff --git a/django/contrib/localflavor/locale/ga/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/ga/LC_MESSAGES/django.mo deleted file mode 100644 index 4124e81d23..0000000000 Binary files a/django/contrib/localflavor/locale/ga/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/ga/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/ga/LC_MESSAGES/django.po deleted file mode 100644 index 93633966af..0000000000 --- a/django/contrib/localflavor/locale/ga/LC_MESSAGES/django.po +++ /dev/null @@ -1,3560 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011. -# Michael Thornhill , 2011, 2012. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:41+0100\n" -"PO-Revision-Date: 2012-03-16 12:58+0000\n" -"Last-Translator: Michael Thornhill \n" -"Language-Team: Irish (http://www.transifex.net/projects/p/django/language/" -"ga/)\n" -"Language: ga\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : " -"4)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Cuir isteach cód póstal ins an formáid NNNN nó ANNNNAAA" - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Teastaíonn an réimse seo uimhreacha amháin." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Teastaíonn an réimse seo 7 nó 8 digite." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Cuir isteach CUIT bailí i formáid XX-XXXXXXXX-X nó XXXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "CUIT neamhbailí" - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Carinthia" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "An Ostair íochtarach" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "An Ostair uachtarach" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salzburg" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Styria" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tyrol" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Tyrol" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Vín" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Cuir isteach cód zip ins an formáid XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Iontráil uimhir Ostaire Slándáil Shóisialta bailí i bhformáid XXXX XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "Iontráil postchód4 dhigit." - -#: au/models.py:9 -msgid "Australian State" -msgstr "Stát na hAstráile" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "Postchód Astráil" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "Uimhir telefón Astráil" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Antwerp" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "An Bhruiséil" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Flóndras Oirthear" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Brabant Pléimeannach" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hainaut" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Liege" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburg" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Lucsamburg" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Walloon Brabant" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "West Flanders" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Caipitil Réigiún na Bhruiséil" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Réigiún Pléimeannach" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Wallonia" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "Cuir isteach cód poist bailí sa raon agus formáid 1XXX - 9XXX." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Cuir isteach uimhir theileafóin bailí i gceann de na formáidí 0x xxx xx xx, " -"0xx xx xx xx, 04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x." -"xxx.xx.xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx nó 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Iontráil zip-cód i bhformáid XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Ní mór Uimhreacha teileafóin a chur i XX-XXXX-XXXX format." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Roghnaigh stát na Brasaíle bailí. Ní thugann an Stát sin ar cheann de na " -"stáit atá ar fáil." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Uimhir CPF neamhbhailí." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "" -"Éilíonn an réimse seo ag an chuid is mó dhigit 11 nó 14 de charachtair." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Neamhbhailí CNPJ uimhir." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Éilíonn an réimse seo ar a laghad 14 digití" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Iontráil cód poist i bhformáid XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"Iontráil uimhir Cheanada Árachais Shóisialaigh bailí i bhformáid XXX-XXX-XXX." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aargau" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basel-Stadt" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basel-Talún" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Berne" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Fribourg" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "An Ghinéiv" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubuenden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucerne" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchatel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "St Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zürich" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Iontráil aitheantais hEilvéise bailí nó uimhir pas cárta i bhformáid " -"X1234567<0 nó 1234567890." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Iontráil RUT Chilean bailí." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Iontráil RUT bailí Chilean. Is é an fhormáid XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "Níl an RUT Chilean bailí." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "Iontráil postchód i bhformáid XXXXXX." - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "Uimhir Aitheantais Carta comhdhéanta de 15 nó 18 digití." - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "Uimhir Aitheantais Carta neamhbhailí: checksum mícheart " - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "Carta ID neamhbhailí: breith lá mícheart " - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "Carta ID neamhbhailí: cód na háite mícheart " - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "Iontráil uimhir theileafóin bailí" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "Cuir isteach uimhir fón bailí." - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Prague" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Réigiún Central Bohemian" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Réigiún Bohemian Theas" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Pilsen Réigiún" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Carlsbad Réigiún" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Usti Réigiún" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Liberec Réigiún" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Hradec Réigiún" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Pardubice Réigiún" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Vysocina Réigiún" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Réigiún Moravian Theas" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Réigiún Olomouc" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Réigiún Zlin" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Réigiún Moravian-Silesian" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Iontráil cód poist i bhformáid XXXXX nó XXX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "Iontráil uimhir breithe i bhformáid XXXXXX/XXXX nó XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" -"Paraiméadar inscne roghnach neamhbhailí, is iad 'f' agus 'm' na luachanna " -"bailí" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Cuir isteach uimhir breithe bailí." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Cuir isteach uimhir IC bailí." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Wuerttemberg" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "An Bhaváir" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Beirlín" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburg" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Bremen" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburg" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hessen" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklenburg-Pomerania Thiar" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "An tSacsain Íochtair" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "Réin Thuaidh-Westphalia" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Dúiche na Réine-Palatinate" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Saarland" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "An tSacsain" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "An tSacsain-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Thuringia" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Iontráil zip-cód i bhformáid XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Iontráil uimhir cárta aitheantais na Gearmáine bailí i bhformáid XXXXXXXXXXX-" -"XXXXXXX-XXXXXXX-X." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Arava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alacant" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almeria" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Ávila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Illes Balears" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barcelona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Cáceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cádiz" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castello" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Cordoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "A Coruña" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Girona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipuzkoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaen" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "Leon" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lleida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Maidrid" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Málaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murcia" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarre" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Ourense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturias" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palencia" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Cruz de Tenerife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Cantabria" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Sevilla" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valencia" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Bizkaia" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Zaragoza" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andalusia" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragon" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Phrionsacht Asturias" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Na hOileáin Bhailéaracha" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Tír na mBascach" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Na hOileáin Chanáracha" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Castilla-La Mancha" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Castilla agus Leon" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "An Chatalóin" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Extremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galicia" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Réigiún de Murcia" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Chomhphobail Foral de Navarre" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Valencian Community" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Iontráil cód poist bailí i raon agus formáid 01XXX - 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Iontráil uimhir theileafóin bailí i gceann de na formáidí 6XXXXXXXX, " -"8XXXXXXXX nó 9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Cuir isteach NIF bailí, NIE, nó CIF." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Cuir isteach NIF bailí nó NIE." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Sheiceála neamhbhailí do NIF." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Sheiceála neamhbhailí do NIE." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Sheiceála neamhbhailí do CIF." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Cuir isteach uimhir chuntais bainc bailí i bhformáid XXXX-XXXX-XX-XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Sheiceála neamhbhailí do uimhir cuntas bainc." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Cuir isteach uimhir Fionlainne slándála sóisialta bailí." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Ní mór Uimhreacha teileafóin a chur i bhformáid 0X XX XX XX XX." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Iontráil postchód bailí." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Corn na Breataine agus na Oileáin Scilly" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cumbria" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "East Sussex" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Essex" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Greater London" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Greater Manchester" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordshire" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "North Yorkshire" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northamptonshire" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oxfordshire" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "South Yorkshire" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordshire" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne and Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "West Midlands" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "West Sussex" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "West Yorkshire" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "Contae Aontroma" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "Contae Ard Mhacha" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "Contae an Dúin" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "Contae Fhear Manach" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "Contae Dhoire" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "Contae Thír Eoghain" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "South Glamorgan" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "West Glamorgan" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Central Albain" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries agus Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "na hOiléain Orkney" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "na hOiléain Shetland" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Oileáin Iarthair" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "Sasana" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Tuaisceart Éireann" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Albain" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "An Bhreatain Bheag" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "Iontráil JMBG 13 digit bailí" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "Earráid sa deighleog dáta" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "Iontráil OIB 11 dhigit bailí " - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Cuir isteach uimhir feithicle bailí pláta cheadúnas" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "Iontráil cód suoímh bailí" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "Ní féidir an uimhir a bheith nialas" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "Iontráil postcód 5 dhigit bailí" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Iontráil uimhir theileafóin bailí" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "Cuir isteach limistéar bailí nó cód líonra soghluaiste" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "Tá uimhir an fón ró-fhada" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "Iontráil JMBAG 19 dhigit bailí ag tosú le 601983" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "Ní féidir uimhir eisiúna cárta a bheith nialas" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "Grad Zagreb" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "Bjelovarsko-bilogorska županija" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "Brodsko-posavska županija" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "Dubrovačko-neretvanska županija" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "Istarska županija" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "Karlovačka županija" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "Koprivničko-križevačka županija" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "Krapinsko-zagorska županija" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "Ličko-senjska županija" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "Međimurska županija" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "Osječko-baranjska županija" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "Požeško-slavonska županija" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "Primorsko-goranska županija" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "Sisačko-moslavačka županija" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "Splitsko-dalmatinska županija" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "Šibensko-kninska županija" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "Varaždinska županija" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "Virovitičko-podravska županija" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "Vukovarsko-srijemska županija" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "Zadarska županija" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "Zagrebačka županija" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Iontráil cód poist bailí" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Cuir isteach uimhir NIK/KTP bailí" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Aceh" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Banten" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Bengkulu" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Yogyakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Jakarta" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Gorontalo" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Jambi" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Jawa Barat" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Jawa Tengah" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Jawa Timur" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Kalimantan Barat" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Kalimantan Selatan" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Kalimantan Tengah" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Kalimantan Timur" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Kepulauan Bangka-Belitung" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Kepulauan Riau" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampung" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Maluku" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Maluku Utara" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Nusa Tenggara Barat" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Nusa Tenggara Timur" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papua" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Papua Barat" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Riau" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Sulawesi Barat" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Sulawesi Selatan" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Sulawesi Tengah" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Sulawesi Tenggara" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Sulawesi Utara" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Sumatera Barat" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Sumatera Selatan" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Sumatera Utara" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Magelang" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Surakarta - Solo" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madiun" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kediri" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanuli" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Nanggroe Aceh Darussalam" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Kepulauan Bangka Belitung" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Cór gconsalacht" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Cór Taidhleoireachta" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Bandung" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Sulawesi Utara Daratan" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timor" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Sulawesi Utara Kepulauan" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lombok" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Papua dan Papua Barat" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Cirebon" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbawa" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Flores" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Bogor" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalongan" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Semarang" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Pati" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Surabaya" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Madura" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malang" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Jember" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banyumas" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Rialtas Feidearálach" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purwakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarjo" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Garut" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Aontroim" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Ard Mhacha" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Ceatharlach" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "An Cabhan" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "An Clar" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Corcaigh" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Doire" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Dún na nGall" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "an Dún" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Baile Atha Cliath" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fear Manach" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Gaillimh" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Chiarrai" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Cill Dara" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Cill Chainnigh" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Laoise" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Liatroim" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Luimneach" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "An Longfort" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Lú" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Mhaigh Eo" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "an Mhí" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Muineachán" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Uíbh Fhailí" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Ros Comain" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Sligeach" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tiobraid Arann" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tír Eoghain" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Port Láirge" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Na hIarmhí" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Loch Garman" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Cill Mhantáin" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Cuir isteach cód poist san fhormáid XXXXX" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Cuir isteach uimhir aitheantais bailí." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "Cuir isteach cód zip san fhormáid XXXXXX nó XXX XXX." - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "Cuir isteach an stát Indiach nó gcríoch." - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" -"Ní mór uimhreacha gutháin a bheith i bhformáid 02X-8x nó 03X-7x nó 04X-6x." - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" -"Cuir isteach uimhir aitheantais bailí hÍoslainne. Is é an fhormáid XXXXXX-" -"XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Níl an uimhir aitheantais hÍoslainne bailí." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Iontráil zip-cód bailí." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Iontráil uimhir Slándáil Shóisialta bailí." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Iontráil uimhir CBL bailí." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Iontráil cód poist i bhformáid XXXXXXX nó XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaido" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Yamagata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukushima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Tochigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Chiba" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tóiceo" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Yamanashi" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Toyama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ishikawa" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Shizuoka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Shiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kyoto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hyogo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakayama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okayama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hiroshima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Yamaguchi" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokushima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Kochi" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Oita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Miyazaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagoshima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinawa" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Iontráil uimhir ID Sibhialta Kuwati bailí" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" -"Ní mór uimhreacha cártaí aitheantais go bhfuil ceachtar 4 go 7 dhigit nó " -"litir chás uachtair agus 7 digití." - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "Ba chóir go bhfuil an réimse seo go díreach 13 digití." - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" -"Ní mór don chéad 7 dhigit de na UMCN ionadaíocht a dhéanamh ar dháta bailí " -"anuas." - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "Níl an UMCN bailí." - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "Aerodrom" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "Aračinovo" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "Berovo" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "Bitola" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "Bogdanci" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "Bogovinje" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "Bosilovo" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "Brvenica" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "Butel" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "Valandovo" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "Vasilevo" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "Vevčani" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "Veles" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "Vinica" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "Vraneštica" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "Vrapčište" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "Gazi Baba" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "Gevgelija" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "Gostivar" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "Gradsko" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "Debar" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "Debarca" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "Delčevo" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "Demir Kapija" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "Demir Hisar" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "Dolneni" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "Drugovo" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "Gjorče Petrov" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "Želino" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "Zajas" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "Zelenikovo" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "Zrnovci" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "Ilinden" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "Jegunovce" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "Kavadarci" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "Karbinci" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "Karpoš" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "Kisela Voda" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "Kičevo" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "Konče" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "Koćani" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "Kratovo" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "Kriva Palanka" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "Krivogaštani" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "Kruševo" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "Kumanovo" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "Lipkovo" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "Lozovo" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "Mavrovo i Rostuša" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "Makedonska Kamenica" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "Makedonski Brod" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "Mogila" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "Negotino" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "Novaci" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "Novo Selo" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "Oslomej" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "Ohrid" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "Petrovec" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "Pehčevo" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "Plasnica" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "Prilep" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "Probištip" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "Radoviš" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "Rankovce" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "Resen" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "Rosoman" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "Saraj" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "Sveti Nikole" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "Sopište" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "Star Dojran" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "Staro Nagoričane" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "Struga" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "Strumica" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "Studeničani" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "Tearce" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "Tetovo" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "Centar" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "Centar-Župa" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "Čair" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "Čaška" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "Češinovo-Obleševo" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "Čučer-Sandevo" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "Štip" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "Šuto Orizari" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "Cárta uimhir aitheantais Macadóinis" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "A bhardas Macadóinis (2 cód carachtar)" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "Líon saoránach uathúil máistir (13 dhigit)" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "Cuir isteach cód zip bailí sa XXXXX bhformáid." - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "Iontráil RFC bailí." - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "Sheiceála neamhbhailí do RFC." - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "Iontráil CURP bailí." - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "Neamhbhailí sheiceála do CURP." - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "Meicsiceo stáit (trí litreacha cás uachtair)" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "Cód zip Meicsiceo" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "Mheicsiceo RFC" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "Mheicsiceo CURP" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baja California" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baja California an Ridire" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Distrito Feidearálach" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Estado de México" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacán" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo León" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Querétaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Rubha" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potosí" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Yucatán" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Iontráil cód poist bailí" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Iontráil uimhir SoFi bailí" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drenthe" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Friesland" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Gelderland" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groningen" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Noord-Brabant" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Noord-Holland" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrecht" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zeeland" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Zuid-Holland" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Cuir isteach uimhir leasa na hIorua sóisialta bailí." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Éilíonn an réimse 8 digití." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Éilíonn an réimse seo 11 digití." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Náisiúnta Uimhir Aitheantais comhdhéanta de 11 digití." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Sheiceála mícheart ar an Uimhir Aitheantais Náisiúnta." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" -"Is éard atá Náisiúnta Uimhir an Chárta Aitheantais de 3 litreacha agus " -"digití 6." - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "Sheiceála mícheart le haghaidh an Chárta ID Náisiúnta." - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" -"Cuir isteach ar réimse uimhir cánach (NIP) i bhformáid XXX-XXX-XX-XX, XXX-" -"XXX-XX XX-nó XXXXXXXXXX." - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Sheiceála mícheart ar an Uimhir Cánach (NIP)." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "Uimhir Náisiúnta Clár Gnó (REGON) comhdhéanta de 9 nó 14 digití." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "Sheiceála Mícheart do Uimhir Ghnó Clár Náisiúnta (REGON)." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Iontráil cód poist i bhformáid XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Silesia Íochtarach" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kuyavia-Pomerania" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublin" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubusz" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodz" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "An Pholainn lú " - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Masovia" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opole" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Subcarpatia" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlasie" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomerania" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Silesia" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Swietokrzyskie" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Warmia-Masuria" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "An Pholainn Mór" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "Pomerania Thiar" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Iontráil zip-cód i bhformáid XXXX-XXX." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "Ní mór líon Fón tá 9 dhigit, nó tús le + nó 00." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Iontráil CIF bailí." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Iontráil CNP bailí." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "Iontráil IBAN bailí i bhformáid ROXX-XXXX-XXXX-XXXX-XXXX-XXXX" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Ní mór uimhreacha teileafóin a chur i bhformáid XXXX-XXXXXX." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Iontráil cód poist bailí i bhformáid XXXXXX" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "Cuir isteach postcód san fhormáid XXXXXX." - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "Iontráil uimhir phas san fhormáid XXXX XXXXXX." - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "Iontráil uimhir phas san fhormáid XX XXXXXXX." - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "Contae Feidearálach Lár" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "Contae Feidearálach Deisceart" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "Contae Feidearálach Iar-Tuaisceart" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "Contae Feidearálach Fada Oirthear" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "Contae Feidearálach Siberian" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "Contae Feidearálach Ural" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "Contae Feidearálach Privolzhsky" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "Contae Feidearálach North-Caucasian" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "Moskva" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "Saint-Peterburg" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "Moskovskaya oblast'" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "Adygeya, Respublika" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "Bashkortostan, Respublika" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "Buryatia, Respublika" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "Altay, Respublika" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "Dagestan, Respublika" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "Ingushskaya Respublika" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "Kabardino-Balkarskaya Respublika" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "Kalmykia, Respublika" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "Karachaevo-Cherkesskaya Respublika" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "Karelia, Respublika" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "Komi, Respublika" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "Mariy Ehl, Respublika" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "Mordovia, Respublika" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "Sakha, Respublika (Yakutiya)" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "Severnaya Osetia, Respublika (Alania)" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "Tatarstan, Respublika" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "Tyva, Respublika (Tuva)" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "Udmurtskaya Respublika" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "Khakassiya, Respublika" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "Chechenskaya Respublika" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "Chuvashskaya Respublika" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "Altayskiy Kray" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "Zabaykalskiy Kray" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "Kamchatskiy Kray" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "Krasnodarskiy Kray" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "Krasnoyarskiy Kray" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "Permskiy Kray" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "Primorskiy Kray" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "Stavropol'siyy Kray" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "Khabarovskiy Kray" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "Amurskaya oblast'" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "Arkhangel'skaya oblast'" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "Astrakhanskaya oblast'" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "Belgorodskaya oblast'" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "Bryanskaya oblast'" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "Vladimirskaya oblast'" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "Volgogradskaya oblast'" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "Vologodskaya oblast'" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "Voronezhskaya oblast'" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "Ivanovskaya oblast'" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "Irkutskaya oblast'" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "Kaliningradskaya oblast'" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "Kaluzhskaya oblast'" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "Kemerovskaya oblast'" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "Kirovskaya oblast'" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "Kostromskaya oblast'" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "Kurganskaya oblast'" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "Kurskaya oblast'" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "Leningradskaya oblast'" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "Lipeckaya oblast'" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "Magadanskaya oblast'" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "Murmanskaya oblast'" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "Nizhegorodskaja oblast'" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "Novgorodskaya oblast'" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "Novosibirskaya oblast'" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "Omskaya oblast'" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "Orenburgskaya oblast'" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "Orlovskaya oblast'" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "Penzenskaya oblast'" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "Pskovskaya oblast'" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "Rostovskaya oblast'" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "Rjazanskaya oblast'" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "Samarskaya oblast'" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "Saratovskaya oblast'" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "Sakhalinskaya oblast'" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "Sverdlovskaya oblast'" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "Smolenskaya oblast'" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "Tambovskaya oblast'" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "Tverskaya oblast'" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "Tomskaya oblast'" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "Tul'skaya oblast'" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "Tyumenskaya oblast'" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "Ul'ianovskaya oblast'" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "Chelyabinskaya oblast'" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "Yaroslavskaya oblast'" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "Evreyskaya avtonomnaja oblast'" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "Neneckiy autonomnyy okrug" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "Chukotskiy avtonomnyy okrug" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "Yamalo-Neneckiy avtonomnyy okrug" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Cuir isteach uimhir eagraíochta bailí Sualainnis." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Iontráil uimhir aitheantais bailí Sualainnis pearsanta." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Ní líon Comhordaithe Co-cheadaítear." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Iontráil cód poist na Sualainne i bhformáid XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Stócólm" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Västerbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norrbotten" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Uppsala" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Södermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Östergötland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Jönköping" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmar" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Gotland" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Blekinge" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Skåne" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halland" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Västra Götaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Värmland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Örebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Västmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Dalarna" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gävleborg" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Västernorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jämtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" -"Ní mór don chéad 7 dhigit de na EMSO ionadaíocht a dhéanamh ar dháta bailí " -"anuas." - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "Níl an EMSO bailí." - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "Iontráil uimhir cánach bailí i bhfoirm SIXXXXXXXX" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "Cuir isteach uimhir theileafóin i bhfoirm 386 XXXXXXXX nó 0XXXXXXXX." - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Banska Bystrica" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banska Stiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Banovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "An Bhratasláiv I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "An Bhratasláiv II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "An Bhratasláiv III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "An Bhratasláiv IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "An Bhratasláiv V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytca" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Cadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolny Kubin" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajska Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenne" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kezmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komarno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Kosice I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Kosice II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Kosice III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Kosice IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Kosice - okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucke Nove mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoca" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovsky Mikulas" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lucenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Namestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nove mesto nad Vahom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nove Zamky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizanske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piestany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltar" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povazska Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Presov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Puchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revuca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Roznava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ruzomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spisska Nova Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stara Lubovna" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidnik" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Sala" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolcany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebisov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trencin" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turcianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdosin" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velky Krtis" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Zarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Zilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Banska Bystrica réigiún" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "An Bhratasláiv réigiún" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Kosice réigiún" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Nitra réigiún" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Presov réigiún" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Trencin réigiún" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Trnava réigiún" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Zilina réigiún" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Cuir isteach cód poist san fhormáid XXXXX." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Ní mór líon Fón a bheith i bhformáid 0XXX XXX XXXX." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Iontráil uimhir aitheantais bailí Tuircis." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "Ní mór a aithint Tuircis uimhir 11 digití." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Iontráil zip-cód i bhformáid XXXXX nó XXXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Ní mór uimhreacha teileafóin a chur i format XXX-XXX-XXXX." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "Iontráil uimhir Slándáil Shóisialta US bailí i bhformáid XXX-XX-XXXX." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Iontráil US stát nó i gcríoch." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "U.S. stát (dhá litreacha móra)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "US cód poist (dhá litreacha móra)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Uimhir telefón" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" -"Iontráil CI bailí a roinnt i X.XXX.XXX-X, XXXXXXX-X nó XXXXXXXX formáid." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Cuir isteach uimhir IC bailí." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Iontráil uimhir ID hAfraice Theas bailí" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Iontráil cód poist na hAfraice Theas bailí" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Eastern Cape" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Saorstát" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Northern Cape" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "Iarthuaisceart" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Western Cape" diff --git a/django/contrib/localflavor/locale/gl/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/gl/LC_MESSAGES/django.mo deleted file mode 100644 index cd1b3cc302..0000000000 Binary files a/django/contrib/localflavor/locale/gl/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/gl/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/gl/LC_MESSAGES/django.po deleted file mode 100644 index f707e66fd0..0000000000 --- a/django/contrib/localflavor/locale/gl/LC_MESSAGES/django.po +++ /dev/null @@ -1,3538 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# fasouto , 2011. -# Jannis Leidel , 2011. -# Leandro Regueiro , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:41+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Leandro Regueiro \n" -"Language-Team: Galician (http://www.transifex.net/projects/p/django/language/" -"gl/)\n" -"Language: gl\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Insira un código postal no formato NNNN ou ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Este campo soamente admite números." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Este campo require 7 ou 8 díxitos." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "" - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "" - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Carintia" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Estiria" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tirol" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Viena" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Insira un código posttal no formato XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "Insira un código postal Austríaco no formato XXXX XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Bruxelas" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Flandres oriental" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Liège" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburgo" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Luxemburgo" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Flandres occidental" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Rexión de Flandres" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Valonia" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "Insira un código postal no rango e formato 1XXX - 9XXX." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Insira un código postal no formato XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Os números de teléfono deben estar no formato XX-XXXX-XXXX." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Número de CPF non válido." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Este campo acepta como máximo 11 díxitos ou 14 caracteres." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Número de CNPJ non válido" - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Este campo require polo menos 14 díxitos." - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Insira un código postal no formato XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Argovia" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Interior" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Exterior" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basilea-Cidade" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basilea-Campo" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Berna" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Friburgo" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Xenebra" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Grisóns" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Xura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucerna" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchatel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwald" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwald" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Soleura" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "San Galo" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Turgovia" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Tesino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zurich" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Insira un número válido de tarxeta de identidade ou pasaporte no formato " -"X1234567<0 ou 1234567890." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "" - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "" - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Praga" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Rexión Pilsen" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Rexión Carlsbad" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Rexión Usti" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Rexión Liberec" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Rexión Hradec" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Rexión Pardubice" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Rexión Vysocina" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Rexión Moravia do sur" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Rexión Olomouc" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Rexión Zlin" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Insira un código postal no formato XXXXX ou XXX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "" - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "" - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Württemberg" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Baviera" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlín" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandemburgo" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Bremen" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburgo" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hesse" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklemburgo-Pomerania Occidental" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Baixa Saxonia" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "Renania do Norte-Westfalia" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Renania-Palatinado" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Sarre" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Saxonia" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Saxonia-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Turinxia" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Insira un código postal no formato XXXXX" - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Insira un número válido de tarxeta de identidade alemá no formato " -"XXXXXXXXXXX-XXXXXXX-XXXXXXX-X." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Álava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alicante" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almería" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Ávila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badaxoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Illas Baleares" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barcelona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Cáceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cádiz" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castellón" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Cidade Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Córdoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "A Coruña" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Xirona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalaxara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipúscoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaén" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "León" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lleida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "A Rioxa" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madrid" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Málaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murcia" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarra" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Ourense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturias" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palencia" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "As Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Cruz de Tenerife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Cantabria" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Sevilla" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valencia" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Biscaia" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Zaragoza" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andalucía" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragón" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Principado de Asturias" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Illas Baleares" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "País Vasco" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Illas Canarias" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Castela-A Mancha" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Castela e León" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Cataluña" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Extremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galicia" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Murcia" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Comunidade Foral de Navarra" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Comunidade Valenciana" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Introduza un NIF, NIE ou CIF válido." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Insira un NIF ou NIE válido." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "A suma de verificación do NIF é incorrecta." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "A suma de verificación do NIE é incorrecta." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "A suma de verificación do CIF é incorrecta." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "" - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Insira un número válido de tarxeta da seguridade social finlandesa." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "" - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Insira un código postal válido." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Essex" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oxfordshire" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordshire" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Escocia central" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Illas occidentais" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "Inglaterra" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Irlanda do norte" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Escocia" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "País de Gales" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Insira un número de teléfono válido." - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Insira un código postal válido." - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papúa" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Goberno federal" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Carlow" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Cork" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Dublín" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Galway" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerry" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerick" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Waterford" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Westmeath" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Insira un código postal no formato XXXXX" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Introduza un número de ID válido." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" -"Insira un número de identificación islandés válido. O formato é XXXXXX-XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "O número de identificación islandés non é válido." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Insira un código postal válido." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Insira un número da seguridade social válido." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Insira un número de IVE válido." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Insira un código postal no formato XXXXXXX ou XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaidō" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Yamagata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukushima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Tochigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Chiba" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Toquio" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Yamanashi" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Toyama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ishikawa" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Shizuoka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Shiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kioto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hyōgo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakayama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okayama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hiroshima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Yamaguchi" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokushima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Kōchi" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Ōita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Miyazaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagoshima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinawa" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baixa California" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baixa California Sur" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Distrito Federal" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacán" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Querétaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potosí" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Iucatán" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Insira un código postal válido" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Frisia" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrecht" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Insira un número válida da seguridade social norueguesa." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Este campo require 8 díxitos." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Este campo require 11 díxitos." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "O Número de identificación nacional consiste en 11 díxitos." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "" -"A suma de verificación do Número de identificación nacional é incorrecta." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "" - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Insira un código postal no formato XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Baixa silesia" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublin" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodz" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Gran polonia" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "Pomerania occidental" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Insira un código postal no formato XXXX-XXX." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "Os números de teléfono deben ter 9 díxitos, ou comezar por + ou 00." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Introduza un CIF válido." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Introduza un CNP válido." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "" - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Insira un código postal no formato XXXXXX" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "" - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Insira un código postal Sueco no formato XXXXX-XXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Estocolmo" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Örebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidnik" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Sala" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Zarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Zilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Rexión de Bratislava" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Insira un código postal válido no formato XXXXX." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Os números de teléfono deben ter o formato 0XXX XXX XXXX." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Introduza un número de identificación turco válido." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "O número de identificación turco debe ter 11 díxitos." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Insira un código postal no formato XXXXX ou XXXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Os números de teléfono deben ter o formato XXX-XXX-XXXX." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" -"Insira un número válido da seguridade social dos Estados Unidos no formato " -"XXX-XX-XXXX." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Insira un estado ou territorio dos Estados Unidos." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Estado dos Estados Unidos (dúas letras maiúsculas)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "Código postal dos Estados Únidos (dúas letras maiúsculas)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Número de teléfono" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" -"Introduza un número CI válido con formato X.XXX.XXX-X,XXXXXXX-X ou XXXXXXXX." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Introduza un número CI válido." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Introduza un número de ID sudafricano válido" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Insira un código postal Sudáfricano válido" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Estado libre" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "" diff --git a/django/contrib/localflavor/locale/he/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/he/LC_MESSAGES/django.mo deleted file mode 100644 index 92f165c57a..0000000000 Binary files a/django/contrib/localflavor/locale/he/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/he/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/he/LC_MESSAGES/django.po deleted file mode 100644 index a4b7319cba..0000000000 --- a/django/contrib/localflavor/locale/he/LC_MESSAGES/django.po +++ /dev/null @@ -1,3532 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Alex Gaynor , 2011. -# Jannis Leidel , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:41+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Alex Gaynor \n" -"Language-Team: Hebrew (http://www.transifex.net/projects/p/django/language/" -"he/)\n" -"Language: he\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "יש להזין קוד דואר בתבנית NNNN או ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "יש להזין רק ספרות בשדה זה." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "שדה זה דורש 7 או 8 ספרות." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "יש להזין מספר CUIT חוקי בתבנית XX-XXXXXXXX-X או XXXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "CUIT שגוי" - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "\tבורגנלנד" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "קרינתיה" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "אוסטריה התחתונה" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "אוסטריה עילית" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "זלצבורג" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "שטיריה" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "טירול" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "פורארלברג" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "וינה" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "יש להזין מיקוד בתבנית XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "יש להזין מספר ביטוח לאומי אוסטרלי חוקי בתבנית XXXX XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "אנטוורפן" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "בריסל" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "מזרח פלנדריה" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "ברבנט הפלמית" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "היינאוט" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "לייז'" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "לימבורג" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "לוקסמבורג" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "נאמור" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "ברבנט הוולונית" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "פלנדריה המערבית" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "אזור פלמי" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "ולוניה" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"יש להזין מספר טלפון חוקי באחד מהפורמטים 0x xxx xx xx, 0xx xx xx xx, 04xx xx " -"xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx.xx.xx." -"xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "יש להזין מיקוד בתבנית XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "מספרי טלפון חייבים להיות בתבנית XX-XXXX-XXXX." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "נא לבחור מדינה ברזילאית חוקית. מדינה זו אינה אחת מהמדינות האפשריות." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "מספר CPF לא חוקי" - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "שדה זה דורש 11 או 14 ספרות לכל היותר." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "מספר CNPJ לא חוקי" - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "שדה זה דורש לפחות 14 ספרות." - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "יש להזין מיקוד בתבנית XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "יש להזין מספר ביטוח לאומי קנדי חוקי בתבנית XXX-XXX-XXXX." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "ארגאו" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "אפנצל אינר־רודן" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "אפנצל אוסר־רודן" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "באזל־שטאדט" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "באזל־לנדשאפט" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "ברן" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "פריבור" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "ג'נבה" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "גלרוס" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "גראובינדן" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "ז'ורה" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "לוצרן" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "נשאטל" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "נידוולדן" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "אובוולדן" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "שפהאוזן" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "שוויץ" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "זולותורן" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "סנט גלן" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "טיצ'ינו" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "אורי" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "ואלה" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "וו" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "צוג" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "ציריך" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "יש להזין מספר זיהוי או דרכון שוויצרי בתבנית X1234567<0 או 1234567890." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "יש להזין RUT צ'יליאני חוקי." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "יש להזין RUT צ'יליאני חוקי. התבנית היא XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "שדה RUT צ'יליאני אינו חוקי." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "פראג" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "מרכז בוהמיה" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "דרום בוהמיה" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "מחוז פילזן" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "מחוז או איזור קרלסבד" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "מחוז אוסטי" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "מחוז ליברץ" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "מחוז חרדץ" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "מחוז פרדוביצה" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "מחוז ויסוצ'ינה" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "דרום מורביה" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "מחוז או איזור אולומוק" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "מחוז זלין" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "איזור מורביה – שלזיה" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "יש להזין קוד דואר בתבנית XXXXX או XXX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "הזן מספר לידה בתבנית XXXXXX/XXXX או XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "המשתנה שהזנת בשדה מין שגוי. הערכים החוקיים הם 'f' ו־'m'." - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "הזן מספר לידה חוקי." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "הזן מספר IC חוקי." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "באדן־וירטמברג" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "באווריה" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "ברלין" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "ברנדנבורג" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "ברמן" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "המבורג" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "הסה" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "מקלנבורג-מערב פומרניה" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "סקסוניה התחתונה" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "נורדריין־וסטפאליה" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "ריינלנד־פאלץ" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "חבל הסאר" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "סקסוניה" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "סקסוניה־אנהלט" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "שלזוויג־הולשטיין" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "תורינגיה" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "יש להזין מיקוד בתבנית XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "יש להזין מספר זיהוי גרמני חוקי בתבנית XXXXXXXXXXX-XXXXXXX-XXXXXXX-X." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "אראבה" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "אלבסטה" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "אלאקאנט" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "אלמריה" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "אווילה" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "באדאג'וז" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "האיים הבלאריים" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "ברצלונה" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "בורגוס" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "קסרס" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "קדיס" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "קסטלו" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "העיר הקולוניאלית" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "קורדובה" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "א קורוניה" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "קואנקה" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "ז'ירונה" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "גרנדה" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "גוודלחרה" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "גוויפוזקואה" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "אואלבה" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "אואסקה" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "חאאן" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "לאון" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "ליידה" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "לה ריוחה" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "לוגו" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "מדריד" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "מאלאגה" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "מורסיה" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "נווארה" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "אוורנס" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "אסטוריאס" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "פלנסיה" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "לאס פאלמס" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "פונטוורדה" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "סלמנקה" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "סנטה קרוז דה טנריף" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "קנטבריה" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "סגוביה" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "סביליה" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "סוריה" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "טרגונה" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "טרואל" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "טולדו" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "ולנסיה" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "ויאדוליד" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "ביסקאיה" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "סמורה" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "סראגוסה" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "סאוטה" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "מלייה" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "אנדלוסיה" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "אראגון" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "נסיכות אסטוריאס" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "האיים הבלאריים" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "חבל הבסקים" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "האיים הקנריים" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "קסטיליה-לה מנצ'ה" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "קסטיליה ולאון" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "קאטלוניה" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "אקסטרמדורה" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "גאליציה" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "אזור מורסיה" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "הקהילה האוטונומית של נווארה" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "קהילת ולנסיה" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "נא להזין מיקוד חוקי בתחום ובתבנית 01XXX - 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"נא להזין מספר טלפון חוקי באחת מהתבניות 6XXXXXXXX, 8XXXXXXXX או 9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "נא להזין NIF, NIE, או CIF חוקי." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "נא להזין NIF או NIE חוקי." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "סיכום ביקורת שגוי עבור NIF." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "סיכום ביקורת שגוי עבור NIE." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "סיכום ביקורת שגוי עבור CIF." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "נא להזין מספר חשבון בנק חוקי בתבנית XXXX-XXXX-XX-XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "סיכום ביקורת שגוי עבור מספר חשבון בנק." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "יש להזין מספר ביטוח לאומי פיני חוקי." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "מספרי טלפון חייבים להיות בתבנית 0X XX XX XX XX." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "יש להזין מיקוד חוקי." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr " בדפורשייר" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "באקינגהמשייר" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr " צ'שייר" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "קורנוול ואיי סילי" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr " קאמבריה" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "דרבישייר" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr " דבון" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "דורסט" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "דרהאם" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "מזרח אסקס" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "אסקס" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "גלוסטרשייר" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "לונדון רבתי" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "מנצ'סטר רבתי" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "המפשייר" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "הארטפורדשייר" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "קנט" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "לנקשייר" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "ליסטרשייר" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr " לינקולנשייר" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "מרסיסייד" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "נורפולק" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "צפון יורקשייר" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "נורת'המפטונשייר" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "נורת'אמברלנד" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "נוטינגהאמשייר" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "אוקספורדשייר" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "שרופשייר" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "סומרסט" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "דרום יורקשייר" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "סטאפורדשייר" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr " סאפוק" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "סוריי" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "טיין ו־וויר" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr " וורוויקשייר" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "מערב המידלנדס" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "מערב סאסקס" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "מערב יורקשייר" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr " ווילטשייר" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr " ווסטרשייר" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "מחוז אנטרים" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "ארמה" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "מחוז דאון" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "מחוז פרמאנה" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "מחוז לונדונברי" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "מחוז טיירון" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "קלוויד" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "דייפד" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "גוונט" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "גווינד" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "מרכז גלמורגן" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "ַפואיס" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "דרום גלמורגן" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "מערב גלמורגן" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "גבולות" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "מרכז סקוטלנד" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "דמפרייס וגאלוויי" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "פייף" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr " גרמפיאן" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "רמה" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "לודיאן" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "איי אורקיי" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "איי שטלנד" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "סטראת'קלייד" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "טייסייד" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "האיים המערביים" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "אנגליה" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "צפון אירלנד" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "סקוטלנד" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "וויילס" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "יש להזין מספר רישוי רכב חוקי" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "יש להזין מספר טלפון חוקי" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "יש להזין מיקוד חוקי." - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "הזן מספר NIK/KTP חוקי." - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "אצ 'ה" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "באלי" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "בנטן" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "בנגולו" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "ג'וקיירטה" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "ג'קרטה" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "גורנטלו" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "ג'מבי" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "ג'אווה מערב" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "ג'אווה מרכז" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "ג'אווה מזרח" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "בורנאו מערב" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "בורנאו דרום" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "בורנאו מרכז" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "בורנאו מזרח" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "איי בנגקה בליטונג" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "איי ריאאו" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "למפונג" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "מאלוקו" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "מאלוקו צפון" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "איי סונדה הקטנים - מערב" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "איי סונדה הקטנים - מזרח" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "פפוא" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "פפוא מערב" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "ריאאו" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "סולבסי מערב" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "סולבסי דרום" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "סולבסי מרכז" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "סולבסי דרום־מזרח" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "סולבסי צפון" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "סומטרה מערב" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "סומטרה דרום" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "סומטרה צפון" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "מאגלנג" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "סורקרטה - סולו" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "מדיון" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "קדירי" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "טפנולי" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "נגרוא אסה דרוסלם" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "בנגה-מליטנג" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "קונסוליות" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "שגרירויות" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "בנדונג" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "סולאוסי צפון" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - טימור" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "איי סולבסי צפון" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - לומבוק" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "פאפו ופאפו מערב" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "סיירבון" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - סומבאווה" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - פלורס" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - סומבה" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "בוגור" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "פקלונגאן" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "סמרנג" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "פאטי" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "סורביה" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "מדורה" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "מאלאנג" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "ג'מבר" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "בניומס" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "ממשל פדרלי" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "בוג'ונגורו" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "פורקוורטה" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "סידוארג'ו" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "גארוט" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "אנטרים" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "ארמאה" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "קארלאו" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "קאוובן" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "קלייר" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "קורק" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "דרי" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "דונגאל" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "דאון" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "דבלין" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "פרמנה" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "גולוויי" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "קרי" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "קילדאר" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "קילקני" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "ליש" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "לייטרים" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "לימריק" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "לונגפורד" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "לאות'" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "מאיו" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "מית'" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "מונהאן" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "אופלי" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "רוסקומון" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "סלייגו" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "טיפררי" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "טיירון" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "ווטפורד" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "וסטמית'" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "וקספורד" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "ויקלו" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "יש להזין מספר זיהות תקף." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "יש להזין מספר זיהוי איסלנדי חוקי. התבנית היא XXXXXX-XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "מספר הזיהוי האיסלנדי אינו חוקי" - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "יש להזין מיקוד חוקי." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "יש להזין מספר ביטוח לאומי חוקי." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "יש להזין מספר מע\"מ חוקי" - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "יש להזין קוד דואר בתבנית XXXXXXX או XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "הוקאידו" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "אאומורי" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "מיאגי" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "אקיטה" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "יאמאגטה" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "פוקושימה" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "איברקי" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "טושיגי" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "גונמה" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "סאיטאמה" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "צ'יבה" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "טוקיו" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "קאנגאווה" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "יאמאנשי" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "נאגאנו" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "נייגטה" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "טויאמה" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "אישיקאוואה" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "פוקוי" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "גיפו" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "שיזואוקה" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "אייצ'י" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "מיי" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "שיגה" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "קיוטו" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "אוסקה" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "הייוגו" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "נארה" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "ווקאייאמה" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "טוטורי" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "אוקייאמה" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "הירושימה" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "יאמאגוצ'י" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "טוקושימה" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "קאגאווה" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "קוצ'י" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "פוקוקה" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "סגה" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "נגסקי" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "קומאמוטו" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "אויטה" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "מיאזאקי" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "קגושימה" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "אוקינאווה" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "נא להזין מספר זיהוי כוויתי חוקי" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "אגואסקליינטס" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "באחה קליפורניה" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "באחה קליפורניה הדרומית" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "קמפצ'ה" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "צ'יוואוה" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "צ'יאפס" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "קואהווילה" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "קולימה" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "מחוז פדרלי" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "דוראנגו" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "גררו" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "גואנחואטו" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "אידלגו" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "חליסקו" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "אסטאדו דה מקסיקו" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "מיצ'ואקן" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "מורלוס" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "נייארית" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "נואבו ליאון" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "אואסקה" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "פואבלה" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "קוורטארו" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "קינטאנה רו" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "סינאלוה" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "סאן לואי פוטוסי" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "סונורה" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "טבסקו" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "טמפוליפס" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "טלקסקאלה" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "ורקרוז" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "יוקטן" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "זאקאטקס" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "יש להזין מיקוד חוקי." - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "יש להזין מספר SoFi חוקי" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "דרנתה" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "פלבולנד" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "פריזלנד" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "חלדרלנד" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "חרונינגן" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "צפון בראבנט" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "צפון הולנד" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "אובראיסל" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "אוטרכט" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "זילנד" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "דרום הולנד" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "יש להזין מספר ביטוח לאומי נורבגי חוקי." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "שדה זה דורש 8 ספרות." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "שדה זה דורש 11 ספרות." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "מספר זיהוי לאומי מורכב מ-11 ספרות" - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "סכום ביקורת שגוי עבור מספר הזיהוי הלאומי" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "סיכום ביקורת שגוי עבור מספר מס (NIP)." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "מספר רשומת בית עסק ארצי(REGON) מכיל או תשע או ארבע עשרה ספרות." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "סיכום שגוי National Business Register Number (REGON)." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "נא להזין מיקוד בתבנית XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "סילסיה התחתונה" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "קויאבויה - פומרניה" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "לובלין" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "לובוש" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "לודז'" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "פולין זוטא" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "מזוביה" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "אופולה" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "תת קרפטיה" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "פודלסיה" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "פומרניה" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "סילסיה" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "סבייטוקזי'סקי" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "וורמיה- מזוריה" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "פולין רבתי" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "מערב פומרניה" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "יש להזין מיקוד בתבנית XXXX-XXX." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "מספרי טלפון חייבים להכיל 9 ספרות, או להתחיל ב + או 00." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "יש להזין CIF חוקי." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "יש להזין CNP חוקי." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "יש להזין מספר IBAN חוקי בתבנית ROXX-XXXX-XXXX-XXXX-XXXX-XXXX" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "מספרי טלפון חייבים להיות בתבנית XXXX-XXXXXX." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "נא להזין מיקוד חוקי בתבנית XXXXXX" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "הזן מספר ארגון שוודי חוקי." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "יש להזין מספר זיהוי אישי שוודי חוקי." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "מספרי שיתוף פעולה אינם מותרים בשימוש" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "נא להזין מיקוד שוודי בתבנית XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "סטוקהולם" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "וסטרבוטן" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "נורבוטן" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "אופסלה" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "סדרמאנלנד" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "אסטריֶטלנד" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "ינשפין" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "קרונוברג" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "קאלמאר" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "גוטלנד" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "בלשיניה" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "סקונה" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "הלנד" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "יטאלנד המערבית" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "ורמלנד" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "ארברו" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "וסטמנלנד" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "דלארנה" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "יבלבורג" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "וסטרנורלנד" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "ימטלנד" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr " בנסקה ביסטריצה" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "בנסקה שטיאבניצה" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "ברדיוב" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "בנובץ ע\"מ בברבו" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "ברזנו" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "ברטיסלאבה 1" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "ברטיסלאבה 2" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "ברטיסלאבה 3" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "ברטיסלאבה 4" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "ברטיסלאבה 5" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "ביטצ'ה" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "צ'דקה" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "דטבה" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "דולני קובין" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "דונאייסקה סטרדה" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "גלנטה" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "גלניקה" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "הלוהובץ" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "הומנה" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "אילבה" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "קזמרוק" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "קומרנו" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "קושיצה 1" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "קושיצה 2" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "קושיצה 3" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "קושיצה 4" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "קושיצ'ה - אוקולי" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "קרופינה" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "קיוסקה נובה מסטו" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "לביצה" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "לבוצ'ה" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "ליפטובסקי מיקולס" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "לוצ'נץ'" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "מאלאקי" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "מרטין" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "מדזילבורצה" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "מיחלובצה" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "מיאווה" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "נמסטובו" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "ניטרה" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "נובה מסטו ע\"נ וה" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "נווי־זאמקי" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "פרטיזנסקה" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "פזינוק" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "פיאסטאני" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "פולטר" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "פופרד" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "פובסקה ביסטריצ'ה" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "פרשוב" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "פרבידזה" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "פוצ'וב" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "ריץ" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "רימובסקה סובוטה" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "רוזנבה" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "רוזומברוק" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "סבינוב" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "סנץ" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "סניצ'ה" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "סקליצ'ה" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "סנינה" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "סוברנס" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "ספישסקה נובה וס" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "סטרה לובובנה" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "סרטופקוב" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "סבידניק" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "סאלה" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "טופולצ'ני" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "טרביסוב" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "טרנצ'ין" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "טרנאוה" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "טורצינסק טפליץ" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "טברודוסין" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "ולקי קריץ" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "טרנוב ע\"נ טופולו" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "זלטה מורבצה" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "זבולן" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "זרנוביקה" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "ז'יר ע\"נ הרון" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "ז'ילינה" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "מחוז בטנסקה ביסטריקה" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "מחוז ברטיסלבה" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "מחוז קושיצ'ה" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "מחוז ניטרה" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "מחוז פראסוב" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "מחוז טראנצין" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "מחוז טרנאוה" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "מחוז ז'ילינה" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "מספרי טלפון חייבים להיות בפורמט 0XXX XXX XXXX." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "יש להזין מספר זיהות טורקי תקף." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "מספר זיהות טורקי חייב להיות 11 מספרים." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "יש להזין מיקוד חוקי בתבנית XXXXX או XXXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "מספרי טלפון חייבים להיות בתבנית XXX-XXX-XXXX." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "יש להזין מספר ביטוח לאומי אמריקאי בתבנית XXX-XX-XXXX." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "יש להזין מדינה או טריטרויה בארה\"ב" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "מדינה בארה\"ב (שתי אותיות גדולות)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "" - -#: us/models.py:26 -msgid "Phone number" -msgstr "מספר טלפון" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "יש להזין מספר CI חוקי בתבנית X.XXX.XXX-X,XXXXXXX-X או XXXXXXXX." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "יש להזין מספר CI חוקי." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "נא להזין מספר זיהוי דרום אפריקאי חוקי" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "נא להזין מיקוד דרום אפריקאי חוקי" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "הכף המזרחי" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "המדינה החופשית" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "גאוטנג" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "קווזולו־נאטאל" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "לימפופו" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "מפומלנגה" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "כף צפוני" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "דרום מערב" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "כף מערבי" diff --git a/django/contrib/localflavor/locale/hi/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/hi/LC_MESSAGES/django.mo deleted file mode 100644 index a98ebc02bc..0000000000 Binary files a/django/contrib/localflavor/locale/hi/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/hi/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/hi/LC_MESSAGES/django.po deleted file mode 100644 index 400c6ce167..0000000000 --- a/django/contrib/localflavor/locale/hi/LC_MESSAGES/django.po +++ /dev/null @@ -1,3540 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# chandankumar(ciypro) , 2012. -# Jannis Leidel , 2011. -# Sandeep Satavlekar , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:41+0100\n" -"PO-Revision-Date: 2012-03-15 13:28+0000\n" -"Last-Translator: Chandan kumar \n" -"Language-Team: Hindi (http://www.transifex.net/projects/p/django/language/" -"hi/)\n" -"Language: hi\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "डाक संहिता को NNNN अथवा ANNNNAAA के प्रतिरूप में दर्ज करें ।" - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "इस क्षेत्र में संख्या भरें ।" - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "इस क्षेत्र में 7 अथवा 8 अंक दर्ज करें ।" - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "मान्य CUIT XX-XXXXXXXX-X अथवा XXXXXXXXXXXX प्रतिरूप में गर्ज करें ।" - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "अमान्य CUIT" - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "बर्गनलान्ड" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "कारिन्थिया" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "निम्न आस्ट्रिया" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "ऊपरी आस्ट्रिया" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "साल्जबर्ग" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "स्टीरिया" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "टैराल" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "वोरार्लबर्ग" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "वियेन्ना" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "डाक संहिता को XXXX के प्रतिरूप में दर्ज करें ।" - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "मान्य आस्ट्रियन सोशल सेक्यूरिटी अंक को XXXX XXXXXX प्रतिरूप में भरें" - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "4 अंकों का पिन कोड दर्ज करें." - -#: au/models.py:9 -msgid "Australian State" -msgstr "ऑस्ट्रेलियाई राज्य" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "ऑस्ट्रेलियाई पोस्टकोड" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "ऑस्ट्रेलियाई टेलिफोन नम्बर" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "एंटवर्प" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "ब्रसेल्स" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "पूरब फ़्लैंडर्स" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "फ़्लेमिश ब्राबांट" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "हैनॉट" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "लीग" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "लिम्बर्ग" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "लक्ज़मबर्ग" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "नामुर" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "वालून ब्राबांट" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "पश्चिम फ़्लैंडर्स" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "ब्रुसेल्स राजधानी क्षेत्र" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "फ्लेमिश क्षेत्र" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "वालोनिया" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "1XXX - 9XXX सीमा और प्रारूप में एक वैध डाक कोड दर्ज करें." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"इन में से एक स्वरूपों में एक वैध फ़ोन नंबर दर्ज करें 0x xxx xx xx, 0xx xx xx xx, 04xx xx " -"xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx.xx.xx." -"xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxxमें एक वैध फ़ोन नंबर दर्ज करें." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "डाक संहिता को XXXXX-XXX के प्रतिरूप में दर्ज करें ।" - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "टेलिफ़ोन संख्या XX-XXXX-XXXX प्रतिरूप में होनी चाहिए ।" - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "मान्य ब्रजिलियन राज्य चुनिए । यह राज्य उपस्थित राज्यों में नहीं है ।" - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "अमान्य CPF संख्या ।" - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "इस क्षेत्र में 11 अथवा 14 अक्षर भरें ।" - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "अमान्य CNPJ संख्या ।" - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "इस क्षेत्र में कम से कम 14 अंक भरें" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "डाक संहिता के XXX XXX प्रतिरूप में भरें ।" - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "मान्य कनेडियन सोशल सेक्यूरिटी संख्या को XXX-XXX-XXX प्रतिरूप में भरें ।" - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "आरगाव" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "अप्पेनजेल इन्नरहोडन" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "अप्पेनजेल ओसरहोडन" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "बासेल-सटाड्ट" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "बासेल-लान्ड" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "बर्न" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "फ्रीबोर्ग" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "जेनीवा" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "ग्लारस" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "ग्राबुएन्डन" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "जुरा" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "लुसेर्न" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "न्यूकाटेल" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "निड्वाल्ढेन" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "ओब्वालडेन" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "षाफहौसेन" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "ष्विज" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "सोलोथर्न" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "सन्त.गालेन" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "थुर्गाव" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "टिचिनो" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "उरी" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "वलैस" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "वौड" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "जुग" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "जूरिच" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"मान्य स्विस्स पहचान अथवा पास्सपोर्ट संख्या को X1234567<0 अथवा 1234567890 प्रतिरूप में " -"भरें ।" - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "मान्य चिली कि RUT भरें ।" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "मान्य चिली कि RUT भरें । XX.XXX.XXX-X प्रतिरूप में भरें ।" - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "यह चिली का RUT अमान्य है ।" - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "डाक संहिता को XXXXXX प्रतिरूप में भरें ।" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "आईडी कार्ड नंबर 15 या 18 अंकों के होते हैं." - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "अवैध आईडी कार्ड नंबर:गलत जाँचयोग" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "अवैध आईडी कार्ड नंबर: गलत जन्मतिथि" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "अवैध आईडी कार्ड संख्या: गलत स्थान कोड" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "वैध फ़ोन नंबर दर्ज करें." - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "एक वैध सेल नंबर दर्ज करें." - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "प्राग" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "मध्य बोहेनिया क्षेत्र" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "दक्षिण बोहेनिया क्षेत्र" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "प्लज़ेन क्षेत्र" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Carlsbad क्षेत्र" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Usti क्षेत्र" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Liberec क्षेत्र" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Hradec क्षेत्र" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Pardubice क्षेत्र" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Vysocina क्षेत्र" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "दक्षिण मोरावियन क्षेत्र" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "ओलोोमोक क्षेत्र" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Zlin क्षेत्र" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "मोरावियन-सिलेसियन क्षेत्र" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "डाक संहिता को XXXXX अथवा XXX XX प्रतिरूप में भरें ।" - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "XXXXXX/XXXXयाXXXXXXXXXX प्रारूप में जन्म संख्या दर्ज करें." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "अवैध वैकल्पिक पैरामीटर लिंग, वैध मान 'f' और 'm'" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "वैध जन्म संख्या दर्ज करें." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "वैध आईसी संख्या दर्ज करें." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "बाडेन-वुएर्टेम्बर्ग" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "बवारिया" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "बर्लिन" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "ब्रान्डेनबर्ग" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "ब्रेमेन" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "हाम्बर्ग" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "हेस्सेन" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "मेकलेनबर्ग" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "लोअर साक्सोनी" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "उत्तरी रैन-वेस्टफालिया" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "रैनलान्ड-पलाटिनेट" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "सारलान्ड" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "साक्सोनी" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "साक्सोनी-अन्हाल्ट" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "ष्लेस्विग-होल्स्टैन" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "थुरिन्गिया" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "डाक संहिता को XXXXX प्रतिरूप में भरें ।" - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"मान्य जर्मन पहचान पत्र संख्या को XXXXXXXXXXX-XXXXXXX-XXXXXXX-X प्ततिरूप में भरें ।" - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "अरवा" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "अल्बासेट" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "अलाकान्ट" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "अल्मेरिया" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "अविला" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "बडाजोज" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "इल्लेस बालियर्स" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "बार्सिलोना" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "बर्गोस" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "कासेरेस" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "काडीज" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "कास्टेल्लो" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "स्यूडाड रियल" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "कोर्डोबा" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "आ कोरुन्या" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "कुएन्का" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "गिरोना" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "ग्रनडा" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "गुवाडलाजारा" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "गुविपुज्कोवा" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "हुएल्का" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "हुएस्का" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "जैन" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "लियोन" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "ल्लैडा" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "ला रियोजा" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "लुगो" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "माड्रिड" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "मलगा" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "मुर्किया" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "नवारे" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "अवर्सेन्स" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "अस्टुरियास" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "पलेन्शिया" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "ला पामास" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "पोन्टेवेड्रा" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "सलामन्का" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "सान्टा क्रूज द टेनेरिफे" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "कन्टाब्रिया" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "सेजोविया" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "सेविल्ला" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "सोरिया" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "तारागोना" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "तेरुवेल" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "टोलिडो" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "वलेन्शिया" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "वलाडोयिड" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "बिजकाया" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "जमोरा" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "जारागोस्सा" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "क्यूटा" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "मेलिल्ला" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "अन्डालुसिया" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "आरगोन" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "प्रिनसिपालिटी आफ अस्टुरियास" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "बलीयरिक द्वीप" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "बास्क देश" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "कनरी द्वीप" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "कास्टील-ला मान्का" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "कास्टील ओर लियोन" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "कटलोनिया" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "एक्स्ट्रीमदूरा" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "गलीशिया" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "मुर्किया प्रान्त" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "नवारे की फोरल समाज" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "वलेन्शियन समाज" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "मान्य डाक संहिता को 01XXX - 52XXX के श्रेणी और प्ततिरूप में भरें ।" - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"मान्य टेलिफोन संख्या को किसी एक प्रतिरूप में भरें : 6XXXXXXXX, 8XXXXXXXX अथवा " -"9XXXXXXXX ।" - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "कृपया मान्य NIF, NIE अथवा CIF भरें ।" - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "कृपया मान्य NIF अथवा NIE भरें ।" - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "NIF के लिए अमान्य जाँच योग ।" - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "NIE के लिए अमान्य जाँच योग ।" - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "CIF के लिए अमान्य जाँच योग ।" - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "कृपया मान्य बैंक खाता संख्या को XXXX-XXXX-XX-XXXXXXXXXX प्रतिरूप में भरें ।" - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "बैंक खाता संख्या के लिए अमान्य जाँच योग ।" - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "मान्य फिन्निश सोशल सेक्यूरिटी संख्या भरें ।" - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "फोन नंबर 0x XX XX XX XX प्रारूप में होना चाहिए है." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "मान्य डाक संहिता भरें ।" - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "बेडफार्डशायर" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "बकहिन्गमशायर" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "चेशायर" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "कार्नवाल और सिसिली द्वीप" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "क्मब्रिया" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "डेर्बीशायर" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "डेवोन" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "डोर्सेट" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "डर्हम" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "पूर्वी सस्सेक्स" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "एस्सेक्स" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "ग्लौसेस्टरशायर" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "ग्रेटर लन्डन" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "ग्रेटर मानचेस्टर" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "हाम्पशायर" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "हर्टफार्डशायर" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "केन्ट" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "लान्काशायर" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "लेसेस्टशायर" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "लिन्कनशायर" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "मेर्सीसैड" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "नोर्फोक" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "उत्तरी यार्कशायर" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "नार्थाम्पटनशायर" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "नार्थम्बरलान्ड" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "नाटिन्गहमशायर" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "आक्सफर्डशायर" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "श्रापशायर" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "सोमर्सेट" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "दक्षिणी यार्कशायर" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "स्टाफोर्डशायर" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "सफ्फोक" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "सर्रे" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "टैन और वेर" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "वार्विकशायर" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "पश्चिमी मिडलान्ड" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "पश्चिमी ससेक्स" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "पश्चिमी यार्कशायर" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "विल्टशायर" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "वर्सेस्टशायर" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "कौन्टी आन्ट्रिम" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "कौन्टी आर्माघ" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "कौन्टी डौन" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "कौन्टी फर्मानाघ" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "कौन्टी लन्डनडेर्री" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "कौन्टी टैरोन" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "लिविड" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "डैफेड" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "ग्वेन्ट" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "ग्वैनीड" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "मिड ग्लामोर्गान" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "पोवीस" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "दक्षिणी ग्लामोर्गान" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "पश्चिमी ग्लामोर्गान" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "बोर्डार्स" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "सेंट्रल स्काटलान्ड" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "डमफ्रैस और गालोवे" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "फिफे" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "ग्राम्पियेन" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "हैलान्ड" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "लोथियन" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "ओर्कनी द्वीप" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "शेटलान्ड द्वीप" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "स्ट्राथक्लैड" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "टेसैड" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "पश्चिमी आय्लस" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "इन्गलान्ड" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "उत्तरी आयरलान्ड" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "स्काटलान्ड" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "वेल्स" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "वैध 13 अंक JMBG दर्ज करें" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "तारीख खंड में त्रुटि" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "वैध 11 अंकीय OIB दर्ज करें" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "वैध वाहन के लाइसेंस प्लेट संख्या दर्ज करें" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "वैध स्थान कोड दर्ज करें" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "संख्या हिस्सा शून्य नहीं हो सकते है " - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "वैध 5 अंक का डाक कोड दर्ज करें" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "मान्य टेलिफोन संख्या भरें" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "मान्य क्षेत्र या मोबाइल नेटवर्क कोड दर्ज करें" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "फोन नंबर बहुत लंबा है" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "मान्य 19 अंकीय JMBAG जो 601,983 के साथ शुरू हो दर्ज करें" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "कार्ड जारी संख्या शून्य नहीं हो सकते है" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "ग्रद ज़ाग्रेब" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "ब्जेलोवार्सको-बिलोगोर्सका जुपानिजा " - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "ब्रोद्सको-पोसव्सका जुपानिजा" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "दुब्रोवाच्को-नेरेत्वन्सका जुपानिजा" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "इस्तार्सका जुपानिजा" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "कर्लोवाच्का जुपानिजा" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "कोप्रिव्निच्को-क्रिज़ेवाच्का जुपानिजा" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "क्रपिन्सको-ज़गोर्सका जुपानिजा" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "लिच्को-सेंज्सका जुपानिजा" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "मेदिमुर्सका जुपानिजा" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "ओस्जेच्को-बरंज्सका जुपानिजा" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "पोज़ेसको-स्लावोंसका जुपानिजा" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "प्रिमोर्सको-गोरंसका जुपानिजा " - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "सिसच्को-मोस्लावाच्का जुपानिजा" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "स्प्लित्सको-दल्मातिन्सका जुपानिजा" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "सिबेंसको-क्निन्सका जुपानिजा" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "वरज्दिन्सका जुपानिजा" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "विरोवितिच्को-पोद्रव्सका जुपानिजा" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "वुकोवार्सको-सृजेम्सका जुपानिजा " - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "ज़दार्सका जुपानिजा" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "ज़ग्रेबच्का जुपानिजा" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "मान्य डाक कोड दर्ज करें" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "वैध निक/KTP संख्या दर्ज करें" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "आचे" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "बाली" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "बेंटन" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "बेंग्कुलु" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "योग्याकार्ता" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "जकार्ता" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "गोरोंटलो" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "जाम्बी " - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "जावा बारत" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "जावा तेंगाह" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "जावा तिमुर" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "कालीमंतन बैरेट" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "कालीमंतन सेलातान" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "कालीमंतन तेंगाह " - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "कालीमंतन तिमुर " - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "केपुलौँ बंगका-बेलितुंग " - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "केपुलौँ इऔ " - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "लम्पुंग" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "मालुकु " - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "मालुकु उतरा " - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "नुसा तेंग्गारा बारात " - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "नुसा तेंग्गारा तिमुर " - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "पापुआ " - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "पापुआ बारात " - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr " इऔ" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "सुलावेसी बारात " - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "सुलावेसी सलतन " - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "सुलावेसी तेंगाह " - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "सुलावेसी तेंग्गारा " - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "सुलावेसी उतरा " - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "सुमतेरा बारात " - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "सुमतेरा सलतन " - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "सुमतेरा उतरा " - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "मगेलंग " - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "सुरकर्ता-सोलो " - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "मदिउन" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "केदिरी " - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "तपनुली " - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "नंग्ग्रोए असह दारुस्सलाम " - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "केपुलौँ बंगका बेलितुंग " - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "वाहिनी दूतावास" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "राजनयिक कोर" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "बैंडुंग" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "सुलावेसी उतरा दरतन " - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - तिमोर" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "सुलावेसी उतरा केपुलौँ " - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB -लोम्बोक " - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "पापुआ दान पापुआ बारात " - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "सिरेबों " - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - सुम्बावा" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - फ्लोरेस" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT-सुम्बा " - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "बोगोर" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "पेकलोंगन " - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "सेमारंग " - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "पति" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "सुराबाया " - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "मदुरा " - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "मलंग " - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "जेम्बेर " - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "बन्युमस " - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "संघीय सरकार" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "बोजोनेगोरो " - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "पुर्वाकर्ता " - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "सिदोअर्जो " - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "गृत " - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "आन्ट्रिम" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "आर्माघ" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "कार्लो" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "कैवन" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "क्लेयर" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "कॉर्क" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "डेरी" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "डोनेगल" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "नीचे" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "डबलिन" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "फर्मानाघ" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "गैल्वे" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "केरी" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "किल्दारे " - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "किल्केंन्य" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "लोइस " - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "लेइत्रिम " - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "लिमेरिच्क " - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "लोंग्फोर्ड " - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "लौट " - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "मैयो" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "माथ " - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "मोनाघन " - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "ओफ्फली " - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "रोस्कोम्मों " - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "स्लीगो " - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "टिप्पेरारी " - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "टैरोन" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "वातेर्फोर्ड " - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "वेस्त्माथ " - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "वेक्सफोर्ड " - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "विच्क्लो " - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "डाक संहिता को XXX XX प्रतिरूप में भरें" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr " वैध आइ.डि संख्या भरें." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "डाक संहिता को XXXXXX या XXX XXXके प्रतिरूप में दर्ज करें ।" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "भारतीय राज्य या क्षेत्र दर्ज करें." - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "फोन नंबर 02X-8X या 03X-7X या 04X-6Xप्रारूप में होना चाहिए है." - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "मान्य आइस्लान्डिक पहचान संख्या भरें । उसका प्रतिरूप XXXXXX-XXXX है ।" - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "यह आइस्लान्डिक पहचान संख्या अमान्य है ।" - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "मान्य डाक संहिता भरें ।" - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "मान्य सोशल सेक्यूरिटी संख्या भरें ।" - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "मान्य VAT संख्या भरें ।" - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "डाक संहिता को XXXXXXX or XXX-XXXX प्रतिरूप में भरें ।" - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "होक्कायिडो" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "औमोरी" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "इवाटे" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "मियागी" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "अकीटा" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "यमागाटा" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "फुकुशीमा" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "इबाराकी" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "तोचिगी" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "गन्मा" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "सैतामा" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "चीबा" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "टोकियो" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "कनगावा" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "यमनाशी" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "नगानो" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "नीगाटा" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "तोयामा" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "इशीकावा" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "फुकुयी" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "गिफू" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "शिजुकोवा" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "ऐची" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "मी" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "शिगा" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "क्योटो" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "ओसाका" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "ह्योगो" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "नारा" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "वकायामा" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "टोत्तोरी" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "शिमाने" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "ओकयामा" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "हिरोशीमा" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "यामागुची" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "टोकुशीमा" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "कगावा" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "एहीमे" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "कोची" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "फुकुवोका" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "सागा" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "नागासाकी" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "कुमामोटो" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "ओइटा" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "मियाजाकी" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "कागोशीमा" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "ओकिनावा" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "मान्य कुवैती नागरिक ID संख्या दर्ज करें" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" -"पहचान कार्ड नंबर या तो 4 से 7 अंक या एक अपरकेस अक्षर और 7 अंको का होना चाहिए." - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "इस क्षेत्र में वास्तव में 13 अंक होने चाहिए." - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "UMCN के पहले 7 अंकों एक मान्य पिछले तारीख का प्रतिनिधित्व करना चाहिए." - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "UMCN मान्य नहीं है." - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "एरोड्रोम" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "अरसिनोवो " - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "बेरोवो " - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "बितोला " - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "बोग्दंची " - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "बोगोविन्जे " - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "बोसिलोवो " - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "ब्र्वेनिचा " - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "बुटेल " - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "वलान्दोवो " - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "वसिलेवो " - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "वेव्कानी " - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "वेल्स " - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "विनिचा " - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "व्रनेस्तिचा " - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "व्रप्सिस्ते " - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "गाजी बाबा " - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "गेव्गेलिजा " - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "गोस्तिवर " - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "ग्राद्सको " - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "देबर " - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "देबर्चा " - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "देल्सवो " - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "देमिर कपिजा " - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "देमिर हिसार " - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "दोल्नेनी " - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "दृगोवो " - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "ग्जोर्चे पेत्रोव " - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "ज़ेलिनो " - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "ज़जास " - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "ज़ेलेनिकोवो " - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "ज्र्नोव्ची " - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "इलिंदें " - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "जेगुनोव्स " - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "कवदर्ची " - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "कर्बिंची " - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "कर्पोस " - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "किसेला वोडा " - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "किसवो " - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr " कोंचे " - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "कोकानी " - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "क्रतोवो " - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "करिव पलंका " - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "क्रिवोगास्तानी " - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "कृसेवो " - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "कुमनोवो " - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "लिप्कोवो " - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "लोज़ोवो " - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "मव्रोवो इ रोस्तुसा " - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "मकेदोंसका कामेनीका " - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "मकेदोंसकी ब्रोड " - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "मोगिला " - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "नेगोतिनो " - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "नोवाची " - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "नोवो सेलो " - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "ओस्लोमेज " - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "ओहरिड" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "पेट्रोवेक " - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "पह्सवो " - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "प्लास्निचा " - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "प्रिलेप " - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "प्रोबिस्तिप " - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "रादोविस " - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "रंकोव्स " - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "रेसें " - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "रोसोमन " - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "सरज " - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "स्वेती निकोले " - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "सोपिस्ते " - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "स्टार दोज्रण " - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "स्तरों नागोरिकाने " - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "स्त्रुगा " - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "स्त्रुमिचा " - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "स्तुदेनिकानी " - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "टारस " - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "तेतोवो " - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "सेंटर " - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "सेंटर-जुप " - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "सैर " - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "केसका" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "ससिनोवो-ओब्लेसेवो " - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "कसर-संदेवो " - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "स्टिप " - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "सुतो ओरिज़री " - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "मैसेडोनिया पहचान कार्ड संख्या" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "मैसेडोनिया नगर पालिका (2 वर्ण कोड)" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "अनोखी मास्टर नागरिक संख्या (13 अंक)" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "प्रारूप XXXXX में एक मान्य ज़िप कोड दर्ज करें." - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "मान्य RFC दर्ज करें." - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "RFC के लिए अमान्य जाँचयोग." - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "मान्य CURP दर्ज करें." - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "CURP के लिए अमान्य जाँचयोग." - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "मेक्सिको राज्य (तीन बड़े अक्षरों)" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "मेक्सिको ज़िप कोड" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "मेक्सिकन RFC" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "मेक्सिकन CURP" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "अगुवास्कालियेन्टेस" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "बाहा कालिफोर्निया" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "बाहा कालिफोर्निया सर" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "कम्पीची" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "चिहुआहुआ" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "चियापास" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "कोहुइला" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "कोलिमा" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "डिस्ट्रिटो फेड्रल" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "डुरान्गो" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "गुवेरेर्रो" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "गुवानाजुवाटो" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "हिडाल्गो" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "जलिस्को" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "एस्टादो द मेक्सिको" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "मिचोवाकान" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "मोरेलोस" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "नायारिट" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "नुवेवो लियोन" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "ओक्साका" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "पुवेब्ला" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "क्वेरेतारो" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "क्विन्ताना रू" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "सिनालोवा" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "सेन लुविस पोटोसि" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "सोनोरा" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "टबास्को" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "टमौलिपास" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "लाक्सकाला" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "वेराक्रूज" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "युकाटान" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "जकाटेकास" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "मान्य डाक संहिता भरें" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "मान्य SoFi संख्या भरें" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "ड्रेनथ" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "फ्लेवोलान्ड" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "फ्रैस्लान्ड" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "जेल्डेर्लान्ड" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "ग्रोनिजेन" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "नूर्ड-ब्राबान्ट" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "नूर्ड-हालान्ड" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "ओवरिस्सेल" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "उट्रेक्क" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "जीलान्ड" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "ज्वीड-हालान्ड" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "मान्य नोर्वेजी सोशल सेक्यौरिटी संख्या भरें ।" - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "इस क्षेत्र में 8 अंक भरें ।" - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "इस क्षेंत्र में 11 अंक भरें ।" - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "राष्ट्रीय पहचान संख्या में 11 अंक भरें ।" - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "राष्ट्रीय पहचान संख्या में गलत जाँच योग ।" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "राष्ट्रीय आईडी कार्ड संख्या 3 अक्षरों और 6 अंकों के होते हैं." - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "राष्ट्रीय आईडी कार्ड संख्या के लिए गलत जाँचयोग." - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" -"कर संख्या क्षेत्र (NIP) को XXX-XXX-XX-XX, XXX-XX-XX-XXX अथवा XXXXXXXXXX प्रतोरूप " -"में भरें." - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "कर संख्या के लिए गलत जाँच योग ।" - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "राष्ट्रीय व्यापार पंजीकरण संख्या (REGON) 9 या 14 अंक के होते हैं." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "राष्ट्रीय व्यापार रजिस्टर संख्या (REGON) के लिए गलत चेकसम." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "डाक संहिता को XX-XXX प्रतिरूप में भरें ।" - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "लोवर सिलेसिया" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "कुयाविया-पोमेरानिया" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "लब्लिन" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "लुबुस्ज" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "लोड्ज" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "लेस्सर पोलान्ड" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "मसोविया" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "ओपोल" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "सबकारपेथिया" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "पोदलासी" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "पोमेरानिया" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "सिलेसिया" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "स्विटोक्रिस्की" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "वार्मिया-मासुरिया" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "ग्रेटर पोलान्ड" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "पश्चिम पोमेरानिया" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "XXXX-XXX प्रारूप में ज़िप कोड दर्ज करें." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "फ़ोन नंबर 9 अंक के होते है, या + या 00 से शुरू करते हैं." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "मान्य CIF भरें ।" - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "मान्य CNP भरें ।" - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "मान्य IBAN को ROXX-XXXX-XXXX-XXXX-XXXX-XXXX प्रतिरूप में भरें ।" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "टेलिफोन संख्या को XXXX-XXXXXX प्रतिरूप में भरें ।" - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "मान्य डाक संहिता को XXXXXX प्रतिरूप में भरें ।" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "XXXXXX प्रारूप में डाक कोड दर्ज करें." - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "XXXX XXXXXX प्रारूप में पासपोर्ट संख्या दर्ज करें." - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "XX xxxxxxx प्रारूप में पासपोर्ट संख्या दर्ज करें." - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "केन्द्रीय संघीय काउंटी" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "दक्षिण संघीय काउंटी" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "उत्तर-पश्चिम संघीय काउंटी" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "सुदूर-पूर्व संघीय काउंटी" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "साइबेरियाई संघीय काउंटी" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "यूराल संघीय काउंटी" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "प्रिवोल्जह्स्क्य संघीय काउंटी" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "उत्तर-कोकेशियान संघीय काउंटी" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "मॉस्क्वा" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "सेंट-पीटर्सबर्ग" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "मोस्कोव्स्काया ओब्लास्ट" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "अद्य्गेया, रेस्पुब्लिका " - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "बश्कोर्तोस्तान, रेस्पुब्लिका " - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr " बुर्यटिया, रेस्पुब्लिका " - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "अल्ती, रेस्पुब्लिका " - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "दागेस्तान, रेस्पुब्लिका " - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "इन्गुश्स्काया रेस्पुब्लिका " - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "कबर्दिनो-बल्कार्स्काया रेस्पुब्लिका " - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "कल्म्य्किया , रेस्पुब्लिका " - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "कराचेवो-चेर्केस्स्काया रेस्पुब्लिका " - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "करेलिया, रेस्पुब्लिका " - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "कोमी, रेस्पुब्लिका " - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "मरीय एहल , रेस्पुब्लिका " - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "मोर्दोविया, रेस्पुब्लिका " - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "सखा, रेस्पुब्लिका (याकुतिया )" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "सेवेर्नाया ओसेटिया, रेस्पुब्लिका (अलानिया)" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "तातार्स्तान, रेस्पुब्लिका " - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "त्य्वा, रेस्पुब्लिका (तुवा)" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "उद्मुर्त्स्काया रेस्पुब्लिका " - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "खाकस्सिया, रेस्पुब्लिका " - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "चेचेंस्काया रेस्पुब्लिका" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "चुवाश्स्काया रेस्पुब्लिका " - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "अल्ताय्स्कीय क्रय " - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "ज़बय्कल्स्कीय क्रय " - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "कम्चात्स्कीय क्रय " - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "क्रस्नोदार्स्कीय क्रय " - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "क्रस्नोयार्स्कीय क्रय " - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "पेर्म्स्कीय क्रय " - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "प्रिमोर्स्कीय क्रय " - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "स्टाव्रोपोल'सिय्य क्रय " - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "खबरोव्स्कीय क्रय " - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "अमुर्स्काया ओब्लास्ट' " - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "अर्खंगेल'स्काय ओब्लास्ट'" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "अस्त्रखान्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "बेल्गोरोद्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "ब्र्यांस्काया ओब्लास्ट '" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "व्लादिमिर्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "वोल्गोग्रद्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "वोलोगोद्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "वोरोनेज्ह्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "इवानोव्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "इर्कुत्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "कलिनिन्ग्रद्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "कलुज्ह्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "केमेरोव्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "किरोव्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "कोस्त्रोम्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "कुर्गंस्काया ओब्लास्ट '" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "कुर्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "लेनिन्ग्रद्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "लिपेच्काया ओब्लास्ट'" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "मगदंस्काया ओब्लास्ट'" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "मुर्मंस्काया ओब्लास्ट '" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "निज्हेगोरोद्स्काजा ओब्लास्ट'" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "नोव्गोरोद्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "नोवोसिबिर्स्काया ओब्लास्ट '" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "ओम्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "ओरेंबुर्ग्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "ओर्लोव्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "पेंज़ेन्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "प्स्कोव्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "रोस्तोव्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "र्जज़न्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "समर्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "सरतोव्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "सखालिंस्काया ओब्लास्ट'" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "स्वेर्द्लोव्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "स्मोलेंस्काया ओब्लास्ट'" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "तम्बोव्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "त्वेर्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "तोम्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "टूल'स्काय ओब्लास्ट'" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "त्युमेंस्काया ओब्लास्ट'" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "उल'इअनोव्स्कय ओब्लास्ट '" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "चेल्याबिन्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "यारोस्लाव्स्काया ओब्लास्ट'" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "एव्रेय्स्काया अव्तोनोम्नाजा ओब्लास्ट'" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "नेनेच्कीय औतोनोम्न्य्य ओकृग " - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "खांटी-मंसिय्स्कीय अव्तोनोम्न्य्य ओकृग - युगरा " - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "चुकोत्स्कीय अव्तोनोम्न्य्य ओकृग " - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "यमलो-नेनेच्कीय अव्तोनोम्न्य्य ओकृग " - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "मान्य स्वीडिश संगठन संख्या दर्ज करें." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "मान्य स्वीडिश व्यक्तिगत पहचान संख्या दर्ज करें." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "समन्वय नंबर स्वीकार्य नहीं हैं." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "XXXXX प्रारूप में स्वीडिश डाक कोड दर्ज करें." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "स्टॉकहॉम" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "वास्तेबोतेन " - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "नारबोटेन " - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "उपासला" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "सोदेरमानलैंड " - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "ओस्टेरगोटलैंड " - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "जोंकोपिंग" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "क्रोनोबर्ग " - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "कालमार" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "गोटलैंड " - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "ब्लेकिंगे " - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "स्काने " - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "हालैंड " - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "वस्त्रा गाटलैंड " - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "वार्मलैंड " - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "ओरेब्रो" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "वास्टमैनलैंड " - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "डालार्ना " - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "गावलेबार्ग " - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "वास्तरनारलैंड " - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "जामलैंड " - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "EMSO के पहले 7 अंकों एक मान्य पिछले तारीख का प्रतिनिधित्व करना चाहिए." - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "EMSO मान्य नहीं है." - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "प्रपत्र SIXXXXXXXX में एक मान्य टैक्स संख्या दर्ज करें" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "प्रपत्र 386 XXXXXXXX या 0XXXXXXXX में फोन नंबर दर्ज करें." - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "बान्का बिस्ट्रिका" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "बान्का स्टियानिका" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "बार्डेजोव" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "बनोव्स नाड बेब्राव" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "ब्रेजनोव" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "ब्राटिस्लावा 1" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "ब्राटिस्लावा 2" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "ब्राटिस्लावा 3" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "ब्राटिस्लावा 4" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "ब्राटिस्लावा 5" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "बैट्चा" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "काड्का" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "डेत्वा" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "डोल्नी कुबिन" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "डुनास्का स्ट्रेडा" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "गलान्टा" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "गेल्निका" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "लोहोवेक" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "हुमेन्न" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "ल्लावा" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "केजमारोक" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "कोमार्नो" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "कोसिस 1" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "कोसिस 2" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "कोसिस 3" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "कोसिस 4" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "कोसिस - ओकोली" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "क्रूपिना" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "क्यसुके नोवे मेस्तो" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "लेविस" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "लेवोका" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "लिप्टोस्की मिकुलास" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "लुसेनेक" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "मलाकी" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "मार्टिन" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "मेड्जिलाबोर्स" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "मिकालोव्स" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "मैजावा" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "नमस्तोवो" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "निट्रा" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "नोवे मेस्टो नाड वाहोम" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "नोवे जाम्की" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "पार्तिजास्के" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "पेजिनोक" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "पियेस्तानी" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "पोल्टार" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "पोप्राड" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "पोवास्का बैस्ट्रिका" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "प्रेसोव" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "प्रियेविसा" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "पुकाव" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "रेवुका" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "रिमास्का सोबोटा" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "रोजोनावा" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "रुजोम्बेरोक" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "सबिनोव" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "सेनेक" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "सेनिका" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "स्कालिका" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "स्नीना" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "सोब्रानस" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "स्पिस्का नोवा वेस" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "स्टारा लुब्नोवा" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "स्ट्रोकोव" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "स्विड्निक" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "साला" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "टोपोल्कानी" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "ट्रेबिसोव" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "ट्रेन्किन" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "ट्रनावा" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "टुर्षियान्के टेप्लिस" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "दोसिन" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "वेलकी रिटिस" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "रानोव नाड टोप्लोव" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "लाटे मोरास" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "वोलेन" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "जार्नोडिका" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "जियर नाड रोनोम" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "जिलिना" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "बान्का बिस्ट्रिका प्रान्त" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "ब्राटिस्लावा प्रान्त" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "कोसिस प्रान्त" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "निट्रा प्रान्त" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "प्रेसोव प्रान्त" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "ट्रेन्किन प्रान्त" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "नावा प्रान्त" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "जिलिना प्रान्त" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "डाक संहिता को XXX XX प्रतिरूप में भरें." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "टेलिफोन संख्या को 0XXX XXX XXXX- प्रतिरूप में भरें ।" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "मान्य तुर्की पहचान संख्या दर्ज करें." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "तुर्की पहचान संख्या 11 अंकों का होना चाहिए." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "डाक संहिता को XXXXX अथवा XXXXX-XXXX प्रतिरूप में भरें ।" - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "टेलिफोन संख्या को -XXX XXX -XXXX- प्रतिरूप में भरें ।" - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "मान्य U.S सोशल सेक्यूरिटी संख्या को XXX-XX-XXXX प्रतिरूप में भरें ।" - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "एक अमेरिकी राज्य या क्षेत्र दर्ज करें." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "अमेरिकी राज्य (दो अपरकेस अक्षर)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "अमेरिकी डाक कोड (दो बड़े अक्षरों)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "टेलिफोन संख्या" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "X.XXX.XXX - X, xxxxxxx - X या XXXXXXXX प्रारूप में मान्य सीआई संख्या दर्ज करें." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "वैध आईसी संख्या दर्ज करें." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "मान्य दक्षिणि आफ्रिकी आइ.डि संख्या भरें" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "मान्य दक्षिणि आफ्रिकी डाक संहिता संख्या भरें" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "पूर्वी केप" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "फ्री स्टेट" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "गौटेन्ग" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "क्वाजूलू-नटाल" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "लिम्पोपो" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "पुमलान्गा" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "उत्तरी केप" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "उत्तर पूर्व" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "पश्चिमी केप" diff --git a/django/contrib/localflavor/locale/hr/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/hr/LC_MESSAGES/django.mo deleted file mode 100644 index f82722b249..0000000000 Binary files a/django/contrib/localflavor/locale/hr/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/hr/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/hr/LC_MESSAGES/django.po deleted file mode 100644 index f72ecdfeba..0000000000 --- a/django/contrib/localflavor/locale/hr/LC_MESSAGES/django.po +++ /dev/null @@ -1,3546 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# aljosa , 2011. -# Jannis Leidel , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:41+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: aljosa \n" -"Language-Team: Croatian (http://www.transifex.net/projects/p/django/language/" -"hr/)\n" -"Language: hr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Unesite ispravan poštanski broj formata NNNN ili ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Ovo polje zahtjeva samo brojeve." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Ovo polje zahtjeva 7 ili 8 numeričkih znakova." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Unesite ispravan CUIT formata XX-XXXXXXXX-X ili XXXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "Neispravan CUIT." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Carinthia" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Donja Austrija" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Gornja Austrija" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salzburg" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Štajerska" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tirol" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlberg" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Beč" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Unesite zip kod formata XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Unesite ispravan broj socijalnog osiguranja Austrije formata XXXX XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Antwerpen" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Brisel" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Istočna Flandrija" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Flamanski Brabant" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hainaut" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Liege" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburg" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Luksemburg" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Valonski Brabant" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Zapadna Flandrija" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Brussels Capital Region" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Flamanska regija" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Valonija" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "Unesite važeći poštanski broj u rasponu i formatu 1xxx - 9XXX." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Unesite valjani broj telefona u jednom od formata 0x xxx xx xx, xx xx xx " -"0xx, 04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x . xxx.xx." -"xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx ili 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Unesite zip kod formata XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Telefonski brojevi moraju biti formata XX-XXXX-XXXX." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Izaberite ispravnu brazilsku državu. Država nije jedna od dostupnih država." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Neispravan CPF broj." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Ovo polje zahtjeva najviše 11 numeričkih znakova ili 14 slova." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Neispravan CNPJ broj." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Ovo polje zahtjeva bar 14 numeričkih znakova" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Unesite poštanski broj formata XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"Unesite valjani kanadski broj socijalnog osiguranja formata XXX-XXX-XXX." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aargau" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basel-Stadt" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basel-Land" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Berne" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Fribourg" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Ženeva" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubuenden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucerne" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchatel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "St. Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zurich" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Unesite ispravan švicarski identifikacijski broj ili broj putovnice formata " -"X1234567<0 ili 1234567890" - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Unesite ispravan čileanski RUT" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Unesite ispravan čileanski RUT formata XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "Čileanski RUT nije ispravan." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Prag" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Središnja Češka" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Južna Češka" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Plzeňski kraj" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Karlovarski kraj" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Ústečki kraj" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Liberečki kraj" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Královéhradečki kraj" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Pardubički kraj" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Vysočina" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Južna Moravska" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Olomoučki kraj" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Zlínski kraj" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Moravsko-šleski kraj" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Unesi ispravan poštanski broj formata XXXXX ili XXX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "Unesite datum rođenja formata XXXXXX/XXXX ili XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" -"Neispravnan opcijonalni parametar spol, ispravne vrijednosti su 'f' i 'm'" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Unesite ispravan datum rodenja." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Unesite ispravan IC broj." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Wuerttemberg" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Bavaria" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlin" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburg" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Bremen" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburg" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hessen" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklenburg-Western Pomerania" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Donja Saska" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "Sjeverno Porajnje-Zapadna Falačka" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Rhineland-Palatinate" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Saarland" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Saska" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Saxony-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Thuringia" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Unesite zip kod formata XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Unesite broj njemačke identifikacijske kartice formata XXXXXXXXXXX-XXXXXXX-" -"XXXXXXX-X." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Arava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alacant" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almeria" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Avila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Illes Balears" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barcelona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Caceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cadiz" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castello" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Cordoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "A Coruna" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Girona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipuzkoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaen" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "Leon" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lleida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madrid" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Malaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murcia" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarre" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Ourense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturias" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palencia" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Cruz de Tenerife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Cantabria" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Seville" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valencia" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Bizkaia" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Zaragoza" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andalusia" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragon" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Kneževina Asturija" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Balearsko otočje" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Baskija" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Kanarski Otoci" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Kastilja-La Mancha" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Kastilja i Leon" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Katalonija" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Extremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galicia" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Regija Murcia" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Foral Community of Navarre" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Valencian Community" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Unesite ispravan poštanski broj u rasponu i formatu od 01XXX - 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Unesite ispravan broj telefona u jednom od formata 6XXXXXXXX, 8XXXXXXXX ili " -"9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Unesite ispravan NIF, NIE ili CIF." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Molim unesite ispravan NIF ili NIE." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Neispravan checksum za NIF" - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Neispravan checksum za NIF" - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Neispravan checksum za CIF." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Molim unesite ispravan broj bankovnog računa formata XXXX-XXXX-XX-XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Neispravan checksum za broj bankovnog računa." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Unesite ispravan broj finskog socijalnog osiguranja." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Telefonski brojevi moraju biti formata 0X XX XX XX XX." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Unesite ispravan poštanski broj." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Cornwall i Otoci Scilly" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cumbria" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "East Sussex" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Essex" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Greater London" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Greater Manchester" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordshire" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "North Yorkshire" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northamptonshire" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oxfordshire" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "South Yorkshire" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordshire" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne and Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "West Midlands" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "West Sussex" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "West Yorkshire" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "Županija Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "Županija Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "Županija Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "Županija Fermanagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "Županija Londonderry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "Županija Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "Južni Glamorgan" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "Zapadni Glamorgan" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Centralna Škotska" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries and Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Orkney Islands" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Shetland Islands" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Zapadno Otočje" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "Engleska" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Sjeverna irska" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Škotska" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Wales" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Unesite ispravanu registraciju za vozilo" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Unesite ispravan telefonski broj" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Unesite ispravan poštanski broj" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Unesite ispravan NIK/KTP broj." - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Aceh" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Banten" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Bengkulu" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Yogyakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Džakarta" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Gorontalo" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Jambi" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Jawa Barat" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Jawa Tengah" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Jawa Timur" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Kalimantan Barat" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Kalimantan Selatan" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Kalimantan Tengah" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Kalimantan Timur" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Kepulauan Bangka-Belitung" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Kepulauan Riau" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampung" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Maluku" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Maluku Utara" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Nusa Tenggara Barat" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Nusa Tenggara Timur" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papua" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Papua Barat" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Riau" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Sulawesi Barat" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Sulawesi Selatan" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Sulawesi Tengah" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Sulawesi Tenggara" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Sulawesi Utara" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Sumatera Barat" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Sumatera Selatan" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Sumatera Utara" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Magelang" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Surakarta - Solo" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madiun" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kediri" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanuli" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Nanggroe Aceh Darussalam" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Kepulauan Bangka Belitung" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Corps Consulate" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Corps Diplomatic" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Bandung" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Sulawesi Utara Daratan" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timor" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Sulawesi Utara Kepulauan" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lombok" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Papua dan Papua Barat" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Cirebon" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbawa" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Flores" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Bogor" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalongan" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Semarang" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Pati" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Surabaya" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Madura" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malang" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Jember" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banyumas" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Federalna vlada" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purwakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarjo" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Garut" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Antrim" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Armagh" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Carlow" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Cavan" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Clare" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Cork" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Derry" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Donegal" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Down" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Dublin" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fermanagh" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Galway" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerry" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Kildare" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Kilkenny" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Laois" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Leitrim" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerick" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Longford" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Louth" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Mayo" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Meath" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Monaghan" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Offaly" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Roscommon" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Sligo" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tipperary" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tyrone" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Waterford" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Westmeath" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Wexford" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Wexford" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Unesite poštanski broj u formatu XXXXX" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Unesite valjani ID broj." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "Unesite ispravan islandski identifikacijski broj formata XXXXXX-XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Islandski identifikacijski broj nije ispravan." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Unesite ispravan zip kod." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Unesite ispravan broj socijalnog osiguranja." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Unesite ispravan VAT broj." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Unesite poštanski broj formata XXXXXXX or XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaido" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Yamagata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukushima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Tochigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Chiba" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tokio" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Yamanashi" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Toyama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ishikawa" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Shizuoka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Shiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kyoto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hyogo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakayama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okayama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hiroshima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Yamaguchi" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokushima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Kochi" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Oita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Miyazaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagoshima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinawa" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Unesi ispravan kuvajtski Civil ID broj." - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baja California" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baja California Sur" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Distrito Federal" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Država Meksiko" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacán" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo León" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Querétaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potosí" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Yucatán" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Unesite ispravan poštanski broj" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Unesite ispravan SoFi broj" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drenthe" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Friesland" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Gelderland" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groningen" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Noord-Brabant" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Noord-Holland" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrecht" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zeeland" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Zuid-Holland" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Unesite ispravan broj norveškog socijalnog osiguranja." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Ovo polje zahtjeva 8 numeričkih znakova." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Ovo polje zahtjeva 11 numeričkih znakova." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Nacionalni identifikacijski broj sadrži 11 numeričkih znakova." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Neispravan checksum za Nacionalni identifikacijski broj." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Neispravan checksum za porezni broj (NIP)." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" -"National Business Register Number (REGON) sastoji se od 9 ili 14 numeričkih " -"znakova." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "Neispravan checked za National Business Register Number (REGON)." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Unesi poštanski broj formata XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Donja Šleska" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kuyavia-Pomerania" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublin" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubusz" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodz" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Mala Poljska" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Masovia" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opole" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Subcarpatia" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlasie" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomerania" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Šleska" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Swietokrzyskie" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Warmia-Masuria" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Greater Poland" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "West Pomerania" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Unesite poštanski broj u formatu XXX-XXXX." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "Telefonski brojevi moraju imati 9 brojeva, ili početi sa + ili 00." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Unesite ispravan CIF." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Unesite ispravan CNP." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "Unesite ispravan IBAN formata ROXX-XXXX-XXXX-XXXX-XXXX-XXXX" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Telefonski brojevi moraju biti formata XXXX-XXXXXX." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Unesite ispravan poštanski broj formata XXXXXX" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Unesite valjani broj švedske organizacije." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Unesite ispravan švedski osobni identifikacijski broj." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Koordinacijski brojevi nisu dozvoljeni." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Unesite švedski poštanski broj formata XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Stockholm" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Västerbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norrbotten" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Uppsala" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Södermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Östergötland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Jönköping" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmar" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Gotland" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Blekinge" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Skåne" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halland" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Västra Götaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Värmland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Örebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Västmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Dalarna" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gävleborg" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Västernorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jämtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Banska Bystrica" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banska Stiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Banovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytca" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Cadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolny Kubin" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajska Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenne" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kezmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komarno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Kosice I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Kosice II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Kosice III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Kosice IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Kosice - okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucke Nove Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoca" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovsky Mikulas" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lucenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Namestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nove Mesto nad Vahom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nove Zamky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizanske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piestany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltar" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povazska Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Presov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Puchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revuca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Roznava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ruzomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spisska Nova Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stara Lubovna" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidnik" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Sala" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolcany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebisov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trencin" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turcianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdosin" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velky Krtis" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Zarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Zilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Regija Banska Bystrica" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Regija Bratislava" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Regija Kosice" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Regija Nitra" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Regija Presov" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Regija Trencin" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Regija Trnava" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Regija Zilina" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Unesite poštanski broj u formatu XXXXX." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Telefonski brojevi moraju biti u 0XXX XXX XXXX formatu." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Unesite valjani turski identifikacijski broj." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "Turski Identifikacioni broj mora biti 11 znamenki." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Unesite zip kod formata XXXXX or XXXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Telefonski brojevi moraju biti u XXX-XXX-XXXX formatu." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" -"Unesi ispravan broj socijalnog osiguranja S.A.D.-a formata XXX-XX-XXXX." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Unesite državu ili teritorij u SAD-u." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Država S.A.D.-a (dva velika slova)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "Američki poštanski broj (dva velika slova)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Telefonski broj" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "Unesite valjani CI broj u X.XXX.XXX-X, XXXXXXX-X ili XXXXXXXX formatu." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Unesite ispravan CI broj." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Unesi ispravan južnoafrički ID broj." - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Unesite ispravan južnoafrički poštanski broj." - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Eastern Cape" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Free State" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Northern Cape" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "North West" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Western Cape" diff --git a/django/contrib/localflavor/locale/hu/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/hu/LC_MESSAGES/django.mo deleted file mode 100644 index 56b2458f2e..0000000000 Binary files a/django/contrib/localflavor/locale/hu/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/hu/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/hu/LC_MESSAGES/django.po deleted file mode 100644 index af64482c54..0000000000 --- a/django/contrib/localflavor/locale/hu/LC_MESSAGES/django.po +++ /dev/null @@ -1,3561 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Attila Nagy <>, 2012. -# Jannis Leidel , 2011. -# János Péter Ronkay , 2012. -# Kristóf Gruber <>, 2012. -# Szilveszter Farkas , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:41+0100\n" -"PO-Revision-Date: 2012-03-20 00:00+0000\n" -"Last-Translator: Attila Nagy <>\n" -"Language-Team: Hungarian (http://www.transifex.net/projects/p/django/" -"language/hu/)\n" -"Language: hu\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Adjon meg egy irányítószámot 'NNNN' vagy 'ANNNNAA' alakban." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Ez a mező csak számokat tartalmazhat." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Ennek a mezőnek 7 vagy 8 számjegyet kell tartalmaznia." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "" -"Adjon meg egy érvényes CUIT-t 'XX-XXXXXXXX', vagy 'XXXXXXXXXXXX' alakban." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "Érvénytelen CUIT." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Karintia" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Alsó-Ausztria" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Felső-Ausztria" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salzburg" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Stájerország" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tirol" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlberg" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Bécs" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Adjon meg egy irányítószámot 'XXXX' alakban." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Adjon meg egy érvényes ausztriai társadalombiztosítási azonosítót 'XXXX " -"XXXXXX' alakban." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "Adjon meg egy négy számjegyű irányítószámot." - -#: au/models.py:9 -msgid "Australian State" -msgstr "Ausztrál szövetségi állam" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "Ausztrál irányítószám" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "Ausztrál telefonszám" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Antwerpen" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Brüsszel" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Kelet-Flandria" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Flamand Brabant" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hainaut" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Liége" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburg" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Luxemburg" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Vallon Brabant" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Nyugat-Flandria" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Brüsszel fővárosi régió" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Flamand régió" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Vallónia" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" -"Adjon meg egy érvényes irányítószámot 1XXX-9XXX tartományban és formátumban." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Adjon meg egy érvényes telefonszámot az alábbi formátumok egyikében: 0x xxx " -"xx xx, 0xx xx xx xx, 04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx." -"xx, 0x.xxx.xx.xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx, vagy 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Adjon meg egy irányítószámot 'XXXXX-XXX' alakban." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "A telefonszámoknak 'XXX-XXX-XXXX' formátumúnak kell lenniük." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Válasszon ki egy érvényes brazil államot. Az Ön választása nincs az elérhető " -"lehetőségek között." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Érvénytelen CPF szám." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Ez a mező legfeljebb 11 számjegyet vagy 14 karaktert tartalmazhat." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Érvénytelen CNPJ szám." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Ennek a mezőnek legalább 14 számjegyet kell tartalmaznia." - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Írjon be egy irányítószámot 'XXX XXX' alakban." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"Adjon meg egy érvényes kanadai egészségbiztosítási számot 'XXX-XXX-XXX' " -"alakban." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aargau" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Bázel-város" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Bázel-vidék" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Berne" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Fribourg" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Genf" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubuenden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucerne" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchatel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "St. Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zürich" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Adjon meg egy érvényes svájci személyazonosító vagy útlevél számot " -"\"X1234567<0\" vagy \"1234567890\" alakban." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Adjon meg egy érvényes chilei RUT-ot." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Adjon meg egy érvényes chilei RUT-ot 'XX.XXX.XXX-X' alakban." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "A chilei RUT érvénytelen." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "Adjon meg egy 'XXXXXX' formátumú irányítószámot." - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "A személyi igazolvány szám 15 vagy 18 jegyből áll." - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "Hibás személyi igazolvány szám: Hibás ellenőrző összeg" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "Hibás személyi igazolvány szám: Hibás születési dátum" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "Hibás személyi igazolvány szám: Hibás hely kód" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "Adjon meg egy érvényes telefonszámot." - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "Adj meg érvényes mobil számot!" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Prága" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Közép-Csehországi kerület" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Dél-Csehországi kerület" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Plzeňi kerület" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Karlovy Vary-i kerület" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Ústí nad Labem-i kerület" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Libereci kerület" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Hradec Králové-i kerület" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Pardubicei kerület" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Vysočina kerület" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Dél-Morva kerület" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Olomouci kerület" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Zlíni kerület" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Morva–Sziléziai kerület" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Adjon meg egy irányítószámot 'XXXXX' vagy 'XXX XX' alakban." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" -"Adjon meg egy születési számot XXXXXX/XXXX, vagy XXXXXXXXXX formátumban." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "Érvénytelen nem. Érvényes értékek: 'f' és 'm'." - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Adjon meg egy érvényes születési számot." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Adjon meg egy érvényes IC számot." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Württemberg" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Bajorország" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlin" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburg" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Bréma" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburg" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hessen" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklenburg-Nyugat-Pomeránia" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Alsó-Szászország" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "Észak-Rajna-Vesztfália" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Rhineland-Palatinate" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Szárföld" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Szászország" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Szász-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Türingia" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Adjon meg egy irányítószámot 'XXXXX' alakban." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Adjon meg egy érvényes német személyazonosító számot \"XXXXXXXXXXX-XXXXXXX-" -"XXXXXXX-X\" alakban." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Arava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alacant" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almeria" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Avila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Baleár szigetek" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barcelona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgosz" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Caceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cadiz" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castello" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Cordoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "A Coruna" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Girona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipuzkoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaen" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "Leon" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lleida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madrid" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Malaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murcia" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarra" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Ourense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturias" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palenica" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Cruz de Tenerife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Cantabria" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Sevilla" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valencia" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Bizkaia" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Zaragoza" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andalúzia" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragon" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Asztúriák tartománya" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Baleár-szigetek" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Baszkföld" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Kanári-szigetek" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Kasztília-La Mancha" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Kasztília és Leon" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Katalónia" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Extremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galícia" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Murciai régió" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Navarrai autonóm közösség" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Valenciai közösség" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Adjon meg egy irányítószámot '01XXX-52XXX' alakban és tartományban." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Adjon meg egy telefonszámot '6XXXXXXXX', '8XXXXXXXX' vagy '9XXXXXXXX' " -"alakban." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Adjon meg egy érvényes NIF-et, NIE-t, vagy CIF-et." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Adjon meg egy érvényes NIF-et vagy NIE-t." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Érvénytelen NIF ellenőrzőösszeg." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Érvénytelen NIE ellenőrzőösszeg." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Érvénytelen CIF ellenőrzőösszeg." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Adjon meg egy érvényes bankszámlaszámot 'XXXX.XXXX-XX-XXXXXXXXXX' alakban." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Érvénytelen bankszámlaszám ellenőrzőösszeg." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Adjon meg egy érvényes finn társadalombiztosítási számot." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "A telefonszámnak 0X XX XX XX XX formátumban kell lennie." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Adjon meg egy érvényes irányítószámot." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Cornwall and Isles of Scilly" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cumbria" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "East Sussex" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Essex" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Greater London" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Greater Manchester" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertofrdshire" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Linclonshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "North Yorkshire" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northamptonshire" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oxfordshire" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "South Yorkshire" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordshire" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne and Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "West Midlands" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "West Sussex" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "West Yorkshire" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "County Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "Aounty Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "County Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "County Fermanagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "County Londonderry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "County Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "South Glamoran" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "West Glamorgan" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Közép-Skócia" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries and Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Orkey-szigetek" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Shetland-szigetek" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Western Isles" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "Anglia" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Észak-Írország" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Skócia" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Wales" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "A 13 számjegyű JMBG megadása" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "Hiba a dátum szegmensben" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "A 11 számjegyű OIB megadása" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Adjon meg egy érvényes rendszámot" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "Adj meg érvényes hely kódot" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "A szám rész nem lehet nulla" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "Adjon meg egy érvényes öt számjegyű irányítószámot." - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Adjon meg egy érvényes telefonszámot." - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "Adj meg érvényes vonalas vagy mobil körzet számot" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "A telefonszám túl hosszú" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "A kártya kibocsájtási száma nem lehet nulla" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "Grad Zagreb" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "Bjelovarsko-bilogorska županija" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "Brodsko-posavska županija" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "Dubrovačko-neretvanska županija" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "Istarska županija" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "Karlovačka županija" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "Koprivničko-križevačka županija" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "Krapinsko-zagorska županija" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "Ličko-senjska županija" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "Međimurska županija" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "Osječko-baranjska županija" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "Požeško-slavonska županija" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "Primorsko-goranska županija" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "Sisačko-moslavačka županija" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "Splitsko-dalmatinska županija" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "Šibensko-kninska županija" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "Varaždinska županija" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "Virovitičko-podravska županija" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "Vukovarsko-srijemska županija" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "Zadarska županija" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "Zagrebačka županija" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Adjon meg egy érvényes irányítószámot" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Adjon meg egy érvényes NIK/KTP számot" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Aceh" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Banten" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Bengkulu" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Yogyakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Dzsakarta" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Gorontalo" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Jambi" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Jawa Barat" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Jawa Tengah" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Jawa Timur" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Kalimantan Barat" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Kalimantan Selatan" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Kalimantan Tengah" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Kalimantan Timur" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Kepulauan Bangka-Belitung" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Kepulauan Riau" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampung" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Maluku" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Maluku Utara" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Nusa Tenggara Barat" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Nusa Tenggara Timur" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papua" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Papua Barat" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Riau" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Sulawesi Barat" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Sulawesi Selatan" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Sulawesi Tengah" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Sulawesi Tenggara" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Sulawesi Utara" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Sumatera Barat" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Sumatera Selatan" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Sumatera Utara" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Magelang" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Surakarta - Solo" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madiun" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kediri" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanuli" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Nanggroe Aceh Darussalam" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Kepulauan Bangka Belitung" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Corps Consulate" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Corps Diplomatic" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Bandung" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Sulawesi Utara Daratan" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timor" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Sulawesi Utara Kepulauan" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lombok" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Papua dan Papua Barat" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Cirebon" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbawa" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Flores" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Bogor" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalongan" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Semarang" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Pati" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Surabaya" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Madura" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malang" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Jember" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banyumas" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Federal Government" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purwakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarjo" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Garut" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Antrim" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Armagh" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Carlow" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Cavan" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Clare" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Cork" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Derry" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Donegal" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Down" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Dublin" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fermanagh" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Galway" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerry" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Kildare" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Kilkenny" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Laois" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Leitrim" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerick" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Longford" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Louth" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Mayo" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Meath" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Monaghan" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Offaly" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Roscommon" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Sligo" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tipperary" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tyrone" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Waterford" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Westmeath" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Wexford" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Wicklow" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Adjon meg egy irányítószámot XXXXX formátumban." - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Adjon meg egy érvényes ID számot." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "Adjon meg egy 'XXXXXX' vagy 'XXX XXX' formátumú irányítószámot." - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "Adj meg egy indiai államot vagy területet" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "A telefonszámokat 02X-8X, 03X-7X vagy 04X-6X formában kell megadni." - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" -"Adjon meg egy érvényes izlandi személyazonosító számot \"XXXXXX-XXXX\" " -"alakban." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Az izlandi személyazonosító szám érvénytelen." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Adjon meg egy érvényes irányítószámot." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Adjon meg egy érvényes társadalombiztosítási számot." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Adjon meg egy érvényes ÁFA számot." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Adjon meg egy irányítószámot \"XXXXXXX\" vagy \"XXX-XXXX\" alakban." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaido" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Yamagata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukushima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Tochigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Chiba" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tókió" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Yamanashi" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Toyama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ishikawa" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Shizuoka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Shiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kiotó" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Oszaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hyogo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakayama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okayama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hiroshima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Yamaguchi" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokushima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Kochi" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagaszaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Oita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Miyazaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagoshima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinawa" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Adjon meg egy érvények kuvaiti Civil ID számot" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" -"Az azonosító kártya számok 4 vagy 7 számjegyet, vagy egy nagy betűt majd 7 " -"számjegyet kell, hogy tartalmazzanak" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "Ennek a mezőnek pontosan 13 számot kell tartalmaznia." - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "Érvénytelen UMCN." - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "Aerodrom" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "Aračinovo" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "Berovo" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "Bitola" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "Bogdanci" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "Bogovinje" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "Bosilovo" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "Brvenica" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "Butel" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "Valandovo" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "Vasilevo" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "Vevčani" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "Veles" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "Vinica" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "Vraneštica" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "Vrapčište" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "Gazi Baba" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "Gevgelija" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "Gostivar" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "Gradsko" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "Debar" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "Debarca" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "Delčevo" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "Demir Kapija" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "Demir Hisar" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "Dolneni" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "Drugovo" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "Gjorče Petrov" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "Želino" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "Zajas" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "Zelenikovo" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "Zrnovci" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "Ilinden" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "Jegunovce" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "Kavadarci" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "Karbinci" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "Karpoš" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "Kisela Voda" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "Kičevo" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "Konče" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "Koćani" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "Kratovo" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "Kriva Palanka" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "Krivogaštani" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "Kruševo" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "Kumanovo" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "Lipkovo" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "Lozovo" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "Mavrovo i Rostuša" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "Makedonska Kamenica" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "Makedonski Brod" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "Mogila" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "Negotino" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "Novaci" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "Novo Selo" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "Oslomej" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "Ohrid" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "Petrovec" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "Pehčevo" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "Plasnica" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "Prilep" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "Probištip" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "Radoviš" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "Rankovce" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "Resen" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "Rosoman" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "Saraj" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "Sveti Nikole" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "Sopište" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "Star Dojran" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "Staro Nagoričane" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "Struga" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "Strumica" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "Studeničani" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "Tearce" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "Tetovo" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "Centar" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "Centar-Župa" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "Čair" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "Čaška" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "Češinovo-Obleševo" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "Čučer-Sandevo" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "Štip" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "Šuto Orizari" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "Macedón azonosító kártya szám" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "Macedón község (2 karakter)" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "Érvénytelen RFC ellenőrzőösszeg." - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "Érvénytelen CURP ellenőrzőösszeg." - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "Mexikói állam (három nagybetűs rövidítés)" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "Mexikói irányító szám" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "Mexikói RFC" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "Mexikói CURP" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baja California" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baja California Sur" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Distritio Federal" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Mexikóváros" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacán" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo León" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Querétaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potosí" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "SOnora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Yucatán" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Adjon meg egy érvényes irányítószámot. " - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Adjon meg egy érvényes SoFi számot." - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drenthe" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Friesland" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Gelderland" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groningen" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Noord-Brabant" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Noord-Holland" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrecht" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zeeland" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Zuid-Holland" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Adjon meg egy érvényes norvég társadalombiztosítási számot." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Ennek a mezőnek 8 számjegyet kell tartalmaznia." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Ennek a mezőnek 11 számjegyet kell tartalmaznia." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "A nemzeti azonosítószám 11 számjegyből áll." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Hibás a nemzeti azonosítószám ellenőrző kódja." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" -"A Nemzeti Személyi Azonosító Szám 3 karaktert és 6 számjegyet tartalmaz." - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "Érvénytelen a Nemzeti Személyi Azonosító Szám ellenőrzőösszege." - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Hibás az adószám (NIP) ellenőrzőösszege." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "A nemzeti vállakozásregisztrációs szám (REGON) 9 vagy 14 számból áll." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "Hibás a nemzeti üzleti azonosítószám (REGON) ellenőrzőösszege." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Adjon meg egy irányítószámot 'XX-XXX' alakban." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Alsó-Szilézia" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kuyavia-Pomerania" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublin" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubusz" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodz" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Kis-Lengyelország" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Mazóvia" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opole" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Szubkárpátok" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlasie" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomeránia" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Szilézia" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Swietokrzyskie" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Warmia-Masuria" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Nagy-Lengyelország" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "Nyugat-Pomeránia" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Adjon meg egy irányítószámot XXXX-XXX formátumban." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" -"A telefonszámnak 9 számjegyből kell állnia, vagy +-szal, vagy 00-val kell " -"kezdődnie." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Adjon meg egy érvényes CIF-t." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Adjon meg egy érvényes CNP-t." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "" -"Adjon meg egy érvényes nemzetközi bankszámlaszámot 'ROXX-XXXX-XXXX-XXXX-XXXX-" -"XXXX-XXXX' alakban." - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "A telefonszámoknak 'XXXX-XXXXXX' formátumúnak kell lenniük." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Adjon meg egy érvényes irányítószámot 'XXXXXX' alakban." - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "Add meg a postai kódot XXXXXX formában" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "Add meg az útlevél számot XXXX XXXXXX formában" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "Add meg az útlevél számot XX XXXXXXX formában" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "Központi szövetségi körzet" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "Déli szövetségi körzet" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "Északnyugati szövetségi körzet" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "Távol-keleti szövetségi körzet" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "Szibériai szövetségi körzet" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "Uráli szövetségi körzet" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "Volga-menti szövetségi körzet" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "Észak-kaukázusi szövetségi körzet" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "Moszkva" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "Szentpétervár" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "Moszkvai terület" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "Adige Köztársaság" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "Baskír Köztársaság" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "Burját Köztársaság" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "Altaj Köztársaság" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "Dagesztáni Köztársaság" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "Ingus Köztársaság" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "Kabard- és Balkárföld" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "Kalmük Köztársaság" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "Karacsáj-Cserkeszföld" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "Karélia Köztársaság" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr " Komi Köztársaság" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "Marij El Köztársaság" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "Mordvin Köztársaság" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "Szaha Köztársaság (Jakutföld)" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "Észak-Oszétia Köztársaság (Alánia)" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "Tatár Köztársaság" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "Tuvai Köztársaság (Tuva)" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "Udmurt Köztársaság" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "Hakaszföld" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "Csecsen Köztársaság" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "Csuvasföld" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "Altaji határterület" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "Bajkálontúli határterület" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "Kamcsatkai határterület" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "Krasznodari határterület" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "Krasznojarszki határterület" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "Permi határterület" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "Tengermelléki határterület" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "Sztavropoli határterület" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "Habarovszki határterület" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "Amurskaya oblast'" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "Arkhangel'skaya oblast'" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "Astrakhanskaya oblast'" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "Belgorodskaya oblast'" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "Bryanskaya oblast'" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "Vladimirskaya oblast'" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "Volgogradskaya oblast'" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "Vologodskaya oblast'" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "Voronezhskaya oblast'" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "Ivanovskaya oblast'" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "Irkutskaya oblast'" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "Kaliningradskaya oblast'" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "Kaluzhskaya oblast'" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "Kemerovskaya oblast'" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "Kirovskaya oblast'" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "Kostromskaya oblast'" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "Kurganskaya oblast'" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "Kurskaya oblast'" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "Leningradskaya oblast'" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "Lipeckaya oblast'" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "Magadani terület" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "Murmanszki terület" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "Nyizsnyij Novgorod-i terület" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "Novgorodi terület" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "Novoszibirszki terület" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "Omszki terület" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "Orenburgi terület" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "Orjoli terület" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "Penzai terület" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "Pszkovi terület" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "Rosztovi terület" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "Rjazanyi terület" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "Szamarai terület" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "Szaratovi terület" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "Szahalini terület" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "Szverdlovi terület" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "Szmolenszki terület" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "Tambovi terület" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "Tveri terület" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "Tomszki terület" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "Tulai terület" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "Tyumenyi terület" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "Uljanovszki terület" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "Cseljabinszki terület" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "Jaroszlavli terület" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "Zsidó Autonóm Terület" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "Nyenyec Autonóm KörzetNyenyec Autonóm Körzet" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "Hanti-Manysi Autonóm Körzet" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "Csukcs Autonóm Körzet" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "Jamali Nyenyec Autonóm Körzet" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Adjon meg egy érvényes svéd szervezeti számot." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Adjon meg egy érvényes svéd személyi számot." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Koordinációs számok nem megengedettek." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Adjon meg egy svéd irányítószámot XXXXX formátumban." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Stockholm" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Västerbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norrbotten" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Uppsala" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Södermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Östergötland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Jönköping" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmar" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Gotland" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Blekinge" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Skåne" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halland" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Västra Götaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Värmland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Örebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Västmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Dalarna" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gävleborg" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Västernorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jämtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "Az EMSO első 7 számjegyének érvényes, múltbéli dátumot kell jelölnie." - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "Érvénytelen EMSO." - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "Adj meg érvényes adószámot SIXXXXXXXX formában" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "A telefonszámot +386XXXXXXXX vagy 0XXXXXXXX formátumban kell megadnod" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Besztercebánya" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Selmecbánya" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bártfa" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Banovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Pozsony I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Pozsony II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Pozsony III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Pozsony IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Pozsony V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytca" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Cadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolny Kubin" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunaszerdahely" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galánta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenne" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Késmárk" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komárom" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Kassa I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Kassa II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Kassa III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Kassa IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Kassa - környék" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucke Nove Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Léva" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoca" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptószentmiklós" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Losonc" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacka" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Túrócszentmárton" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Namestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nyitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nove Mesto nad Vahom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Érsekújvár" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizanske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piestany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltar" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprád" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povazska Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Eperjes" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Puchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revuca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimaszombat" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Rozsnyó" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Rózsahegy" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Igló" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stara Lubovna" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidnik" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Sellye" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolcany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebisov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trencsén" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Nagyszombat" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turcianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdosin" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velky Krtis" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zólyom" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Zarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Zsolna" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Besztercebánya régió" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Pozsony régió" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Kassa régió" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Nyitra régió" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Eperjesi régió" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Trencsén régió" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Nagyszombati régió" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Zsolna régió" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Adjon meg egy irányítószámot XXXXX formátumban." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "A telefonszámnak 0XXX XXX XXXX formátumban kell lennie." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Adjon meg egy érvényes török azonosító számot." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "Egy török azonosító szám 11 számjegyből áll." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Adjon meg egy irányítószámot 'XXXXX', vagy 'XXXXX-XXXX' alakban." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "A telefonszámnak XXX-XXX-XXXX formátumban kell lennie." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "Adjon meg egy érvényes USA SSN-t 'XXX-XX-XXXX' formátumban." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Adjon meg egy U.S. államot vagy területet." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "USA állam (két nagybetű)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "U.S. postai azonosító (két nagybetű)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Telefonszám" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" -"Adjon meg egy érvényes CI számot X.XXX.XXX-X,XXXXXXX-X, vagy XXXXXXXX " -"formátumban." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Adjon meg egy érvényes CI számot." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Adjon meg egy érvényes dél-afrikai azonosító számot." - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Adjon meg egy érvényes dél-afrikai irányítószámot." - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Eastern Cape" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Free State" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu -Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Northern Cape" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "North West" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Western Cape" diff --git a/django/contrib/localflavor/locale/id/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/id/LC_MESSAGES/django.mo deleted file mode 100644 index 93c2970e49..0000000000 Binary files a/django/contrib/localflavor/locale/id/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/id/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/id/LC_MESSAGES/django.po deleted file mode 100644 index 6f340c1fb8..0000000000 --- a/django/contrib/localflavor/locale/id/LC_MESSAGES/django.po +++ /dev/null @@ -1,3555 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011. -# rodin , 2011. -# , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:41+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: rodin \n" -"Language-Team: Indonesian (http://www.transifex.net/projects/p/django/" -"language/id/)\n" -"Language: id\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Masukkan kode pos dalam format NNNN atau ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Bidang ini hanya membutuhkan isian angka." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Bidang ini membutuhkan isian sebanyak 7 atau 8 angka." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Masukkan CUIT yang valid dalam format XX-XXXXXXXX-X atau XXXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "CUIT salah." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Carinthia" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Lower Austria" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Upper Austria" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salzburg" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Styria" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tyrol" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlberg" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Wina" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Masukkan kode pos dalam format XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Masukkan Nomor Identifikasi Sosial Austria yang valid dalam format XXXX " -"XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "Masukkan 4 angka kode pos" - -#: au/models.py:9 -msgid "Australian State" -msgstr "Negara Bagian Australia" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "Kode pos Australia" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "Nomor telepon Australia" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Antwerp" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Brussels" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "East Flanders" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Flemish Brabant" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hainaut" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Liege" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburg" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Luksemburg" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Walloon Brabant" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "West Flanders" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Brussels Capital Region" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Flemish Region" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Wallonia" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "Masukkan kode pos yang valid dalam rentang dan format 1XXX - 9XXX." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Masukkan nomor telepon yang valid dalam salah satu format sebagai berikut: " -"0x xxx xx xx, 0xx xx xx xx, 04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/" -"xx.xx.xx, 0x.xxx.xx.xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx, atau " -"04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Masukkan kode pos dalam format XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Nomor telepon harus dalam format XX-XXXX-XXXX." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Pilih negara bagian Brazil yang valid. Provinsi ini tidak termasuk dalam " -"daftar negara bagian." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Nomor CPF salah." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "" -"Bidang ini hanya membutuhkan isian paling banyak 11 angka atau 14 huruf." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Nomor CNPJ salah." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Bidang ini membutuhkan sedikitnya 14 angka" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Masukkan kode pos dalam format XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"Masukkan nomor Asuransi Sosial Kanada yang valid dalam format XXX-XXX-XXX." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aargau" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basel-Stadt" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basel-Land" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Berne" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Fribourg" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Geneva" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubuenden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucerne" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchatel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "St. Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zurich" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Masukkan identitas atau nomor paspor Swiss yang valid dalam bentuk " -"X1234567<0 atau 1234567890." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Masukkan RUT Chile yang valid." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Masukkan RUT Chile yang valid. Formatnya adalah XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "RUT Chile salah." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "Masukkan angka kode pos dalam format XXXXXX" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "Nomor Kartu ID terdiri dari 15 atau 18 angka." - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "Nomor Kartu ID tidak valid: Ceksum salah" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "Nomor Kartu ID tidak valid: Tanggal lahir salah" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "Nomor Kartu ID tidak valid: Kode lokasi salah" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "Masukkan nomor telepon yang valid." - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "Masukkan nomor ponsel yang valid." - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Praha" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Daerah Bohemia Tengah" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Daerah Bohemia Selatan" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Daerah Pilsen" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Daerah Carlsbad" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Daerah Usti" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Daerah Liberec" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Daerah Hradec" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Daerah Pardubice" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Daerah Vysocina" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Daerah Moravia Selatan" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Daerah Olomouc" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Daerah Zlin" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Daerah Moravia-Silesian" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Masukkan kode pos dalam format XXXXX atau XXX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "Masukkan tanggal lahir dalam format XXXXXX/XXXX atau XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "Parameter opsional jenis kelamin salah, pilih 'f' atau 'm'" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Masukkan tanggal lahir yang valid." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Masukkan nomor IC yang valid." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Wuerttemberg" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Bavaria" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlin" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburg" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Bremen" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburg" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hessen" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklenburg-Western Pomerania" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Lower Saxony" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "Rhine-Westphalia Utara" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Rhineland-Palatinate" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Saarland" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Saxony" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Saxony-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Thuringia" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Masukkan kode pos dalam format XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Masukkan nomor kartu identitas Jerman yang valid dalam format XXXXXXXXXXX-" -"XXXXXXX-XXXXXXX-X." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Arava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alacant" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almeria" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Avila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Illes Balears" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barcelona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Caceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cadiz" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castello" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Cordoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "A Coruna" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Girona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipuzkoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaen" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "Leon" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lleida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madrid" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Malaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murcia" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarre" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Ourense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturias" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palencia" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Cruz de Tenerife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Cantabria" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Seville" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valencia" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Bizkaia" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Zaragoza" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andalusia" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragon" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Principality of Asturias" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Balearic Islands" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Basque Country" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Canary Islands" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Castile-La Mancha" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Castile and Leon" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Catalonia" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Extremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galicia" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Region of Murcia" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Foral Community of Navarre" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Valencian Community" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Masukkan kode pos yang valid dalam format 01XXX - 52XXX" - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Masukkan nomor telepon yang valid dalam format 6XXXXXXXX, 8XXXXXXXX atau " -"9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Mohon masukkan NIF, NIE atau CIF yang valid." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Mohon masukkan NIF atau NIE yang valid." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Checksum untuk NIF salah." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Checksum untuk NIE salah." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Checksum untuk CIF salah." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Masukkan nomor akun bank yang valid dalam format XXXX-XXXX-XX-XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Checksum untuk nomor akun bank salah." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Masukkan nomor identitas Finlandia yang valid." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Nomor telepon harus dalam format 0X XX XX XX XX." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Masukkan kode pos yang valid." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Cornwall dan Kepulauan Scilly" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cumbria" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "East Sussex" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Essex" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Greater London" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Greater Manchester" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordshire" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "North Yorkshire" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northamptonshire" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oxfordshire" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "South Yorkshire" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordshire" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne and Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "West Midlands" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "West Sussex" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "West Yorkshire" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "County Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "County Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "County Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "County Fermanagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "County Londonderry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "County Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "South Glamorgan" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "West Glamorgan" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Central Scotland" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries dan Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Kepulauan Orkney" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Kepulauan Shetland" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Western Isles" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "Inggris" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Irlandia Utara" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Scotlandia" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Wales" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "Masukkan 13 angka JMBG" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "Galat pada segmen tanggal" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "Masukkan 11 angka OIB" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Masukkan nomor polisi kendaraan yang valid" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "Masukkan kode lokasi yang valid" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "Bagian angka tidak boleh nol" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "Masukkan 5 angka kode pos yang valid" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Masukkan nomor telepon yang valid" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "Masukkan kode area atau jaringan ponsel yang valid" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "Nomor telepon terlalu panjang" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "Masukkan 5 angka JMBAG valid diawali dengan 601983" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "Nomor penerbitan kartu tidak boleh nol" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "Grad Zagreb" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "Bjelovarsko-bilogorska županija" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "Brodsko-posavska županija" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "Dubrovačko-neretvanska županija" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "Istarska županija" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "Karlovačka županija" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "Koprivničko-križevačka županija" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "Krapinsko-zagorska županija" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "Ličko-senjska županija" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "Međimurska županija" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "Osječko-baranjska županija" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "Požeško-slavonska županija" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "Primorsko-goranska županija" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "Sisačko-moslavačka županija" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "Splitsko-dalmatinska županija" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "Šibensko-kninska županija" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "Varaždinska županija" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "Virovitičko-podravska županija" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "Vukovarsko-srijemska županija" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "Zadarska županija" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "Zagrebačka županija" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Masukkan kode pos yang valid" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Masukkan nomor NIK/KTP yang valid" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Aceh" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Banten" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Bengkulu" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Yogyakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Jakarta" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Gorontalo" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Jambi" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Jawa Barat" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Jawa Tengah" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Jawa Timur" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Kalimantan Barat" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Kalimantan Selatan" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Kalimantan Tengah" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Kalimantan Timur" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Kepulauan Bangka-Belitung" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Kepulauan Riau" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampung" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Maluku" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Maluku Utara" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Nusa Tenggara Barat" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Nusa Tenggara Timur" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papua" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Papua Barat" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Riau" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Sulawesi Barat" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Sulawesi Selatan" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Sulawesi Tengah" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Sulawesi Tenggara" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Sulawesi Utara" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Sumatera Barat" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Sumatera Selatan" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Sumatera Utara" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Magelang" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Surakarta - Solo" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madiun" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kediri" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanuli" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Nanggroe Aceh Darussalam" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Kepulauan Bangka Belitung" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Korps Konsulat" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Korps Diplomatik" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Bandung" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Sulawesi Utara Daratan" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timor" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Sulawesi Utara Kepulauan" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lombok" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Papua dan Papua Barat" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Cirebon" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbawa" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Flores" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Bogor" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalongan" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Semarang" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Pati" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Surabaya" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Madura" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malang" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Jember" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banyumas" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Pemerintahan Federal" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purwakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarjo" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Garut" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Antrim" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Armagh" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Carlow" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Cavan" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Clare" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Cork" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Derry" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Donegal" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Down" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Dublin" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fermanagh" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Galway" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerry" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Kildare" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Kilkenny" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Laois" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Leitrim" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerick" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Longford" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Louth" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Mayo" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Meath" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Monaghan" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Offaly" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Roscommon" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Sligo" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tipperary" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tyrone" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Waterford" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Westmeath" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Wexford" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Wicklow" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Masukkan kode pos dalam format XXXXX" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Masukkan nomor ID yang valid." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "Masukkan kode pos dalam format XXXXXX atau XXX XXX." - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "Masukkan negara bagian atau teritori India." - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "Format nomor telepon yang benar adalah 02X-8X atau 03X-7X atau 04X-6X" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" -"Masukkan nomor identifikasi Islandia yang valid. Formatnya adalah XXXXXX-" -"XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Nomor identifikasi Islandia salah." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Masukkan kode pos yang valid." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Masukkan nomor Jaminan Sosial yang valid." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Masukkan nomor VAT yang valid." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Masukkan kode pos dalam format XXXXXXX atau XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaido" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Yamagata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukushima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Tochigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Chiba" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tokyo" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Yamanashi" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Toyama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ishikawa" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Shizuoka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Shiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kyoto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hyogo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakayama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okayama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hiroshima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Yamaguchi" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokushima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Kochi" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Oita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Miyazaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagoshima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinawa" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Masukkan nomor ID Warga Kuwait yang valid" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" -"Nomor kartu identitas harus mengandung 4 hingga 7 angka atau satu huruf " -"besar dan 7 angka. " - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "Isian ini harus berisi persis 13 angka." - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "7 angka awal UMCN harus mewakili tanggal di masa lalu yang valid." - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "UMCN tidak valid" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "Aerodrom" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "Aračinovo" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "Berovo" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "Bitola" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "Bogdanci" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "Bogovinje" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "Bosilovo" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "Brvenica" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "Butel" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "Valandovo" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "Vasilevo" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "Vevčani" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "Veles" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "Vinica" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "Vraneštica" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "Vrapčište" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "Gazi Baba" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "Gevgelija" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "Gostivar" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "Gradsko" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "Debar" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "Debarca" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "Delčevo" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "Demir Kapija" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "Demir Hisar" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "Dolneni" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "Drugovo" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "Gjorče Petrov" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "Želino" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "Zajas" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "Zelenikovo" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "Zrnovci" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "Ilinden" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "Jegunovce" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "Kavadarci" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "Karbinci" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "Karpoš" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "Kisela Voda" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "Kičevo" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "Konče" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "Koćani" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "Kratovo" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "Kriva Palanka" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "Krivogaštani" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "Kruševo" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "Kumanovo" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "Lipkovo" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "Lozovo" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "Mavrovo i Rostuša" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "Makedonska Kamenica" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "Makedonski Brod" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "Mogila" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "Negotino" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "Novaci" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "Novo Selo" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "Oslomej" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "Ohrid" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "Petrovec" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "Pehčevo" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "Plasnica" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "Prilep" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "Probištip" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "Radoviš" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "Rankovce" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "Resen" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "Rosoman" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "Saraj" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "Sveti Nikole" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "Sopište" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "Star Dojran" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "Staro Nagoričane" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "Struga" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "Strumica" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "Studeničani" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "Tearce" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "Tetovo" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "Centar" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "Centar-Župa" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "Čair" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "Čaška" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "Češinovo-Obleševo" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "Čučer-Sandevo" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "Štip" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "Šuto Orizari" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "Nomor kartu identitas Makedonia" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "Munisipalitas Makedonia (2 kode karakter)" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "Nomor penduduk master unik (13 angka)" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "Masukkan kode pos yang valid dalam format XXXXXX." - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "Masukkan RFC yang valid." - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "Ceksum untuk RFC tidak valid" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "Masukkan CURP yang valid." - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "Ceksum untuk CURP tidak valid" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "Negara bagian Meksiko (tiga huruf besar)" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "Kode pos Meksiko" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "RFC Meksiko" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "CURP Meksiko" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baja California" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baja California Sur" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Distrito Federal" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Estado de México" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacán" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo León" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Querétaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potosí" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Yucatán" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Masukkan kode pos yang valid" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Masukkan nomor SoFi yang valid" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drenthe" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Friesland" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Gelderland" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groningen" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Noord-Brabant" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Noord-Holland" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrecht" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zeeland" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Zuid-Holland" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Masukkan nomor jaminan sosial Norwegia yang valid." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Bidang ini membutuhkan isian 8 angka." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Bidang ini membutuhkan isian 11 angka." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Nomor Identifikasi Nasional terdiri dari 11 angka." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Checksum untuk Nomor Identifikasi Nasional salah." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "Nomor Kartu ID Nasional terdidi dari 3 huruf dan 6 angka." - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "Ceksum Nomor Kartu ID Nasional salah." - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" -"Masukkan isian nomor pajak (NIP) dalam format XXX-XXX-XX-XX, XXX-XX-XX-XXX, " -"atau XXXXXXXXXX." - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Checksum untuk Nomor Pajak (NIP) salah." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "Nomor Registrasi Bisnis Nasional (REGON) terdiri dari 9 atau 14 angka." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "Checksum untuk Nomor Registrasi Bisnis Nasional (REGON) salah." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Masukkan kode pos dalam format XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Lower Silesia" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kuyavia-Pomerania" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublin" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubusz" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodz" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Lesser Poland" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Masovia" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opole" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Subcarpatia" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlasie" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomerania" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Silesia" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Swietokrzyskie" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Warmia-Masuria" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Greater Poland" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "West Pomerania" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Masukkan kode pos dalam format XXXX-XXX." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "Nomor telepon harus memiliki 9 angka, atau dimulai dari + atau 00." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Masukkan CIF yang valid." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Masukkan CNP yang valid." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "Masukkan IBAN yang valid dalam format ROXX-XXXX-XXXX-XXXX-XXXX-XXXX" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Nomor telepon harus dalam format XXXX-XXXXXX." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Masukkan kode pos yang valid dalam format XXXXXX" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "Masukkan kode pos dalam format XXXXXX." - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "Masukkan nomor paspor dalam format XXXX XXXXXX." - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "Masukkan nomor paspor dalam format XX XXXXXXX." - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "Central Federal County" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "South Federal County" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "North-West Federal County" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "Far-East Federal County" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "Siberian Federal County" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "Ural Federal County" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "Privolzhsky Federal County" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "North-Caucasian Federal County" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "Moskow" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "Saint-Peterburg" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "Moskovskaya oblast'" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "Adygeya, Respublika" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "Bashkortostan, Respublika" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "Buryatia, Respublika" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "Altay, Respublika" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "Dagestan, Respublika" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "Ingushskaya Respublika" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "Kabardino-Balkarskaya Respublika" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "Kalmykia, Respublika" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "Karachaevo-Cherkesskaya Respublika" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "Karelia, Respublika" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "Komi, Respublika" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "Mariy Ehl, Respublika" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "Mordovia, Respublika" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "Sakha, Respublika (Yakutiya)" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "Severnaya Osetia, Respublika (Alania)" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "Tatarstan, Respublika" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "Tyva, Respublika (Tuva)" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "Udmurtskaya Respublika" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "Khakassiya, Respublika" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "Chechenskaya Respublika" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "Chuvashskaya Respublika" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "Altayskiy Kray" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "Zabaykalskiy Kray" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "Kamchatskiy Kray" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "Krasnodarskiy Kray" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "Krasnoyarskiy Kray" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "Permskiy Kray" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "Primorskiy Kray" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "Stavropol'siyy Kray" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "Khabarovskiy Kray" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "Amurskaya oblast'" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "Arkhangel'skaya oblast'" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "Astrakhanskaya oblast'" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "Belgorodskaya oblast'" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "Bryanskaya oblast'" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "Vladimirskaya oblast'" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "Volgogradskaya oblast'" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "Vologodskaya oblast'" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "Voronezhskaya oblast'" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "Ivanovskaya oblast'" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "Irkutskaya oblast'" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "Kaliningradskaya oblast'" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "Kaluzhskaya oblast'" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "Kemerovskaya oblast'" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "Kirovskaya oblast'" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "Kostromskaya oblast'" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "Kurganskaya oblast'" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "Kurskaya oblast'" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "Leningradskaya oblast'" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "Lipeckaya oblast'" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "Magadanskaya oblast'" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "Murmanskaya oblast'" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "Nizhegorodskaja oblast'" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "Novgorodskaya oblast'" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "Novosibirskaya oblast'" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "Omskaya oblast'" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "Orenburgskaya oblast'" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "Orlovskaya oblast'" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "Penzenskaya oblast'" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "Pskovskaya oblast'" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "Rostovskaya oblast'" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "Rjazanskaya oblast'" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "Samarskaya oblast'" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "Saratovskaya oblast'" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "Sakhalinskaya oblast'" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "Sverdlovskaya oblast'" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "Smolenskaya oblast'" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "Tambovskaya oblast'" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "Tverskaya oblast'" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "Tomskaya oblast'" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "Tul'skaya oblast'" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "Tyumenskaya oblast'" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "Ul'ianovskaya oblast'" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "Chelyabinskaya oblast'" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "Yaroslavskaya oblast'" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "Evreyskaya avtonomnaja oblast'" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "Neneckiy autonomnyy okrug" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "Chukotskiy avtonomnyy okrug" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "Yamalo-Neneckiy avtonomnyy okrug" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Masukkan nomor organisasi Swedia yang valid." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Masukkan nomor identifikasi pribadi Swedia yang valid." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Nomor koordinasi tidak diperbolehkan." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Masukkan kode pos Swedia dalam format XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Stockholm" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Västerbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norrbotten" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Uppsala" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Södermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Östergötland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Jönköping" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmar" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Gotland" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Blekinge" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Skåne" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halland" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Västra Götaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Värmland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Örebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Västmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Dalarna" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gävleborg" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Västernorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jämtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "7 angka pertama EMSO harus mewakili tanggal di masa lalu yang valid" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "EMSO tidak valid." - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "Masukkan nomor pajak yang valid dalam format SIXXXXXXXX" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "Masukkan nomor telepon dalam format +386XXXXXXXX atau 0XXXXXXXX." - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Banska Bystrica" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banska Stiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Banovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytca" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Cadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolny Kubin" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajska Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenne" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kezmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komarno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Kosice I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Kosice II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Kosice III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Kosice IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Kosice - okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucke Nove Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoca" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovsky Mikulas" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lucenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Namestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nove Mesto nad Vahom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nove Zamky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizanske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piestany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltar" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povazska Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Presov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Puchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revuca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Roznava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ruzomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spisska Nova Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stara Lubovna" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidnik" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Sala" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolcany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebisov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trencin" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turcianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdosin" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velky Krtis" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Zarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Zilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Daerah Banska Bystrica" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Daerah Brastilava" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Daerah Kosice" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Daerah Nitra" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Daerah Presov" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Daerah Trencin" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Daerah Trnava" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Daerah Zilina" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Masukkan kode pos dalam format XXXXX." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Nomor telepon harus dalam format 0XXX XXX XXXX." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Masukkan nomor Identifikasi Turki yang valid." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "Jumlah angka pada Nomor Identifikasi Turki harus sebanyak 11 angka." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Masukkan kode pos dalam format XXXXX atau XXXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Nomor telepon harus dalam format XXX-XXX-XXXX." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" -"Masukkan nomor Jaminan Sosial A.S. yang valid dalam format XXX-XX-XXXX." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Masukkan negara bagian atau teritori A.S." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Negara bagian A.S. (dua huruf besar)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "Kode pos A.S. (dua huruf besar)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Nomor telepon" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" -"Masukkan nomor CI yang valid dalam format X.XXX.XXX-X,XXXXXXX-X atau " -"XXXXXXXX." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Masukkan nomor CI yang valid." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Masukkan nomor ID Afrika Selatan yang valid" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Masukkan kode pos Afrika Selatan yang valid" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Eastern Cape" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Free State" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Northern Cape" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "North West" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Western Cape" diff --git a/django/contrib/localflavor/locale/is/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/is/LC_MESSAGES/django.mo deleted file mode 100644 index 708f70b9ad..0000000000 Binary files a/django/contrib/localflavor/locale/is/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/is/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/is/LC_MESSAGES/django.po deleted file mode 100644 index ad7f155fe8..0000000000 --- a/django/contrib/localflavor/locale/is/LC_MESSAGES/django.po +++ /dev/null @@ -1,3532 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# , 2012. -# Hafsteinn Einarsson , 2011. -# Jannis Leidel , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: gudmundur \n" -"Language-Team: Icelandic (http://www.transifex.net/projects/p/django/" -"language/is/)\n" -"Language: is\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Færðu inn póstnúmer í sniðinu NNNN eða ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Þessi reitur tekur aðeins tölugildi." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Þessi reitur krefst 7 eða 8 tölustafa." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Færðu inn gilt CUIT í XX-XXXXXXXX-X eða XXXXXXXXXXXX sniðinu." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "Ógilt CUIT." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Karinþía" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Neðra Austurríki" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Efra Austurríki" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salzburg" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Styría" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Týról" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlberg" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Vín" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Sláðu inn póstnúmer á sniðinu XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "Sláðu inn gilda austurríska kennitölu á forminu XXXX XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Antwerpen" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Brussel" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Austur flæmingjaland" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Flæmska Brabant" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hainaut" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Liege" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limaborg" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Lúxembúrg" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namúr" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Vallónska Brabant" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Vestur flæmingjaland" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Höfuðborgarsvæðið Brussel" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Flæmska svæðið" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Vallónía" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "Sláðu inn gilt póstnúmer á sniðinu 1XXX-9XXX" - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Sláðu inn gilt símanúmer á einu af eftirfarandi sniðum: 0x xxx xx xx, 0xx xx " -"xx xx, 04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx." -"xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Sláðu inn zip póstfang í sniðinu XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Símanúmer verða að vera í XXX-XXX-XXXX sniði." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "Veldu gilt brasilískt fylki. Fylkið er ekki eitt af gildum fylkjum." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Ógilt CPF númer." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Í þennan reit má setja inn í mesta lagi 11 tölustafi eða 14 bókstafi." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Ógilt CNPJ númer." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Þessi reitur krefst að minnsta kosti 14 tölustafa." - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Sláðu inn póstnúmer á sniðinu XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "Sláðu inn gilda kanadíska kennitölu á forminu XXX-XXX-XXX." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aargau" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Genf" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "" - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "" - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Prag" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "" - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "" - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "" - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Brimarborg" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamborg" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hesson" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Neðra-Saxland" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Saxland" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Saxland-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Slésvík-Holtsetaland" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Sláðu inn póstnúmer á sniðinu XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "" - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "" - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "" - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "" - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "" - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "" - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "" - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "" - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Sláðu inn gilt póstnúmer." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Sláðu inn gilt símanúmer." - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "Sláðu inn gilda íslenska kennitölu. Sniðið er DDMMÁÁÁÁ-XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Íslenska kennitalan er ekki gild." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "" - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "" - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Sláðu inn VSK númer." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "" - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Sláðu inn gilt póstnúmer." - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "" - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Þessi reitur krefst 8 tölustafa." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Þessi reitur krefst 11 tölustafa." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "" - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "" - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "" - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "" - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "" - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "" - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "" - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "" - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "" - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "" - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "" - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Bandarískt fylki (tveir hástafir)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Símanúmer" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "" - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "" diff --git a/django/contrib/localflavor/locale/it/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/it/LC_MESSAGES/django.mo deleted file mode 100644 index 3488efb8f5..0000000000 Binary files a/django/contrib/localflavor/locale/it/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/it/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/it/LC_MESSAGES/django.po deleted file mode 100644 index 49b7811acd..0000000000 --- a/django/contrib/localflavor/locale/it/LC_MESSAGES/django.po +++ /dev/null @@ -1,3567 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Denis Darii , 2011. -# Jannis Leidel , 2011. -# , 2011. -# Nicola Larosa , 2011, 2012. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Nicola Larosa \n" -"Language-Team: Italian (http://www.transifex.net/projects/p/django/language/" -"it/)\n" -"Language: it\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Inserisci un codice postale nel formato NNNN o ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Questo campo può contenere solo numeri." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Questo campo richiede 7 o 8 cifre." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Inserisci un CUIT valido nel formato XX-XXXXXXXX-X o XXXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "CUIT non valido." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Carinzia" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Bassa Austria" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Alta Austria" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salisburgo" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Styria" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tirolo" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlberg" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Vienna" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Inserisci un codice postale nel formato XXXX ." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Inserisci un Numero di Assistenza Sociale Austriaco valido, nel formato XXXX " -"XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "Inserisci un codice postale a 4 cifre" - -#: au/models.py:9 -msgid "Australian State" -msgstr "Stato Australiano" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "Codice postale Australiano" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "Numero di telefono Australiano" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Anversa" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Bruxelles" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Fiandre Orientali" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Brabante Fiammingo" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hainaut" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Liegi" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburg" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Lussemburgo" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Brabante Vallone" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Fiandre Occidentali" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Regione di Bruxelles Capitale" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Regione delle Fiandre" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Vallonia" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" -"Inserisci un codice postale valido nell'intervallo e formato 1XXX - 9XXX." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Inserisci un numero di telefono valido in uno dei formati 0x xx xx xxx, 0xx " -"xx xx xx, xx xx xx 04xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x . xxx." -"xx.xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx o 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Inserisci un codice postale nel formato XXXXX-XXX ." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "I numeri di telefono devono essere in formato XX-XXXX-XXXX ." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Scegli uno stato brasiliano valido. Questo stato non è uno di quelli " -"disponibili." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Numero CPF non valido." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Questo campo richiede non più di 11 cifre o 14 caratteri." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Numero CNPJ non valido." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Questo campo richiede almeno 14 cifre" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Inserisci un codice postale nel formato XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"Inserisci un numero di Assicurazione Sociale Canadese valido nel formato XXX-" -"XXX-XXX." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aargau" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basel-Stadt" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basel-Land" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Berna" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Friburgo" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Ginevra" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubuenden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucerna" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchatel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "St. Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zurigo" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Inserisci un numero di carta d'identità o passaporto svizzeri validi nel " -"formato X1234567<0 o 1234567890 ." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Inserisci un RUT cileno valido." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Inserisci un RUT cileno valido. Il formato è XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "Il RUT cileno non è valido." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "Inserisci un codice postale nel formato XXXXXX." - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "Il numero della carta d'identità consiste di 15 o 18 caratteri." - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "Numero carta d'identità non valido: checksum errato" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "Numero carta d'identità non valido: data di nascita errata" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "Numero carta d'identità non valido: codice località errato" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "Inserisci un numero di telefono valido." - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "Inserisci un numero di cellulare valido." - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Praga" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Regione Boema Centrale" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Regione Boema del Sud" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Regione di Pilsen" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Regione di Carlsbad" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Regione di Usti" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Regione di Liberec" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Regione di Hradec" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Regione di Pardubice" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Regione di Vysocina" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Regione della Moravia del Sud" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Regione di Olomouc" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Regione di Zlin" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Regione della Moravia-Silesia" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Inserisci un codice postale nel formato XXXXX o XXX XX ." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "Inserisci un numero di nascita nel formato XXXXXX/XXXX o XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" -"Parametro opzionale 'Sesso' non valido, i valori validi sono 'f' ed 'm'" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Inserisci un numero di nascita valido." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Inserisci un numero di IC valido." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Wuerttemberg" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Baviera" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlino" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburgo" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Brema" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Amburgo" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hessen" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklenburg-Pomerania Ovest" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Bassa Sassonia" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "Reno Nord-Wesfalia" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Rhineland-Palatinate" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Saarland" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Sassonia" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Saxony-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Turingia" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Inserisci un codice postale nel formato XXXXX ." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Inserisci un numero di carta d'identità tedesco valido nel formato " -"XXXXXXXXXXX-XXXXXXX-XXXXXXX-X ." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Arava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alacant" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almeria" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Avila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Isole Baleari" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barcellona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Caceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cadice" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castello" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Città Reale" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Cordoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "A Coruna" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Girona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipuzkoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaen" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "Leon" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lleida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madrid" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Malaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murcia" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarra" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Ourense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturie" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palencia" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Croce di Tenerife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Cantabria" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Siviglia" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valenza" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Bizkaia" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Saragozza" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andalusia" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragon" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Principato delle Asturie" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Isole Baleari" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Paese Basco" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Isole Canarie" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Castiglia-La Mancha" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Castiglia e Leon" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Catalogna" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Estremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galizia" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Regione Murzia" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Comunità Forale di Navarra" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Comunità di Valenza" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" -"Inserisci un codice postale valido nell'intervallo e formato 01XXX - 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Inserisci un numero telefonico valido in uno dei formati 6XXXXXXXX, " -"8XXXXXXXX o 9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Inserisci un NIF, NIE o CIF valido." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Inserisci un NIF o NIE valido." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Checksum non valido per il NIF." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Checksum non valido per il NIE." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Checksum non valido per il CIF." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Inserisci un numero di conto corrente bancario valido nel formato XXXX-XXXX-" -"XX-XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Checksum non valido per il numero di conto corrente bancario." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Inserisci un numero di assistenza sociale finlandese valido." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "I numeri di telefono devono essere in formato 0X XX XX XX XX." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Inserisci un codice postale valido." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Cornovaglia e Isole di Scilly" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cumbria" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "Sussex dell'Est" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Essex" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Greater London" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Greater Manchester" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordshire" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "Yorkshire del Nord" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northamptonshire" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oxfordshire" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "Yorkshire del Sud" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordshire" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne and Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "Midland Ovest" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "Sussex Ovest" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "Yorkshire Ovest" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "Contea di Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "Contea di Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "Contea di Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "Contea di Fermanagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "Contea di Londonderry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "Contea di Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "Glamorgan Sud" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "Glamorgan Ovest" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Scozia Centrale" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries and Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Isole Orkney" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Isole Shetland" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Isole dell'Ovest" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "Inghilterra" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Irlanda del Nord" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Scozia" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Galles" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "Inserisci un JMBG (Ex Jugoslavia) valido a 13 cifre" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "Errore nella data" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "Inserisci l'OIB (Croazia) valido a 11 cifre" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Inserisci una targa automobilistica valida" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "Inserisci un codice località valido" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "La sezione numerica non può essere zero" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "Inserisci un codice postale valido a 5 cifre" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Inserisci un numero telefonico valido" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "Inserisci un'area valida od un codice di rete mobile" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "Il numero telefonico è troppo lungo" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "Inserisci un numero JMBAG valido a 19 cifre che inizi con 601983" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "Il numero di rilascio della carta non può essere zero" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "Grad Zagreb" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "Bjelovarsko-bilogorska županija" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "Brodsko-posavska županija" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "Dubrovačko-neretvanska županija" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "Istarska županija" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "Karlovačka županija" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "Koprivničko-križevačka županija" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "Krapinsko-Zagorska županija" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "Ličko-senjska županija" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "Međimurska županija" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "Osječko-baranjska županija" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "Požeško-slavonska županija" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "Litoraneo-montana županija" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "Sisačko-Moslavačka županija" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "Splitsko-Dalmatinska županija" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "Šibensko-kninska županija" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "Varazdinska županija" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "Virovitičko-Podravska županija" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "Vukovarsko-srijemska županija" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "Zadarska županija" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "Zagrebačka županija" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Inserisci un codice postale valido" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Inserisci un numero NIK/KTP valido" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Aceh" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Banten" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Bengkulu" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Yogyakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Giacarta" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Gorontalo" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Jambi" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Jawa Barat" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Jawa Tengah" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Jawa Timur" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Kalimantan Barat" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Kalimantan Selatan" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Kalimantan Tengah" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Kalimantan Timur" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Kepulauan Bangka-Belitung" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Kepulauan Riau" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampung" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Maluku" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Maluku Utara" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Nusa Tenggara Barat" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Nusa Tenggara Timur" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papua" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Papua Barat" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Riau" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Sulawesi Barat" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Sulawesi Selatan" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Sulawesi Tengah" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Sulawesi Tenggara" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Sulawesi Utara" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Sumatera Barat" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Sumatera Selatan" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Sumatera Utara" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Magelang" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Surakarta - Solo" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madiun" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kediri" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanuli" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Nanggroe Aceh Darussalam" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Kepulauan Bangka Belitung" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Corpi Consolari" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Corpi Diplomatici" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Bandung" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Sulawesi Utara Daratan" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timor" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Sulawesi Utara Kepulauan" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lombok" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Papua dan Papua Barat" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Cirebon" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbawa" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Flores" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Bogor" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalongan" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Semarang" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Pati" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Surabaya" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Madura" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malang" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Jember" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banyumas" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Governo Federale" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purwakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarjo" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Garut" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Antrim" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Armagh" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Carlow" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Cavan" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Clare" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Cork" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Derry" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Donegal" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Down" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Dublino" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fermanagh" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Galway" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerry" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Kildare" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Kilkenny" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Laois" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Leitrim" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerick" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Longford" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Louth" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Mayo" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Meath" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Monaghan" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Offaly" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Roscommon" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Sligo" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tipperary" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tyrone" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Waterford" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Westmeath" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Wexford" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Wicklow" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Inserisci un codice postale nel formato XXXXX" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Inserisci un numero di identità valido." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "Inserisci un codice postale nel formato XXXXXX o XXX XXX." - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "Inserisci uno stato o territorio Indiano." - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" -"I numeri di telefono devono essere in formato 02X-8X o 03X-7X o 04X-6X." - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" -"Inserisci un numero di identificazione islandese valido. Il formato è XXXXXX-" -"XXXX ." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Il numero di identificazione islandese non è valido." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Inserisci un codice postale valido." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Inserisci un numero di Assistenza Sociale valido." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Inserisci un numero di partita IVA valido." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Inserisci un codice postale nel formato XXXXXXX o XXX-XXXX ." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaido" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Yamagata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukushima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Tochigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Chiba" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tokyo" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Yamanashi" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Toyama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ishikawa" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Shizuoka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Shiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kyoto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hyogo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakayama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okayama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hiroshima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Yamaguchi" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokushima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Kochi" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Oita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Miyazaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagoshima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinawa" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Inserisci un numero civile ID kuwaitiano valido" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" -"I numeri delle carte d'identità devono essere composti da 4 a 7 cifre o da " -"una lettera maiuscola e 7 cifre." - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "Questo campo dovrebbe contenere esattamente 13 cifre." - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" -"Le prime 7 cifre dell'UMCN devono rappresentare una data valida del passato." - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "L'UMCN non è valido." - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "Aerodrom" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "Aracinovo" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "Berovo" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "Bitola" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "Bogdanci" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "Bogovinje" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "Bosilovo" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "Brvenica" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "Butel" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "Valandovo" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "Vasilevo" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "Vevcani" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "Veles" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "Vinica" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "Vraneštica" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "Vrapčište" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "Gazi Baba" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "Gevgelija" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "Gostivar" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "Gradsko" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "Debar" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "Debarca" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "Delčevo" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "Demir Kapija" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "Demir Hisar" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "Dolneni" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "Drugovo" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "Gjorče Petrov" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "Želino" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "Zajas" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "Zelenikovo" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "Zrnovci" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "Ilinden" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "Jegunovce" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "Kavadarci" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "Karbinci" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "Karpoš" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "Kisela Voda" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "Kičevo" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "Konče" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "Koćani" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "Kratovo" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "Kriva Palanka" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "Krivogaštani" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "Kruševo" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "Kumanovo" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "Lipkovo" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "Lozovo" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "Mavrovo i Rostuša" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "Makedonska Kamenica" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "Makedonski Brod" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "Mogila" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "Negotino" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "Novaci" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "Novo Selo" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "Oslomej" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "Ohrid" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "Petrovec" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "Pehčevo" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "Plasnica" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "Prilep" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "Probištip" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "Radoviš" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "Rankovce" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "Resen" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "Rosoman" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "Saraj" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "Sveti Nikole" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "Sopište" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "Stella Dojran" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "Staro Nagoričane" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "Struga" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "Strumica" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "Studeničani" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "Tearce" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "Tetovo" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "Centar" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "Centar-Župa" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "Čair" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "Čaška" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "Češinovo-Obleševo" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "Čučer-Sandevo" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "Štip" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "Šuto Orizari" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "Numero della carta d'identità Macedone" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "Un comune Macedone (codice da 2 caratteri)" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "Numero unico dei cittadini (13 cifre)" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "Inserisci un codice postale valido nel formato XXXXX." - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "Inserire un RFC valido." - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "Checksum non valido per RFC." - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "Inserisci un CURP valido." - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "Checksum non valido per CURP." - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "Stato del Messico (tre lettere maiuscole)" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "CAP messicano" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "RFC messicana" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "CURP messicana" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baia California" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baia California del Sud" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Distretto Federale" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Stato del Messico" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacán" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuova Leòn" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Querétaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potosí" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Yucatán" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Inserisci un codice postale valido" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Inserisci un numero SoFi valido" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drenthe" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Friesland" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Gelderland" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groningen" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Noord-Brabant" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Noord-Holland" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrecht" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zeeland" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Zuid-Holland" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Inserisci un numero di assistenza sociale norvegese valido." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Questo campo richiede 8 cifre." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Questo campo richiede 11 cifre." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Il Numero Identificativo Nazionale è costituito da 11 cifre." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Checksum errato per il Numero Identificativo Nazionale." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" -"Il numero della carta d'identità nazionale è composto da 3 lettere e 6 cifre." - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "Checksum errato per il numero della carta d'identità nazionale." - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" -"Inserisci un campo di codice fiscale (NIP) nel formato XXX-XXX-XX-XX, XXX-XX-" -"XX-XXX o XXXXXXXXXX." - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Checksum errato per il Numero d'Imposta (NIP)." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" -"Il Numero di Registro Nazionale d'Impresa (REGON) è costituito da 9 o 14 " -"cifre." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "Checksum errato per il Numero di Registro Nazionale d'Impresa (REGON)." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Inserisci un codice postale nel formato XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Bassa Silesia" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kuyavia-Pomerania" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublino" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubusz" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodz" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Polonia Minore" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Masovia" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opole" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Subcarpatia" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlasie" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomerania" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Silesia" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Swietokrzyskie" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Warmia-Masuria" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Polonia Maggiore" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "Pomerania Ovest" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Inserisci un codice postale nel formato XXXX-XXX." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "I numeri di telefono devono avere 9 cifre, o iniziare con + o 00." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Inserisci un codice CIF valido." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Inserisci un codice CNP valido." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "" -"Inserisci un codice IBAN valido nel formato ROXX-XXXX-XXXX-XXXX-XXXX-XXXX." - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "I numeri di telefono devono essere nel formato XXXX-XXXXXX." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Inserisci un codice postale valido nel formato XXXXXX." - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "Inserisci un codice postale nel formato XXXXXX." - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "Inserisci un numero di passaporto nel formato XXXX XXXXXX." - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "Inserisci un numero di passaporto nel formato XX XXXXXXX." - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "Contea Federale Centrale" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "Contea Federale del Sud" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "Contea Federale" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "Contea Federale dell'Estremo Est" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "Contea Federale Siberiana" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "Contea Federale degli Urali" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "Contea Federale Privolzhsky" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "Contea Federale Nord-Caucasica" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "Mosca" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "San Pietroburgo" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "Moskovskaya Oblast '" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "Adygeya, Respublika" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "Bashkortostan, Respublika" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "Buriazia, Respublika" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "Altay, Respublika" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "Daghestan, Respublika" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "Ingushskaya Respublika" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "Kabardino-Balkarskaya Respublika" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "Kalmykia, Respublika" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "Karachaevo-Cherkesskaya Respublika" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "Karelia, Respublika" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "Komi, Respublika" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "Mariy Ehl, Respublika" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "Mordovia, Respublika" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "Sakha, Respublika (Yakutiya)" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "Severnaya Osetia, Respublika (Alania)" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "Tatarstan, Respublika" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "Tyva, Respublika (Tuva)" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "Udmurtskaya Respublika" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "Khakassiya, Respublika" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "Chechenskaya Respublika" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "Chuvashskaya Respublika" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "Altayskiy Kray" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "Zabaykalskiy Kray" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "Kamchatskiy Kray" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "Krasnodarskiy Kray" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "Krasnoyarskiy Kray" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "Permskiy Kray" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "Primorskiy Kray" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "Stavropol'siyy Kray" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "Khabarovskiy Kray" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "Amurskaya oblast '" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "Arkhangel'skaya oblast '" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "Astrakhanskaya oblast '" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "Belgorodskaya oblast '" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "Bryanskaya oblast '" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "Vladimirskaya oblast '" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "Volgogradskaya oblast '" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "Vologodskaya oblast '" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "Voronezhskaya oblast '" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "Ivanovskaya oblast '" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "Irkutskaya oblast '" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "Kaliningradskaya oblast '" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "Kaluzhskaya oblast '" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "Kemerovskaya oblast '" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "Kirov oblast '" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "Kostromskaya oblast '" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "Kurganskaya oblast '" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "Kurskaya oblast '" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "Leningradskaya oblast '" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "Lipeckaya oblast '" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "Magadanskaya oblast '" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "Murmanskaya oblast '" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "Nizhegorodskaja oblast '" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "Novgorodskaya oblast '" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "Novosibirskaya oblast '" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "Omskaya oblast '" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "Orenburgskaya oblast '" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "Orlovskaya oblast '" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "Penzenskaya oblast '" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "Pskovskaya oblast '" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "Rostov oblast '" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "Rjazanskaya oblast '" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "Samarskaya oblast '" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "Saratovskaya oblast '" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "Sakhalinskaya oblast '" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "Sverdlovskaya oblast '" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "Smolenskaya oblast '" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "Tambovskaya oblast '" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "Tverskaya oblast '" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "Tomskaya oblast '" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "Tul'skaya oblast '" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "Tyumenskaya oblast '" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "Ul'ianovskaya oblast '" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "Chelyabinskaya oblast '" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "Yaroslav oblast '" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "Evreyskaya avtonomnaja oblast '" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "Neneckiy autonomnyy okrug" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "Chukotskiy avtonomnyy okrug" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "Yamalo-Neneckiy avtonomnyy okrug" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Inserisci un numero di organizzazione svedese valido." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Inserisci un numero d'identità personale svedese valido." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "I numeri di coordinamento non sono ammessi." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Inserisci un codice postale svedese nel formato XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Stoccolma" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Västerbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norrbotten" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Uppsala" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Södermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Östergötland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Jönköping" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmar" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Gotland" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Blekinge" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Skåne" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halland" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Västra Götaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Värmland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Örebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Västmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Dalarna" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gävleborg" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Västernorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jämtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" -"Le prime 7 cifre del codice EMSO devono rappresentare una data passata " -"valida." - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "Il codice EMSO non è valido." - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "Inserisci un numero fiscale valido nella forma SIXXXXXXXX" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "Inserisci un numero telefonico nella forma +386XXXXXXXX o 0XXXXXXXX." - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Banska Bystrica" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banska Stiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Banovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytca" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Cadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolny Kubin" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajska Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenne" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kezmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komarno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Kosice I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Kosice II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Kosice III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Kosice IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Kosice - okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucke Nove Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoca" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovsky Mikulas" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lucenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Namestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nove Mesto nad Vahom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nove Zamky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizanske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piestany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltar" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povazska Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Presov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Puchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revuca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Roznava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ruzomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spisska Nova Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stara Lubovna" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidnik" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Sala" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolcany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebisov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trencin" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turcianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdosin" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velky Krtis" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Zarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Zilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Regione di Banska Bystrica" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Regione di Bratislava" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Regione di Kosice" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Regione di Nitra" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Regione di Presov" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Regione di Trencin" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Regione di Trnava" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Regione di Zilina" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Inserire un codice postale nel formato XXXXX." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "I numeri di telefono devono essere in formato 0XXX XXX XXXX." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Inserisci un numero di identità turco valido." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "Il numero di identificazione turco deve essere di 11 cifre." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Inserisci un codice postale nel formato XXXXX o XXXXX-XXXX ." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "I numeri di telefono devono essere in formato XXX-XXX-XXXX ." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" -"Inserisci un numero di assistenza sociale USA valido, nel formato XXX-XX-" -"XXXX ." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Inserisci uno stato o territorio USA." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Stato USA (due lettere maiuscole)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "Codice di avviamento postale degli Stati Uniti (due lettere maiuscole)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Numero di telefono" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" -"Inserisci un numero CI valido nel formato X.XXX.XXX-X, XXXXXXX-X o XXXXXXXX." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Inserisci un numero CI valido." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Inserisci un numero ID sudafricano valido" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Inserisci un codice postale sudafricano valido" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Capo Est" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Libero Stato" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Capo Nord" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "Nordovest" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Capo Ovest" diff --git a/django/contrib/localflavor/locale/ja/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/ja/LC_MESSAGES/django.mo deleted file mode 100644 index 35147f9b07..0000000000 Binary files a/django/contrib/localflavor/locale/ja/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/ja/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/ja/LC_MESSAGES/django.po deleted file mode 100644 index 70f4baf102..0000000000 --- a/django/contrib/localflavor/locale/ja/LC_MESSAGES/django.po +++ /dev/null @@ -1,3542 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011. -# Tetsuya Morimoto , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Tetsuya Morimoto \n" -"Language-Team: Japanese (http://www.transifex.net/projects/p/django/language/" -"ja/)\n" -"Language: ja\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "NNNNか、ANNNNAAAの形式で郵便番号を入力してください。" - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "このフィールドは必須です(数値のみ)。" - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "7桁か8桁で入力して下さい。" - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "" -"XX-XXXXXXXX-X か XXXXXXXXXXXX の形式で納税証明単一番号(CUIT)を入力して下さ" -"い。" - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "無効な納税証明単一番号(CUIT): %s" - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Carinthia" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Lower Austria" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Upper Austria" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salzburg" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Styria" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tyrol" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlberg" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Vienna" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "XXXXの形式でZipコードを入力してください。" - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "XXXX XXXXXX の形式でオーストリア社会保障番号を入力してください。" - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "アントワープ" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "ブリュッセル" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "東フランドル" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "フランダースブラバント" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "エノー州" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "リエージュ" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburg" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "ルクセンブルグ" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "ナミュール" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "ブラバンワロン州" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "西フランドル" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "ブリュッセル首都圏" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "フランダース地方" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "ワロン地域" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "郵便番号の範囲を 1XXX - 9XXX の形式で入力してください。" - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"電話番号を次の形式のうちどれかを選択して入力してください: 0x xxx xx xx, 0xx " -"xx xx xx, 04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx." -"xx.xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "XXXXX-XXXの形式でZipコードを入力してください。" - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "電話番号は XX-XXXX-XXXX 形式で入力してください。" - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "ブラジルの州から選択してください。選択したものは候補にありません。" - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "ブラジル納税者番号(CPF)が無効です。" - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "11桁の数字か14文字で入力してください。" - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "納税登録番号(CNPJ)が正しくありません。" - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "14桁以上で入力して下さい。" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "XXX XXXの形式で郵便番号を入力してください。" - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "XXX-XXX-XXX の形式で、カナダ社会保障番号を入力して下さい。" - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aargau" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basel-Stadt" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basel-Land" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Berne" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Fribourg" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Geneva" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubuenden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucerne" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchatel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "St. Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zurich" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"スイス アイデンティティかパスポート番号を X1234567<0 か 1234567890 の形式で入" -"力して下さい。" - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "正しいチリ納税者番号(RUT)を入力してください。" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "XX.XXX.XXX-Xの形式でチリ納税者番号(RUT)を入力してください。" - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "このチリ納税者番号(RUT)は無効です。" - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "プラハ" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "中央ボヘミア州" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "南ボヘミア州" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "プルゼニ州" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "カルロヴィ・ヴァリ州" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "ウースチー州" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "リベレツ州" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "フラデツ・クラーロヴェー州" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "パルドゥビツェ州" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "ヴィソチナ州" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "南モラヴィア州" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "オロモウツ州" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "ズリーン州" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "モラヴィア・スレスコ州" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "XXXXXか、XXX XXの形式で郵便番号を入力してください。" - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "XXXXXX/XXXXか、XXXXXXXXXXの形式で誕生番号を入力してください。" - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" -"オプションの性別パラメーターに対する不正な値です。可能な値は 'f' か 'm' で" -"す。" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "誕生番号を正しく入力してください。" - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "IC番号を正しく入力してください。" - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Wuerttemberg" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Bavaria" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlin" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburg" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Bremen" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburg" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hessen" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklenburg-Western Pomerania" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Lower Saxony" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "North Rhine-Westphalia" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Rhineland-Palatinate" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Saarland" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Saxony" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Saxony-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Thuringia" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "XXXXXの形式でZipコードを入力してください。" - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"XXXXXXXXXXX-XXXXXXX-XXXXXXX-X の形式でドイツIDカード番号を入力して下さい。" - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Arava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alacant" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almeria" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Avila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Illes Balears" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barcelona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Caceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cadiz" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castello" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Cordoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "A Coruna" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Girona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipuzkoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaen" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "Leon" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lleida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madrid" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Malaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murcia" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarre" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Ourense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturias" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palencia" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Cruz de Tenerife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Cantabria" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Seville" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valencia" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Bizkaia" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Zaragoza" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andalusia" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragon" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Principality of Asturias" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Balearic Islands" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Basque Country" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Canary Islands" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Castile-La Mancha" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Castile and Leon" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Catalonia" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Extremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galicia" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Region of Murcia" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Foral Community of Navarre" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Valencian Community" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "01XXX から 52XXXの形式で郵便番号を入力してください。" - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"6XXXXXXXX か 8XXXXXXXX か 9XXXXXXXX かのいずれかの形式で電話番号を入力してく" -"ださい。" - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "" -"スペイン納税者番号(NIF)かスペイン住民番号(N.I.E)かスペイン企業番号(CIF)のいず" -"れかを入力してください。" - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "スペイン納税者番号(NIF)かスペイン住民番号(N.I.E)を入力してください。" - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "スペイン納税者番号(NIF)のチェックサムがあいません。" - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "スペイン住民番号(N.I.E)のチェックサムがあいません。" - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "スペイン企業番号(CIF)のチェックサムがあいません。" - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "XXXX-XXXX-XX-XXXXXXXXXX の形式で銀行口座番号を入力して下さい。" - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "銀行口座番号のチェックサムがあいません。" - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "フィンランド社会保証番号を正しく入力してください。" - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "電話番号は 0X XX XX XX XX 形式で入力してください。" - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "郵便番号を正しく入力してください。" - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Cornwall and Isles of Scilly" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cumbria" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "East Sussex" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Essex" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Greater London" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Greater Manchester" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordshire" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "North Yorkshire" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northamptonshire" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oxfordshire" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "South Yorkshire" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordshire" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne and Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "West Midlands" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "West Sussex" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "West Yorkshire" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "County Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "County Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "County Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "County Fermanagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "County Londonderry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "County Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "South Glamorgan" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "West Glamorgan" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Central Scotland" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries and Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Orkney Islands" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Shetland Islands" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Western Isles" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "England" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Northern Ireland" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Scotland" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Wales" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "自動車のプレートナンバーを正しく入力してください。" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "電話番号を正しく入力してください。" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "郵便番号を正しく入力してください。" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "NIK/KTP番号を正しく入力してください。" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "アチェ" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "バリ" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "バンテン" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "ベンクルー州" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "ジョクジャカルタ" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "ジャカルタ" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "ゴロンタロ" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "ジャンビ" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "ジャワバラット州" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "ジャワトゥンガ州" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "ジャワティムール州" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "カリマンタンバラット州" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "カリマンタンスラタン州" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "カリマンタントゥンガ州" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "カリマンタンティムール州" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "バンカ-ビリトン諸島" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "リアオ諸島" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "ランプン州" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "マルク州" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "マルクウタラ" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "ヌサトゥンガラバラット" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "ヌサトゥンガラティムール州" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "パプア" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "パプアバラット" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "リアウ州" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "スラウェシバラット" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "スラウェシスラタン州" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "スラウェシトゥンガ州" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "スラウェシトゥンガラ州" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "スラウェシウタラ州" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "スマトラバラット州" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "スマトラスラタン州" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "スマトラウタラ州" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "マグラン" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "スラカルタ - ソロ" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "マディウン" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "クディリ" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "タパヌリ" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "ナングロアチェダルサラーム" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "バンカビリトン諸島" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "領事館部隊" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "外交部隊" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "バンドン" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "スラウェシウタラダラタン" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "株式会社 NTT - 東ティモール" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "スラウェシウタラ諸島" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - ロンボク" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "パプアダンパプアバラット" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "チルボン" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - スンバワ" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "株式会社 NTT - フローリーズ" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "株式会社NTT - スンバ" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "ボゴール" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "プカロンガン" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "スマラン" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "パティ" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "スラバヤ" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "マドゥラ" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "マラン" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "ジェンバー" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "バニュマス" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "連邦政府" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "ボジョネゴロ" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "プルワカルタ" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "シドアルジョ" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "ガルト" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "アントリム" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "アルマー" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "カーロー" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "カバン" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "クレア" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "コーク" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "デリー" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "ドニゴール" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "ダウン" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "ダブリン" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "ファーマナ州" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "ゴールウェイ" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "ケリー" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "キルデア" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "キルケニー" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "リーシュ" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "リートリム" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "リマリック" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "ロングフォード" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "ラウス" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "メイヨー" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "ミーズ" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "モナハン" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "オファリー" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "ロスコモン" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "スライゴ" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "ティペラリー" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "タイローン" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "ウォーターフォード" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "ウェストミーズ" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "ウェクスフォード" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "ウィックロー" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "郵便番号を XXXXX 形式で入力してください" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "ID 番号を入力してください。" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "XXXXXか、XXXXX-XXXXの形式でアイスランド納税者番号を入力してください。" - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "アイスランド納税者番号を正しく入力して下さい。" - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Zipコードを正しく入力してください。" - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "社会保障番号番号を正しく入力してください。" - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "VAT番号を正しく入力してください。" - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "XXXXXか、XXXXX-XXXXの形式で郵便番号を入力してください。" - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "北海道" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "青森県" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "岩手県" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "宮城県" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "秋田県" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "山形県" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "福島県" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "茨城県" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "栃木県" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "群馬県" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "埼玉県" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "千葉県" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "東京都" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "神奈川県" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "山梨県" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "長野県" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "新潟県" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "富山県" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "石川県" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "福井県" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "岐阜県" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "静岡県" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "愛知県" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "三重県" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "滋賀県" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "京都府" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "大阪府" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "兵庫県" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "奈良県" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "和歌山県" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "鳥取県" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "島根県" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "岡山県" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "広島県" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "山口県" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "徳島県" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "香川県" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "愛媛県" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "高知県" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "福岡県" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "佐賀県" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "長崎県" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "熊本県" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "大分県" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "宮崎県" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "鹿児島県" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "沖縄県" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "クウェート市民番号を正しく入力してください。" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baja California" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baja California Sur" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Distrito Federal" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Estado de México" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacan" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo Leon" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Queretaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potosi" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Yucatan" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "郵便番号を正しく入力してください。" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "社会税務番号(SoFi)を正しく入力してください。" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drenthe" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Friesland" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Gelderland" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groningen" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Noord-Brabant" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Noord-Holland" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrecht" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zeeland" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Zuid-Holland" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "ノルウェー社会保障番号を正しく入力してください。" - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "8桁で入力して下さい。" - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "11桁で入力して下さい。" - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "国民識別番号は11文字で入力して下さい。" - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "国民識別番号のチェックサムがあいません。" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "税務署登録ID(NIP)のチェックサムがあいません。" - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "ポーランド企業番号(REGON)は9文字か14文字で入力して下さい。" - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "ポーランド企業番号(REGON)のチェックサムがあいません。" - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "XX-XXXの形式で郵便番号を入力してください。" - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Lower Silesia" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kuyavia-Pomerania" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublin" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubusz" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodz" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Lesser Poland" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Masovia" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opole" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Subcarpatia" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlasie" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomerania" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Silesia" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Swietokrzyskie" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Warmia-Masuria" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Greater Poland" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "West Pomerania" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "XXXX-XXXの形式でZipコードを入力してください。" - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "電話番号は9桁の数字か、プラス記号(+)または00で始まる必要があります。" - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "CIFを正しく入力してください。" - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "CNPを正しく入力してください。" - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "ROXX-XXXX-XXXX-XXXX-XXXX-XXXX の形式でIBANを入力してください" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "電話番号は XXXX-XXXXXX 形式で入力してください。" - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "XXXXXX の形式で郵便番号を入力してください。" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "スウェーデン組織番号を正しく入力してください。" - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "スウェーデン個人識別番号を正しく入力してください。" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "コーディネーション番号は許可されていません。" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "XXXXXの形式で郵便番号を入力してください。" - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "ストックホルム" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "ベステルボッテン" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "ノルボッテン" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "ウプサラ" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "セーデルマンランド" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "エステルイェトランド" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "ヨンショーピン" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "クルーヌベリ" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "カルマル" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "ゴトランド" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "ブレーキンゲ" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "スコーネ" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "ハランド" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "ヴィストライェータランド" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "ヴェルムランド" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "オレブロ" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "ベストマンランド" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "ダーラルナ" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "イェブレボリ" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "ベステルノルランド" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "イェムトランド" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Banska Bystrica" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banska Stiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Banovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytca" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Cadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolny Kubin" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajska Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenne" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kezmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komarno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Kosice I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Kosice II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Kosice III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Kosice IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Kosice - okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucke Nove Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoca" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovsky Mikulas" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lucenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Namestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nove Mesto nad Vahom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nove Zamky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizanske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piestany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltar" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povazska Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Presov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Puchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revuca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Roznava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ruzomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spisska Nova Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stara Lubovna" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidnik" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Sala" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolcany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebisov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trencin" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turcianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdosin" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velky Krtis" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Zarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Zilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Banska Bystrica region" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Bratislava region" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Kosice region" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Nitra region" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Presov region" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Trencin region" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Trnava region" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Zilina region" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "郵便番号を XXXXX 形式で入力してください。" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "電話番号は 0XXX XXX XXXX 形式でなければいけません。" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "トルコ国民番号を入力してください。" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "トルコ国民番号は11桁でなければいけません。" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "XXXXXか、XXXXX-XXXXの形式で郵便番号を入力してください。" - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "電話番号は XXX-XXX-XXXX 形式で入力してください。" - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "XXX-XX-XXXX の形式で、米国社会保障番号を入力して下さい。" - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "合衆国の州か地域を入力してください。" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "アメリカの州 (大文字二文字で)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "米国郵便番号(大文字で2文字)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "電話番号" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "X.XXX.XXX-X,XXXXXXX-X か XXXXXXXX の形式でCI番号を入力して下さい。" - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "CI番号を正しく入力してください。" - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "南アフリカID番号を正しく入力してください。" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "南アフリカ郵便番号を正しく入力してください。" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Eastern Cape" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Free State" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Northern Cape" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "North West" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Western Cape" diff --git a/django/contrib/localflavor/locale/ka/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/ka/LC_MESSAGES/django.mo deleted file mode 100644 index 21c4865e9c..0000000000 Binary files a/django/contrib/localflavor/locale/ka/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/ka/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/ka/LC_MESSAGES/django.po deleted file mode 100644 index 9de31b163e..0000000000 --- a/django/contrib/localflavor/locale/ka/LC_MESSAGES/django.po +++ /dev/null @@ -1,3546 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# avsd05 , 2011. -# Jannis Leidel , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Georgian (http://www.transifex.net/projects/p/django/language/" -"ka/)\n" -"Language: ka\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "შეიყვანეთ საფოსტო კოდი ერთ-ერთ ფორმატში: NNNN ან ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "ამ ველში შეიძლება იყოს მხოლოდ ციფრები." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "ამ ველში შეიძლება იყოს 7 ან 8 თანრიგი." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "" -"შეიყვანეთ დასაშვები CUIT ერთ-ერთ ფორმატში: XX-XXXXXXXX-X ან XXXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "არასწორი CUIT." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "ბურგლენდი" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "კარინტია" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "ქვემო ავსტრია" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "ზემო ავსტრია" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "ზალცბურგი" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "სტირია" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "ტიროლი" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "ფორარლბერგი" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "ვენა" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "შეიყვანეთ zip-კოდი ფორმატში XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "შეიყვანეთ კანადაში დასაშვები პირადი ნომერი ფორმატში: XXX-XXX-XXX" - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "ანტვერპი" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "ბრიუსელი" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "აღმ. ფლანდრები" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "ფლამანდიური ბრაბანტი" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "ჰაინაუტი" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "ლიჯი" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "ლიმბურგი" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "ლუქსემბურგი" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "ნამური" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "ვალონიური ბრაბანტი" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "დას. ფლანდრები" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "ბრიუსელი-დედაქალაქი" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "ფლემიური რაიონი" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "ვალონია" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "შეიყვანეთ სწორი საფოსტო კოდი ფორმატში 1XXX - 9XXX." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"შეიყვანეთ ტელეფონის ნომერი დასაშვებ ფორმატში: 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "შეიყვანეთ zip-კოდი ფორმატში: XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "ტელეფონის ნომრები უნდა იყოს XX-XXXX-XXXX ფორმატში." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"შეიყვანეთ დასაშვები ბრაზილიური შტატი. მოცემული შტატი არ არის დასაშვები." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "არასწორი CPF ნომერი." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "ეს ველი უნდა შეიცავდეს 11 ციფრს ან 14 სიმბოლოს, ან ნაკლებს." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "არასწორი CNPJ ნომერი." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "ეს ველი მოითხოვს არაუმეტეს 14 თანრიგისა" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "შეიყვანეთ საფოსტო კოდი ფორმატში: XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"შეიყვანეთ კანადაში დასაშვები სოციალური დაზღვევის ნომერი ფორმატში: XXX-XXX-XXX" - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "აარგაუ" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "აპენცელ ინერჰოდენ" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "აპენცელ აუსერჰოდენ" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "ბაზელ-შტადტი" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "ბაზელ-ლანდი" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "ბერნი" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "ფრაიბურგი" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "ჟენევა" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "გლარუსი" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "გრაუბუენდენ" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "ჯურა" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "ლეცერნი" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "ნოიხატლი" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "ნიდვალდენი" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "ობვალდენი" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "შაფჰაუზენი" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "შვიცი" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "სოლოთურნი" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "სენტ-გალენი" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "თურგაუ" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "ტიჯინო" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "ური" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "ვალაისი" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "ვაუდი" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "ცუგი" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "ციურიხი" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"შეიყვანეთ შვეიცარიაში დაშვებული პირადი ან პასპორტის ნომერი, ფორმატებში: " -"X1234567<0 ან 1234567890." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "შეიყვანეთ დასაშვები ჩილიური RUT." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "შეიყვანეთ დასაშვები ჩილიური RUT. ფორმატი: XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "ჩილიური RUT არასწორია." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "პრაღა" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "ცენტრალური ბოჰემიის რაიონი" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "სამხრეთ ბოჰემიის რაიონი" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "პილსენის რაიონი" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "კარლსბადის რაიონი" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "იუსტის რაიონი" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "ლიბერეცის რაიონი" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "ჰრადეცის რაიონი" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "პარდუბიცეს რაიონი" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "ვისოჩინას რაიონი" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "სამხრეთ მორავიის რაიონი" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "ოლომუცის რაიონი" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "ზლინის რაიონი" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "მორავია-სილესიის რაიონ" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "შეიყვანეთ საფოსტო კოდი ფორმატში XXXXX or XXX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "" - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "" - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "ბადენ-ვურტემბერგი" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "ბავარია" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "ბერლინი" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "ბრანდენბურგი" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "ბრემენი" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "ჰამბურგი" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "ჰესენი" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "მეკლენბურგ-ვესტერნ პომერანია" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "ქვემო საქსონია" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "ჩრდილოეთ რაინ-ვესტფალია" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "რაინლანდ-პალატინატა" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "ზაარლანდი" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "საქსონია" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "საქსონია-ანჰალტ" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "შლეზვიგ-ჰოლშტაინი" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "თურინგია" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "შეიყვანეთ zip-კოდი ფორმატში XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"შეიყვანეთ გერმანიაში დასაშვები პირადობის მოწმობის ნომერი, ფორმატში: " -"XXXXXXXXXXX-XXXXXXX-XXXXXXX-X." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "არავა" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "ალბასეტე" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "ალასანტი" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "ალმერია" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "ავილა" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "ბადაჰოსი" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "ილეს ბალეარს" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "ბარსელონა" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "ბურგოსი" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "კასერესი" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "კადიზი" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "კასტელო" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "სიუდად რეალი" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "კორდობა" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "ა კორუნია" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "კუენსა" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "გირონა" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "გრანადა" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "გუადალაჯარა" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "გუიპუზკოა" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "ჰუელვა" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "ჰუესკა" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "ჯეინი" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "ლეონი" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "ლეიდა" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "ლა რიოხა" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "ლუგო" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "მადრიდი" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "მალაგა" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "მურსია" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "ნავარე" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "ოურენსი" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "ასტურია" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "პალენსია" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "ლას პალმას" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "პონტევედრა" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "სალამანსა" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "სანტა კრუზ დე ტენერიფე" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "კანტაბრია" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "სეგოვია" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "სევილი" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "სორია" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "ტარაგონა" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "ტერუელი" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "ტოლედო" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "ვალენსია" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "ვალადოლიდი" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "ბიზკაია" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "სამორა" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "სარაგოსა" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "კეუტა" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "მელილა" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "ანდალუზია" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "არაგონ" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "ასტურიის პრინციპატი" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "ბალეარის კუნძულები" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "ბასკების ქვეყანა" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "კანარის კუნძuლები" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "კასტილია ლა მანჩა" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "კასტილია და ლეონი" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "კატალონია" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "ექსტრემადურა" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "გალიცია" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "მურსიის რეგიონი" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "ნავარის ფორალური თემი" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "ვალენსიის თემი" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" -"შეიყვანეთ სწორი საფოსტო კოდი შემდეგ ინტერვალში და ფორმატში: 01XXX - 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"შეიყვანეთ სწორი სატელეფონო ნომერი ერთ-ერთ ფორმატში: 6XXXXXXXX, 8XXXXXXXX ან " -"9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "გთხოვთ, შეიყვანოთ სწორი NIF, NIE, ან CIF." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "გთხოვთ, შეიყვანოთ სწორი NIF ან NIE." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "NIF-ის საკონტროლო ჯამი არასწორია." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "NIE-ს საკონტროლო ჯამი არასწორია." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "CIF-ის საკონტროლო ჯამი არასწორია." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"გთხოვთ, შეიყვანოთ სწორი საბანკო ანგარიშის ნომერი ფორმატში: XXXX-XXXX-XX-" -"XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "არასწორი საკონტროლო ჯამი საბანკო ანგარიშის ნომრისათვის." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "შეიყვანეთ სწორი ფინური პირადი ნომერი." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "" - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "შეიყვანეთ სწორი საფოსტო კოდი." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "ბედფორდშირი" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "ბუკინჰემშირი" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "ჩეშირი" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "კორნუოლი და სილის კუნძულები" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "კამბრია" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "დერბიშირი" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "დევონი" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "დორსეტი" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "დარემი" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "აღმოსავლეთ სასექსი" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "ესექსი" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "გლოსტეშირი" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "დიდი ლონდონი" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "დიდი მანჩესტერი" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "ჰემპშირი" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "ჰარტფორდშირი" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "კენტი" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "ლანკაშირი" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "ლაიჩესტეშირი" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "ლინკოლნშირი" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "მერსისაიდი" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "ნორფოლკი" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "ჩრდილოეთ იოკშირი" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "ნორტჰემპტონშირი" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "ნორტუმბერლანდი" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "ნოტინგემშირი" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "ოქსფორდშირი" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "შროპშირი" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "სომერსეტი" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "სამხრეთ იოკშირი" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "სტაფორდშირი" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "საფოლკი" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "სურეი" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "თაინ და უირი" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "უარვიკშირი" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "დასავლეთ მიდლენდსი" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "დასავლეთ სასექსი" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "დასავლეთ იოკშირი" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "უილტშირი" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "უორსესტერშირი" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "ანტრიმის ქვეყანა" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "არმაგის ქვეყანა" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "დაუნის ქვეყანა" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "ფერმანაგის ქვეყანა" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "ლონდონდერის ქვეყანა" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "ტაირონის ქვეყანა" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "კლოუიდი" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "დაიფიდი" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "გვენტი" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "გუაინიდი" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "შუა გლემორგენი" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "პოუისი" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "სამხრეთ გლემორგენი" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "დასავლეთ გლემორგენი" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "საზღვრები" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "ცენტრალური შოტლანდია" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "დამფრაის და გელოუეი" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "ფაიფი" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "გრემპაინი" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "ჰაილენდი" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "ლოთიენი" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "ორკნის კუნძულები" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "შიტლენდის კუნძულები" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "სტრესკლაიდი" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "თეისაიდი" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "დასავლეთ კუნძულები" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "ინგლისი" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "ჩრდილოეთ ირლანდია" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "შოტლანდია" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "უელსი" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "შეიყვანეთ სწორი ტელეფონის ნომერი" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" -"შეიყვანეთ სწორი ისლანდიური საიდენტიფიკაციო ნომერი. ფორმატია XXXXXX-XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "ისლანდიური საიდენტიფიკაციო ნომერი არასწორია." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "შეიყვანეთ სწორი zip-კოდი." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "შეიყვანეთ სწორი პირადი ნომერი." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "შეიყვანეთ სწორი დღგ-ს ნომერი." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "შეიყვანეთ საფოსტო კოდი ფორმატში XXXXXXX ან XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "ჰოკაიდო" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "აომორი" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "იუატე" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "მიიაგი" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "აკიტა" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "იამაგატა" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "ფუკუსიმა" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "იბარაკი" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "ტოჩიგი" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "გუნმა" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "საიტამა" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "ჩიბა" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "ტოკიო" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "კანაგავა" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "იამანაში" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "ნაგანო" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "ნიიგატა" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "ტოიამა" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "იშიკავა" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "ფუკუი" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "გიფუ" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "შიზუოკა" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "აიჩი" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "მიე" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "შიგა" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "კიოტო" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "ოსაკა" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "ჰიოგო" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "ნარა" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "უაკაიამა" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "ტოტორი" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "შიმანე" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "ოკაიამა" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "ჰიროსიმა" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "იამაგუჩი" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "ტოკუშიმა" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "კაგავა" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "ეჰიმე" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "კოჩი" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "ფუკუოკა" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "საგა" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "ნაგასაკი" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "კუმამოტო" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "ოიტა" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "მიაზაკი" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "კაგოსიმა" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "ოკინავა" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "აგუასკალიენტესი" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "ქვემო კალიფორნია" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "ქვემო სამხრეთ კალიფორნია" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "კამპეჩე" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "ჩიჰუაჰუა" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "ჩიაპასი" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "კოაჰუილა" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "კოლიმა" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "ფედერალური ოლქი" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "დურანგო" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "გერერო" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "გუანაჰუატო" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "იდალგო" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "ჰალისკო" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "მეხიკოს შტატი" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "მიჩოაკანი" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "მორელოსი" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "ნაიარიტი" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "ნუევო-ლეონი" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "ოახაკა" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "პუებლა" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "კერეტარო" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "კინტანა-როო" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "სინალოა" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "სან-ლუის-პოტოსი" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "sონორა" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "ტაბასკო" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "ტამაულიპასი" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "ტლასკალა" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "ვერაკრუსი" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "იუკატანი" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "საკატეკასი" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "შეიყვანეთ სწორი საფოსტო კოდი" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "შეიყვანეთ სწორი SoFi ნომერი" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "დრენტე" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "ფლევოლანდი" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "ფრისლანდია" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "გელდერლანდი" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "გრონიგენი" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "ჩრდილოეთ ბრაბანტი" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "ჩრდილოეთ ჰოლანდია" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "ოვერეისელი" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "უტრეხტი" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "ზელანდია" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "სამხრეთ ჰოლანდია" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "შეიყვანეთ სწორი ნორვეგიული პირადი ნომერი." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "ეს ველი შედგება 8 თანრიგისაგან." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "ეს ველი სედგება 11 თანრიგისაგან." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "ეროვნული საიდენტიფიკაციო ნომერი შედგება 11 თანრიგისაგან." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "არასწორი საკონტროლო ჯამი ეროვნულ საიდენტიფიკაციო ნომერში." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "არასწორი საკონტროლო ჯამი საგადასახადო ნომრისათვის (NIP)." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" -"არასწორი საკონტროლო ჯამი საწარმოოს ეროვნულ სარეგისტრაციო ნომერში (REGON)." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "შეიყვანეთ საფოსტო კოდი ფორმატში XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "ქვემო სილეზია" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "კუიავია-პომერანია" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "ლუბლინი" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "ლუბუში" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "ლოძი" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "მცირე პოლონეთი" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "მაზოვია" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "ოპოლე" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "სუბკარპატია" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "პოდლასიე" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "პომერანია" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "სილეზია" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "სვენტოკშისკე" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "ვარმია-მაზურია" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "დიდი პოლონეთი" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "დასავლეთ პომერანია" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "" - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "შეიყვანეთ სწორი URL." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "შეიყვანეთ სწორი URL." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "" -"შეიყვანეთ დასაშვები CUIT ერთ-ერთ ფორმატში: XX-XXXXXXXX-X ან XXXXXXXXXXXX." - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "ტელეფონის ნომრები უნდა იყოს XX-XXXX-XXXX ფორმატში." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "შეიყვანეთ საფოსტო კოდი ფორმატში: XXX XXX." - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "" - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "" - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "ბანსკა ბისტრიცა" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "ბანსკა შტიავნიცა" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "ბარდეიოვი" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "ბანოვცე-ნად-ბებრავოუ" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "ბრეზნო" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "ბრატისლავა I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "ბრატისლავა II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "ბრატისლავა III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "ბრატისლავა IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "ბრატისლავა V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "ბიტჩა" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "ჩადცა" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "დეტვა" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "დოლნი კუბინი" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "დუნაისკა სტრედა" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "გალანტა" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "გელნიცა" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "ჰლოჰოვეცი" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "ჰუმენე" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "ილავა" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "კეზმაროკი" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "კომარნო" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "კოშიცე I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "კოშიცე II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "კოშიცე III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "კოშიცე IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "კოშიცე - ოკოლიე" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "კრუპინა" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "კისუცკე ნოვე მესტო" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "ლევიცე" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "ლევოჩა" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "ლიპტოვსკი მიკულაში" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "ლუჩენეცი" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "მალაცკი" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "მარტინი" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "მეძილაბორცე" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "მიხალოვცე" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "მიავა" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "ნამესტოვო" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "ნიტრა" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "ნოვე-მესტო-ნად-ვაჰომ" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "ნოვე ზამკი" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "პარტიზანსკე" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "პეზინოკი" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "პიესტანი" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "პოლტარი" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "პოპრადი" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "პოვაჟსკა ბისტრიცა" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "პრესოვი" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "პრიევიძა" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "პუხოვი" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "რევუცა" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "რიმავსკა სობოტა" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "როზნავა" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "რუზომბეროკი" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "საბინოვი" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "სენეცი" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "სენიცა" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "სკალიცა" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "სნინა" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "სობრანცე" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "სპისკა-ნოვა-ვესი" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "სტარა-ლუბოვნა" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "სტროპკოვი" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "სვიდნიკი" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "სალა" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "ტოპოლჩანი" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "ტრებისოვი" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "ტრენჩინი" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "ტრნავა" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "ტურჩანსკე ტეპლიცე" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "ტვრდოშინი" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "ველკი კრტიში" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "ვრანოვ-ნად-ტოპლოუ" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "ზლატე მორავცე" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "ზვოლენი" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "ზარნოვიცა" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "ზიარ-ნად-ჰრონომი" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "ზილინა" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "ბანსკა-ბისტრიცის რაიონი" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "ბრატისლავას რაიონი" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "კოშიცეს რაიონი" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "ნიტრას რაიონი" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "პრესოვის რაიონი" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "ტრენჩინის რაიონი" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "ტრნავას რაიონი" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "ზილინას რაიონი" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "შეიყვანეთ zip-კოდი ფორმატში XXXXX ან XXXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "" - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "შეიყვანეთ სწორი აშშ-ს პირადი ნომერი ფორმატში XXX-XX-XXXX." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "აშშ შტატი (ორი ასომთავრული)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "" - -#: us/models.py:26 -msgid "Phone number" -msgstr "ტელეფონის ნომერი" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "" - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "შეიყვანეთ სწორი სამხრეთ-აფრიკული ID ნომერი" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "შეიყვანეთ სწორი სამხრეთ-აფრიკული საფოსტო კოდი" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "აღმოსავლეთ კაპი" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "თავისუფალი სახელმწიფო" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "გაუტენგი" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "კვაზულუ-ნატალი" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "ლიმპოპო" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "მპუმალანგა" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "ჩრდილოეთ კაპი" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "ჩრდილო-დასავლეთი" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "დასავლეთ კაპი" diff --git a/django/contrib/localflavor/locale/kk/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/kk/LC_MESSAGES/django.mo deleted file mode 100644 index 50f1bef047..0000000000 Binary files a/django/contrib/localflavor/locale/kk/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/kk/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/kk/LC_MESSAGES/django.po deleted file mode 100644 index 29ac60abe4..0000000000 --- a/django/contrib/localflavor/locale/kk/LC_MESSAGES/django.po +++ /dev/null @@ -1,3526 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2011-01-19 16:22+0000\n" -"Last-Translator: Django team\n" -"Language-Team: Kazakh (http://www.transifex.net/projects/p/django/language/" -"kk/)\n" -"Language: kk\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "" - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "" - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "" - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "" - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "" - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "" - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "" - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "" - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "" - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "" - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "" - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "" - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "" - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "" - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "" - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "" - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "" - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "" - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "" - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "" - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "" - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "" - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "" - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "" - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "" - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "" - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "" - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "" - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "" - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "" - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "" - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "" - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "" - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "" - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "" - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "" - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "" - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "" - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "" - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "" - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "" - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "" - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "" - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "" - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "" - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "" - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "" - -#: us/models.py:26 -msgid "Phone number" -msgstr "" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "" - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "" diff --git a/django/contrib/localflavor/locale/km/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/km/LC_MESSAGES/django.mo deleted file mode 100644 index 602dc1e30c..0000000000 Binary files a/django/contrib/localflavor/locale/km/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/km/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/km/LC_MESSAGES/django.po deleted file mode 100644 index 26de62ffeb..0000000000 --- a/django/contrib/localflavor/locale/km/LC_MESSAGES/django.po +++ /dev/null @@ -1,3526 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: English \n" -"Language: km\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "" - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "" - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "" - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "" - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "" - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "" - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "" - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "" - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "" - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "" - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "" - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "" - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "" - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "" - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "" - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "" - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "" - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "" - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "" - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "" - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "" - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "" - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "" - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "" - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "" - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "" - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "" - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "" - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "" - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "" - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "" - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "" - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "" - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "" - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "" - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "" - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "" - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "" - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "" - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "" - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "" - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "" - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "" - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "" - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "" - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "" - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "សហរដ្ឋអាមេរិក U.S. (ជាមួយនឹងអក្សរធំពីរ)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "" - -#: us/models.py:26 -msgid "Phone number" -msgstr "លេខទូរស័ព្ទ" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "" - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "" diff --git a/django/contrib/localflavor/locale/kn/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/kn/LC_MESSAGES/django.mo deleted file mode 100644 index b440543ae3..0000000000 Binary files a/django/contrib/localflavor/locale/kn/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/kn/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/kn/LC_MESSAGES/django.po deleted file mode 100644 index da456526ce..0000000000 --- a/django/contrib/localflavor/locale/kn/LC_MESSAGES/django.po +++ /dev/null @@ -1,3527 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Kannada (http://www.transifex.net/projects/p/django/language/" -"kn/)\n" -"Language: kn\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "" - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "" - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "" - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "" - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "" - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "" - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "" - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "" - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "" - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "" - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "" - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "" - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "" - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "" - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "" - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "" - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "" - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "" - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "" - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "" - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "" - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "" - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "" - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "" - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "" - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "" - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "" - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "" - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "" - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "" - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "" - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "" - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "" - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "" - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "" - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "" - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "" - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "" - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "" - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "" - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "" - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "" - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "" - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "" - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "" - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "" - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "ಅಮೇರಿಕಾ ಸಂಯುಕ್ತ ಸಂಸ್ಥಾನದ ರಾಜ್ಯ ( ಎರಡು ಇಂಗ್ಲೀಷ್ ದೊಡ್ಡಕ್ಷರಗಳು)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "" - -#: us/models.py:26 -msgid "Phone number" -msgstr "ದೂರವಾಣಿ ಸಂಖ್ಯೆ" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "" - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "" diff --git a/django/contrib/localflavor/locale/ko/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/ko/LC_MESSAGES/django.mo deleted file mode 100644 index eafad3447c..0000000000 Binary files a/django/contrib/localflavor/locale/ko/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/ko/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/ko/LC_MESSAGES/django.po deleted file mode 100644 index d44a0165e6..0000000000 --- a/django/contrib/localflavor/locale/ko/LC_MESSAGES/django.po +++ /dev/null @@ -1,3535 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jaehong Kim , 2011. -# Jannis Leidel , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Jaehong Kim \n" -"Language-Team: Korean (http://www.transifex.net/projects/p/django/language/" -"ko/)\n" -"Language: ko\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "우편번호를 입력하세요.(NNNN 또는 ANNNNAAA)" - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "숫자만 입력해야 합니다." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "7개 또는 8개의 숫자만 허용됩니다." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "CUIT를 입력하세요.(XX-XXXXXXXX-X 또는 XXXXXXXXXXXX 형식)" - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "부적절한 CUIT" - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "부르겐란트 주" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "케른텐 주" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "니더외스터라이히 주" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "오버외스터라이히 주" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "잘츠부르크" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "슈타이어 주" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "티롤 주" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "폴라를베르크 주" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "빈" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "우편번호를 입력하세요. (XXXX 형식)" - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "올바른 오스트리아 사회보장번호(XXXX XXXXX 형식)를 입력하세요." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "안트위르펜" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "브뤼셀" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "동플랑드르" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "플레 미시 브라반트" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "에노" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "리에주" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "림뷔르흐 주" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "룩셈브르크" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "나무르" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "왈론 브라반트" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "웨스트 플랑드르" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "브뤼셀 캐피탈 지역" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "플랑드르 지역" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "왈로니아" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "우편번호를 1XXX-9XXX 형식으로 입력하세요." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"전화번호를 0x xxx xx xx, 0xx xx xx xx, 04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx." -"xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx 또" -"는 04xxxxxxxx 형식중 하나로 입력하세요." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "우편번호는 XXXXX-XXX 형식으로 입력하세요." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "전화번호는 XX-XXXX-XXXX 형식으로 입력하세요." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "올바르게 선택해 주세요. 선택하신 것이 선택가능항목에 없습니다." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "CPF 값이 올바르지 않습니다." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "최대 11자 또는 14자 이하로 입력해 주세요." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "올바른 CNPJ 번호를 입력하세요." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "이 항목은 최소한 14개의 숫자를 입력해야 합니다." - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "우편번호를 입력하세요.(XXX XXX 형식)" - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "올바른 캐나다 사회보장번호(XXX-XXX-XXX 형식)를 입력하세요." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "아르가우 주" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "아펜첼이너로덴 주" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "아펜첼아우서로덴 주" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "바젤슈타트 주" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "바젤란트 주" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "베른" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "프리부르 주" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "제네바" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "글라루스 주" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "그라우뷘덴 주" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "쥐라 주" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "루체른" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "뇌샤텔 주" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "니트발덴 주" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "옵발덴 주" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "샤프하우젠 주" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "슈비츠 주" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "졸로투른 주" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "장크트갈렌 주" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "투르가우 주" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "티치노 주" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "우리 주" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "발레 주" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "보 주" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "추크 주" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "취리히" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"올바른 스위스 주민번호 또는 여권 번호를 입력하세요. (X1234567<0 또는 " -"1234567890 형식)" - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "올바른 칠레 RUT를 입력하세요." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "올바른 칠레 RUT 번호 XX.XXX.XXX-X 형식으로 입력하세요." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "칠레 RUT 값이 올바르지 않습니다." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "프라하" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "이호체스코 주" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "스트르셰도체스코 주" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "플젠 주" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "카를로비바리 주" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "우스티나트라벰 주" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "리베레츠 주" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "호라데츠 크랄로베 주" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "파르두비체 주" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "비소치나 주" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "이호모라프스코 주" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "올로모우츠 주" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "즐린 주" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "모라바슬레스코주" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "우편번호를 입력하세요. (XXXXX 또는 XXX XX 형식)" - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "생년월일을 입력하세요. (XXXXXX/XXXX 또는 XXXXXXXXXX 형식)" - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "성별은 'f' 또는 'm'으로 입력해야 합니다." - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "올바른 생년월일을 입력하세요." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "올바른 IC 번호를 입력하세요." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "바덴-뷔르템베르크 주" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "바이에른 자유주" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "베를린" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "브란덴부르크 주" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "브레멘 자유 한자 도시" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "함부르크 자유 한자 도시" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "헤센 주" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "메클렌부르크-포어포메른 주" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "니더작센 주" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "노르트라인-베스트팔렌 주" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "라인란트-팔츠 주" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "자를란트 주" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "작센 자유주" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "작센-안할트 주" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "슐레스비히-홀슈타인 주" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "튀링겐 자유주" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "우편번호를 입력하세요. (XXXXX 형식)" - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "올바른 독일 주민번호(XXXXXXXXXXX-XXXXXXX-XXXXXXX-X 형식)를 입력하세요." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "알라바 주" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "알바세테 주" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "알리칸테 주" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "알메리아 주" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "아빌라 주" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "바다호스 주" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "발레아레스 제도" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "바르셀로나 주" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "부르고스 주" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "카세레스 주" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "카디스 주" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "카스테욘 주" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "시우다드레알 주" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "코르도바 주" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "라코루냐 주" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "쿠엥카 주" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "헤로나 주" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "그라나다 주" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "과달라하라 주" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "기푸스코아 주" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "우엘바 주" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "우에스카 주" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "하엔 주" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "레온 주" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "레리다 주" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "라리오하 주" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "루고 주" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "마드리드 주" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "말라가 주" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "무르시아 주" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "나바라 주" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "오렌세 주" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "아스투리아스 주" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "팔렌시아 주" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "라스팔마스 주" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "폰테베드라 주" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "살라망카 주" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "산타크루스데테네리페 주" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "칸타브리아 주" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "세고비아 주" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "세비야 주" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "소리아 주" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "타라고나 주" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "테루엘 주" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "톨레도 주" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "발렌시아 주" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "바야돌리드 주" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "비스카야 주" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "사모라 주" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "사라고사 주" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "세우타 자치주" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "멜리야 주" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "안달루시아 주" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "아라곤 주" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "아스투리아스 지방" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "발레아레스 제도" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "바스크 지방" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "카나리 제도" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "카스티야라만차 지방" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "카스티야레온 지방" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "카탈로니아 지방" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "에스트레마두라 지방" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "갈리시아 지방" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "무르시아 지방" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "나바라 지방" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "발렌시아 지방" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "우편번호를 입력하세요. (01XXX - 52XXX 형식)" - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"올바른 전화번호를 입력하세요. (6XXXXXXXX, 8XXXXXXXX 또는 9XXXXXXXX 형식)" - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "올바른 NIF, NIE 또는 CIF를 입력하세요." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "올바른 NIF 또는 NIE를 입력하세요." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "NIF의 체크섬이 틀립니다." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "NIE의 체크섬이 틀립니다." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "CIF의 체크섬이 틀립니다." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "올바른 계좌번호를 입력하세요. (XXXX-XXXX-XX-XXXXXXXXXX 형식)" - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "계좌번호의 체크섬이 틀립니다." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "올바른 핀란드 사회보장 번호를 입력하세요." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "전화번호는 0X XX XX XX XX 형식이어야 합니다." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "올바른 우편번호를 입력하세요." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "베드퍼드셔 주" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "버킹엄셔 주" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "체셔 주" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "콘월 주 (시실리 섬)" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "컴브리아 주" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "더비셔 주" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "데번 주" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorest 주" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "카운티 더럼 주" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "이스트 서섹스 주" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "에섹스 주" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "글로스터셔 주" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "그레이터 런던" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "그레이터 멘체스터 주" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "햄프셔 주" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "허트퍼드셔 주" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "켄트 주" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "랭커셔 주" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "레스터셔 주" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "링컨셔 주" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "머시사이드 주" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "노퍽 주" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "노스요크셔 주" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "노스햄프턴 주" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "노섬벌랜드 주" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "노팅험셔 주" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "옥스포드셔 주" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "시롭셔 주" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "서머셋 주" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "사우스요크셔 주" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "스태포드셔 주" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "서퍽 주" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "서리 주" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "타인-웨어 주" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "워릭셔 주" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "웨스트미들랜즈" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "웨스트서섹스 주" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "웨스트요크셔 주" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "윌트셔 주" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "우스터셔 주" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "앤트림 카운티" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "아마 카운티" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "다운 카운티" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "퍼매너 카운티" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "런던데리 카운티" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "티론 카운티" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "클루이드 주" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "디버드 주" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "궨트 주" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "귀네드 주" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "미드글라모건 주" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "포이스 주" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "사우스글라모건 주" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "웨스트글라모건 주" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "보더스 주" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "센트럴스코틀랜드" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "덤프리스갤러웨이 주" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "파이프 주" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "그램피언 주" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "하이랜드 주" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "로디언 주" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "오크니 제도" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "셰틀랜드 제도" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "스트래스클라이드 주" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "태이사이드 주" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "웨스턴아일 주" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "잉글랜드 주" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "노던아일랜드 주" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "스코틀랜드 주" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "웨일즈 주" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "올바른 차량 등록 번호를 입력하세요." - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "올바른 전화번호를 입력하세요." - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "올바른 우편번호를 입력하세요." - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "올바른 NIK/KTP 번호를 입력하세요." - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "아체" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "발리" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "반텐" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "벵쿨루" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "족자 카르타" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "자카르타" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "고론탈로" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "잠비" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "자와 바라트" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "자와 텐가" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "자와 티무르" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "칼리만탄 바라트" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "칼리만탄 슬라탄" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "칼리만탄 텐가" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "칼리만탄 티무르" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "케풀라우안 방카-벨리텅" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "케풀라우안 리아우" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "렘풍" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "말루쿠" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "말루쿠 우타라" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "누사 텐가라 바라트" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "누사 텐가라 티무르" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "파푸아" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "파푸아 바라트" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "리아우" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "술라웨시 바라트" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "술라웨시 슬라탄" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "술라웨시 Tengah" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "술라웨시 Tenggara" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "술라웨시 우타라" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "수마 테라 바라트" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "수마트라 슬라탄" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "수마트라 우타라" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Magelang" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "수라 카르타 - 솔로몬" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madiun" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kediri" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanuli" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Nanggroe 아체 Darussalam" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Kepulauan Bangka Belitung" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "군단 영사관" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "군단 외교" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "반둥" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "술라웨시의 우타라 Daratan" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - 티모르" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "술라웨시의 우타라 Kepulauan" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - 롬복" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "파푸아 댄 파푸아 바라트" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Cirebon" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbawa" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - 플로레스" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "보고르" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalongan" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "세마랑" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Pati" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "수라바야" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Madura" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malang" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Jember" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banyumas" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "연방 정부" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purwakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarjo" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Garut" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "앤트림" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Armagh" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Carlow" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "캐번" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "클레어" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "코르크" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "데리" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "도네갈" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Down" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "더블린" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fermanagh" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "골웨이" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "케리" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "킬데어" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "킬케니" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "라오 이스" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "리트림" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerick" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "롱퍼드" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "로우쓰" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "메이요" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "미스" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "모나핸" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "오팔리" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "로스 커먼" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "슬라이고" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tipperary" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tyrone" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "워터 포드" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Westmeath" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "웩스포드" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "위클로" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "XXXXX형식의 우편 번호를 입력하세요." - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "올바른 ID 번호를 입력하세요." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "올바른 아이슬란드 주민번호를 입력하세요. (XXXXXX-XXXX 형식)" - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "아이슬란드 주민번호가 올바르지 않습니다." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "올바른 우편번호를 입력하세요." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "올바른 사회보장번호를 입력하세요." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "올바른 VAT 번호를 입력하세요." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "우편번호를 입력하세요. (XXXXXXX or XXX-XXXX 형식)" - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "홋카이도" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "아오모리 현" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "이와테 현" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "미야기 현" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "아키타 현" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "야마가타 현" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "후쿠시마 현" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "이바라키 현" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "도치기 현" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "군마 현" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "사이타마 현" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "지바 현" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "도쿄 도" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "카나가와 현" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "야마나시 현" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "나가노 현" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "니가타 현" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "도야마 현" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "이시카와 현" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "후쿠이 현" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "기후 현" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "시즈오카 현" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "아이치 현" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "미에 현" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "시가 현" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "교토 부" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "오사카 부" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "효고 현" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "나라 현" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "와카야마 현" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "돗토리 현" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "시마네 현" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "아카야마 현" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "히로시마 현" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "야마구치 현" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "도구시마 현" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "카가와 현" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "에히메 현" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "고치 현" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "후쿠오카 현" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "사가 현" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "나가사키 현" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "구마모토 현" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "오이타 현" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "미야자키 현" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "가고시마 현" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "오키나와 현" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "올바른 쿠웨이트 주민번호를 입력하세요." - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "아과스칼리엔테스 주" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "바하칼리포르니아 주" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "바하칼리포르니아수르 주" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "캄페체 주" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "치와와 주" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "치아파스 주" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "코아우일라 주" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "콜리마 주" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "연방구 (멕시코시)" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "두랑고 주" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "게레로 주" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "과나후아토 주" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "이달고 주" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "할리스코 주" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "멕시코 주" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "미초아칸 주" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "모렐로스 주" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "나야리트 주" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "누에보레온 주" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "오아하카 주" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "푸에블라 주" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "케레타로 주" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "킨타나로오 주" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "시날로아 주" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "산루이스포토시 주" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "소노라 주" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "타바스코 주" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "타마울리파스 주" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "틀락스칼라 주" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "베라크루스 주" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "유카탄 주" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "사카테카스 주" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "올바른 우편번호를 입력하세요." - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "올바른 SoFi 번호를 입력하세요." - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "드렌터 주" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "플레볼란트 주" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "프리슬란트 주" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "힐데를란트 주" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "흐로닝언 주" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "노르트브라반트 주" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "노르트홀란트 주" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "오버레이셜 주" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "위트레흐트 주" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "제일란트 주" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "자위트홀란트 주" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "올바른 노르웨이 사회보장번호를 입력해 주세요." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "이 항목은 8자리 숫자로 필요합니다." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "이 항목은 11자리 숫자가 필요합니다." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "주민번호는 11자리 숫자로 구성됩니다." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "주민번호 체크섬이 올바르지 않습니다." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Tax 번호(NIP)의 체크섬이 올바르지 않습니다." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "사업자 등록번호(REGON)은 9자리 또는 14자리의 숫자로 구성됩니다." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "사업자 등록번호(REGON)의 체크섬이 올바르지 않습니다." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "우편번호를 입력하세요. (XX-XXX 형식)" - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Lower Silesia" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kuyavia-Pomerania" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublin" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubusz" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodz" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Lesser Poland" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Masovia" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opole" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Subcarpatia" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlasie" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomerania" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Silesia" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Swietokrzyskie" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Warmia-Masuria" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Greater Poland" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "West Pomerania" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "우편번호는 XXXXX-XXX 형식으로 입력하세요." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "전화번호는 9자리 숫자이거나 + 또는 00으로 시작해야 합니다." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "올바른 CIF를 입력하세요." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "올바른 CNP를 입력하세요." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "올바른 IBAN을 입력하세요. (ROXX-XXXX-XXXX-XXXX-XXXX-XXXX 형식)" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "전화번호는 XXXX-XXXXXX 형식이어야 합니다." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "올바른 우편번호를 입력하세요. (XXXXXX 형식)" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "올바른 스웨덴 기관 번호를 입력하세요." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "올바른 스웨덴 주민번호를 입력하세요." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "조율 번호는 사용할 수 없습니다." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "올바른 스웨덴 우편번호를 입력하세요. (XXXXX 형식)" - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "스톡홀름" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Västerbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "노르보텐" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "웁살라" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Södermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Östergötland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Jönköping" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "칼마르" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "고틀랜드" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "블레킹예" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "스코네" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halland" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "베스 Götaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Värmland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "외레브로" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Västmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "달라르나" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gävleborg" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Västernorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jämtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Banska Bystrica" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banska Stiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Banovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytca" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Cadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolny Kubin" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajska Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenne" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kezmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komarno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Kosice I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Kosice II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Kosice III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Kosice IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Kosice - okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucke Nove Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoca" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovsky Mikulas" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lucenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Namestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nove Mesto nad Vahom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nove Zamky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizanske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piestany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltar" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povazska Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Presov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Puchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revuca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Roznava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ruzomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Shina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spisska Nova Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stara Lubovna" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidnik" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Sala" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolcany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebisov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trencin" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turcianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdosin" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velky Krtis" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Zarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Zilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Banska Bystrica region" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Bratislava region" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Kosice region" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Nitra region" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Presov region" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Trencin region" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Trnava region" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Zilina region" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "XXXXX형식의 우편 번호를 입력하세요." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "전화번호는 0XXX XXX XXXX 형식입니다." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "올바른 터키계 ID 번호를 입력하세요." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "터키계 식별 번호는 11 자리 숫자입니다." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "우편번호를 입력하세요. (XXXXX 또는 XXXXX-XXXX 형식)" - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "전화번호는 XX-XXXX-XXXX 형식으로 입력하세요." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "올바른 미국 사회보장번호를 입력하세요. (XXX-XX-XXXX 형식)" - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "미국 주나 지역을 입력하세요." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "미국의 주 (두개의 대문자로)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "미국 우편번호 (대문자 약어 2자)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "전화번호" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" -"올바른 CI 번호를 입력하세요. (X.XXX.XXX-X, XXXXXXX-X 또는 XXXXXXXX 형식)" - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "올바른 CI 번호를 입력하세요." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "올바른 남아프리카 주민번호를 입력하세요." - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "올바른 남아프리카 우편번호를 입력하세요." - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "이스턴케이프 주" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "프리스테이트 주" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "가우텡 주" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "크와줄루나탈 주" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "림포포 주" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "음푸말랑가 주" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "노던케이프 주" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "노스웨스트 주" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "웨스턴케이프 주" diff --git a/django/contrib/localflavor/locale/lt/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/lt/LC_MESSAGES/django.mo deleted file mode 100644 index f471849bc8..0000000000 Binary files a/django/contrib/localflavor/locale/lt/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/lt/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/lt/LC_MESSAGES/django.po deleted file mode 100644 index 4f6d11891e..0000000000 --- a/django/contrib/localflavor/locale/lt/LC_MESSAGES/django.po +++ /dev/null @@ -1,3554 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011. -# Kostas , 2011. -# lauris , 2011. -# Nikolajus Krauklis , 2011. -# Simonas Simas , 2012. -# Vytautas Astrauskas , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-09 18:09+0000\n" -"Last-Translator: Simonas Simas \n" -"Language-Team: Lithuanian (http://www.transifex.net/projects/p/django/" -"language/lt/)\n" -"Language: lt\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n" -"%100<10 || n%100>=20) ? 1 : 2)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Įveskite pašto kodą NNNN arba ANNNNAAA formatu." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Šis laukas priima tik skaičius." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Šis laukas priima 7 arba 8 skaičius." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "" -"Įveskite tinkamą asmens id numerį XXXXXXXXXXX-XXXXXXX-XXXXXXX-X formatu." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "Negaliojantis asmens identifikavimo numeris." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenlandas" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Carinthia" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Žemutinė Austrija" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Aukštutinė Austrija" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Zalcburgas" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Styria" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tyrol" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlberg" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Viena" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Įveskite pašto kodą XXXX formatu." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Įveskite teisingą Austrijos socialinio draudimo numerį XXXX XXXXXX formatu." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "Įveskite 4 skaitmenų pašto kodą." - -#: au/models.py:9 -msgid "Australian State" -msgstr "Australijos valstija" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "Australijos pašto kodas" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "Australijos telefono numeris" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Antverpenas" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Briuselis" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Rytų Flandrija" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Flamandų Brabanto" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hainaut" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Liege" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburg" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Liuksemburgas" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Walloon Brabant" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "West Flanders" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Briuselio sostinės regionas" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Flemish regionas" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Valonija" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "Įveskite pašto kodą 1XXX - 9XXX formatu." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Įveskite teisingą telefono numerį vienu iš šių formatu: 0x xxx xx xx, 0xx xx " -"xx xx, 04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx." -"xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Įveskite pašto kodą XXXXX-XXX formatu." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Telefonas turi būti XXX-XXXX-XXXX formatu." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Pasirinkite teisingą Brazilijos valstiją. Jūsų pasirinkta valstija nėra " -"teisinga." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Netinkamas CPF numeris" - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Šis laukas talpina daugiausiai 11 skaitmenų arba 14 simbolių." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Netinkamas CNPJ numeris" - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Šis laukas reikalauja mažiausiai 14 skaitmenų." - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Įveskite pašto kodą XXX XXX formatu." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"Įveskite teisingą Kanados socialinio draudimo numerį XXX-XXX-XXX formatu." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aargau" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basel-Stadt" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basel-Land" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Berne" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Fribourg" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Ženeva" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubuenden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucerne" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchatel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "St. Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zurich" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Įveskite tinkamą šveicarų asmens id ar paso numerį X1234567<0 arba " -"1234567890 formatu." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Įveskite teisingą Čilės RUT." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Įveskite teisingą Čilės RUT numerį XX.XXX.XXX-X formatu." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "Čilės RUT neteisingas." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "Įveskite pašto kodą formatu XXXXXX." - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" -"Identifikacinės kortelės numeris susideda iš 15-os arba 18-os skaitmenų." - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "Neteisingas identifikacinės kortelės numeris: Neteisingas gimtadienis" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" -"Neteisingas identifikacinės kortelės numeris: Neteisingas vietovės kodas" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "Įveskite tinkamą telefono numerį." - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Praha" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Vidurio Čekijos kraštas" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Pietų Čekijos kraštas" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Pilzeno regionas" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Carlsbad Region" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Usti Region" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Liberec Region" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Hradec Region" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Pardubice Region" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Vysocina Region" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "South Moravian Region" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Olomouc Region" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Zlin Region" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Moravian-Silesian Region" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Įveskite pašto kodą XXXXX ar XXX XX formatu." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "Įveskite gimimo liudijimo numerį XXXXXX/XXXX ar XXXXXXXXXX formatu." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "Netinkama lyties reikšmė. Tinkamos reikšmės: 'f' ir 'm'" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Įveskite teisingą gimimo numerį." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Įveskite teisingą IC numerį." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Wuerttemberg" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Bavarija" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlynas" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburgas" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Bremenas" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburgas" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hessen" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklenburg-Western Pomerania" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Žemutinė Saksonija" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "North Rhine-Westphalia" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Rhineland-Palatinate" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Saarland" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Saksonija" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Saxony-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Thuringia" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Įveskite pašto kodą XXXXX formatu." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Įveskite tinkamą Vokiško asmens id numerį XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"formatu." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Arava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alacant" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almeria" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Avila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Illes Balears" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barselona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Caceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cadiz" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castello" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Cordoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "A Coruna" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Girona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipuzkoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaen" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "Leonas" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lleida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madridas" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Malaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murcia" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarre" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Ourense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturias" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palencia" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Cruz de Tenerife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Cantabria" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Seville" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valencia" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Bizkaia" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Zaragoza" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andalūzija" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragon" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Principality of Asturias" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Balearic Islands" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Basque Country" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Kanarų salos" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Castile-La Mancha" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Castile and Leon" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Catalonia" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Extremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galicia" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Region of Murcia" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Foral Community of Navarre" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Valensijos Bendrija" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Įveskite galiojantį pašto kodą 01XXX - 52XXX formatu." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Įveskite teisingą telefono numerį 6XXXXXXXX, 8XXXXXXXX ar 9XXXXXXXX formatu." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Prašome įvesti teisingą NIF, NIE ar CIF." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Prašome įvesti teisingą NIF ar NIE." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Neteisinga NIF kontrolinė suma." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Neteisinga NIE kontrolinė suma." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Neteisinga CIF kontrolinė suma." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Prašome įvesti teisingą banko sąskaitos numerį XXXX-XXXX-XX-XXXXXXXXXX " -"formatu." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Neteisinga banko sąskaitos numerio kontrolinė suma. " - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Įveskite tinkamą suomišką socialinio draudimo numerį." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Telefono numeris turi būti 0X XX XX XX XX formatu." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Įveskite galiojantį pašto kodą." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Cornwall and Isles of Scilly" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cumbria" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "East Sussex" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Eseksas" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Greater London" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Greater Manchester" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordshire" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "North Yorkshire" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northamptonshire" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oksfordšyras" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "Pietų Jorkšyras" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Stafordšyras" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne and Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "West Midlands" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "West Sussex" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "Vakarų Jorkšyras" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "County Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "County Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "County Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "County Fermanagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "County Londonderry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "County Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "South Glamorgan" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "West Glamorgan" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Centrinė Škotija" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries and Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Orkney Islands" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Shetland Islands" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Western Isles" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "Anglija" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Šiaurinė Airija" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Škotija" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Velsas" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "Įveskite teisingą 13-os skaitmenų JMBG" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "Klaida datos dalyje" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "Įveskite teisingą 11-os skaitmenų OIB" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Įveskite teisingą transporto priemonės registracijos numerį" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "Įveskite teisingą vietovės kodą" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "Skaitinė dalis negali būti nulis" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "Įveskite teisingą 5-ių ženklų pašto kodą" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Įveskite teisingą telefono numerį" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "Įveskite teisingą vietovės arba mobiliojo ryšio tiekėjo kodą" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "Telefono numeris yra per ilgas" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "Įveskite teisingą 19-os skaičių JMBAG prasidedantį 601983" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "Kortelės išdavimo numeris negali būti nulis" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "Zagrebo miestas" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "Bjelovaras-Bilogora" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "Brodas-Posavina" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "Dubrovnikas-Neretva" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "Istrija" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "Karlovaco apskritis" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "Koprivnica-Križevcai" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "Krapina-Zagorjė" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "Lika-Senis" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "Medžimurjė" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "Osijekas-Barania" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "Požega-Slavonija" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "Primorjė-Kalnų Kotaras" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "Sisakas-Moslavina" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "Splitas-Dalmatija" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "Šibenikas-Kninas" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "Varaždino apskritis" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "Virovitica-Podravina" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "Vukovaras-Srijemas" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "Zadaro apskritis" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "Zagrebo apskritis" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Įveskite galiojantį pašto kodą" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Įveskite teisingą NIK/KTP numerį." - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Aceh" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Banten" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Bengkulu" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Yogyakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Jakarta" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Gorontalo" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Jambi" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Jawa Barat" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Jawa Tengah" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Jawa Timur" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Kalimantan Barat" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Kalimantan Selatan" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Kalimantan Tengah" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Kalimantan Timur" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Kepulauan Bangka-Belitung" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Kepulauan Riau" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampung" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Maluku" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Maluku Utara" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Nusa Tenggara Barat" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Nusa Tenggara Timur" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papua" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Papua Barat" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Riau" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Sulawesi Barat" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Sulawesi Selatan" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Sulawesi Tengah" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Sulawesi Tenggara" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Sulawesi Utara" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Sumatera Barat" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Sumatera Selatan" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Sumatera Utara" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Magelang" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Surakarta - Solo" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madiun" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kediri" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanuli" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Nanggroe Aceh Darussalam" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Kepulauan Bangka Belitung" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Corps Consulate" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Corps Diplomatic" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Bandung" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Sulawesi Utara Daratan" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timor" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Sulawesi Utara Kepulauan" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lombok" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Papua dan Papua Barat" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Cirebon" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbawa" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Flores" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Bogor" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalongan" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Semarang" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Pati" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Surabaya" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Madura" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malang" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Jember" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banyumas" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Federal Government" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purwakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarjo" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Garut" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Antrim" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Armagh" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Carlow" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Cavan" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Clare" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Cork" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Derry" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Donegal" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Down" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Dublinas" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fermanagh" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Galway" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerry" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Kildare" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Kilkenny" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Laois" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Leitrim" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerick" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Longford" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Louth" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Mayo" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Meath" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Monaghan" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Offaly" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Roscommon" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Sligo" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tipperary" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tyrone" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Waterford" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Westmeath" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Wexford" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Wicklow" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Įveskite pašto kodą XXXXX formatu" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Įveskite teisingą ID numerį." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "Įveskite ZIP pašto kodą XXXXXX arba XXX XXX formatu." - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "Įveskite tinkamą islandų asmens id numerį XXXXXX-XXXX formatu." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Islandiškas asmens ID yra netinkamas." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Įveskite tinkamą pašto kodą." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Įveskite tinkamą socialinio draudimo numerį." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Įveskite tinkamą PVM numerį" - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Įveskite pašto kodą XXXXXXX arba XXX-XXXX formatu." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokaidas" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Yamagata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukushima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Tochigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Chiba" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tokijas" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Yamanashi" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Toyama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ishikawa" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Shizuoka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Shiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kioto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hyogo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakayama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okayama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hirošima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Yamaguchi" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokushima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Kochi" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasakis" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Oita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Miyazaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagoshima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinava" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Įveskite teisingą Kuveito tapatybės kortelės numerį." - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" -"Identifikacijos kortelės skaičiai turi turėti nuo 4-ių iki 7-ių skaitmenų " -"arba didžiąją raidę ir 7 skaitmenis." - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "Šis laukelis turėtų turėti lygiai 13 skaitmenų." - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "Pirmi 7 UMCN skaitmenys turi nurodyti teisingą datą praeityje." - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "UMCN yra neteisingas." - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "Aerodromas" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "Aračinovas" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "Berovas" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "Bitola" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "Bogdančis" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "Bogovinja" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "Bosilovas" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "Brveniča" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "Valandovas" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "Vasilevas" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "Vevčanis" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "Velesas" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "Vinica" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "Vraneštica" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "Vrapčištės" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "Gevgelija" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "Gostivaras" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "Gradskas" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "Debaras" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "Debarca" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "Delčevas" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "Demir Kapija" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "Demir Hisaras" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "Dolnenis" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "Drugovas" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "Želinas" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "Zajas" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "Zelenikovas" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "Zrnovičas" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "Ilindenas" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "Jegunovčė" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "Kavadarčis" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "Kičevas" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "Končė" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "Kočanis" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "Kratovas" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "Kriva Palanka" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "Krivogaštanis" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "Kruševas" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "Kumanovas" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "Lipkovas" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "Mavrovas ir Rostušė" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "Makedonijos Kamenica" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "Makedonijos Brodas" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "Mogila" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "Negotinas" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "Novačis" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "Novo Selas" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "Oslomeja" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "Ohridas" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "Petrovecas" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "Pehčevas" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "Plasnica" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "Prilepas" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "Probištipas" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "Radovišas" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "Rankovčė" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "Resenas" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "Rosomanas" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "Sveti Nikolas" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "Sopištas" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "Dojranas" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "Staro Nagoričanas" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "Struga" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "Strumica" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "Studeničanis" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "Tearcė" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "Tetovas" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "Centrinė Župa" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "Čaška" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "Češinovas-Obleševas" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "Čučer-Sandevas" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "Štipas" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "Įveskite teisingą ZIP pašto kodą XXXXX formatu." - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "Įveskite teisingą RFC." - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "Įveskite teisingą CURP." - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baja California" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baja California Sur" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Distrito Federal" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Estado de Mexico" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacan" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo León" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Queretaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potosi" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Yucatan" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Įveskite galiojantį pašto kodą" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Įveskite teisingą SoFi numerį." - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drenthe" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Friesland" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Gelderland" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groningen" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Šiaurinis Brabantas" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Šiaurinė Olandija" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrecht" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zeeland" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Zuid-Holland" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Įveskite tinkamą norvegiška socialinio draudimo numerį." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Šis laukas priima 8 skaičius." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Šis laukas priima 11 skaičių." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Nacionalinį asmens identifikavimo kodą sudaro 11 skaitmenų." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Neteisinga nacionalinio identifikacinio numerio kontrolinė suma." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Neteisinga mokesčių mokėtojo numerio (NIP) kontrolinė suma." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" -"Nacionalinis verslo registracijos numeris (REGON) susideda iš 9 ar 14 " -"skaitmenų." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "Neteisinga nacionalinio verslo numerio (REGON) kontrolinė suma." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Įveskite pašto kodą XX-XXX formatu." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Lower Silesia" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kuyavia-Pomerania" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublin" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubusz" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodz" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Lesser Poland" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Masovia" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opole" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Subcarpatia" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlasie" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomerania" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Silesia" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Swietokrzyskie" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Warmia-Masuria" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Greater Poland" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "West Pomerania" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Įveskite pašto kodą XXXX-XXX formatu." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "Telefono numerį turi sudaryti 9 skaitmenys arba prasidėti + ar 00." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Įveskite teisingą CIF numerį." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Įveskite teisingą CNP numerį." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "Įveskite teisingą IBAN numerį ROXX-XXXX-XXXX-XXXX-XXXX-XXXX formatu" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Telefono numeris turi būti XXXX-XXXXXX formatu." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Įveskite teisingą pašto kodą XXXXXX formatu" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "Įveskite pašto kodą XXXXXX formatu." - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "Įveskite paso numerį XXXX XXXXXX formatu." - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "Įveskite paso numerį XX XXXXXXX formatu." - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "Maskva" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "Sankt-Peterburgas" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "Adygėjos Respublika" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "Baškirijos Respublika" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "Altajaus Respublika" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "Dagestano Respublika" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "Karelija, Respublika" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "Altajaus kraštas" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Įveskite teisingą Švedijos organizacijos identifikacinį numerį." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Įveskite teisingą Švedijos asmeninį identifikacinį numerį." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Koordinavimo numeriai uždrausti." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Įveskite Švedų pašto kodą XXXXX formatu." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Stokholmas" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Vasterbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norrbotten" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Uppsala" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Sodermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Ostergotland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Jonkoping" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmar" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Gotlandas" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Blekinge" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Skane" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halland" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Vastra Gotaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Varmland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Orebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Vastmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Dalarna" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gavleborg" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Vasternorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jamtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "Įveskite teisingą mokesčių numerį SIXXXXXXXX formatu." - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "Įveskite telefono numerį +386XXXXXXXX arba 0XXXXXXXX formatu." - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Banska Bystrica" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banska Stiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Banovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytca" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Cadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolny Kubin" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajska Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenne" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kezmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komarno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Kosice I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Kosice II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Kosice III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Kosice IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Kosice - okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucke Nove Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoca" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovsky Mikulas" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lucenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Namestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nove Mesto nad Vahom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nove Zamky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizanske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piestany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltar" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povazska Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Presov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Puchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revuca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Roznava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ruzomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spisska Nova Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stara Lubovna" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidnik" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Sala" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolcany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebisov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trencin" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turcianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdosin" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velky Krtis" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Zarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Zilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Banska Bystrica regionas" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Bratislavos regionas" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Kosice regionas" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Nitra regionas" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Presov regionas" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Trencin regionas" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Trnava regionas" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Zilina regionas" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Įveskite pašto kodą XXXXX formatu." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Telefono numeriai turi būti 0XXX XXX XXXX formatu." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Įveskite teisingą Turkijos identifikacinį numerį." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "Turkijos identifikacinis numeris turi sudaryti 11 skaičių" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Įveskite pašto kodą XXXXX arba XXXXX-XXXX formatu." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Telefono numeriai turi būti XXX-XXX-XXXX formatu." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "Įveskite tinkamą JAV socialinio draudimo numerį." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Įveskite JAV valstiją ar teritoriją." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "JAV valstija (dvi didžiosios raidės)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "JAV pašto kodas (dvi didžiosiosios raidės)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Telefono numeris" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "Įveskite teisingą CI numerį X.XXX.XXX-X,XXXXXXX-X ar XXXXXXXX formatu." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Įveskite teisingą CI numerį." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Įveskite teisingą Pietų Afrikos identifikavimo numerį." - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Įveskite teisingą Pietų Afrikos pašto kodą." - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Rytinis Keiptaunas" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Free State" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Šiaurinis Keiptaunas" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "North West" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Vakarinis Keiptaunas" diff --git a/django/contrib/localflavor/locale/lv/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/lv/LC_MESSAGES/django.mo deleted file mode 100644 index ffde5331ed..0000000000 Binary files a/django/contrib/localflavor/locale/lv/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/lv/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/lv/LC_MESSAGES/django.po deleted file mode 100644 index 3ff90ab366..0000000000 --- a/django/contrib/localflavor/locale/lv/LC_MESSAGES/django.po +++ /dev/null @@ -1,3544 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Latvian (http://www.transifex.net/projects/p/django/language/" -"lv/)\n" -"Language: lv\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " -"2)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Ievadiet pasta indeksu NNNN vai ANNNNAAA formātā." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Šis lauks drīkst saturēt tikai ciparus." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Šim laukam jasastāv no 7 vai 8 cipariem." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Ievadiet korektu CUIT XX-XXXXXXXX-X vai XXXXXXXXXXXX formātos." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "Nekorekts CUIT." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenlande" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Karintija" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Zalcburga" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Stīrija" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tirole" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Vīne" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Ievadiet pasta indeksu formātā XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Ievadiet korektu Austrijas sociālās drošības numuru XXXX XXXXXX formātā." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburga" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Ievadiet pasta indeksu XXXXX-XXX formātā." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Tālruņa numuriem jābūt XXX-XXXX-XXXX formātā." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Izvēlēties derīgu Brazīlijas pavalsti. Šī pavalsts nav no pieejamajām " -"pavalstīm." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Nekorekts CPF numurs" - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Šī lauka vērtībai jābūt ne vairāk kā 11 cipariem vai 14 simboliem." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Nekorekts CNPJ numurs" - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Šim laukam jasastāv ne vairāk kā no 14 cipariem." - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Ievadiet pasta indeksu formātā XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"Ievadiet korektu Kanādas sociālās apdrošināšanas numuru XXX-XXX-XXX formātā." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Berne" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Ženēva" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarusa" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucerne" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valē" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Cīrige" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Lūdzu ievadiet korektu šveiciešu identifikācijas vai pases nummuru " -"X1234567<0 vai 1234567890 formātā." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Ievadiet korektu čīliešu RUT" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Ievadiet korektu čīliešu RUT XX.XXX.XXX-X formātā." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "Čīles RUT ir nekorekts." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Prāga" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Centrālbohēmijas reģions" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Dienvidbohēmijas reģions" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Pilzenes reģions" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Karslbādes reģions" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Ievadiet pasta indeksu XXXXX vai XXX XX formātos." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "Ievadiet dzimšanas numuru XXXXXX/XXXX vai XXXXXXXXXX formātā." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" -"Nekorekts neobligatais parametrs dzimums, korektās vērtības ir 'f' un 'm'." - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Ievadiet korektu dzimšanas numuru." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Ievadiet korektu IC numuru." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Bādene-Virtemburga" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Bavārija" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlīne" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburga" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Brēmene" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburga" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hesene" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Meklenburga-Rietumpomerānija" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Lejassaksija" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "Ziemeļreina-Vestfālija" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Reinaszeme-Pfalca" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Saksija" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Saksija-Anhalte" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Šlesviga-Holšteina" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Tīringene" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Ievadiet pasta indeksu formātā XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Ievadiet korektu Vācijas identifikācijas kartes numuru XXXXXXXXXXX-XXXXXXX-" -"XXXXXXX-X formātā." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Arava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almērija" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Avila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barselona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Kadisa" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Kordova" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Hirona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granāda" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Gvadalahara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "Leona" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madride" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Malaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Mursija" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarra" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Orense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Astūrija" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palensija" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Laspalmasa" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanka" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Tenerifes Santa Kruza" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Kantabrija" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovija" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Seviļa" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Sorija" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Taragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valensija" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valadolida" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Biskaja" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Saragosa" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andalūzija" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragona" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Astūrijas novads" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Baleāru salas" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Basku zeme" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Kanāriju salas" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Kastīlija La Manša" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Kastīlija Leona" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Katalonija" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Ekstremadūra" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galīcija" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Mursijas reģions" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" -"Ievadiet korektu pasta indeksu sekojošajā formātā un robežās 01XXX - 52XXX" - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Ievadiet korektu tālruņa numuru vienā no sekojošajiem formātiem 6XXXXXXXX, " -"8XXXXXXXX vai 9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Ievadiet korektu NIF, NIE vai CIF." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Lūdzu ievadiet korektu NIF vai NIE." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Nekorekta NIF kontrolsumma." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Nekorekta NIE kontrolsumma." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Nekorekta CIF kontrolsumma." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "Ievadiet korektu bankas konta numuru formātā XXXX-XXXX-XX-XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Nekorekta bankas konta numura kontrolsumma." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Ievadiet korektu Somijas sociālās drošības nummuru." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Telefona numuriem jābūt 0X XX XX XX XX formātā." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Ievadiet korektu pasta indeksu." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Češīra" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Kumbrija" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devona" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kenta" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surreja" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "Anglija" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Ziemeļīrija" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Skotija" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Velsa" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Ievadiet korektu transportlīdzekļa numuru." - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Ievadiet korektu tālruņa numuru." - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Ievadiet korektu pasta indeksu." - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Ievadiet korektu NIK/KTP numuru." - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Jogiakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Džakarta" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Korka" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Dublina" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Galveja" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Kilkenija" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerika" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" -"Lūdzu ievadiet korektu Islandes identifikācijas nummuru XXXXXX-XXXX formātā." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Islandes identifikācijas nummurs nav korekts." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Ievadiet korektu pasta indeksu." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Ievadiet korektu sociālās drošības nummuru." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Ievadiet korektu PVN numuru." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Ievadiet pasta indeksu XXXXXXX vai XXX-XXXX formātos." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokaido" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Ivate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukušima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tokija" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Išikava" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Šizuka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kioto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Šimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hirošima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagošima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinava" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Ievadiet korektu Kuveitas pilsoņu ID numuru." - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Kampeče" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Kolima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Verakrusa" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Jukatana" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Ievadiet korektu pasta indeksu." - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Ievadiet korektu SoFi numuru." - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Frīzlande" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groningena" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Ziemeļbrabante" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Ziemeļholande" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrehta" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zēlande" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Dienvidholande" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Lūdzu ievadiet korektu Norvēģijas sociālās drošības nummuru." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Šim laukam jasastāv no 8 cipariem." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Šim laukam jasastāv no 11 cipariem." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Nacionālais identifikācijas numurs sastāv no 11 cipariem." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Nekorekta kontrolsumma nacionālajam identifikācijas numuram." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Nekorekta nodokļu numura (NIP) kontrolsumma." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" -"Nacionālais biznesa reģistra numurs (REGON) sastāv no 9 vai 14 cipariem." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "Nekorekta nacionālā biznesa reģistra numura (REGON) kontrolsumma." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Ievadiet pasta indeksu formātā XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Apakšsilēzija" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodza" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomerānija" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Silēzija" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Ievadiet pasta indeksu XXXX-XXX formātā." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "Tālruņa numuriem jābūt 9 cipariem vai jāsākas ar + vai 00" - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Ievadiet korektu CIF." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Ievadiet korektu CNP." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "Ievadiet korektu IBAN ROXX-XXXX-XXXX-XXXX-XXXX-XXXX formātā." - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Tālruņa numuriem jābūt XXXX-XXXXXX formātā." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Ievadiet pasta indeksu formātā XXXXXX." - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Ievadiet korektu Zviedrijas organizācijas numuru." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Ievadiet korektu Zviedrijas ID numuru." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Ievadiet Zviedrijas pasta indeksu formātā XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Stokholma" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Upsala" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Gotlande" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Ērebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jemtlande" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Ievadiet pasta indeksu XXXXX vai XXXXX-XXXX formātos." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Telefona numuriem jābūt XXX-XXXX-XXXX formātā." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" -"Ievadiet korektu ASV sociālās apdrošināšanas numuru XXX-XX-XXXX formātā." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Ievadiet ASV štatu vai teritoriju." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "ASV štats (divi augšējā reģistra burti)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Tālruņa numurs" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" -"Ievadiet korektu CI numuru X.XXX.XXX-X,XXXXXXX-X vai XXXXXXXX formātos." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Ievadiet korektu CI numuru." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Ievadiet korektu DĀR ID numuru." - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Ievadiet korektu DĀR pasta indeksu." - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "" diff --git a/django/contrib/localflavor/locale/mk/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/mk/LC_MESSAGES/django.mo deleted file mode 100644 index efe20225b5..0000000000 Binary files a/django/contrib/localflavor/locale/mk/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/mk/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/mk/LC_MESSAGES/django.po deleted file mode 100644 index 2e0970612c..0000000000 --- a/django/contrib/localflavor/locale/mk/LC_MESSAGES/django.po +++ /dev/null @@ -1,3554 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011. -# , 2012. -# vvangelovski , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-12 11:12+0000\n" -"Last-Translator: vvangelovski \n" -"Language-Team: Macedonian (http://www.transifex.net/projects/p/django/" -"language/mk/)\n" -"Language: mk\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Внесете поштенски број во форматот NNNN или ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Во ова поле смее да бидат само бројки." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Во ова поле смее да има 7 или 8 цифри." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Внесете правилен CUIT во XX-XXXXXXXX-X or XXXXXXXXXXXX формат." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "Неправилен CUIT." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Бургенленд" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Каринтиа" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Долна Австрија" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Горна Австрија" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Салцзбург" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Стириа" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Тирол" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Ворарлберг" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Виена" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Внесете правилен поштенски број во форматот XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Внесете правилен број за социјално осигурување на Австрија во XXXX-XXXXXX " -"формат." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "Внесете 4 цифрен поштенски број." - -#: au/models.py:9 -msgid "Australian State" -msgstr "Австралиска држава" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "Австралиски поштенски број" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "Австралиски телефонски број" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Антверп" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Брисел" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Источен Фландерс" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Фламански Брабант" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Хаинаут" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Лиж" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Лимбург" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Луксембург" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Намур" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Валун Брабант" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Западен Фландерс" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Брисел Престолничен Регион" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Фламански Регион" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Валониа" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "Внесете валиден поштенски број во форматот 1XXX - 9XXX." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Внесете валиден телефонски број во еден од следниве формати: 0x xxx xx xx, " -"0xx xx xx xx, 04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x." -"xxx.xx.xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Внесете правилен поштенски број во форматот XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Телефонските броеви мора да бидат во XX-XXXX-XXXX форматот." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Изберете правилна бразилска држава. Оваа држава не е од достапните држави." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Неправилен CPF број." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Во ова поле смее да има најмногу 11 цифри или 14 знаци." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Неправилен CNPJ број." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Во ова поле треба да има најмалку 14 цифри" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Внесете правилен поштенски број во формат XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "Внесте правилен канадски број за осигурување во XXX-XXX-XXX форматот." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aargau" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basel-Stadt" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basel-Land" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Berne" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Fribourg" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Женева" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubuenden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucerne" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchatel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "St. Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Цирих" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Внесете правилен швајцарски број на пасош во X1234567<0 или 1234567890 " -"формат." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Внесете правилeн RUT за Чиле." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Внесете правилен RUT за Чиле. Форматот е Xx.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "RUT бројот за Чиле е невалиден." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "Внесете поштенски код во формат XXXXXX." - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "Број на лична карта се состои од 15 или 18 цифри." - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "Невалиден број лична карта: Неуспешна проверка по контролен број" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "Невалиден број лична карта: Погрешен датум на раѓање" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "Невалиден број лична карта: Погрешен код на локација" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "Внесете валиден телефонски број." - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "Внесете валиден мобилен број." - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Прага" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Централен Бохемиски регион" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Јужен Бохемиски регион" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Пилзенски регион" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Карлсбадски регион" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Усти регион" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Либерец регион" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Храдец регион" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Пардубице регион" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Висоцина регион" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Јужно Моравски регион" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Оломуц регион" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Зилина регион" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Моравско-Силесански регион" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Внесете поштенски број во форматот XXXXX или XXX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "Внесете даночен број (NIP) во форматот XXXXXX/XXXX или XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" -"Невалидна вредност за опционален параметар пол, валидни вредности се 'f' и " -"'m'" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Внесете правилен даночен број." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Внесете правилен даночен број." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Баден-Вуертемберг" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Баварија" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Берлин" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Бранденбург" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Бремен" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Хамбург" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Хесен" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Мекленбург - Западна Померанија" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Долна Саксонија" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "Северна Рајна-Вестфалија" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Рајналенд-Палатинате" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Сарленд" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Саксонија" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Саксонија-Анхалт" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Шлесвиг-Холштајн" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Турингиа" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Внесете правилен поштенски број во формат XXXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Внесете правилен број на лична карта во Германија во XXXXXXXXXXX-XXXXXXX-" -"XXXXXXX-X форматот." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Arava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alacant" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almeria" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Авила" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Illes Balears" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Барцелона" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Caceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cadiz" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castello" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Кордоба" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "A Coruna" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Girona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipuzkoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaen" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "Леон" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lleida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Луго" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Мадрид" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Малага" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murcia" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarre" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Ourense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturias" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palencia" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Санта Круз и Тенерифе" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Cantabria" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Севиља" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Толедо" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Валенсија" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Bizkaia" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Сарагоса" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Андалузија" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Арагон" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Principality of Asturias" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Острови Балеарик" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Баскија" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Канарски острови" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Кастиља ла Манча" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Кастиња и Леон" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Каталонија" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Екстремадура" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Галиција" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Регион Мурција" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Foral Community of Navarre" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Valencian Community" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Внесете поштенски број во опсег и формат 01XXX - 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Внесете правилен телефонски број во еден од формативе 6XXXXXXXX, 8XXXXXXXX " -"или 9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Ве молам внесете правиелн NIF, NIE или CIF." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Ве молам внесете валиден NIF или NIE." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Неправилна контролна сума за NIF." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Неправилна контролна сума за NIE." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Неправилна контролна сум за CIF." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "Внесете правилна банкарска сметка во формат XXXX-XXXX-XX-XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Неправилна контролна сума за бројот на банкарската сметка." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Внесте правилен фински матичен број." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Телефонските броеви мора да бидат во 0X XX XX XX XX форматот." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Внесете правилен поштенски код." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Бедфордшир" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Букингхамшир" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Чешир" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Cornwall and Isles of Scilly" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Кумбриа" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Дербишир" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Девон" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Дорсет" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Дурам" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "Источен Сасекс" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Есекс" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Поширок Лондон" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Поширок Манчестер" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Хемпшир" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Хертфордшир" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Кент" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Ланкашир" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Линколншир" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Мерсејсајд" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Норфолк" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "Северен Јоркшир" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Нортхамтоншир" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Нотингхамшир" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Оксфордшир" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Шропшир" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Сомерсет" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "Јужен Јоркшир" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Стафордшир" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Суфолк" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne and Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "Западен Мидландс" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "Западен Сасекс" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "Западен Јоркшир" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Вилтшир" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "County Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "County Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "County Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "County Fermanagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "County Londonderry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "County Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Гвент" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "Јужен Гламорга" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "Западен Гламорган" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Централна Шкотска" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries and Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Грампиан" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Orkney Islands" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Shetland Islands" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Western Isles" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "Англија" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Северна Ирска" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Шкотска" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Велс" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "Внесете валиден 13 цифрен ЕМБГ" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "Грешка во сегментот со датум" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "Внесете валиден 11 цифрен OIB" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Внесете валидна регистарска табличка." - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "Внесете валиден код на локација" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "Делот со број не може да биде нула" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "Внесете валиден 5 цифрен поштенски код" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Внесете валиден телефонски број" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "Внесете валиден код за област или мобилна мрежа" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "Телефонскиот број е премногу долг" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "Внесете валиден 19 цифрен ЕМБГ кој почнува со 601983" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "Бројот на издавање на картичка не може да биде нула" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "Град Загреб" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "Беловарско-билоградска објаст" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "Бродско-посавска област" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "Дубровачко-неретванска област" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "Истарска област" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "Карловачка област" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "Копривничко-крижевачка област" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "Крапинско-загорска област" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "Личко-сењска област" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "Меџимурска област" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "Осјечко-барањска област" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "Пожешко-славонска област" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "Приморско-горанска област" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "Сисачко-мославачка област" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "Сплитско-далматинска област" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "Шибенско-книнска област" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "Вараждинска област" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "Вировичко-подравска област" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "Вуковарско-сремска област" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "Задарска област" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "Загребачка област" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Внесете правилен поштенски код" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Внесете правилен NIK/KTP број." - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Ацех" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Бали" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Бантен" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Бенгкулу" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Јогјакарта" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Џакарта" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Горонтало" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Џамби" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Јава Барат" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Јава Тенга" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Јава Тимур" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Калинмантан Барат" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Калимантан Селатан" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Калимантан Тенга" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Калимантан Тимур" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Кепулуан Банга-Белитунг" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Кепулуан Риау" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Лампунг" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Малуку" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Малуку Утара" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Нуса Тенгара Барат" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Нуса Тенгара Тимур" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Папуа" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Папуа Барат" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Риау" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Сулавеси Барат" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Сулавеси Селатан" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Сулавеси Тенга" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Сулавеси Тенгара" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Сулавеси Утара" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Суматера Барат" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Суматера Селатан" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Суматера Утара" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Магеланг" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Суракарта - Соло" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Мадиун" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Кедири" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Тапанули" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Нангоре Аце Дарусалам" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Кепулуан Банга Белитунг" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Corps Consulate" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Corps Diplomatic" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Бандунг" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Сулавеси Утара Даратан" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timor" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Сулавеси Утара Кепулуан" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lombok" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Папуа дан Папуа Барат" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Циребон" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbawa" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Flores" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Богор" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Пекалонган" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Семаранг" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Пати" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Сурабаја" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Мадура" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Маланг" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Џембер" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Банјумас" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Федерална Влада" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Бојонегоро" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Пурвакарта" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Сидоарџо" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Гарут" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Антрим" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Армаг" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Карлов" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Каван" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Кларе" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Корк" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Дери" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Донегал" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Даун" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Даблин" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Ферманаг" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Галвеј" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Кери" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Килдаре" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Килкени" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Лаоис" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Лајтрим" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Лимерик" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Лонгфорд" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Лут" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Мајо" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Мит" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Монаган" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Офали" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Росомон" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Слиго" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Типерари" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Тајрон" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Вотерфорд" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Вестмит" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Вексфорд" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Виклоу" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Внесете поштенски код во форматот XXXXX" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Внесете валиден идентификациски број." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "Внесете поштенски код во формат XXXXXX или ХХХ ХХХ." - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "Внесете Индиска држава или територија." - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" -"Телефонските броеви мора да бидат во 02X-8Х или 03X-7Х или 04Х-6X формат." - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" -"Внесете валиден идентификационен број од Исланд. Форматот е XXXXXX-XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Исландскиот идентификационент број е невалиден." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Внесете правилен поштенски број." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Внесете правилен осигурителен број." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Внесете правилен даночен број." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Внесете поштенски број во форматот XXXXXXX или XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Хокаидо" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Аомори" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Ивате" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Мијаги" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Акита" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Јамагата" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Фукушима" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ибараки" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Точиги" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Гунма" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Саитама" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Чиба" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Токио" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Канагава" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Јаманаши" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Нагано" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Нигита" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Тојама" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ишикава" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Фукуи" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Гифу" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Шизоука" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Аичи" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Мие" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Шига" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Кјото" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Осака" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Хиого" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Нара" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Вакајама" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Тотори" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Шимане" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Окајама" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Хирошима" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Јамагучи" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Токушима" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Кагава" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Еиме" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Кочи" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Фукуока" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Сага" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Нагасаки" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Кумамото" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Оита" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Мијазаки" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Кагошима" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Окинава" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Внесете правилен кувајтски број за идентификација" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" -"Броевѕ од лична карта мора да содржат или 4-7 цифри или латинична буква и 7 " -"цифри." - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "Ова поле треба да содржи точно 13 цифри." - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" -"Првите 7 бројки од ЕМБГ мора да претставуваат валидна дата од минатото." - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "ЕМБГ не е валиден." - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "Аеродром" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "Арачиново" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "Берово" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "Битола" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "Богданци" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "Боговиње" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "Босилово" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "Брвеница" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "Бутел" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "Валандово" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "Василево" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "Вевчани" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "Велес" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "Виница" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "Вранештица" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "Врапчиште" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "Гази Баба" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "Гевгелија" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "Гостивар" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "Градско" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "Дебар" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "Дебарца" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "Делчево" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "Демир Капија" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "Демир Хисар" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "Долнени" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "Другово" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "Ѓорче Петров" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "Желино" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "Зајас" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "Зелениково" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "Зрновци" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "Илинден" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "Јегуновце" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "Кавадарци" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "Карбинци" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "Карпош" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "Кисела Вода" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "Кичево" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "Конче" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "Кочани" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "Кратово" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "Крива Паланка" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "Кривогаштани" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "Крушево" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "Куманово" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "Липково" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "Лозово" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "Маврово и Ростуша" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "Македонска Каменица" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "Македонски Брод" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "Могила" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "Неготино" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "Новаци" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "Ново Село" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "Осломеј" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "Охрид" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "Петровец" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "Пехчево" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "Пласница" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "Прилеп" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "Пробиштип" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "Радовиш" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "Ранковце" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "Ресен" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "Росоман" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "Сарај" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "Свети Николе" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "Сопиште" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "Стар Дојран" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "Старо Нагоричане" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "Струга" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "Струмица" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "Студеничани" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "Теарце" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "Тетово" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "Центар" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "Центар-Жупа" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "Чаир" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "Чашка" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "Чешиново-Облешево" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "Чучер-Сандево" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "Штип" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "Шуто Оризари" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "Македонски број на лична карта" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "Македонска општина (2 карактерен код)" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "Единствен матичен број на граѓанинот (13 цифри)" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "Внесете валиден поштенски код во формат ХХХХХ." - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "Внесете валиден RFC." - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "Невалидна проверка за RFC." - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "Внесете валиден CURP." - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "Невалидна проверка за CURP." - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "Мексичка држава (три големи букви)" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "Мексички поштенски код" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "Мексикански RFC" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "Мексикански CURP" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Баја Калифорнија" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baja California Sur" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Кампеш" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Чиапас" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Колима" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Distrito Federal" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Дуранго" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Гуереро" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Хидалго" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Џалиско" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Estado de México" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacán" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo León" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Querétaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Куантана Ро" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Синалоа" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "Сан Луис Потоси" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Сонора" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Табаско" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Тамаулипас" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Веракруз" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Јукатан" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Зацатекас" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Внесете правилен поштенски код" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Внесете валиден осигурителен број" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Дренте" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Флеволанд" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Фраисланд" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Гелдерланд" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Гронинген" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Noord-Brabant" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Noord-Holland" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Утрехт" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Зиланд" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Zuid-Holland" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Ве молам внесете правилен норвешки матичен број." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Во ова поле мора да се внесат 8 цифри." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Во ова поле се потребни 11 цифри." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Националниот идентификационен број се состои од 11 цифири." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Погрешна проверка за Националниот идентификационен број." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "Број на национална лична карта се состои од 3 букви и 6 цифри." - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "Погрешна контролна проверка на бројот на национална лична карта." - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" -"Внесете даночен број (НИП) во формат XXX-XXX-XX-XX, XXX-XX-XX-XXX или " -"xxxxxxxxxx." - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Даночниот број (NIP) е погрешен." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" -"Националниот бизнис регистрациски број (REGON) се состои од 9 или 14 цифри." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" -"Неправилна контролна сум за Националниот бизнис регистрационен број (REGON)." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Внесете правилен поштенски број во формат XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Долна Силесиа" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kuyavia-Pomerania" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Лублин" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Лубус" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Лодз" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Lesser Poland" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Масовиа" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Ополе" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Субкарпатиа" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Подласи" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Померанија" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Силесиа" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Swietokrzyskie" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Warmia-Masuria" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Greater Poland" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "Западна Померанија" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Внесете поштенски број во форматот XXXX-XXX." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" -"Телефонските броеви мора да се со 9 цифри, или да почнуваат со + или 00." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Внесете правилен CIF." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Внесете правилен CNP." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "Внесете правилен IBAN во ROXX-XXXX-XXXX-XXXX-XXXX-XXXX формат" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Телефонските броеви мора да бидат во XXXX-XXXXXX форматот." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Внесете правилен поштенски код во формат XXXXXX" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "Внесете поштенски код во формат XXXXXX." - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "Внесете број на пасош во формат XXXX XXXXXX." - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "Внесете број на пасош во формат ХХ XXXXXXX." - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "Central Federal County" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "South Federal County" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "North-West Federal County" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "Far-East Federal County" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "Siberian Federal County" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "Ural Federal County" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "Privolzhsky Federal County" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "North-Caucasian Federal County" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "Москва" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "Санкт Петербург" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "Moskovskaya oblast'" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "Adygeya, Respublika" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "Bashkortostan, Respublika" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "Buryatia, Respublika" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "Altay, Respublika" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "Dagestan, Respublika" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "Ingushskaya Respublika" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "Kabardino-Balkarskaya Respublika" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "Kalmykia, Respublika" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "Karachaevo-Cherkesskaya Respublika" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "Karelia, Respublika" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "Komi, Respublika" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "Mariy Ehl, Respublika" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "Mordovia, Respublika" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "Sakha, Respublika (Yakutiya)" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "Severnaya Osetia, Respublika (Alania)" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "Tatarstan, Respublika" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "Tyva, Respublika (Tuva)" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "Udmurtskaya Respublika" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "Khakassiya, Respublika" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "Chechenskaya Respublika" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "Chuvashskaya Respublika" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "Altayskiy Kray" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "Zabaykalskiy Kray" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "Kamchatskiy kray" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "Krasnodarskiy Kray" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "Krasnoyarskiy kray" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "Permskiy Kray" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "Primorskiy Kray" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "Stavropol'siyy Kray" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "Khabarovskiy Kray" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "Amurskaya oblast'" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "Arkhangel'skaya oblast'" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "Astrakhanskaya oblast'" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "Belgorodskaya oblast'" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "Bryanskaya oblast'" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "Vladimirskaya oblast'" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "Volgogradskaya oblast'" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "Vologodskaya oblast'" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "Voronezhskaya oblast'" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "Ivanovskaya oblast'" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "Irkutskaya oblast'" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "Kaliningradskaya oblast'" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "Kaluzhskaya oblast'" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "Kemerovskaya oblast'" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "Kirovskaya oblast'" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "Kostromskaya oblast'" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "Kurganskaya oblast'" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "Kurskaya oblast'" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "Leningradskaya oblast'" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "Lipeckaya oblast'" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "Magadanskaya oblast'" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "Murmanskaya oblast'" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "Nizhegorodskaja oblast'" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "Novgorodskaya oblast'" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "Novosibirskaya oblast'" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "Omskaya oblast'" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "Orenburgskaya oblast'" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "Orlovskaya oblast'" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "Penzenskaya oblast'" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "Pskovskaya oblast'" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "Rostovskaya oblast'" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "Rjazanskaya oblast'" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "Samarskaya oblast'" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "Saratovskaya oblast'" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "Sakhalinskaya oblast'" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "Sverdlovskaya oblast'" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "Smolenskaya oblast'" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "Tambovskaya oblast'" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "Tverskaya oblast'" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "Tomskaya oblast'" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "Tul'skaya oblast'" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "Tyumenskaya oblast'" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "Ul'ianovskaya oblast'" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "Chelyabinskaya oblast'" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "Yaroslavskaya oblast'" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "Evreyskaya avtonomnaja oblast'" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "Neneckiy autonomnyy okrug" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "Chukotskiy avtonomnyy okrug" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "Yamalo-Neneckiy avtonomnyy okrug" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Внесете број на шведска организација." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Внесте правилен шведски матичен број." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Координациски броеви не се дозволени." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Внесете правилен шведски поштенски број во формат XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Стокхолм" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Вестерботен" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Норботен" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Упсала" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Содерманланд" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Остерготланд" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Јонкопинг" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Кроненберг" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Калмар" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Готланд" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Блекинге" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Скане" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Халанд" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Вестра Готаланд" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Вермленд" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Оребро" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Вестменланд" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Даларна" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Гевлеборг" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Вестернорланд" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Јемтланд" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" -"Првите 7 бројки од ЕМБГ мора да претставуваат валидна дата од минатото." - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "ЕМБГ не е валиден." - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "Внесете валиден даночен број во форма SIXXXXXXXX" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "Внесете телефонски број во форма +386XXXXXXXX или 0XXXXXXXX." - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Банска Бистрица" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Банска Стиавница" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Бардејов" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Бановце над Бебраво" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Брезно" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Братислава I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Братислава II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Братислава III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Братислава IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Братислава V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Битка" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Кадка" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Детва" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolny Kubin" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajska Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Гелника" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Хлоховец" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Хумен" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Кезмарок" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Комарно" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Кошице I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Кошице II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Кошице III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Кошице IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Кошице - околина" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Крупина" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucke Nove Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Левице" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Левока" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovsky Mikulas" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Луценец" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Мартин" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Наместово" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Нитра" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nove Mesto nad Vahom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nove Zamky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Партизанске" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Пезинок" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piestany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Полтар" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Попрад" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povazska Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Пресов" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Пучов" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Ревука" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Рознава" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Рузомберок" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Сабинов" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Сенец" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Сеника" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Скалица" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Шнина" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Собранце" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spisska Nova Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Стара Љубовна" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Стропков" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Свидник" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Сала" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Тополчани" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Требисов" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Тренцин" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Трнава" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turcianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Тврдосин" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velky Krtis" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Злате Моравце" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Зволен" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Зарновица" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Зилина" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Banska Bystrica region" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Братиславски регион" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Кошице регион" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Нитра регион" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Пресов регион" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Тренцин регион" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Трнава регион" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Зилина регион" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Внесете поштенски код во форматот XXXXX." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Телефонските броеви мора да бидат во форматот 0XXX XXX XXXX." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Внесете валиден Турски идентификациски број." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "Турскиот идентификациски број мора да биде 11 цифри." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Внесете поштенски број во форматот XXXXX или XXXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Телефонските броеви мора да бидат во XXX-XXX-XXXX форматот." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "Внесте правилен матичен број за САД во XXX-XX-XXXX форматот." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Внесете држава или територија од САД." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Држава во САД (две големи букви)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "Поштенски код во САД (две големи букви)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Телефонски број" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "Внесете правилен CI во X.XXX.XXX-X,XXXXXXX-X или XXXXXXXX формат." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Внесете правилен CI број." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Внесете правилен јужно афрички број за идентификација" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Внесете правилен јужно афрички поштенски код" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Источен Кејп" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Free State" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Northern Cape" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "North West" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Western Cape" diff --git a/django/contrib/localflavor/locale/ml/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/ml/LC_MESSAGES/django.mo deleted file mode 100644 index aceabc6f33..0000000000 Binary files a/django/contrib/localflavor/locale/ml/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/ml/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/ml/LC_MESSAGES/django.po deleted file mode 100644 index 168cb0aeaa..0000000000 --- a/django/contrib/localflavor/locale/ml/LC_MESSAGES/django.po +++ /dev/null @@ -1,3527 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Malayalam (http://www.transifex.net/projects/p/django/" -"language/ml/)\n" -"Language: ml\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "" - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "" - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "" - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "" - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "" - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "" - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "" - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "" - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "" - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "" - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "" - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "" - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "" - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "" - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "" - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "" - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "" - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "" - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "" - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "" - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "" - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "" - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "" - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "" - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "" - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "" - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "" - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "" - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "" - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "" - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "" - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "" - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "" - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "" - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "" - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "" - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "" - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "" - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "" - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "" - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "" - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "" - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "" - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "" - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "" - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "" - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "" - -#: us/models.py:26 -msgid "Phone number" -msgstr "" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "" - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "" diff --git a/django/contrib/localflavor/locale/mn/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/mn/LC_MESSAGES/django.mo deleted file mode 100644 index c5d8e90f01..0000000000 Binary files a/django/contrib/localflavor/locale/mn/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/mn/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/mn/LC_MESSAGES/django.po deleted file mode 100644 index 25b67076bf..0000000000 --- a/django/contrib/localflavor/locale/mn/LC_MESSAGES/django.po +++ /dev/null @@ -1,3557 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# badka , 2011. -# Jannis Leidel , 2011. -# , 2012. -# miigaa ... , 2012. -# , 2011. -# Tsolmon , 2011. -# , 2011. -# Анхбаяр Анхаа , 2011, 2012. -# Баясгалан Цэвлээ , 2011, 2012. -# Ганзориг БП , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Анхбаяр Анхаа \n" -"Language-Team: Mongolian (http://www.transifex.net/projects/p/django/" -"language/mn/)\n" -"Language: mn\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Шуудангийн дугаараа NNNN буюу ANNNNAAA хэлбэрээр оруулна уу. " - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Энэ хэсэгт зөвхөн тоо оруулна." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Энэ хэсэгт зөвхөн 7-8 оронтой тоо оруулна." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "CUIT-ээ XX-XXXXXXXX-X эсвэл XXXXXXXXXXXX хэлбэрээр оруулна уу." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "Хүчингүй CUIT байна." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Бургенланд" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Каринтиа" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Доод Австри" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Дээд Австри" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Зальцбург" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Стириа" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Тирол" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Ворарлберг" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Венн" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Шуудангийн индексээ XXXX хэлбэрээр оруулна уу." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Австрийн нийгмийн хамгааллын дугаараа XXXX XXXXXX хэлбэрээр оруулна уу." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "Шуудангийн код 4 тоог оруулна уу." - -#: au/models.py:9 -msgid "Australian State" -msgstr "Австралийн муж" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "Австралийн шуудангийн код" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "Австралийн утасны дугаар" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Антверп" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Бруссель" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Зүүн Пландерс" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Фламанд Брабант" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Хайнаут" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Лэйге" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Лимбург" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Люксенбург" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Намур" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Валлон Брабант" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Баруун Пландерс" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Бурвэйл үндсэн муж" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Флемиш муж" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Валлониа" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "Зөв шуудангийг код оруулна уу хэлбэр ба хязгаар нь 1xxx-9xxx." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Зөв утасны дугаараа зөв оруулна уу. Оруулах Хэлбэрүүд 0x xxx xx xx, 0xx xx " -"xx xx, 04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx." -"xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Шуудангийн индексээ XXXXX-XXX хэлбэрээр оруулна уу. " - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Утасны дугаараа XX-XXXX-XXXX хэлбэрээр оруулна уу." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "Бразилийн мужаа сонгоно уу. Энэ нь байгаа муж биш байна." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "CPF дугаар хүчингүй байна." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "" -"Энэ хэсэгт 11-ээс илүүгүй оронтой тоо буюу 14-өөс илүүгүй тэмдэгт оруулна уу." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "CNPJ дугаар хүчингүй байна." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Энэ хэсэгт наад зах нь 14 оронтой тоо оруулна уу." - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Шуудангийн дугаараа XXX XXX хэлбэрээр оруулна уу." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "Канадын нийгмийн даатгалын дугаараа XXX-XXX-XXX хэлбэрээр оруулна уу." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Ааргау" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Аппензелл Иннерходен " - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Аппензелл Ауссеррходен" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Басел-Стат" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Басел-Ланд" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Берн" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Фрайбург" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Женев" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Гларус" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Граубенден" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Юра" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Лусерн" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Ноехател" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Нидвалден" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Обвалден" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Шафхаусен" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Швиц" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Солотурн" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "Сант-Галлен" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Тургау" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Тикино" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Ури" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Валаис" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Вауд" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Зуг" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Зурик" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Щвейцарийн үнэмлэх юм уу пасспортныхоо дугаарыг X1234567<0 эсвэл 1234567890 " -"хэлбэрээр оруулна уу." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Чилийн RUT-ээ оруулна уу." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Чилийн RUT-ээ XX.XXX.XXX-X хэлбэрээр оруулна уу. " - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "Чилийн RUT хүчингүй байна." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "Шуудангийн кодоо XXXXXX форматын дагуу оруулна уу." - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "ID картын дугаар 15 эсвэл 18 оронгоос бүрдэнэ" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "Бодит ID картын дугаар оруулна уу. Нийлбэр буруу байна" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "ID картын дугаар буруу:Төрсөн огноо буруу" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "ID картын дугаар буруу:Байршилийн код буруу" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "Зөв утасны дугаар оруулна уу." - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "Зөв гар утасны дугаар оруулна уу." - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Прага" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Төв Бохемийн бүс" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Хойд Бохемийн бүс" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Пилсен Бүс" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Карлсбад бүс" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Усти Бүс" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Либерец Бүс" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Храдец Бүс" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Пардубице Бүс" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Высочина Бүс" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Өмнөд Моравийн Бүс" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Оломус Бүс" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Злин Бүс" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Морави-Силесийн Бүс" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Шуудангийн дугаараа XXXXX буюу XXX XX хэлбэрээр оруулна уу." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "Төрсөн тоогоо XXXXXX/XXXX эсвэл XXXXXXXXXX хэлбэрээр оруулна уу." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "Хүйсээ зөв оруулна уу. Зөв утга 'f' болон 'm'" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Төрсөн тоогоо зөв оруулна уу." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Зөв IC дугаар оруулна уу" - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Баден-Вюртемберг" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Бавари" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Берлин" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Бранденбург" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Бремен" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Хамбург" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Хессен" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Мекленбург-Баруун Помераниа" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Доод Саксони" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "Хойд Рейн-Вестфалиа" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Рейнланд-Палатинет" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Саарланд" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Саксония" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Саксония-Анхалт" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Шлесвиг-Холстейн" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Турингиа" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Шуудангийн индексээ XXXXX хэлбэрээр оруулна уу." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Германы үнэмлэхний дугаарыг XXXXXXXXXXX-XXXXXXX-XXXXXXX-X хэлбэрээр оруулна " -"уу." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Арава" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Албасет" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Алакант" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Алмериа" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Авила" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Бадажоз" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Иллес Балеарс" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Барселон" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Бургоз" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Касерес" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Кадиз" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Кастелло" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Сиудад Рийл" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Кордоба" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "А Коруна" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Куэнса" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Гирона" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Гранада" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Гуадалажара" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Гипузкоа" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Хуелва" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Хуеска" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Жен" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "Леон" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Ллейда" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "Ла Риожа" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Луго" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Мадрид" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Малага" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Мурсиа" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Наварре" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Оуренс" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Астуриас" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Паленсиа" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Лас Палмас" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Понтеведра" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Саламанка" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Санта Круз дэ Тенериф" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Кантабриа" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Сеговиа" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Севилль" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Сориа" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Таррагона" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Теруел" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Толедо" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Валенсиа" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Валладолид" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Бизкаиа" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Замора" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Зарагоза" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Сеута" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Мелилла" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Андалусиа" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Арагон" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Астуриасын вант улс" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Балеарикийн арлууд" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Баск улс" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Канарын арлууд" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Кастил-Ла-Манча" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Кастил ба Леон" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Каталон" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Экстремадура" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Галисиа" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Мурсиа муж" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Наваррегийн Форал суурин" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Валенсиагийн суурин" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Шуудангийн дугаараа 01XXX - 52XXX хооронд, энэ хэлбэрээр оруулна уу." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Утасны дугаараа 6XXXXXXXX, 8XXXXXXXX буюу 9XXXXXXXX хэлбэрийн аль нэгээр " -"оруулна уу." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "NIF, NIE, CIF оруулна уу." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "NIF, NIE оруулна уу." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "NIF-ийн шалгах нийлбэр буруу байна." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "NIE-ийн шалгах нийлбэр буруу байна." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "CIF-ийн шалгах нийлбэр буруу байна." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "Дансны дугаараа XXXX-XXXX-XX-XXXXXXXXXX хэлбэрээр оруулна уу." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Дансны дугаарын шалгах нийлбэр буруу байна." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Финляндийн нийгмийн хамгааллын дугаараа оруулна уу." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Утасны дугаар 0X XX XX XX XX хэлбэртэй байх хэрэгтэй." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Шуудангийн дугаараа оруулна уу." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Бэдфордшир" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Букингхэмшир" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Чешир" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Корнүолл ба Скиллийн арлууд" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Кумбриа" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Дэрбишир" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Дэвон" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Дорсэт" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Дурхам" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "Ийст Суссекс" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Эссекс" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Глоусестершир" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Их Лондон " - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Их Манчестэр" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Хэмпшир" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Хэртфордшир" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Кэнт" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Ланкашир" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Леисэстершир" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Линколншир" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Мэрсэисайд" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Норфолк" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "Норт Йоркшир" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Нортамптоншир" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Нортамберланд" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Ноттингхэмшир" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Оксфордшир" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Шропшир" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Сомерсэт" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "Саут Йоркшир" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Стаффордшир" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Суффолк" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Сурреи" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Тийн ба Виэр" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Уарвикшир" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "Вэст Мидландс" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "Вест Суссекс" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "Вест Йоркшир" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Вилтшир" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Ворсестершир" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "Антрим каунти" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "Армагх каунти" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "Даун каунти" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "Ферманаф каунти" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "Лондондерри каунти" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "Тирон каунти" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Клвид " - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Дифед" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Гвент" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Гвинедд" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Дундад Гламорган" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Повис" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "Өмнөд Гламорган" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "Баруун Гламорган" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Бордэрс" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Төв Шотланд" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Дамфрайс ба Галловэй" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Файф" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Грампиан" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Хайланд" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Лотиан" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Оркнэй арлууд" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Шетланд арлууд" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Стратклид" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Тайсайд" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Вестерн Айслс" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "Англи" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Умард Ирланд" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Шотланд" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Вэльс" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "13 орон бүхий бодит JMBG оруулна уу" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "Огнооны сегментэд алдаа байна" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "11 орон бүхий бодит OIB оруулна уу" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Машины гэрчилгээний дугаарыг зөв оруулна уу." - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "Хүчинтэй байршилийн кодыг оруулна уу" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "Тоон хэсэг тэг байж болохгүй" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "Шуудангийн код 5 оронтой тоо байх ёстой." - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Утасны дугаараа оруулна уу" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "Бодит газар нутаг эсвэл мобайл сүлжээний код оруулна уу." - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "Утасны дугаар хэт урт байна." - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "601983 -р эхэлсэн 19 орон бүхий бодит JMBAG оруулна уу." - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "Card issue number нь тэг байж болохгүй" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "Grad Zagreb" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "Bjelovarsko-bilogorska županija" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "Brodsko-posavska županija" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "Dubrovačko-neretvanska županija" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "Istarska županija" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "Karlovačka županija" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "Koprivničko-križevačka županija" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "Krapinsko-zagorska županija" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "Ličko-senjska županija" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "Međimurska županija" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "Osječko-baranjska županija" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "Požeško-slavonska županija" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "Primorsko-goranska županija" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "Sisačko-moslavačka županija" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "Splitsko-dalmatinska županija" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "Šibensko-kninska županija" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "Varaždinska županija" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "Virovitičko-podravska županija" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "Vukovarsko-srijemska županija" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "Zadarska županija" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "Zagrebačka županija" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Зөв шуудангын код оруулна уу" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Зөв NIK/KTP дугаар оруулна уу" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Асех" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Бали" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Бантен" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Бенкулу" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Ёогакарта" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Жакарта" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Горонтало" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Жамби" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Жаба Барат" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Жаба Тенгах" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Жава Тимур" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Калимантан Барат" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Калимантан Селатан" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Калимантан Тенгах" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Калимантан Тимур" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Кепулауан Бангка-Белитунг" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Кепулауан Риау" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Лампунг" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Малуку" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Малуку Утара" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Нуса Тенггара Барат" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Нуса Тенггара Тимур" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Папуа" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Папуа Барат" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Риау" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Сулавеси Барат" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Сулавеси Селатан" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Сулавеси Тенгах" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Сулавеси Тенггара" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Сулавеси Утара" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Сулавеси Барат" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Сулавеси Селатан" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Сулавеси Утара" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Магеланг" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Суракарта - Соло" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Мадиун" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Кедири" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Тапанули" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Нангрой Ачех Даруссалам" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Кепулауан Бангка Белитунг" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Консулын газар" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Элчин сайдын яам" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Бангдунг" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Сулавеси утара даратан" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "НТТ - Тимор" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Сулавеси Утара Кепулауан" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "НТБ-Ломбок" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Папуа дан Папуа Барат" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Киребон" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "НТБ - Сумбава" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "НТТ - Флорес" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "НТТ-Сумба" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Богор" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Пекалонган" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Семаранг" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Пати" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Сурабаяа" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Мадура" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Маланг" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Жембер" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Банюмас" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Улсын засгийн газар" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Божонегоро" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Пурвакарта" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Сидоаржо" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Гарут" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Антрим" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Армагх" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Карлов" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Каван" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Кларе" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Корк" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Дерри" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Донегал" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Доош" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Дублин" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Ферманаг" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Галвей" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Керри" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Килдаре" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Килкенни" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Лаоис" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Леитрим" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Лимерик" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Лонгфорд" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Лоут" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Маё" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Меат" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Mонагхан" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Оффали" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Роскоммон" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Слиго" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Типперари" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Тироне" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Ватерфорд" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Вестмеат" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Вексфорд" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Виклов" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Шуудангийн кодоо XXXXX хэлбэрээр оруулна уу." - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Зөв ID дугаар оруулна уу." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "XXXXXX эсвэл XXX XXX форматаар zip кодыг оруулна уу." - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "Энэтхэгийн муж эсвэл газар нутаг оруулна уу." - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" -"Утасны дугаар нь 02X-8X эсвэл 03X-7X эсвэл 04X-6X форматтай байх хэрэгтэй." - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "Исландын үнэмлэхний дугаараа XXXXXX-XXXX хэлбэрээр оруулна уу." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Исландын үнэмлэхний дугаар хүчингүй байна." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Шуудангийн индексээ оруулна уу." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Нийгмийн хамгааллын дугаараа оруулна уу." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "VAT дугаараа оруулна уу." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Шуудангийн дугаараа XXXXXXX буюу XXX-XXXX хэлбэрээр оруулна уу." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Хоккайдо" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Аомори" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Иватэ" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Мияаги" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Акита" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Ямагата" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Фукушима" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ибараки" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Точиги" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Гунма" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Саитама" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Чиба" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Токио" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Канагва" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Яманаши" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Нагано" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Нийгата" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Тояма" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ишикава" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Фукуи" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Гифу" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Шизуока" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Аичи" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Мие" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Шига" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Кёто" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Осака" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Нёго" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Нара" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Вакаяма" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Тоттори" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Шиманэ" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Окаяма" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Хирошима" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Ямагучи" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Токушима" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Кагава" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Эхимэ" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Кочи" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Фукуока" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Сага" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Нагасаки" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Кумамото" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Оита" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Миязаки" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Кагошима" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Окинава" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Кувайтын иргэний үнэмлэхний дугаарыг оруулна уу." - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" -"Иргэний үнэмлэхний дугаар нь тоо болон том үсгээс бүрдэх 4-өөс 7 хүртлэх " -"орон, түүний дараа дан тооноос бүрдэх 7 оронгоор бүтнэ." - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "Энэ талбарт 13 оронтой тоо байх хэрэгтэй." - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "UMCN-н эхний 7 орон бодит өнгөрсөн огноог илэрхийлэх ёстой." - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "UMCN буруу байна." - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "Аэродром" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "Aračinovo" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "Berovo" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "Bitola" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "Bogdanci" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "Bogovinje" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "Босилово" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "Brvenica" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "Бутел" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "Валандово" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "Василэво" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "Vevčani" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "Veles" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "Винка" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "Vraneštica" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "Vrapčište" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "Gazi Baba" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "Gevgelija" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "Gostivar" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "Gradsko" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "Debar" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "Debarca" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "Delčevo" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "Demir Kapija" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "Demir Hisar" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "Dolneni" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "Drugovo" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "Gjorče Petrov" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "Želino" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "Zajas" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "Zelenikovo" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "Zrnovci" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "Ilinden" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "Jegunovce" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "Kavadarci" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "Karbinci" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "Karpoš" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "Kisela Voda" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "Kičevo" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "Konče" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "Koćani" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "Kratovo" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "Kriva Palanka" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "Krivogaštani" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "Kruševo" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "Kumanovo" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "Lipkovo" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "Lozovo" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "Mavrovo i Rostuša" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "Makedonska Kamenica" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "Makedonski Brod" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "Mogila" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "Negotino" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "Novaci" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "Novo Selo" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "Oslomej" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "Ohrid" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "Petrovec" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "Pehčevo" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "Plasnica" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "Prilep" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "Probištip" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "Radoviš" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "Rankovce" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "Resen" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "Rosoman" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "Saraj" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "Sveti Nikole" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "Sopište" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "Star Dojran" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "Staro Nagoričane" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "Struga" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "Strumica" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "Studeničani" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "Tearce" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "Tetovo" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "Centar" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "Centar-Župa" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "Čair" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "Čaška" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "Češinovo-Obleševo" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "Čučer-Sandevo" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "Štip" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "Šuto Orizari" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "Македонийн иргэний үнэмлэхийн дугаар" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "Македонийн хотын захиргаа (2 оронтой код)" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "Давтагдашгүй мастер иргэний дугаар (13 оронтой тоо)" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "XXXXX форматаар бодит zip код оруулна уу." - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "Бодит RFC оруулна уу." - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "RFC хяналтын нийлбэр буруу байна." - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "Бодит CURP оруулна уу." - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "CURP хяналтын нийлбэр буруу байна." - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "Мексикийн муж (3 том үсэг)" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "Мексикийн zip код" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "Мексикийн RFC" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "Мексикийн CURP" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Агуаскалиентэс" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Бажа Калифорни" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Бажа Калифорни Сур" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Кампече" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Чихуахуа" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Чиапас" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Коахуила" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Колима" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Холбооны Дистрито" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Дуранго" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Гуерреро" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Гуанажуато" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Хидалго" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Жалиско" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Мехико" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Мичоакан" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Морелос" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Наярит" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Нуево Леон" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Вахака" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Пуебло" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Куеретаро" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Кинтана Ро" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Синалоа" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "Сан Луис Потоси" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Сонора" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Табаско" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Тамаулипас" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Тласкала" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Веракруз" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Юкатан" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Закатекас" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Шуудангийн дугаараа оруулна уу." - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "SoFi дугаараа оруулна уу." - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Дрэнтэ" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Флеволанд" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Фраисланд" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Гелдерланд" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Гронинген" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Нуурд-Брабант" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Нуурд-Холланд" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Овераисл" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Утрехт" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Зийланд" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Заит-Холланд" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Норвегийн нийгмийн хамгааллын дугаараа оруулна уу." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Энэ хэсэгт 8 оронтой тоо оруулна." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Энэ хэсэгт 11 оронтой тоо оруулна." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Үндэсний таних дугаар 11 оронтой байна." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Үндэсний таних дугаарын шалгах нийлбэр буруу байна." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "Үндэсний ID Картын Дугаар нь 3 үсэг болон 6 тоо оронгоос бүрдэнэ." - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "Үндэсний ID Картын Дугаарын хяналтын нийлбэр буруу байна." - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" -"Зөв татварын дугаар оруулна уу (NIP) формат нь XXX-XXX-XX-XX, XXX-XX-XX-XXX " -"эсвэл XXXXXXXXXX хэлбэртэй байна." - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Татварын дугаарын шалгах нийлбэр буруу байна." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" -"Байгууллагын бүртгэлийн дугаар (REGON) нь 9 эсвэл 14 оронтой тоо байх " -"хэрэгтэй." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "Үндэсний бизнесийн бүртгэлийн дугаарын шалгах нийлбэр буруу байна." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Шуудангийн дугаараа XX-XXX хэлбэрээр оруулна уу." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Доод Силесиа" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Куявиа-Помераниа" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Лублин" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Лубуски" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Лодз" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Бага Польш" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Масовиа" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Ополе" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Субкарпатиа" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Подласие" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Помераниа" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Силесиа" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Свентокшишки" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Вармиа-Масуриа" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Их Польш" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "Баруун Помераниа" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Зип кодоо XXXX-XXX.хэлбэрээр оруулна уу." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "Утасны дугаар 9 оронтой байх хэрэгтэй эсвэл + болон 00 эхлэнэ." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "CIF оруулна уу." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "CNP оруулна уу." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "IBAN-ийг ROXX-XXXX-XXXX-XXXX-XXXX-XXXX хэлбэрээр оруулна уу." - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Утасны дугаар XXXX-XXXXXX хэлбэрээр байх ёстой." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Шуудангийн дугаараа XXXXXX хэлбэрээр оруулна уу." - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "XXXXXX форматаар шуудангын кодыг оруулна уу." - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "XXXX XXXXXX форматаар паспортын дугаарыг оруулна уу. " - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "XX XXXXXXX форматаар паспортын дугаарыг оруулна уу. " - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "Төв Холбооны Муж" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "Өмнөд Холбооны Муж" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "Баруун-Хойд Холбооны Муж" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "Зүүн Холбооны Муж" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "Сибирын Холбооны Муж" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "Уралын Холбооны Муж" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "Привольский Холбооны Муж" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "Хойд-Кавказын Холбооны Муж" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "Москва" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "Сант-Петербург" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "Москвагийн хүрээ" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "бүгд найрамдах Адыгея улс" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "бүгд найрамдах Башкортостан улс" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "бүгд найрамдах Бурят улс" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "бүгд найрамдах Алтай улс" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "бүгд найрамдах Дагесиан улс" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "Бүгд найрамдах Ингүш Улс" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "Бүгд найрамдах Кабардино-Балкар Улс" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "Бүгд найрамдах Халмиг Улс" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "Бүгд найрамдах Халмиг Улс" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "Бүгд найрамдах Карачаево-Черкес Улс" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "Бүгд найрамдах Коми Улс" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "Бүгд найрамдах Марий Эл Улс" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "Бүгд найрамдах Мордов Улс" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "Бүгд найрамдах Саха Улс" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "Бүгд найрамдах Коми Улс" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "Бүгд найрамдах Татарстан Улс" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "Бүгд найрамдах Тува Улс" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "Бүгд найрамдах Удмурт Улс" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "Бүгд найрамдах Хакаш Улс" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "Бүгд найрамдах Чечен Улс" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "Бүгд найрамдах Чуваш Улс" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "Алтайн хязгаар" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "Забайкалийн хязгаар" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "Камчатскийн хязгаар" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "Краснодарийн хязгаар" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "Красноярскийн хязгаар" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "Пермийн хязгаар" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "Приморийн хязгаар" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "Ставрополийн хязгаар" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "Хабаровскийн хязгаар" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" -"Утасны дугаар нь 02X-8X эсвэл 03X-7X эсвэл 04X-6X форматтай байх хэрэгтэй." - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "Архангельскийн хүрээ" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "Астраханская бүс нутаг" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "Белгородын бүс нутаг" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "Биряны бүс нутаг" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "Владимирын бүс нутаг" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "Волгоградыг бүс нутаг" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "Вологодын бүс нутаг" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "Воронежын бүс нутаг" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "Ивановын бүс нутаг" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "Иркутскийн бүс нутаг" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "Калинградын бүс нутаг" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "Калужын бүс нутаг" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "Кемеровская муж" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "Кировская муж" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "Костромская муж" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "Курганская муж" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "Курсикын бүс нутаг" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "Ленинградын бүс нутаг" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "Липецкая муж" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "Магаданская муж" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "Мурманская муж" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "Нижегородской муж" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "Новгородская муж" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "Новосибирская муж" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "Омская муж" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "Оренбургская муж" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "Орловская муж" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "Пензенская муж" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "Псковская муж" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "Ростовская муж" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "Рязанская муж" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "Самарская муж" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "Саратовская муж" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "Сахалинская муж" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "Свердловской муж" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "Смоленская муж" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "Тамбовская муж" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "Тверская муж" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "Томская муж" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "Тульскийн бүс нутаг" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "Тюменская муж" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "Ульяновская муж" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "Челябинская муж" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "Челябинская муж" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "Еврейская автономная муж" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "Ненецкий автономии дүүрэг" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "Ханты-Мансийский автономный округ - Югра" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "Чукотский автономный дүүрэг" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "Ямало-Neneckiy автономный дүүрэг" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Шведийн байгуулагын дугаараа зөв оруулна уу." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Шведийн хувийн дугаараа зөв оруулна уу." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Co-ordination-д тоог зөвшөөрөхгүй." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Шведийн шуудангийн кодыг XXXXX хэлбэрээр оруулна уу." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Стокгольм" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Вестерботтен" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Норрботтен" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Уппсала" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Сёдерманланд" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Эстергётланд" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Йёнчёпинг" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Кронберг" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Калмар" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Готланд" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Блекингэ" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Скане" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Халланд" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Вестра-Гёталанд" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Вермланд" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Оуребо" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Вестманланд" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Даларна" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Евлерборг" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Вестернорланд" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Емтланд" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "EMSO-н эхний 7 оронтой тоо нь бодит өнгөрсөн оноог илэрхийлнэ." - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "EMSO хүчингүй байна." - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "SIXXXXXXXX форматаар бодит татварын дугаар оруулна уу" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "+386XXXXXXXX эсвэл 0XXXXXXXX форматаар утасны дугаарыг оруулна уу." - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Банска Бистрика" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Банска Стиавника" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Бардежов" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Бановц над Бебравоу" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Брезно" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Братислав l" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Братислав ll" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Братислав lll" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Братислав lV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Братислав V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Битка" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Кадка" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Детва" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Долни Кубин" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Дунайска Стреда" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Галанта" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Гелника" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Хлоховек" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Хюменн" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Илава" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Кезмарок" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Комарно" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Косиз I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Косиз II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Косиз III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Косиз IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Косиз - околие" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Крупина" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Кисук Нове Место" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Левис " - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Левока" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Липтовски Микулас" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Лукенек" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Малаки" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Мартин " - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Медзилаборс" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Михаловс" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Мияава" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Наместово" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Нитра" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Нове Место над Вахом" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Нове Замки" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Партизанске" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Пезинок" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Пиестани" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Полтар" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Попрад" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Повазска Бистрика" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Пресов" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Приевидза" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Пучов" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Ревука" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Римавска Собота" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Рознава" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Рузомберок" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Сабинов" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Сенек" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Сеника" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Скалиса" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Снина" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Собранс" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Списска Нова Вес" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Стара Любовна" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Стропков" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Свидник" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Сала" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Тополсани" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Требисов" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Тренкин" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Трнава" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Туркианск Теплис" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Тврдосин" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Велки Кртис" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Вранов над Топлоу" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Злате Моравс" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Зволен" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Зарновика" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Зиар над Хроном" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Зилина" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Банска Бистрика муж " - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Братислав муж " - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Косиз муж" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Нитра муж" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Пресов муж" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Тренкин муж" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Трнава муж" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Зилина муж" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Шуудангын кодын XXXXX хэлбэрээр оруулна уу. " - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Утасны дугаа 0XXX XXX XXXX хэлбэртэй байна." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Зөв Түрк бүртгэлийн дугаар оруулна уу." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "Түрк бүртгэлийн дугаар заавал 11 оронтой байна. " - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Шуудангийн индексээ XXXXX буюу XXXXX-XXXX хэлбэрээр оруулна уу." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Утасы дугаар \"XXX-XXX-XXXX \" загварын дугуу байна." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "АНУ-ын нийгмийн хамгааллын дугаараа XXX-XX-XXXX хэлбэрээр оруулна уу." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "АНУ-ийн муж эсвэл or бүс нутаг оруулна уу." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "U.S. төлөв (хоёр том үсэг)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "АНУ ийн шуудангийн код (хоёр том үсэг)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Утасны дугаар" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" -"Хүчинтэй CI дугаарыг X.XXX.XXX-X,XXXXXXX-X эсвэл XXXXXXXX форматаар оруулна " -"уу." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Хүчинтэй CI дугаарыг оруулна уу" - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Өмнөд Африкийн ID дугаараа оруулна уу." - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Өмнөд Африкийн шуудангийн дугаараа оруулна уу." - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Зүүн Кэйп" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Фрий стэйт" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Гаутэнг" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "КваЗулу-Натал" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Лимпопо" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Мпумаланга" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Хойд Кэйп" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "Норт Вэст" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Баруун Кэйп" diff --git a/django/contrib/localflavor/locale/nb/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/nb/LC_MESSAGES/django.mo deleted file mode 100644 index e092691949..0000000000 Binary files a/django/contrib/localflavor/locale/nb/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/nb/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/nb/LC_MESSAGES/django.po deleted file mode 100644 index b7a5e5d16c..0000000000 --- a/django/contrib/localflavor/locale/nb/LC_MESSAGES/django.po +++ /dev/null @@ -1,3548 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011. -# , 2012. -# jonklo , 2011. -# , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-10 01:40+0000\n" -"Last-Translator: sigurdga \n" -"Language-Team: Norwegian Bokmål (http://www.transifex.net/projects/p/django/" -"language/nb/)\n" -"Language: nb\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Oppgi et postnummer på formen NNNN eller ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Feltet krever kun tall." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Feltet krever 7 eller 8 siffer." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Oppgi gyldig CUIT på formen XX-XXXXXXXX-X or XXXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "Ugyldig CUIT." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Carinthia" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Niederösterreich" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Oberösterreich" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salzburg" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Steiermark" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tirol" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlberg" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Wien" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Oppgi et postnummer på formen XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "Oppgi et gyldig Østerrisk personnummer på formen XXXX XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "Oppgi et firesifret postnummer." - -#: au/models.py:9 -msgid "Australian State" -msgstr "Australsk stat" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "Australsk postnummer" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "Australsk telefonnummer" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Antwerpen" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Brussel" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Øst-Flandern" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Flamsk Brabant" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hainaut" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Liège" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburg" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Luxembourg" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Vallonsk Brabant" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Vest-Flandern" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Brussel-regionen" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Flandern" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Vallonia" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "Oppgi et gyldig postnummer på formen 1XXX - 9XXX." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Oppgi et gyldig telefonnummer i et av følgende formater: 0x xxx xx xx, 0xx " -"xx xx xx, 04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx." -"xx.xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx eller 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Oppgi et postnummer på formen XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Telefonnumre må være på formen XX-XXXX-XXXX." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Velg en gyldig brasiliansk stat. Den staten er ikke et av de tilgjengelige " -"valgene." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Ugyldig CPF-nummer." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Feltet krever maksimum 11 eller 14 tegn." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Ugyldig CNPJ-nummer." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Feltet krever minst 14 siffer." - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Oppgi et postnummer på formen XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "Oppgi et gyldig kanadisk personnummer på formen XXX-XXX-XXX." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aargau" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basel-Stadt" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basel-Landschaft" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Bern" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Fribourg" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Genève" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubünden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Luzern" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchâtel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "St. Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Wallis" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zürich" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Oppgi et gyldig sveitsisk identitets- eller passnummer på formen X1234567<0 " -"eller 1234567890." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Oppgi et gyldig chilensk RUT." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Oppgi et gyldig chilensk RUT på formen XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "Den chilenske RUT-en er ugyldig." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "Oppgi et postnummer på formen XXXXXX." - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "ID-kortnummer bestående av 15 eller 18 siffer." - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "Ugyldig ID-kortnummer: feil sjekksum" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "Ugyldig ID-kortnummer: feil fødselsdato" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "Ugyldig ID-kortnummer: feil stedskode" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "Oppgi et gyldig telefonnummer." - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "Oppgi et gyldig mobiltelefonnummer." - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Praha" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Sentralbøhmen-regionen" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Sydbøhmen-regionen" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Plzeň-regionen" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Karlovy Vary-regionen" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Ústí nad Labem-regionen" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Liberec-regionen" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Hradec Králové-regionen" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Pardubice-regionen" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Žilina-regionen" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Sydmähriske-regionen" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Olomouc-regionen" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Zlín-regionen" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Mähren-Schlesien-regionen" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Oppgi et postnummer på formen XXXXX eller XXX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "Oppgi et fødselsnummer på formen XXXXXX/XXXX eller XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "Ugyldig valgfritt parameter kjønn. Gyldige verdier er 'f' and 'm'." - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Oppgi et gyldig fødselsnummer." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Oppgi et gyldig IC-nummer." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Württemberg" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Bayern" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlin" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburg" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Bremen" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburg" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hessen" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklenburg-Vorpommern" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Niedersachsen" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "Nordrhein-Westfalen" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Rheinland-Pfalz" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Saarland" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Sachsen" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Sachsen-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Thüringen" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Oppgi et postnummer på formen XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Oppgi et gyldig tysk identitetsnummer på formen XXXXXXXXXXX-XXXXXXX-XXXXXXX-" -"X." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Álava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alicante" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almería" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Ávila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Balearene" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barcelona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Cáceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cádiz" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castellón" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Córdoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "A Coruna" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Girona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Gipuzkoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaén" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "León" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lleida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madrid" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Málaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murcia" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarra" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Ourense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturias" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palencia" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Cruz de Tenerife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Cantabria" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Sevilla" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valencia" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Vizcaya" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Zaragoza" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andalucía" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragón" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Asturias" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Balearene" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Baskerland" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Kanariøyene" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Castilla-La Mancha" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Castilla y León" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Catalonia" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Extremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galicia" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Murcia" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Navarra" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Valencia" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Oppgi et gyldig postnummer på formen 01XXX - 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Oppgi et gyldig telefonnummer på et av følgende formater: 6XXXXXXXX, " -"8XXXXXXXX eller 9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Oppgi et gyldig NIF, NIE eller CIF." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Oppgi et gyldig NIF eller NIE." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Ugyldig kontrollsum for NIF." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Ugyldig kontrollsum for NIE." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Ugyldig kontrollsum for CIF." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "Oppgi et gyldig kontonummer på formen XXXX-XXXX-XX-XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Ugyldig kontrollsum for kontonummer." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Oppgi et gyldig finsk personnummer." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Telefonnumre må være på formen 0X XX XX XX XX." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Oppgi et gyldig postnummer." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Cornwall" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cumbria" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "East Sussex" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Essex" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Stor-London" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Stor-Manchester" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordshire" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "North Yorkshire" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northamptonshire" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oxfordshire" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "South Yorkshire" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordshire" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne and Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "West Midlands" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "West Sussex" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "West Yorkshire" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "Fermanagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "Londonderry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "South Glamorgan" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "West Glamorgan" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Central Scotland" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries and Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Orknøyene" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Shetland" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Ytre Hebridene" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "England" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Nord-Irland" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Skottland" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Wales" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "Oppgi et gyldig 13-sifret JMBG" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "Feil i datosegment" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "Oppgi et gyldig 11-sifret OIB" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Oppgi et gyldig kjøretøyregistreringsnummer." - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "Oppgi en gyldig stedskode" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "Nummerdelen kan ikke være null" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "Oppgi et gyldig femsifret postnummer" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Oppgi et gyldig telefonnummer." - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "Oppgi en gyldig område- eller mobilnettverkskode" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "Telefonnummeret er for langt" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "Oppgi et gyldig 19-sifret JMBAG begynnende med 601983" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "Kortutstedsnummer kan ikke være null" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "Zagreb by" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "Bjelovar-Bilogora" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "Brod-Posavina" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "Dubrovnik-Neretva" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "Istria" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "Karlovac" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "Koprivnica-Križevci" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "Krapina-Zagorje" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "Lika-Senj" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "Međimurje" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "Osijek-Baranja" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "Požega-Slavonia" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "Primorje-Gorski Kotar" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "Sisak-Moslavina" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "Split-Dalmatia" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "Šibenik-Knin" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "Varaždin" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "Virovitica-Podravina" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "Vukovar-Syrmia" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "Zadar" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "Zagreb fylke" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Oppgi et gyldig postnummer." - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Oppgi et gyldig NIK/KTP-nummer." - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Aceh" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Banten" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Bengkulu" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Yogyakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Jakarta" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Gorontalo" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Jambi" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Jawa Barat" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Jawa Tengah" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Jawa Timur" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Kalimantan Barat" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Kalimantan Selatan" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Kalimantan Tengah" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Kalimantan Timur" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Kepulauan Bangka-Belitung" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Kepulauan Riau" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampung" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Maluku" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Maluku Utara" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Nusa Tenggara Barat" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Nusa Tenggara Timur" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papua" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Papua Barat" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Riau" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Sulawesi Barat" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Sulawesi Selatan" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Sulawesi Tengah" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Sulawesi Tenggara" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Sulawesi Utara" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Sumatera Barat" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Sumatera Selatan" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Sumatera Utara" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Magelang" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Surakarta - Solo" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madiun" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kediri" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanuli" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Nanggroe Aceh Darussalam" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Kepulauan Bangka Belitung" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Corps Consulate" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Corps Diplomatic" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Bandung" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Sulawesi Utara Daratan" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timor" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Sulawesi Utara Kepulauan" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lombok" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Papua dan Papua Barat" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Cirebon" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbawa" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Flores" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Bogor" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalongan" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Semarang" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Pati" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Surabaya" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Madura" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malang" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Jember" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banyumas" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Federal Government" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purwakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarjo" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Garut" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Antrim" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Armagh" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Carlow" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Cavan" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Clare" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Cork" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Derry" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Donegal" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Down" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Dublin" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fermanagh" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Galway" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerry" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Kildare" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Kilkenny" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Laois" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Leitrim" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerick" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Longford" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Louth" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Mayo" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Meath" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Monaghan" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Offaly" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Roscommon" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Sligo" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tipperary" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tyrone" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Waterford" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Westmeath" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Wexford" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Wicklow" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Oppgi et postnummer på formen XXXXX." - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Oppgi et gyldig ID-nummer." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "Oppgi et postnummer på formen XXXXXX or XXX XXX." - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "Oppgi en indisk stat eller et område." - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "Telefonnumre må være på formen 02X-8X, 03X-7X eller 04X-6X." - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "Oppgi et gyldig islandsk identifikasjonsnummer på formen XXXXXX-XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Det islandske identifikasjonsnummeret er ugyldig." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Oppgi et gyldig postnummer." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Oppgi et gyldig italiensk personnummer." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Oppgi et gyldig VAT-nummer." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Oppgi et postnummer på formen XXXXXXX eller XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaido" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Yamagata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukushima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Tochigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Chiba" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tokyo" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Yamanashi" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Toyama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ishikawa" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Shizuoka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Shiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kyoto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hyogo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakayama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okayama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hiroshima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Yamaguchi" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokushima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Kochi" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Oita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Miyazaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagoshima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinawa" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Oppgi et gyldig Kuwaiti Civil ID-nummer." - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" -"Identitetskortnummer må inneholde enten 4 eller 7 siffer eller en stor " -"bokstav og 7 siffer." - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "Dette feltet bør inneholde nøyaktig 13 siffer." - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" -"De første syv sifrene av UMCN må representere en gyldig dato i fortiden." - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "UMCN er ikke gyldig." - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "Aerodrom" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "Aračinovo" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "Berovo" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "Bitola" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "Bogdanci" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "Bogovinje" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "Bosilovo" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "Brvenica" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "Butel" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "Valandovo" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "Vasilevo" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "Vevčani" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "Veles" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "Vinica" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "Vraneštica" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "Vrapčište" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "Gazi Baba" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "Gevgelija" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "Gostivar" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "Gradsko" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "Debar" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "Debarca" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "Delčevo" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "Demir Kapija" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "Demir Hisar" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "Dolneni" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "Drugovo" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "Gjorče Petrov" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "Želino" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "Zajas" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "Zelenikovo" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "Zrnovci" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "Ilinden" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "Jegunovce" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "Kavadarci" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "Karbinci" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "Karpoš" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "Kisela Voda" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "Kičevo" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "Konče" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "Koćani" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "Kratovo" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "Kriva Palanka" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "Krivogaštani" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "Kruševo" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "Kumanovo" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "Lipkovo" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "Lozovo" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "Mavrovo i Rostuša" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "Makedonska Kamenica" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "Makedonski Brod" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "Mogila" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "Negotino" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "Novaci" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "Novo Selo" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "Oslomej" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "Ohrid" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "Petrovec" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "Pehčevo" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "Plasnica" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "Prilep" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "Probištip" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "Radoviš" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "Rankovce" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "Resen" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "Rosoman" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "Saraj" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "Sveti Nikole" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "Sopište" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "Star Dojran" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "Staro Nagoričane" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "Struga" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "Strumica" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "Studeničani" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "Tearce" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "Tetovo" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "Centar" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "Centar-Župa" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "Čair" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "Čaška" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "Češinovo-Obleševo" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "Čučer-Sandevo" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "Štip" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "Šuto Orizari" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "Makedonsk identitetskortnummer" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "Et makedonsk fylke (2-tegns kode)" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "Unikt innbyggernummer (13 siffer)" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "Oppgi et gyldig postnummer på formen XXXXX." - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "Oppgi en gyldig RFC." - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "Ugyldig sjekksum for RFC." - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "Oppgi en gyldig CURP." - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "Ugyldig sjekksum for CURP." - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "Meksikansk stat (tre store bokstaver)" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "Meksikansk postnummer" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "Meksikansk RFC" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "Meksikansk CURP" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baja California" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baja California Sur" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Distrito Federal" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Estado de México" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacán" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo León" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Querétaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potosí" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Yucatán" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Oppgi et gyldig postnummer." - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Oppgi et gyldig SoFi-nummer." - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drenthe" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Friesland" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Gelderland" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groningen" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Noord-Brabant" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Noord-Holland" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrecht" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zeeland" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Zuid-Holland" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Oppgi et gyldig norsk personnummer." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Feltet krever åtte siffer." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Feltet krever 11 siffer." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "National Identification Number består av 11 siffer." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Feil kontrollsum for National Identification Number." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "Nasjonalt ID-kortnummer består av 3 bokstaver og 6 siffer." - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "Feil sjekksum for nasjonalit ID-kortnummer." - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" -"Oppgi et skattenummer (NIP) på formen XXX-XXX-XX-XX, XXX-XX-XX-XXX eller " -"XXXXXXXXXX." - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Ugyldig kontrollsum for NIP." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "National Business Register Number (REGON) består av 9 eller 14 siffer." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "Ugyldig kontrollsum for National Business Register Number (REGON)." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Oppgi et postnummer på formen XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Lower Silesia" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kuyavia-Pomerania" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublin" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubusz voivodskap" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Łódź voivodskap" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Lillepolske voivodskap" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Masoviske voivodskap" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opole voivodskap" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Subkarpatiske voivodskap" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlasie voivodskap" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pommerske voivodskap" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Schlesiske voivodskap" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Helligkorsvoivodskapet" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Ermelandskmasuriske voivodskap" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Storpolske voivodskap" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "Vestpommerske voivodskap" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Oppgi et postnummer på formen XXXX-XXX." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "Telefonnumre må ha 9 siffer, eller starte med + eller 00." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Oppgi et gyldig CIF." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Oppgi et gyldig CNP." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "Oppgi et gyldig IBAN på formen ROXX-XXXX-XXXX-XXXX-XXXX-XXXX." - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Telefonnumre må være på formen XXXX-XXXXXX." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Oppgi et postnummer på formen XXXXXX." - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "Oppgi et postnummer på formen XXXXXX." - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "Oppgi et passnummer på formen XXXX XXXXXX." - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "Oppgi et passnummer på formen XX XXXXXXX." - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "Sentralt føderalt distrikt" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "Sørlig føderalt distrikt" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "Nordvestlig føderalt distrikt" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "Fjernøstlig føderalt distrikt" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "Sibir, føderalt distrikt" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "Ural, føderalt disktrikt" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "Privolzjskij, føderalt distrikt" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "Nord-Kaukasisk, føderalt distrikt" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "Moskva, føderal by" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "Sankt Petersburg, føderal by" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "Moskva, provins" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "Adygia, republikk" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "Basjkortostan, republikk" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "Burjatia, republikk" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "Altaj, republikk" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "Dagestan, republikk" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "Ingusjetia, republikk" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "Kabardino-Balkaria, republikk" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "Kalmykia, republikk" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "Karatsjajevo-Tsjerkessia, republikk" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "Karelia, republikk" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "Komi, republikk" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "Mari El, republikk" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "Mordovia, republikk" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "Sakha (Jakutia), republikk" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "Nord-Ossetia (Alania), republikk" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "Tatarstan, republikk" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "Tuva, republikk" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "Udmurtia, republikk" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "Khakasia, republikk" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "Tsjetsjenia, republikk" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "Tsjuvasjia, republikk" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "Altaj, territorium" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "Zabajkalskij, territorium" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "Kamtsjatka, territorium" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "Krasnodar, territorium" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "Krasnojarsk, territorium" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "Perm, territorium" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "Primorsk, territorium" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "Stavropol, territorium" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "Khabarovsk, territorium" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "Amur, provins" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "Arkhangelsk, provins" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "Astrakhan, provins" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "Belgorod, provins" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "Brjansk, provins" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "Vladimir, provins" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "Volgograd, provins" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "Vologda, provins" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "Voronezj, provins" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "Ivanovo, provins" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "Irkutsk, provins" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "Kaliningrad" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "Kaluga, provins" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "Kemerovo, provins" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "Kirov, provins" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "Kostroma, provins" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "Kurgan, provins" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "Kursk, provins" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "Leningrad" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "Lipetsk, provins" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "Magadan, provins" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "Murmansk, provins" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "Nizjnij Novgorod, provins" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "Novgorod, provins" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "Novosibirsk, provins" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "Omsk, provins" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "Orenburg, provins" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "Orjol, provins" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "Penza, provins" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "Pskov, provins" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "Rostov, provins" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "Rjazan, provins" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "Samara, provins" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "Saratov, provins" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "Sakhalin, provins" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "Sverdlovsk, provins" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "Smolensk, provins" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "Tambov" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "Tver, provins" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "Tomsk, provins" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "Tula, provins" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "Tjumen, provins" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "Uljanovsk, provins" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "Tsjeljabinsk, provins" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "Jaroslavl, provins" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "Den jødiske autonome oblasten" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "Nenetsk, autonomt distrikt" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "Khanty-Mansia, autonomt distrikt" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "Tsjukotka, autonomt distrikt" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "Jamalo-Nenetsk, autonomt distrikt" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Oppgi et gyldig svensk organisasjonsnummer." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Oppgi et gyldig svensk personnummer." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Koordineringsnumre er ikke tillatt." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Oppgi et gyldig svensk postnummer på formen XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Stockholm" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Västerbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norrbotten" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Uppsala" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Södermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Östergötland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Jönköping" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmar" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Gotland" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Blekinge" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Skåne" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halland" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Västra Götaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Värmland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Örebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Västmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Dalarna" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gävleborg" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Västernorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jämtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" -"De første 7 siffer av EMSO-en må representere en gyldig dato i fortiden." - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "EMSO-en er ikke gyldig." - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "Oppgi et gyldig skattenummer på formen SIXXXXXXXX" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "Oppgi telefonnummer på formen +386XXXXXXXX eller 0XXXXXXXX." - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Banska Bystrica" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banska Stiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Banovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytca" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Cadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolny Kubin" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajska Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenne" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kezmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komarno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Kosice I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Kosice II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Kosice III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Kosice IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Kosice - okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucke Nove Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoca" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovsky Mikulas" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lucenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Namestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nove Mesto nad Vahom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nove Zamky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizanske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piestany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltar" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povazska Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Presov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Puchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revuca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Roznava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ruzomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spisska Nova Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stara Lubovna" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidnik" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Sala" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolcany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebisov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trencin" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turcianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdosin" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velky Krtis" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Zarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Zilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Banská Bystrica-regionen" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Bratislava-regionen" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Košice-regionen" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Nitra-regionen" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Prešov-regionen" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Trenčín-regionen" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Trnava-regionen" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Žilina-regionen" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Oppgi et postnummer på formen XXXXX." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Telefonnumre må være på formen 0XXX XXX XXXX." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Oppgi et gyldig tyrkisk identifikasjonsnummer." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "Tyrkiske identifikasjonsnummer må være 11 siffer." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Oppgi et postnummer på formen XXXXX eller XXXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Telefonnumre må være på formen XXX-XXX-XXXX." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" -"Oppgi et gyldig amerikansk Social Security-nummer på formen XXX-XX-XXXX." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Oppgi en amerikansk stat eller et område" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Stat (i USA, to store bokstaver)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "Amerikansk postnummer (med to store bokstaver)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Telefonnummer" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "Oppgi gyldig CI på formen X.XXX.XXX-X,XXXXXXX-X eller XXXXXXXX." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Oppgi et gyldig CI-nummer." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Oppgi et gyldig South African ID-nummer." - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Oppgi et gyldig postnummer." - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Eastern Cape" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Free State" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Northern Cape" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "North West" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Western Cape" diff --git a/django/contrib/localflavor/locale/ne/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/ne/LC_MESSAGES/django.mo deleted file mode 100644 index 53e7a85bf9..0000000000 Binary files a/django/contrib/localflavor/locale/ne/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/ne/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/ne/LC_MESSAGES/django.po deleted file mode 100644 index 7ef555b429..0000000000 --- a/django/contrib/localflavor/locale/ne/LC_MESSAGES/django.po +++ /dev/null @@ -1,3526 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2011-01-19 16:22+0000\n" -"Last-Translator: Django team\n" -"Language-Team: Nepali (http://www.transifex.net/projects/p/django/language/" -"ne/)\n" -"Language: ne\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "" - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "" - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "" - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "" - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "" - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "" - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "" - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "" - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "" - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "" - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "" - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "" - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "" - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "" - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "" - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "" - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "" - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "" - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "" - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "" - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "" - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "" - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "" - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "" - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "" - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "" - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "" - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "" - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "" - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "" - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "" - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "" - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "" - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "" - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "" - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "" - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "" - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "" - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "" - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "" - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "" - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "" - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "" - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "" - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "" - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "" - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "" - -#: us/models.py:26 -msgid "Phone number" -msgstr "" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "" - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "" diff --git a/django/contrib/localflavor/locale/nl/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/nl/LC_MESSAGES/django.mo deleted file mode 100644 index 0a863be0a6..0000000000 Binary files a/django/contrib/localflavor/locale/nl/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/nl/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/nl/LC_MESSAGES/django.po deleted file mode 100644 index 083aae274c..0000000000 --- a/django/contrib/localflavor/locale/nl/LC_MESSAGES/django.po +++ /dev/null @@ -1,3561 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# , 2012. -# Blue , 2011. -# Jannis Leidel , 2011. -# Jeffrey Gelens , 2011, 2012. -# Tino de Bruijn , 2011, 2012. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Jeffrey Gelens \n" -"Language-Team: Dutch (http://www.transifex.net/projects/p/django/language/" -"nl/)\n" -"Language: nl\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Geef een postcode op volgens het NNNN of ANNNNAAA formaat." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Dit veld dient alleen cijfers te bevatten." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Dit veld dient 7 of 8 cijfers te bevatten." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Geef een geldige CUIT op in het XX-XXXXXXXX-X of XXXXXXXXXXXX formaat." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "Ongeldige CUIT." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Carinthia" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Lager Australië" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Hoger Australië" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salzburg" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Styria" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tirol" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlberg" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Wenen" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Geef een postcode op in het formaat XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Geef een geldig Oostenrijks Sociaalnummer op in het XXX-XX-XXXX formaat." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "Voer een 4-cijferige postcode in." - -#: au/models.py:9 -msgid "Australian State" -msgstr "Australische staat" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "Australische postcode" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "Australische telefoonnummer" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Antwerpen" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Brussel" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Oost-Vlaanderen" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Vlaams-Brabant" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hainaut" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Luik" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburg" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Luxemburg" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namen" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Waals-Brabant" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "West-Vlaanderen" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Brussels Hoofdstedelijk Gewest" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Vlaamse Gewest" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Wallonië" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "Voer een geldige postcode in het bereik en de vorm 1xxx - 9xxx." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Voer een geldig telefoonnummer in een van de volgende formaten: 0x xxx xx " -"xx, xx xx xx 0xx, 04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, " -"0x . xxx.xx.xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx of 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Geef een postcode op in het formaat XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Telefoonnummers dienen volgens het XX-XXXX-XXXX formaat te zijn." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Selecteer een geldige Braziliaanse staat. Uw keuze is niet een van de " -"beschikbare staten." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Ongeldig CPF nummer." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Dit veld dient maximaal 11 cijfers of 14 karakters te bevatten." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Ongeldig CNPJ nummer." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Dit veld vereist minimaal 14 cijfers." - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Geef een postcode op in het formaat XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"Geef een geldig Canadees Sociaal Verzekeringsnummer op volgens het XXX-XXX-" -"XXX formaat." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aargau" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basel-Stad" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basel-Land" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Bern" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Fribourg" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Genève" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubuenden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucerne" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchatel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "St. Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zurich" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Geef een geldig Zwitsers identiteits- of paspoortnummer op volgens het " -"X1234567<0 of 1234567890 formaat" - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Geef een geldige Chileense RUT op." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Geef een geldige Chileense RUT op. Het formaat is XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "De Chileense RUT is ongeldig." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "Voer een postcode in het formaat XXXXXX in." - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "ID-kaart nummer bestaat uit 15 of 18 getallen" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "Ongeldige ID-kaart nummer: verkeerde checksum" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "Ongeldige ID-kaart nummer: verkeerde geboortedatum" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "Ongeldige ID-kaart nummer: verkeerde locatie code" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "Voer een geldig telefoonnummer in." - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "Voer een geldig mobiel telefoonnummer in." - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Praag" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Midden-Bohemen" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Zuid-Bohemen" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Pilsen" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Karlsbad" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Ústí nad Labem" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Liberec" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Hradec Králové" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Pardubice" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Vysočina" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Zuid-Moravië" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Olomouc" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Zlín" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Moravië-Silezië" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Geef een postcode op in het formaat XXXXX of XXX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "Geef een geboorte nummer op in het formaat XXXXXX/XXXX or XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" -"Ongeldige optionele parameter Geslacht, geldige waarden zijn 'f' en 'm'" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Geef een geldig geboorte nummer." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Geef een geldig IC nummer op." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Wuerttemberg" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Beieren" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlijn" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburg" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Bremen" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburg" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hessen" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklenburg-Western Pomerania" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Nedersaksen" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "Noordrijn-Westfalen" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Rijnland-Palts" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Saarland" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Saksen" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Saksen-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Sleeswijk-Holstein" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Thüringen" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Geef een postcode op in het formaat XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Geef een geldig Duits identiteitsnummer op volgens het XXXXXXXXXXX-XXXXXXX-" -"XXXXXXX-X formaat." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Arava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alacant" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almeria" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Avila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Balearen" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barcelona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Caceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cadiz" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castello" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Cordoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "A Coruna" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Girona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipuzkoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaen" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "Leon" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lleida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madrid" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Malaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murcia" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarre" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Ourense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturias" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palencia" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Cruz de Tenerife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Cantabria" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Sevilla" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valencië" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Bizkaia" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Zaragoza" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andalusië" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragon" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Prinsdom Asturië" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Balearen" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Baskenland" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Canarische Eilanden" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Castilië-La Mancha" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Castilië en León" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Catalonië" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Extremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galicië" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Murcia" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Navarra" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Valencia" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Vul een postcode in volgens het 01XXX - 52XXX formaat." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Geef een geldig telefoonnummer op in één van de volgende formaten: " -"6XXXXXXXX, 8XXXXXXXX of 9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Geef een geldige NIF, NIE of CIF op." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Geef een geldige NIF of NIE op." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Ongeldig controlegetal voor NIF." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Ongeldig controlegetal voor NIE." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Ongeldig controlegetal voor CIF." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Geef een geldig bankrekeningnummer op in het formaat XXXX-XXXX-XX-XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Ongeldig controlegetal voor het bankrekeningnummer." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Geef een geldig Fins sociaal nummer op." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Telefoonnummers moeten in 0X XX XX XX XX-formaat staan." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Geef een geldige postcode op." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Cornwall en de Scilly-Eilanden" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cumbria" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "Oost-Sussex" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Essex" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Groot-Londen" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Groot-Manchester" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordshire" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "Noord-Yorkshire" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northamptonshire" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oxfordshire" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "Zuid-Yorkshire" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordshire" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne and Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "West-Midlands" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "West-Sussex" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "West-Yorkshire" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "Graafschap Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "Graafschap Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "Graafschap Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "Graafschap Fermanagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "Graafschap Londonderry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "Graafschap Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "Zuid-Glamorgan" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "West-Glamorgan" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Schotse-Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Centraal-Schotland" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries en Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Orkneyeilanden" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Shetlandeilanden" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Buiten-Hebriden" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "Engeland" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Noord-Ierland" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Schotland" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Wales" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "Voor een geldige 13-cijferige JMBG in" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "Fout in het datum segment" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "Voer een geldige 11-cijferige OIB in" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Voer een geldige nummerplaat in" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "Voer een geldige locatie code in" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "Het nummer gedeelte kan niet nul zijn" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "Voer een geldige, 5-cijferige postcode in" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Geef een geldig telefoonnummer op" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "Voer een geldig gebied of een mobiele netwerk code in" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "Het telefoonnummer is te lang" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "Voer een geldige 19-cijferige JMBAG in die begint met 601983" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "Het kaart afgifte nummer kan niet nul zijn" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "Zagreb" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "Bjelovar-Bilogora" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "Brod-Posavina" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "Dubrovnik-Neretva" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "Istrië" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "Karlovac" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "Koprivnica-Križevci" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "Krapina-Zagorje" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "Ličko-Senjska zupanija" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "Međimurska županija" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "Osječko-baranjska županija" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "Požeško-slavonska županija" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "Primorsko-goranska županija" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "Sisačko-moslavačka županija" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "Splitsko-dalmatinska županija" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "Šibensko-kninska županija" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "Varaždinska županija" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "Virovitičko-podravska županija" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "Vukovarsko-srijemska županija" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "Zadarska županija" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "Zagrebačka županija" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Voer een geldige postcode in" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Voer een geldige NIK / KTP nummer in" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Atjeh" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Banten" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Bengkulu" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Yogyakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Jakarta" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Gorontalo" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Jambi" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Noord-Java" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Midden-Java" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Oost-Java" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Noord-Kalimantan" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Zuid-Kalimantan" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Midden-Kalimantan" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Oost-Kalimantan" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Banka-Billiton" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Riouwarchipel" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampung" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Molukken" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Noord-Molukken" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "West-Nusa Tenggara" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Oost-Nusa Tenggara" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papoea" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "West-Papoea" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Riau" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "West-Celebes" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Zuid-Celebes" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Midden-Celebes" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Zuidoost-Celebes" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Noord-Celebes" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "West-Sumatra" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Zuid-Sumatra" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Noord-Sumatra" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Magelang" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Surakarta - Solo" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madiun" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kediri" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanuli" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Atjeh" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Banka-Billiton" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Corps Consulaire" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Diplomatiek Korps" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Bandung" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Sulawesi Utara Daratan" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timor" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Sulawesi Utara Kepulauan" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lombok" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Papua dan Papua Barat" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Cirebon" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Soembawa" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Flores" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Soemba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Bogor" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalongan" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Semarang" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Pati" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Surabaya" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Madura" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malang" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Jember" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banyumas" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Federale Regering" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purwakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarjo" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Garut" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Antrim" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Armagh" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Carlow" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Cavan" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Clare" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Cork" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Derry" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Donegal" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Down" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Dublin" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fermanagh" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Galway" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerry" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Kildare" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Kilkenny" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Laois" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Leitrim" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerick" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Longford" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Louth" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Mayo" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Meath" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Monaghan" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Offaly" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Roscommon" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Sligo" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tipperary" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tyrone" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Waterford" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Westmeath" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Wexford" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Wicklow" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Voer een postcode in het formaat XXXXX in" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Voer een geldig ID-nummer in." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "Voer een postcode in in het formaat XXXXXX of XXX XXX." - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "Voer een Indiase staat of territorium in." - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" -"Telefoonnummers moeten worden ingevoerd in één van de volgende formaten: " -"02X-8X, 03X-7X of 04X-6X." - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" -"Geef een geldig IJslands identificatienummer op. Het formaat is XXXXXX-XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Het IJslandse identificatienummer is niet geldig." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Geef een geldige postcode op." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Geef een geldig Sociaal Nummer op." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Geef een geldig BTW nummer op." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Geef een geldige postcode op in het formaat XXXXXXX of XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaido" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Yamagata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukushima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Tochigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Saitama" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tokyo" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Yamanashi" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Toyama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ishikawa" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Shizuoka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Shiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kyoto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hyogo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakayama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okayama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hiroshima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Yamaguchi" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokushima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Kochi" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Oita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Miyazaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagoshima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinawa" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Voer een geldig Koeweits Burger ID-nummer in" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" -"ID kaart nummers moeten bestaan uit 4 of 7 cijfers, of uit een hoofdletter " -"en 7 cijfers" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "Dit veld moet exact 13 cijfers bevatten" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "De eerste 7 cijfers van de UMCN moeten een geldige datum weergeven." - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "De UMCN is niet geldig." - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "Aerodrom" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "Aračinovo" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "Berovo" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "Bitola" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "Bogdanci" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "Bogovinje" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "Bosilovo" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "Brvenica" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "Butel" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "Valandovo" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "Vasilevo" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "Vevčani" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "Veles" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "Vinica" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "Vraneštica" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "Vrapčište" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "Gazi Baba" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "Gevgelija" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "Gostivar" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "Gradsko" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "Debar" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "Debarca" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "Delčevo" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "Demir Kapija" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "Demir Hisar" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "Dolneni" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "Drugovo" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "Gjorče Petrov" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "Želino" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "Zajas" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "Zelenikovo" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "Zrnovci" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "Ilinden" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "Jegunovce" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "Kavadarci" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "Karbinci" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "Karpoš" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "Kisela Voda" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "Kičevo" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "Konče" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "Koćani" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "Kratovo" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "Kriva Palanka" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "Krivogaštani" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "Kruševo" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "Kumanovo" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "Lipkovo" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "Lozovo" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "Mavrovo i Rostuša" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "Makedonska Kamenica" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "Makedonski Brod" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "Mogila" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "Negotino" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "Novaci" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "Novo Selo" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "Oslomej" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "Ohrid" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "Petrovec" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "Pehčevo" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "Dit veld moet exact 13 cijfers bevatten" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "Prilep" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "Probištip" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "Radoviš" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "Rankovce" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "Resen" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "Rosoman" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "Saraj" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "Sveti Nikole" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "Sopište" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "Star Dojran" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "Staro Nagoričane" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "Struga" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "Strumica" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "Studeničani" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "Tearce" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "Tetovo" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "Centar" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "Centar-Župa" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "Čair" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "Čaška" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "Češinovo-Obleševo" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "Čučer-Sandevo" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "Štip" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "Šuto Orizari" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "Macedonisch identiteitskaart nummer" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "Een Macedonische gemeente (2 tekens)" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "Unique master citizen number (13 cijfers)" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "Voer een geldige postcode in, in de vorm XXXXXX." - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "Voer een geldige RFC in." - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "Ongeldige checksum in als RFC." - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "Voer een geldige CURP in." - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "Ongeldige checksum in als CURP." - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "Mexicaanse staat (3 hoodfletters)" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "Mexicaanse postcode" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "Mexicaanse RFC" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "Mexicaanse CURP" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baja California" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baja California Sur" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Distrito Federal" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "de Staat Mexico" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacán" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo León" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Querétaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potosí" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Yucatán" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Geef een geldige postcode op" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Geef een geldig SoFi nummer op" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drenthe" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Friesland" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Gelderland" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groningen" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Noord-Brabant" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Noord-Holland" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrecht" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zeeland" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Zuid-Holland" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Geef een geldig Noors Sociaal Nummer op." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Dit veld vereist 8 cijfers." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Dit veld vereist 11 cijfers." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Het Nationaal Identificatie Nummer bestaat uit 11 cijfers." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Verkeerd controlecijfer voor het Nationaal Identificatie Nummer." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "Nationaal ID kaart nummer bestaande uit 3 letters en 6 cijfers." - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "Verkeerde checksum voor het Nationale ID kaarnummer." - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" -"Voer een geldig belasting nummer veld (NIP) in van de vorm XXX-XXX-XX-XX, " -"XXX-XX-XX-XXX of XXXXXXXXXX." - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Verkeerd controlecijfer voor het fiscaal nummer (NIP)." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" -"Het Nationaal Zakelijk Registratie Nummer (REGON) bestaat uit 9 of 14 " -"cijfers." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" -"Verkeerd controlecijfer op het Nationaal Zakelijk Registratie Nummer (REGON)." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Geef een postcode op in het formaat XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Neder-Silezië" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kuyavia-Pomerania" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublin" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubusz" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodz" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Klein-Polen" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Masovia" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opole" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Subcarpatia" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlasie" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomerania" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Silesia" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Swietokrzyskie" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Warmia-Masuria" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Groot-Polen" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "West Pomerania" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Voer een postcode in in het formaat XXXX-XXX." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" -"Telefoonnummers moeten uit 9 cijfers bestaan, of beginnen met een + of 00." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Geef een geldige CIF op." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Geef een geldige CNP op." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "" -"Geef een geldige IBAN volgens het ROXX-XXXX-XXXX-XXXX-XXXX-XXXX formaat" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Telefoonnummers moeten in het formaat XXXX-XXXXXX zijn." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Geef een geldige postcode in het formaat XXXXXX" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "Voer een postcode in in het formaat XXXXXX" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "Voer een paspoort nummer in als XXXX XXXXXX." - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "Voer een paspoort nummer in als XX XXXXXXX." - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "Centrale Federale Provincie" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "Zuidelijke Federale Provincie" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "Noord-Westelijke Federale Provincie" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "Ver Oostelijke Federale Provincie" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "Siberische Federale Provincie" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "Oerale Federale Provincie" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "Privolzhsky Federale Provincie" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "Noord Kaukasische Federale Provincie" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "Moskva" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "Sint Petersburg" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "Moskovskaya oblast'" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "Adygeya, Respublika" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "Bashkortostan, Respublika" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "Buryatia, Respublika" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "Altay, Respublika" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "Dagestan, Respublika" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "Ingushskaya Respublika" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "Kabardino-Balkarskaya Respublika" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "Kalmykia, Respublika" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "Karachaevo-Cherkesskaya Respublika" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "Karelia, Respublika" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "Komi, Respublika" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "Mariy Ehl, Respublika" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "Mordovia, Respublika" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "Sakha, Respublika (Yakutiya)" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "Severnaya Osetia, Respublika (Alania)" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "Tatarstan, Respublika" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "Tyva, Respublika (Tuva)" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "Udmurtskaya Respublika" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "Khakassiya, Respublika" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "Chechenskaya Respublika" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "Chuvashskaya Respublika" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "Altayskiy Kray" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "Zabaykalskiy Kray" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "Kamchatskiy Kray" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "Krasnodarskiy Kray" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "Krasnoyarskiy Kray" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "Permskiy Kray" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "Primorskiy Kray" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "Stavropol'siyy Kray" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "Khabarovskiy Kray" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "Amurskaya oblast'" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "Arkhangel'skaya oblast'" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "Astrakhanskaya oblast'" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "Belgorodskaya oblast'" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "Bryanskaya oblast'" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "Vladimirskaya oblast'" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "Volgogradskaya oblast'" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "Voer een postcode in in het formaat XXXXXX" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "Voronezhskaya oblast'" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "Ivanovskaya oblast'" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "Irkutskaya oblast'" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "Kaliningradskaya oblast'" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "Kaluzhskaya oblast'" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "Kemerovskaya oblast'" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "Kirovskaya oblast'" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "Kostromskaya oblast'" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "Kurganskaya oblast'" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "Kurskaya oblast'" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "Leningradskaya oblast'" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "Lipeckaya oblast'" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "Magadanskaya oblast'" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "Murmanskaya oblast'" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "Nizhegorodskaja oblast'" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "Novgorodskaya oblast'" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "Novosibirskaya oblast'" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "Omskaya oblast'" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "Orenburgskaya oblast'" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "Orlovskaya oblast'" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "Penzenskaya oblast'" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "Pskovskaya oblast'" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "Rostovskaya oblast'" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "Rjazanskaya oblast'" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "Samarskaya oblast'" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "Saratovskaya oblast'" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "Sakhalinskaya oblast'" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "Sverdlovskaya oblast'" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "Smolenskaya oblast'" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "Tambovskaya oblast'" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "Tverskaya oblast'" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "Tomskaya oblast'" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "Tul'skaya oblast'" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "Tyumenskaya oblast'" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "Ul'ianovskaya oblast'" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "Chelyabinskaya oblast'" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "Yaroslavskaya oblast'" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "Evreyskaya avtonomnaja oblast'" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "Neneckiy autonomnyy okrug" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "Chukotskiy avtonomnyy okrug" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "Yamalo-Neneckiy avtonomnyy okrug" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Voer een geldig Zweeds organisatie nummer in." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Voer een geldig Zweeds persoonlijk identificatie nummer in" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Coördinatie nummers zijn niet toegestaan." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Voer een Zweedse postcode in, in het formaat XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Stockholm" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Västerbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norrbotten" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Uppsala" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Södermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Östergötland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Jönköping" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmar" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Gotland" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Blekinge" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Skåne" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halland" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Västra Götaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Värmland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Örebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Västmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Dalarna" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gävleborg" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Västernorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jämtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" -"De eerste 7 cijfers van de EMSO moeten een geldige verleden datum weergeven." - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "De EMSO is niet geldig." - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "Voer een geldig belasting nummer in van de vorm SIXXXXXXXX" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "Voer een telefoonnummer in van de vorm +386XXXXXXXX of 0XXXXXXXX." - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Banska Bystrica" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banska Stiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Banovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytca" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Cadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolny Kubin" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajska Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenne" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kezmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komarno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Kosice I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Kosice II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Kosice III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Kosice IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Kosice - okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucke Nove Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoca" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovsky Mikulas" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lucenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Namestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nove Mesto nad Vahom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nove Zamky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizanske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piestany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltar" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povazska Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Presov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Puchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revuca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Roznava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ruzomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spisska Nova Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stara Lubovna" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidnik" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Sala" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolcany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebisov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trencin" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turcianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdosin" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velky Krtis" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Zarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Zilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Regio Banská Bystrica" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Regio Bratislava" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Regio Košice" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Regio Nitra" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Regio Prešov" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Regio Trenčín" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Regio Trnava" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Regio Žilina" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Voer een postcode in in het formaat XXXXX." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Telefoonnummers moeten in 0XXX XXX XXXX formaat staan." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Voer een geldig Turks identificatienummer in." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "Een Turks Identificatienummer moet uit 11 cijfers bestaan." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Geef een geldige postcode op volgens het XXXXX of XXXXX-XXXX formaat." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Telefoonnummers moeten in XXX-XXX-XXXX formaat staan." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "Geef een geldig V.S. Sociaalnummer op in het XXX-XX-XXXX formaat." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Voer een Amerikaanse staat of grondgebied in." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Staat van de VS (twee hoofdletters)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "Postcode in de VS (twee hoofdletters)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Telefoonnummer" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" -"Voer een geldig CI nummer in, in X.XXX.XXX-X, XXXXXXX of XXXXXXXX-X formaat." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Voer een geldig CI nummer in." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Geef een geldig Zuid-Afrikaans identificatienummer op" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Geef een geldige Zuid-Afrikaanse postcode op" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Oost-Kaap" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Vrijstaat" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Noord-Kaap" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "Noordwest" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "West-Kaap" diff --git a/django/contrib/localflavor/locale/nn/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/nn/LC_MESSAGES/django.mo deleted file mode 100644 index 224e528b77..0000000000 Binary files a/django/contrib/localflavor/locale/nn/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/nn/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/nn/LC_MESSAGES/django.po deleted file mode 100644 index c55916b190..0000000000 --- a/django/contrib/localflavor/locale/nn/LC_MESSAGES/django.po +++ /dev/null @@ -1,3537 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# hgrimelid , 2011. -# Jannis Leidel , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: hgrimelid \n" -"Language-Team: Norwegian Nynorsk (http://www.transifex.net/projects/p/django/" -"language/nn/)\n" -"Language: nn\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Oppgje eit postnummer på forma NNNN eller ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Feltet krevar berre tall." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Feltet krevar 7 eller 8 siffer." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Oppgje gyldig CUIT på forma XX-XXXXXXXX-X or XXXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "Ugyldig CUIT." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Carinthia" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Niederösterreich" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Oberösterreich" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salzburg" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Steiermark" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tirol" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlberg" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Wien" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Oppgje eit postnummer på forma XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "Oppgje eit gyldig Østerrisk personnummer på forma XXXX XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Antwerpen" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Brussel" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Aust-Flandern" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Flamsk Brabant" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hainaut" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Liege" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburg" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Luxembourg" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Vallonsk Brabant" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Vest-Flandern" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Vallonia" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "Skriv inn eit gyldig postnummer i området og med formatet 1XXX - 9XXX." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Oppgje eit postnummer på forma XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Telefonnummeret må vere på forma XX-XXXX-XXXX." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Velg ein gyldig brasiliansk stat. Den staten er ikkje eit av dei " -"tilgjengelege valga." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Ugyldig CPF-nummer." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Feltet krevar maksimum 11 eller 14 siffer." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Ugyldig CNPJ-nummer." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Feltet krevar minst 14 siffer." - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Oppgje eit postnummer på forma XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "Oppgje eit gyldig kanadisk personnummer på forma XXX-XXX-XXX." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aargau" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basel-Stadt" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basel-Landschaft" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Bern" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Fribourg" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Genève" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubünden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Luzern" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchâtel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "St. Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Wallis" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zürich" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Oppgje eit gyldig sveitsisk identitets- eller passnummer på forma X1234567<0 " -"eller 1234567890." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Oppgje eit gyldig chilensk RUT." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Oppgje eit gyldig chilensk RUT på forma XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "Den chilenske RUT er ugyldig." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Praha" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Sentralbøhmen region" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Sydbøhmen region" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Plzeň region" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Karlovy Vary region" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Ústí nad Labem region" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Liberec region" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Hradec Králové region" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Pardubice region" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Žilina-regionen" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Sydmähriske region" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Olomouc region" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Zlín region" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Mähren-Schlesien region" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Oppgje eit postnummer på forma XXXXX or XXX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "Oppgje eit fødselsnummer på forma XXXXXX/XXXX eller XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Oppgje eit gyldig fødselsnummer." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Oppgje eit gyldig IC-nummer." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Württemberg" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Bayern" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlin" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburg" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Bremen" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburg" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hessen" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklenburg-Vorpommern" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Niedersachsen" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "Nordrhein-Westfalen" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Rheinland-Pfalz" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Saarland" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Sachsen" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Sachsen-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Thüringen" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Oppgje eit postnummer på forma XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Oppgje eit gyldig tysk identitetsnummer på forma XXXXXXXXXXX-XXXXXXX-XXXXXXX-" -"X." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Álava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alicante" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almería" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Ávila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Balearane" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barcelona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Cáceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cádiz" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castellón" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Córdoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "A Coruna" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Girona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Gipuzkoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaén" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "León" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lleida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madrid" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Málaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murcia" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarra" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Ourense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturias" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palencia" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Cruz de Tenerife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Cantabria" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Sevilla" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valencia" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Bizkaia" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Zaragoza" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andalucía" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragón" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Asturias" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Balearane" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Baskarland" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Kanariøyene" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Castilla-La Mancha" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Castilla y León" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Catalonia" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Extremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galicia" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Murcia" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Navarra" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Valenciana" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Oppgje eit gyldig postnummer på forma 01XXX - 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Oppgje eit gyldig telefonnummer på eit av følgjande format: 6XXXXXXXX, " -"8XXXXXXXX eller 9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Oppgje eit gyldig NIF, NIE eller CIF." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Oppgje eit gyldig NIF eller NIE." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Ugyldig kontrollsum for NIF." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Ugyldig kontrollsum for NIE." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Ugyldig kontrollsum for CIF." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "Oppgje eit gyldig kontonummer på forma XXXX-XXXX-XX-XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Ugyldig kontrollsum for kontonummer." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Oppgje eit gyldig finsk personnummer." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Telefonnummeret må vere på forma 0X XX XX XX XX." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Oppgje eit gyldig postnummer." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Cornwall" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cumbria" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "East Sussex" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Essex" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Stor-London" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Stor-Manchester" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordshire" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "North Yorkshire" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northamptonshire" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oxfordshire" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "South Yorkshire" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordshire" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne and Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "West Midlands" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "West Sussex" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "West Yorkshire" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "Fermanagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "Londonderry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "South Glamorgan" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "West Glamorgan" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Central Scotland" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries og Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Orknøyene" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Shetland" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Ytre Hebridene" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "England" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Nord-Irland" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Skottland" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Wales" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Oppgje eit gyldig bilnummer." - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Oppgje eit gyldig telefonnummer" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Oppgje eit gyldig postnummer" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Oppgje eit gyldig NIK/KTP-nummer." - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Banten" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Bengkulu" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Yogyakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Jakarta" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Gorontalo" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Jambi" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Jawa Barat" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Jawa Tengah" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Jawa Timur" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Kalimantan Barat" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Kalimantan Selatan" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Kalimantan Tengah" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Kalimantan Timur" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Kepulauan Bangka-Belitung" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Kepulauan Riau" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampung" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Maluku" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Maluku Utara" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Nusa Tenggara Barat" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Nusa Tenggara Timur" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papua" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Papua Barat" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Riau" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Sulawesi Barat" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Sulawesi Selatan" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Sulawesi Tengah" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Sulawesi Tenggara" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Sulawesi Utara" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Sumatera Barat" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Sumatera Selatan" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Sumatera Utara" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Magelang" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Surakarta - Solo" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madium" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kediri" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanuli" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Nanggroe Aceh Darussalam" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Kepulauan Bangka Belitung" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Corps Consulate" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Corps Diplomatic" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Bandung" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Sulawesi Utara Daratan" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timor" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Sulawesi Utara Kepulauan" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lombok" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Papua dan Papua Barat" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Cirebon" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbawa" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Flores" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Bogor" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalongan" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Semarang" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Pati" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Surabaya" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Madura" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malang" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Jember" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banyumas" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Federal Government" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purwakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarjo" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Garut" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Antrim" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Armagh" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Carlow" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Cavan" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Clare" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Cork" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Derry" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Donegal" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Down" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Dublin" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fermanagh" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Galway" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerry" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Kildare" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Kilkenny" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Laois" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Leitrim" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerick" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Longford" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Louth" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Mayo" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Meath" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Monaghan" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Offaly" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Roscommon" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Sligo" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tipperary" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tyrone" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Waterford" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Westmeath" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Wexford" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Wicklow" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "Oppgje eit gyldig islandsk identifikasjonsnummer på forma XXXXXX-XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Det islandske identifikasjonsnummeret er ugyldig." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Oppgje eit gyldig postnummer." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Oppgje eit gyldig italiensk personnummer." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Oppgje eit gyldig VAT-nummer." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Oppgje eit postnummer på forma XXXXXXX eller XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaido" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Yamagata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukushima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Tochigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Chiba" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tokyo" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Yamanashi" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Toyama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ishikawa" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Shizuoka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Shiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kyoto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hyogo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakayama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okayama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hiroshima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Yamaguchi" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokushima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Kochi" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Oita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Miyazaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagoshima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinawa" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Oppgje eit gyldig kuwaitisk ID-nummer." - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baja California" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baja California Sur" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Distrito Federal" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Estado de México" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacán" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo León" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Querétaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potosí" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Yucatán" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Oppgje eit gyldig postnummer." - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Oppgje eit gyldig SoFi-nummer." - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drenthe" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Friesland" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Gelderland" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groningen" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Noord-Brabant" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Noord-Holland" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrecht" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zeeland" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Zuid-Holland" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Oppgje eit gyldig norsk personnummer." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Feltet krevar åtte siffer." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Feltet krevar 11 siffer." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "National Identification Number består av 11 siffer." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Feil kontrollsum for National Identification Number." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Ugyldig kontrollsum for NIP." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "National Business Register Number (REGON) består av 9 eller 14 siffer." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "Ugyldig kontrollsum for National Business Register Number (REGON)." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Oppgje eit postnummer på forma XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Lower Silesia" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kuyavia-Pomerania" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublin" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubusz" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodz" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Lesser Poland" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Masovia" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opole" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Subcarpatia" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlasie" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomerania" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Silesia" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Swietokrzyskie" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Warmia-Masuria" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Greater Poland" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "West Pomerania" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Oppgje eit postnummer på forma XXXXX-XXX." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Oppgje eit gyldig CIF." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Oppgje eit gyldig CNP." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "Oppgje eit gyldig IBAN på forma ROXX-XXXX-XXXX-XXXX-XXXX-XXXX." - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Telefonnummeret må vere på forma XXXX-XXXXXX." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Oppgje eit postnummer på forma XXXXXX." - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Oppgje eit gyldig svensk organisasjonsnummer." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Oppgje eit gyldig svensk personnummer." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Koordinasjonsnummer er ikkje tillate." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Oppgje eit svensk postnummer på forma XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Stockholm" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Västerbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norrbotten" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Uppsala" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Södermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Östergötland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Jönköping" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmar" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Gotland" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Blekinge" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Skåne" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halland" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Västra Götaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Värmland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Örebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Västmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Dalarna" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gävleborg" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Västernorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jämtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Banska Bystrica" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banska Stiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Banovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytca" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Cadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolny Kubin" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajska Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenne" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kezmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komarno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Kosice I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Kosice II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Kosice III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Kosice IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Kosice - okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucke Nove Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoca" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovsky Mikulas" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lucenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Namestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nove Mesto nad Vahom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nove Zamky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizanske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piestany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltar" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povazska Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Presov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Puchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revuca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Roznava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ruzomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spisska Nova Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stara Lubovna" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidnik" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Sala" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolcany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebisov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trencin" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turcianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdosin" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velky Krtis" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Zarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Zilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Banská Bystrica-regionen" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Bratislava-regionen" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Košice-regionen" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Nitra-regionen" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Prešov-regionen" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Trenčín-regionen" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Trnava-regionen" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Žilina-regionen" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Oppgje eit postnummer på forma XXXXX eller XXXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Telefonnummer må vere på forma XX-XXXX-XXXX." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" -"Oppgje eit gyldig amerikansik Social Security-nummer på forma XXX-XX-XXXX." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Stat (i USA, to store bokstavar)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Telefonnummer" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "Oppgje gyldig CI-nummer på forma X.XXX.XXX-X,XXXXXXX-X eller XXXXXXXX." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Oppgje eit gyldig CI-nummer." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Oppgje eit gyldig South African ID-nummer." - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Oppgje eit gyldig postnummer." - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Eastern Cape" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Free State" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Northern Cape" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "North West" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Western Cape" diff --git a/django/contrib/localflavor/locale/pa/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/pa/LC_MESSAGES/django.mo deleted file mode 100644 index 69093f0f93..0000000000 Binary files a/django/contrib/localflavor/locale/pa/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/pa/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/pa/LC_MESSAGES/django.po deleted file mode 100644 index d04b2a9054..0000000000 --- a/django/contrib/localflavor/locale/pa/LC_MESSAGES/django.po +++ /dev/null @@ -1,3527 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Panjabi (Punjabi) (http://www.transifex.net/projects/p/django/" -"language/pa/)\n" -"Language: pa\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "" - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "ਇਹ ਖੇਤਰ ਲਈ ਨੰਬਰ ਹੀ ਚਾਹੀਦੇ ਹਨ।" - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "ਇਹ ਖੇਤਰ ਲਈ 7 ਜਾਂ 8 ਅੰਕ ਚਾਹੀਦੇ ਹਨ।" - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "" - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "ਗਲਤ CUIT ਹੈ।" - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "ਵੀਆਨਾ" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "" - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "" - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "" - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "ਗਲਤ CPF ਨੰਬਰ ਹੈ।" - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "" - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "" - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "" - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "" - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "" - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "" - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "ਠੀਕ ਜਨਮ ਨੰਬਰ ਦਿਉ।" - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "" - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "ਬਰਲਿਨ" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "" - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "" - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "" - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "" - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "" - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "" - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "" - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "" - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "" - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "" - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "ਇੰਗਲੈਂਡ" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "ਉੱਤਰੀ ਆਈਰਲੈਂਡ" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "ਸਕਾਟਲੈਂਡ" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "ਵਾਲਿਜ਼" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "ਠੀਕ ਫੋਨ ਨੰਬਰ ਦਿਓ" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "ਠੀਕ ਪੋਸਟ ਕੋਡ ਦਿਓ" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "ਜੈਕਰਾਤਾ" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "ਫੈਡਰਲ ਸਰਕਾਰ" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "" - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "" - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "" - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "" - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "" - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "ਟੋਕੀਓ" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "" - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "" - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "ਇਹ ਖੇਤਰ ਲਈ ੧੧ ਅੰਕ ਚਾਹੀਦੇ ਹਨ।" - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "" - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "" - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "" - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "" - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "" - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "" - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "" - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "" - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "" - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "" - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "" - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "" - -#: us/models.py:26 -msgid "Phone number" -msgstr "ਫੋਨ ਨੰਬਰ" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "" - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "" diff --git a/django/contrib/localflavor/locale/pl/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/pl/LC_MESSAGES/django.mo deleted file mode 100644 index 23d4e172f5..0000000000 Binary files a/django/contrib/localflavor/locale/pl/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/pl/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/pl/LC_MESSAGES/django.po deleted file mode 100644 index 4792b444b2..0000000000 --- a/django/contrib/localflavor/locale/pl/LC_MESSAGES/django.po +++ /dev/null @@ -1,3551 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# angularcircle , 2011. -# , 2012. -# Jannis Leidel , 2011. -# konryd , 2011. -# Roman Barczyński , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-22 12:51+0000\n" -"Last-Translator: Roman Barczyński \n" -"Language-Team: Polish (http://www.transifex.net/projects/p/django/language/" -"pl/)\n" -"Language: pl\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " -"|| n%100>=20) ? 1 : 2)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Wpisz kod pocztowy w formacie NNNN lub ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "To pole może zawierać jedynie liczby." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "To pole musi zawierać 7 lub 8 cyfr." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Podaj poprawny numer CUIT w formacie XX-XXXXXXXX-X lub XXXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "Niepoprawny CUIT" - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Karyntia" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Dolna Austria" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Górna Austria" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salzburg" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Styria" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tyrol" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlberg" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Wiedeń" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Wpisz kod pocztowy w formacie XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Wpisz poprawny numer austriackiego ubezpieczenia w formacie XXXX XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "Wprowadź 4 cyfrowy kod pocztowy." - -#: au/models.py:9 -msgid "Australian State" -msgstr "Stan w Australii" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "Australijski kod pocztowy" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "Australijski numer telefonu" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Antwerpia" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Bruksela" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Flandria Wschodnia" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Brabancja Flamandzka" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hainaut" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Liege" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburgia" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Luksemburg" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Brabancja Walońska" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Flandria Zachodnia" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Region Stołeczny Brukseli" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Region Flamandzki" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Walonia" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "Wpisz kod pocztowy w zakresie i formacie 1XXX - 9XXX." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Wpisz poprawny numer telefoniczny w formacie 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx lub 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Wpisz kod pocztowy w formacie XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Numery telefoniczne muszą być w formacie XX-XXXX-XXXX." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Wybierz poprawny brazylijski stan. Ten stan nie jest jednym z dostępnych " -"stanów." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Błędny numer CPF." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "To pole nie może zawierać więcej niż 11 cyfr lub 14 znaków." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Błędny numer CNPJ." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "To pole musi zawierać co najmniej 14 cyfr" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Wpisz kod pocztowy w formacie XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"Wpisz poprawny numer kanadyjskiego ubezpieczenia w formacie XXX-XXX-XXXX." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Argowia" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Bazylea-miasto" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Bazylea-okręg" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Berno" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Fryburg" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Genewa" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Gryzonia" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucerna" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchatel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Szafuza" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solura" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "Sankt Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Turgowia" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zurych" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Podaj poprawny numer szwajcarskiego dowodu osobistego lub paszportu w " -"formacie X1234567<0 lub 1234567890." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Wpisz poprawny chilijski RUT." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Podaj poprawny chilijski RUT w formacie XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "Podany chilijski RUT jest nieprawidłowy." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "Wprowadź kod pocztowy w formacie XXXXXX." - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "Nr dowodu składa się z 15 lub 18 cyfr." - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "Niepoprawny nr dowodu: zła suma kontrolna" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "Niepoprawny nr dowodu: zła data urodzenia" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "Niepoprawny nr dowodu: zły kod lokacji" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "Wprowadź poprawny numer telefonu." - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "Wprowadź poprawny numer telefonu komórkowego." - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Praga" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Kraj środkowoczeski" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Kraj południowoczeski" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Kraj pilzneński" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Kraj karlowarski" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Kraj ustecki" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Kraj liberecki" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Kraj hredecki" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Kraj pardubicki" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Wysoczyzna" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Kraj południowomorawski" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Kraj ołomuniecki" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Kraj zliński" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Kraj morawski-śląski" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Wpisz kod pocztowy w formacie XXXXX or XXX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "Wpisz numer urodzenia w formacie XXXXXX/XXXX or XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "Niepoprawny dodatkowy parametr płci, wartości poprawne to 'f' i 'm'" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Wpisz poprawny numer urodzenia." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Wpisz poprawny numer IC." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Badenia-Wirtembergia" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Bawaria" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlin" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburgia" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Brema" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburg" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hesja" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Meklemburgia-Pomorze Zachodnie" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Dolna Saksonia" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "Nadrenia Północna-Westfalia" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Nadrenia-Palatynat" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Kraj Saary" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Saksonia" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Saksonia-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Szlezwik-Holsztyn" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Turyngia" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Wpisz kod pocztowy w formacie XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Podaj poprawny numer niemieckiego dowodu osobistego w formacie XXXXXXXXXXX-" -"XXXXXXX-XXXXXXX-X." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Arawa" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alicante" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almeria" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Avila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Baleary" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barcelona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Caceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Kadyks" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castellon" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Kordowa" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "A Coruna" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Girona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Gipuzkoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaen" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "Leon" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lleida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madryt" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Malaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murcja" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Nawarra" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Ourense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturia" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palencia" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanka" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Cruz de Tenerife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Kantabria" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segowia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Sewilla" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Walencja" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Vizcaya" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Saragossa" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andaluzja" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragonia" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Asturia" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Baleary" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Kraj Basków" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Wyspy Kanaryjskie" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Kastylia-La Mancha" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Kastylia-Leon" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Katalonia" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Estremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galicja" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Murcja" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Nawarra" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Walencja" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Wpisz kod pocztowy w zakresie i formacie 01XXX - 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Wpisz numer telefoniczny w formacie 6XXXXXXXX, 8XXXXXXXX lub 9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Proszę wpisać poprawny numer NIF, NIE lub CIF." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Proszę wpisać poprawny numer NIF lub NIE." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Niepoprawna suma kontrolna NIF." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Niepoprawna suma kontrolna NIE." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Niepoprawna suma kontrolna CIF." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Podaj poprawny numer konta bankowego w formacie XXXX-XXXX-XX-XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Niepoprawna suma kontrolna numeru konta bankowego." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Wpis poprawny numer fińskiego ubezpieczenia socjalnego." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Numery telefoniczne muszą być w formacie 0X XX XX XX XX." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Wpisz poprawny kod pocztowy." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Kornwalia i wyspy Scilly" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cumbria" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "East Sussex" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Essex" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Wielki Londyn" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Greater Manchester" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordshire" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "North Yorkshire" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northamptonshire" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oxfordshire" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "South Yorkshire" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordshire" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne and Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "West Midlands" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "West Sussex" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "West Yorkshire" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "Hrabstwo Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "Hrabstwo Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "Hrabstwo Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "Hrabstwo Fermanagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "Hrabstwo Londonderry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "Hrabstwo Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "South Glamorgan" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "West Glamorgan" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Scottish Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Central Scotland" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries and Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Orkady" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Szetlandy" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Hebrydy Zewnętrzne" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "Anglia" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Irlandia Północna" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Szkocja" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Walia" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "Wprowadź poprawny 13-cyfrowy JMBG" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "Błąd w segmencie daty" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "Wprowadź poprawny 11-cyfrowy OIB" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Wpisz poprawny numer rejestracyjny pojazdu" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "Wprowadź poprawny kod lokacji" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "Numer nie może być zerem" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "Wprowadź poprawny 5 cyfrowy kod pocztowy" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Wpisz poprawny numer telefonu" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "Wpisz poprawny kod obszaru lub sieci komórkowej" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "Podany numer telefonu jest za długi" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "Wpisz poprawny 19-cyfrowy JMBAG zaczynający się od 601983" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "Nr wydania karty nie może być zerem" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "Grad Zagreb" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "Bjelovarsko-bilogorska županija" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "Brodsko-posavska županija" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "Dubrovačko-neretvanska županija" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "Istarska županija" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "Karlovačka županija" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "Koprivničko-križevačka županija" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "Krapinsko-zagorska županija" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "Ličko-senjska županija" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "Međimurska županija" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "Osječko-baranjska županija" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "Požeško-slavonska županija" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "Primorsko-goranska županija" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "Sisačko-moslavačka županija" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "Splitsko-dalmatinska županija" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "Šibensko-kninska županija" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "Varaždinska županija" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "Virovitičko-podravska županija" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "Vukovarsko-srijemska županija" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "Zadarska županija" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "Zagrebačka županija" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Wpisz poprawny kod pocztowy" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Wpisz poprawny numer NIK/KTP." - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Aceh" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Banten" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Bengkulu" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Yogyakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Dżakarta" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Gorontalo" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Jambi" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Jawa Barat" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Jawa Tengah" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Jawa Timur" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Kalimantan Barat" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Kalimantan Selatan" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Kalimantan Tengah" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Kalimantan Timur" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Kepulauan Bangka-Belitung" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Kepulauan Riau" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampung" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Maluku" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Maluku Utara" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Barat Tenggara Nusa" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Nusa Tenggara Timur" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papua" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Papua Zachodnia" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Riau" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Sulawesi Barat" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Sulawesi Selatan" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Sulawesi Tengah" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Sulawesi Tenggara" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Sulawesi Utara" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Sumatera Barat" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Sumatera Selatan" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Sumatera Utara" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Magelang" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Surakarta - Solo" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madiun" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kediri" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanuli" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Nanggroe Aceh Darussalam" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Kepulauan Bangka Belitung" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Konsularne" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Dyplomatyczne" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Bandung" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Sulawesi Utara Daratan" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timor" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Sulawesi Utara Kepulauan" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lombok" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Papua dan Papua Barat" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Cirebon" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbawa" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Flores" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Bogor" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalongan" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Semarang" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Pati" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Surabaya" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Madura" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malang" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Jember" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banyumas" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Rząd Federalny" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purwakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarjo" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Garut" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Antrim" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Armagh" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Carlow" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Cavan" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Clare" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Cork" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Derry" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Donegal" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Down" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Dublin" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fermanagh" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Galway" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerry" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Kildare" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Kilkenny" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Laois" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Leitrim" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerick" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Longford" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Louth" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Mayo" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Meath" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Monaghan" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Offaly" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Roscommon" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Sligo" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tipperary" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tyrone" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Waterford" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Westmeath" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Wexford" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Wicklow" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Wpisz kod pocztowy w formacie XXXXX" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Wpisz poprawny numer ID." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "Wpisz kod pocztowy w formacie XXXXXX lub XXX XXX." - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "Wpisz indyjski stan lub terytorium" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" -"Numer telefonu powinien być zapisany jednym z trzech formatów: '02X-8X', " -"'03X-7X' lub '04X-6X'." - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" -"Podaj poprawny numer islandzkiego dowodu osobistego w formacie XXXXXX-XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Numer islandzkiego dowodu osobistego jest błędny." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Wpisz poprawny kod pocztowy." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Wpisz poprawny numer ubezpieczenia socjalnego." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Wpisz poprawny numer VAT." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Wpisz kod pocztowy w formacie XXXXXXX lub XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaido" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Yamagata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukushima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Tochigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Chiba" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tokio" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Yamanashi" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Toyama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ishikawa" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Shizuoka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Shiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kyoto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hyogo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakayama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okayama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hiroszima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Yamaguchi" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokushima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Kochi" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Oita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Miyazaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagoshima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinawa" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Wpisz poprawny kuwejcki numer ID" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "Nr dowodu musi zawierać albo 4 do 7 cyfr albo dużą literę i 7 cyfr." - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "To pole powinno zawierać dokładnie 13 cyfr." - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "Pierwsze 7 cyfr UMCN musi reprezentować poprawną, przeszłą datę." - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "UMCN jest niepoprawny" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "Aerodrom" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "Aračinovo" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "Berovo" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "Bitola" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "Bogdanci" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "Bogovinje" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "Bosilovo" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "Brvenica" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "Butel" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "Valandovo" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "Vasilevo" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "Vevčani" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "Veles" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "Vinica" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "Vraneštica" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "Vrapčište" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "Gazi Baba" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "Gevgelija" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "Gostivar" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "Gradsko" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "Debar" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "Debarca" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "Delčevo" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "Demir Kapija" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "Demir Hisar" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "Dolneni" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "Drugovo" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "Gjorče Petrov" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "Želino" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "Zajas" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "Zelenikovo" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "Zrnovci" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "Ilinden" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "Jegunovce" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "Kavadarci" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "Karbinci" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "Karpoš" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "Kisela Voda" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "Kičevo" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "Konče" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "Koćani" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "Kratovo" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "Kriva Palanka" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "Krivogaštani" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "Kruševo" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "Kumanovo" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "Lipkovo" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "Lozovo" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "Mavrovo i Rostuša" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "Makedonska Kamenica" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "Makedonski Brod" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "Mogila" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "Negotino" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "Novaci" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "Novo Selo" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "Oslomej" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "Ohrid" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "Petrovec" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "Pehčevo" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "Plasnica" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "Prilep" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "Probištip" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "Radoviš" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "Rankovce" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "Resen" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "Rosoman" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "Saraj" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "Sveti Nikole" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "Sopište" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "Star Dojran" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "Staro Nagoričane" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "Struga" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "Strumica" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "Studeničani" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "Tearce" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "Tetovo" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "Centar" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "Centar-Župa" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "Čair" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "Čaška" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "Češinovo-Obleševo" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "Čučer-Sandevo" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "Štip" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "Šuto Orizari" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "Nr macedońskiego dowodu tożsamości" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "Macedońska gmina (2-literowy kod)" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "Unikatowy numer obywatela (13 cyfr)" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "Wprowadź poprawny kod pocztowy w formacie XXXXX." - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "Wpisz poprawny RFC." - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "Niepoprawna suma kontrolna RFC." - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "Wpisz porpawny CURP." - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "Niepoprawna suma kontrolna CURP." - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "Stan (trzy duże litery)" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "Kod pocztowy" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "Meksykański RFC" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "Meksykański CURP" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Kalifornia Dolna" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Kalifornia Dolna Południowa" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Meksyk (miasto)" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Meksyk (stan)" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michocan" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo Leon" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Queretaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potasi" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Jukatan" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Wpisz poprawny kod pocztowy" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Wpisz poprawny numer SoFi" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drenthe" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Fryzja" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Geldria" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groningen" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Brabancja Północna" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Holandia Północna" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrecht" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zelandia" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Holandia Południowa" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Wpis poprawny numer norweskiego ubezpieczenia socjalnego." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "To pole musi zawierać 8 cyfr." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "To pole musi zawierać 11 cyfr." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Numer PESEL składa się z 11 cyfr." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Błędna suma kontrolna numeru PESEL." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "Numer dowodu osobistego składa się z 3 liter i 6 cyfr." - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "Błędna suma kontrolna numeru dowodu osobistego." - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" -"Wprowadź numer identyfikacji podatkowej (NIP) w jednym z trzech formatów: " -"'XXX-XXX-XX-XX', 'XXX-XX-XX-XXX' lub 'XXXXXXXXXX'." - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Błędna suma kontrolna numeru NIP" - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "Numer REGON składa się z 9 lub 14 cyfr." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "Błędna suma kontrolna numeru REGON" - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Wpisz kod pocztowy w formacie XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Dolnośląskie" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kujawsko-Pomorskie" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lubelskie" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubuskie" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Łódzkie" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Małopolskie" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Mazowieckie" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opolskie" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Podkarpackie" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlaskie" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomorskie" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Śląskie" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Świętokrzyskie" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Warmińsko-Mazurskie" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Wielkopolskie" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "Zachodniopomorskie" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Wpisz kod pocztowy w formacie XXXX-XXX." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "Numery telefonów muszą mieć 9 cyfr lub zaczynać się od + albo 00." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Wpisz poprawny CIF." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Wpisz poprawny CNP." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "Podaj poprawny IBAN w formacie ROXX-XXXX-XXXX-XXXX-XXXX-XXXX" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Numery telefoniczne muszą być w formacie XXXX-XXXXXX." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Wpisz kod pocztowy w formacie XXXXXX." - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "Wprowadź kod pocztowy w formacie XXXXXX." - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "Wprowadź numer paszportu w formacie XXXX XXXXXX." - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "Wprowadź numer paszportu w formacie XX XXXXXXX." - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "Centralny Okręg Federalny" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "Południowy Okręg Federalny" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "Północno-Zachodni Okręg Federalny" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "Dalekowschodni Okręg Federalny" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "Syberyjski Okręg Federalny" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "Uralski Okręg Federalny" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "Nadwołżański Okręg Federalny" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "Północnokaukaski Okręg Federalny" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "Moskva" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "Saint-Peterburg" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "Moskovskaya oblast'" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "Adygeya, Respublika" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "Bashkortostan, Respublika" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "Buryatia, Respublika" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "Altay, Respublika" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "Dagestan, Respublika" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "Ingushskaya Respublika" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "Kabardino-Balkarskaya Respublika" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "Kalmykia, Respublika" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "Karachaevo-Cherkesskaya Respublika" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "Karelia, Respublika" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "Komi, Respublika" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "Mariy Ehl, Respublika" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "Mordovia, Respublika" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "Sakha, Respublika (Yakutiya)" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "Severnaya Osetia, Respublika (Alania)" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "Tatarstan, Respublika" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "Tyva, Respublika (Tuva)" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "Udmurtskaya Respublika" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "Khakassiya, Respublika" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "Chechenskaya Respublika" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "Chuvashskaya Respublika" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "Altayskiy Kray" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "Zabaykalskiy Kray" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "Kamchatskiy Kray" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "Krasnodarskiy Kray" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "Krasnoyarskiy Kray" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "Permskiy Kray" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "Primorskiy Kray" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "Stavropol'siyy Kray" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "Khabarovskiy Kray" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "Amurskaya oblast'" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "Arkhangel'skaya oblast'" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "Astrakhanskaya oblast'" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "Belgorodskaya oblast'" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "Bryanskaya oblast'" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "Vladimirskaya oblast'" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "Volgogradskaya oblast'" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "Vologodskaya oblast'" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "Voronezhskaya oblast'" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "Ivanovskaya oblast'" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "Irkutskaya oblast'" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "Kaliningradskaya oblast'" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "Kaluzhskaya oblast'" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "Kemerovskaya oblast'" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "Kirovskaya oblast'" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "Kostromskaya oblast'" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "Kurganskaya oblast'" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "Kurskaya oblast'" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "Leningradskaya oblast'" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "Lipeckaya oblast'" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "Magadanskaya oblast'" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "Murmanskaya oblast'" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "Nizhegorodskaja oblast'" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "Novgorodskaya oblast'" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "Novosibirskaya oblast'" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "Omskaya oblast'" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "Orenburgskaya oblast'" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "Orlovskaya oblast'" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "Penzenskaya oblast'" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "Pskovskaya oblast'" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "Rostovskaya oblast'" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "Rjazanskaya oblast'" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "Samarskaya oblast'" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "Saratovskaya oblast'" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "Sakhalinskaya oblast'" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "Sverdlovskaya oblast'" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "Smolenskaya oblast'" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "Tambovskaya oblast'" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "Tverskaya oblast'" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "Tomskaya oblast'" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "Tul'skaya oblast'" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "Tyumenskaya oblast'" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "Ul'ianovskaya oblast'" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "Chelyabinskaya oblast'" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "Yaroslavskaya oblast'" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "Evreyskaya avtonomnaja oblast'" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "Neneckiy autonomnyy okrug" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "Chukotskiy avtonomnyy okrug" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "Yamalo-Neneckiy avtonomnyy okrug" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Wpisz poprawny szwedzki numer organizacji." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Wpis poprawny szwedzki numer identyfikacji osobistej." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Numery tymczasowe nie są dozwolone." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Wpisz szwedzki kod pocztowy w formacie XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Sztokholm" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Västerbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norrbotten" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Uppsala" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Södermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Östergötland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Jönköping" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmar" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Gotland" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Blekinge" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Skåne" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halland" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Västra Götaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Värmland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Örebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Västmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Dalarna" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gävleborg" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Västernorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jämtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "Pierwsze 7 cyfr EMSO muszą reprezentować poprawną, przeszłą datę" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "EMSO jest niepoprawne." - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "Wprowadź numer telefonu w formacie SIXXXXXXXX" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "Wprowadź numer telefonu w formacie +386XXXXXXXX lub 0XXXXXXXX." - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Bańska Bystrzyca" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Bańska Szczawnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardiów" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Banovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratysława I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratysława II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratysława III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratysława IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratysława V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytca" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Czadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolny Kubin" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajska Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenne" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kieżmarek" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komarno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Koszyce I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Koszyce II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Koszyce III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Koszyce IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Koszyce - okolice" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucke Nove Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Lewocza" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptowski Mikulasz" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Łuczeniec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Namestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nove Mesto nad Vahom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nove Zamky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizanske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Pieszczany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltar" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Poważska Bystrzyca" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Preszów" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Puchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revuca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Roznava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Rużemberk" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Nowa Wieś Spiska" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stara Lubowla" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidnik" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Sala" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolczany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebisov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trenczyn" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnawa" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turcianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Twardoszyn" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velky Krtis" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zwoleń" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Zarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Żylina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Kraj bańskobystrzycki" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Kraj bratysławski" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Kraj koszycki" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Kraj nitrzański" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Kraj preszowski" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Kraj trenczyński" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Kraj trnawski" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Kraj żyliński" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Wpisz kod pocztowy w formacie XXXXX." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Numery telefoniczne muszą być w formacie 0XXX XXX XXXX." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Wpisz poprawny Turecki Numer Identyfikacyjny." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "Turecki Numer Identyfikacyjny składa się z 11 cyfr." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Wpisz kod pocztowy w formacie XXXXX. lub XXXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Numery telefoniczne muszą być w formacie XXX-XXX-XXXX." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "Wpisz poprawny numer U.S. Social Security w formacie XXX-XX-XXXX." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Podaj stan lub terytorium USA." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Stan USA (dwie duże litery)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "Kod pocztowy USA (dwie duże litery)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Numer telefonu" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" -"Wprowadź poprawny numer CI w formacie X.XXX.XXX-X, XXXXXXX-X lub XXXXXXXX." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Wpisz poprawny numer CI." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Wpisz poprawny południowoafrykański numer ID" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Wpisz poprawny południowoafrykański kod pocztowy" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Prowincja Przylądkowa Wschodnia" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Wolne Państwo" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Prowincja Przylądkowa Północna" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "Prowincja Północno-Zachodnia" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Prowincja Przylądkowa Zachodnia" diff --git a/django/contrib/localflavor/locale/pt/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/pt/LC_MESSAGES/django.mo deleted file mode 100644 index 6335cbb4a9..0000000000 Binary files a/django/contrib/localflavor/locale/pt/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/pt/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/pt/LC_MESSAGES/django.po deleted file mode 100644 index aee06612ad..0000000000 --- a/django/contrib/localflavor/locale/pt/LC_MESSAGES/django.po +++ /dev/null @@ -1,3555 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011. -# Nuno Mariz , 2011. -# Paulo Köch , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Nuno Mariz \n" -"Language-Team: Portuguese (http://www.transifex.net/projects/p/django/" -"language/pt/)\n" -"Language: pt\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Introduza um código postal no formato NNNN ou ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Este campo apenas aceita números." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Este campo apenas aceita 7 ou 8 dígitos." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Introduza o CUIT no formato XX-XXXXXXXX-X ou XXXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "CUIT inválido." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Caríntia" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Baixa Áustria" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Alta Áustria" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salzburgo" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Styria" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tyrol" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlberg" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Viena" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Introduza um código postal no formato XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Introduza um código de segurança social austríaco válido no formato XXXX " -"XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Antuérpia" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Bruxelas" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Flandres Oriental" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Brabante Flamengo" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hainaut" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Liege" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburg" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Luxemburgo" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Walloon Brabant" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Flandres Ocidental" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Região de Bruxelas Capital" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Região de Flandres" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Valónia" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" -"Introduza um código postal válido no intervalo e formato de 1XXX - 9XXX." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Digite um número de telefone válido em um dos formatos de xx xx 0 x xxx, xx " -"xx 0xx xx, xx xx xx 04xx, 0x/xxx.xx.xx, 04xx/xx.xx.xx 0xx/xx.xx.xx, 0x . xxx." -"xx.xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx 0xxxxxxxx ou 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Introduza um código postal no formato XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Os números de telefone deverão ser no formato XXX-XXX-XXXX." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Seleccione um estado brazileiro válido. Esse estado não se encontra " -"disponível." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Número de CPF inválido." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Este campo aceita no máximo 11 dígitos ou 14 carateres." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Número CNPJ inválido." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Este campo aceita no mínimo 14 dígitos" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Introduza um código postal no formato XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"Introduza um código de segurança social Canadiano válido no formato XXX-XXX-" -"XXX." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aargau" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basel-Stadt" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basel-Land" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Berne" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Fribourg" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Genebra" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubuenden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Luzerna" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchatel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "St. Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zurique" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Introduza uma identificação Suíça ou número de passaporte no formato " -"X1234567<0 ou 1234567890." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Introduza um RUT Chileno válido." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Introduza um RUT Chileno válido. O formato é XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "O RUT Chileno é inválido." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Praga" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Região Central da Boêmia" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Região Sul da Boémia" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Região de Pilsen" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Região de Carlsbad" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Região de Usti" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Region de Liberec" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Região de Hradec" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Região de Pardubice" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Região de Vysocina" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Região de Morávia do Sul" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Região de Olomouc" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Região de Zlin" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Região da Morávia-Silésia" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Introduza um código postal no formato XXXXX ou XXX XX" - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" -"Introduza um número de nascimento no formato XXXXXX/XXXX ou XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" -"Parâmetro opcional inválido do Género, os valores válidos são 'f' e 'm'" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Introduza um de número de nascimento válido." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Introduza um número de IC válido." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Wuerttemberg" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Bavaria" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlim" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburg" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Bremen" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburg" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hessen" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklemburgo-Pomerânia Ocidental" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Baixa Saxônia" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "North Rhine-Westphalia" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Rhineland-Palatinate" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Saarland" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Saxony" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Saxony-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Thuringia" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Introduza um código postal no formato XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Introduza uma identificação Alemã válida no formato XXXXXXXXXXX-XXXXXXX-" -"XXXXXXX-X" - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Arava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alacant" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almeria" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Avila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Illes Balears" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barcelona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Caceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cadiz" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castello" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Cordoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "A Coruna" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Girona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipuzkoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaen" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "Leon" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lleida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madrid" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Malaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murcia" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarre" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Ourense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturias" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palencia" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Cruz de Tenerife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Cantabria" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Seville" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valencia" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Bizkaia" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Zaragoza" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andalusia" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragon" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Principality of Asturias" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Balearic Islands" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Basque Country" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Canary Islands" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Castile-La Mancha" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Castile and Leon" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Catalonia" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Extremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galicia" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Region of Murcia" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Foral Community of Navarre" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Valencian Community" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Instruduza um código postal válido no formato 01XXX - 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Introduza um número de telefone válido num dos formatos 6XXXXXXXX, 8XXXXXXXX " -"or 9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Por favor introduza um NIF, NIE, ou CIF válido." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Por favor introduza um NIF ou NIE válido." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Checksum inválido para o NIF." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Checksum inválido para o NIE." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Checksum inválido para o CIF." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Por favor introduza um número de conta bancária no formato XXXX-XXXX-XX-" -"XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Checksum inválido para o número de conta bancária." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Introduza um número de segurança social Finlandês válido." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Os números de telefone deverão ser no formato 0X XX XX XX XX." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Inserir um código-postal válido." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Cornwall and Isles of Scilly" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cumbria" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "East Sussex" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Essex" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Greater London" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Greater Manchester" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordshire" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "North Yorkshire" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northamptonshire" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oxfordshire" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "South Yorkshire" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordshire" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne and Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "West Midlands" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "West Sussex" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "West Yorkshire" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "County Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "County Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "County Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "County Fermanagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "County Londonderry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "County Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "South Glamorgan" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "West Glamorgan" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Central Scotland" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries and Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Orkney Islands" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Shetland Islands" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Western Isles" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "England" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Northern Ireland" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Scotland" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Wales" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Introduza um número de matrícula de veículo válido" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Introduza um número de telefone válido." - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Introduza um código postal válido." - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Introduza um número NIK/KTP válido" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Aceh" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Banten" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Bengkulu" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Yogyakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Jakarta" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Gorontalo" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Jambi" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Jawa Barat" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Jawa Tengah" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Jawa Timur" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Kalimantan Barat" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Kalimantan Selatan" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Kalimantan Tengah" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Kalimantan Timur" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Kepulauan Bangka-Belitung" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Kepulauan Riau" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampung" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Maluku" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Maluku Utara" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Nusa Tenggara Barat" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Nusa Tenggara Timur" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papua" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Papua Barat" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Riau" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Sulawesi Barat" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Sulawesi Selatan" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Sulawesi Tengah" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Sulawesi Tenggara" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Sulawesi Utara" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Sumatera Barat" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Sumatera Selatan" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Sumatera Utara" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Magelang" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Surakarta - Solo" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madiun" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kediri" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanuli" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Nanggroe Aceh Darussalam" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Kepulauan Bangka Belitung" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Corps Consulate" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Corps Diplomatic" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Bandung" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Sulawesi Utara Daratan" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timor" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Sulawesi Utara Kepulauan" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lombok" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Papua dan Papua Barat" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Cirebon" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbawa" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Flores" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Bogor" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalongan" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Semarang" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Pati" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Surabaya" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Madura" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malang" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Jember" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banyumas" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Federal Government" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purwakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarjo" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Garut" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Antrim" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Armagh" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Carlow" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Cavan" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Clare" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Cork" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Derry" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Donegal" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Down" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Dublin" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fermanagh" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Galway" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerry" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Kildare" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Kilkenny" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Laois" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Leitrim" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerick" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Longford" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Louth" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Mayo" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Meath" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Monaghan" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Offaly" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Roscommon" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Sligo" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tipperary" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tyrone" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Waterford" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Westmeath" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Wexford" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Wicklow" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Introduza um código postal no formato XXXXX" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Digite um número de identificação válido." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" -"Introduza um número de identificação Islândica válida. O formato é XXXXXX-" -"XXXX" - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Número de identificação Islândica inválido." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Introduza um código postal válido." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Introduza um número de Segurança Social válido." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Introduza um de IVA válido." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Introduza um código postal no formato XXXXXXX or XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaido" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Yamagata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukushima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Tochigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Chiba" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tokyo" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Yamanashi" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Toyama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ishikawa" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Shizuoka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Shiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kyoto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hyogo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakayama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okayama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hiroshima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Yamaguchi" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokushima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Kochi" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Oita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Miyazaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagoshima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinawa" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Introduza um número Civil ID Kuwaitiano válido" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baja California" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baja California Sur" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Distrito Federal" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Estado de México" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacán" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo León" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Querétaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potosí" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Yucatán" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Introduza um código postal válido." - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Introduza um número SoFi válido." - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drenthe" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Friesland" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Gelderland" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groningen" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Noord-Brabant" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Noord-Holland" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrecht" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zeeland" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Zuid-Holland" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Introduza um número de segurança social Norueguês válido." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Este campo requere 8 dígitos." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Este campo requere 11 dígitos." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "O número de identificação nacional consiste em 11 dígitos." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Checksum errado para o número nacional de identificação." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Checksum errado para o número de imposto NIP." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" -"O Número de Registo Nacional de Negócio (REGON) consiste em 9 ou 14 dígitos." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "Checksum errado para o número de registo nacional de negócio (REGON)." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Introduza um código postal no formato XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Lower Silesia" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kuyavia-Pomerania" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublin" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubusz" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodz" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Lesser Poland" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Masovia" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opole" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Subcarpatia" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlasie" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomerania" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Silesia" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Swietokrzyskie" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Warmia-Masuria" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Greater Poland" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "West Pomerania" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Introduza um código postal no formato XXXX-XXX." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" -"Os números de telefone devem conter 9 dígitos, ou começarem por + ou 00." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Introduza um CIF válido." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Introduza um CNP válido." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "Introduza um IBAN válido no formato ROXX-XXXX-XXXX-XXXX-XXXX-XXXX" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Os números de telefone deverão ser no formato XXXX-XXXXXX." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Introduza um código postal válido no formato XXXXXX" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Introduza um número de organização Sueco válido." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Introduza um número de identificação pessoal válido." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Números de coordenação não são permitidos." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Introduza um código postal Sueco no formato XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Stockholm" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Västerbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norrbotten" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Uppsala" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Södermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Östergötland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Jönköping" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmar" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Gotland" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Blekinge" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Skåne" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halland" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Västra Götaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Värmland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Örebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Västmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Dalarna" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gävleborg" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Västernorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jämtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Banska Bystrica" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banska Stiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Banovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytca" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Cadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolny Kubin" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajska Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenne" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kezmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komarno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Kosice I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Kosice II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Kosice III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Kosice IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Kosice - okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucke Nove Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoca" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovsky Mikulas" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lucenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Namestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nove Mesto nad Vahom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nove Zamky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizanske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piestany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltar" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povazska Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Presov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Puchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revuca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Roznava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ruzomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spisska Nova Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stara Lubovna" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidnik" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Sala" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolcany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebisov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trencin" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turcianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdosin" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velky Krtis" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Zarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Zilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Banska Bystrica region" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Bratislava region" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Kosice region" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Nitra region" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Presov region" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Trencin region" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Trnava region" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Zilina region" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Introduza um código postal no formato XXXXX." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Os números de telefone deve estar no formato XXXX XXX 0xxx." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Digite um número de identificação válido Turco." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "Número de identificação Turco deve ter 11 dígitos." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Introduza o código postal no formato XXXXX or XXXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Os números de telefone deverão ser no formato XXX-XXX-XXXX." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" -"Introduza o número de Segurança Social dos E.U. no formato XXX-XX-XXXX." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Introduza um estado ou território do E.U.A.." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Estado dos E.U.A (duas letras em maiúsculas)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "Código postal dos EUA (duas letras maiúsculas)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Número de telefone" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" -"Introduza um número CI válido no formato X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Introduza um número CI válido." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Introduza um número ID da África do Sul válido" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Introduza um código postal da África do Sul válido" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Eastern Cape" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Free State" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Northern Cape" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "North West" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Western Cape" diff --git a/django/contrib/localflavor/locale/pt_BR/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/pt_BR/LC_MESSAGES/django.mo deleted file mode 100644 index 9d81bf1658..0000000000 Binary files a/django/contrib/localflavor/locale/pt_BR/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/pt_BR/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/pt_BR/LC_MESSAGES/django.po deleted file mode 100644 index 9270adf1ac..0000000000 --- a/django/contrib/localflavor/locale/pt_BR/LC_MESSAGES/django.po +++ /dev/null @@ -1,3557 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Eduardo Carvalho , 2011. -# Guilherme Gondim , 2011, 2012. -# Jannis Leidel , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-21 16:36+0000\n" -"Last-Translator: Guilherme Gondim \n" -"Language-Team: Portuguese (Brazil) \n" -"Language: pt_BR\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Informe um código postal no formato NNNN ou ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Este campo requer somente números." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Este campo requer 7 ou 8 dígitos." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Informe um CUIT válido no formato XX-XXXXXXXX-X ou XXXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "CUIT inválido." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Caríntia" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Baixa Áustria" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Alta Áustria" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salzburgo" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Estíria" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tirol" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlberg" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Viena" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Informe um código postal no formato XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Informe um número de Seguro Social Austríaco válido no formato XXXX XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "Informe um código postal de 4 dígitos." - -#: au/models.py:9 -msgid "Australian State" -msgstr "Estado Australiano" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "Código postal Australiano" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "Número de telefone Australiano" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Antuérpia" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Bruxelas" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Flandres Oriental" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Brabante Flamengo" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hainaut" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Liège" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburgo" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Luxemburgo" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Brabante Valão" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Flandres Ocidental" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Região de Bruxelas-Capital" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Região de Flandres" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Valônia" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "Informe um código postal válido no intervalo e formato 1XXX - 9XXX." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Insira um número de telefone válido em um dos formatos 0x xxx xx xx, 0xx xx " -"xx xx, 04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx." -"xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx ou 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Informe um código postal no formato XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Números de telefone devem estar no formato XX-XXXX-XXXX." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Selecione um estado brasileiro válido. O estado escolhido não é um dos " -"estados disponíveis." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Número de CPF inválido." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Este campo requer no máximo 11 dígitos ou 14 caracteres." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Número de CNPJ inválido." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Este campo requer ao menos 14 dígitos" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Informe um código postal no formato XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"Informe um número de Canadian Social Insurance válido no formato XXX-XXX-XXX." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Argóvia" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Interior" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Exterior" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basiléia-Cidade" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basiléia-Campo" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Berna" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Friburgo" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Genebra" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glaris" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Grisões" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucerna" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchâtel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwald" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwald" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Soleura" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "São Galo" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Turgóvia" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Tessino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zurique" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Informe uma indentidade Suíça ou número de passaporte válido no formato " -"X1234567<0 ou 1234567890." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Informe um RUT chileno válido." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Informe um RUT chileno válido. O formato é XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "O RUT chileno não é válido." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "Informe um código postal com o formato XXXXXX." - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "Números de cartão de identidade consistem em 15 ou 18 dígitos." - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "Número do cartão de identidade inválido: checksum errado" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "Número do cartão de identidade inválido: data de nascimento errada" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "Número do cartão de identidade inválido: código local errado" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "Informe um número de telefone válido." - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "Informe um número de celular válido." - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Praga" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Região de Boêmia Central" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Região de Boêmia do Sul" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Região de Pilsen" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Região de Carlsbad" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Região de Ústí" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Região de Liberec" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Região de Hradec" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Região de Pardubice" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Região de Vysocina" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Região de Morávia do Sul" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Região de Olomouc" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Região de Zlín" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Região de Morávia-Silésia" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Informe um código postal no formato XXXXX ou XXX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "Informe um número de nascimento no formato XXXXXX/XXXX ou XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "Parâmetro opcional Gênero inválido, os valores válidos são 'f' e 'm'" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Informe um número de nascimento válido." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Informe um número IC válido." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Wüerttemberg" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Baviera" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlim" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburgo" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Bremen" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburgo" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hessen" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklemburgo-Pomerânia Ocidental" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Baixa-Saxônia" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "Renânia do Norte-Vestfália" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Renânia-Palatinado" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Sarre" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Saxônia" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Saxônia-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Turíngia" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Informe um código postal no formato XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Informe um número de cartão de identidade Alemã no formato XXXXXXXXXXX-" -"XXXXXXX-XXXXXXX-X." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Álava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alicante" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almería" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Ávila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Ilhas Baleares" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barcelona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Cáceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cádiz" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castellón" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Cidade Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Córdoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "Corunha" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Gerunda" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipúscoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaén" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "Leão" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lérida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madrid" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Málaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Múrcia" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarra" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Ourense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Astúrias" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palência" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Cruz de Tenerife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Cantábria" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segóvia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Sevilhe" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Sória" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valência" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Biscaia" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Saragoça" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilha" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andaluzia" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragão" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Principado das Astúrias" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Ilhas Baleares" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "País Basco" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Ilhas Canárias" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Castela-La Mancha" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Cestela e Leão" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Catalunha" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Extremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galiza" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Região de Múrcia" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Comunidade Foral de Navarra" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Comunidade Valenciana" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Informe um código postal válido no intervalo e formato 01XXX - 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Informe um número de telefone válido em um destes formatos 6XXXXXXXX, " -"8XXXXXXXX ou 9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Por favor, informe um NIF, NIE OU CIF válido." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Por favor, informe um NIF ou FIE válido." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "O NIF é incorreto." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "O NIE é incorreto." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "O CIF é incorreto." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Por favor, informe um número de conta bancária válida no formato XXXX-XXXX-" -"XX-XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Número de verificação de conta bancária incorreto." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Informe um número de seguro social finlandês válido." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Números de telefone devem estar no formato 0X XX XX XX XX." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Informe um código postal válido." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Cornualha e Ilhas Scilly" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cúmbria" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "Sussex Oriental" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Essex" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Grande Londres" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Grande Manchester" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordshire" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "North Yorkshire" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northamptonshire" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Nortúmbria" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oxfordshire" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "South Yorkshire" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordshire" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne and Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "Midlands Ocidental" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "Sussex Oriental" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "West Yorkshire" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "Condado de Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "Condado de Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "Condado de Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "Condado de Fermanagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "Condado de Derry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "Condado de Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "South Glamorgan" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "West Glamorgan" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Central" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries and Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Terras Altas" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Órcades" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Ilhas Shetland" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Ilhas Ocidentais" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "Inglaterra" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Irlanda do Norte" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Escócia" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "País de Gales" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "Digite um JMBG de 13 dígitos válido" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "Erro no segmento de data" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "Digite um OIB de 11 dígitos válido" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Informe uma placa de licença de veículo válida." - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "Informe um código de localização válido" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "N'umero não pode ser zero" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "Informe um código postal de 5 dígitos válido" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Informe um número de telefone válido." - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "Insira uma área válida ou um código de rede de celular" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "O número de telefone é muito longo" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "Insira um valor JMBAG de 19 dígitos válido começando com 601983" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "Número de emissão do cartão não pode ser zero" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "Grad Zagreb" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "Bjelovarsko-bilogorska županija" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "Brodsko-posavska županija" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "Dubrovačko-neretvanska županija" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "Istarska županija" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "Karlovačka županija" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "Koprivničko-križevačka županija" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "Krapinsko-zagorska županija" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "Ličko-senjska županija" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "Međimurska županija" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "Osječko-baranjska županija" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "Požeško-slavonska županija" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "Primorsko-goranska županija" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "Sisačko-moslavačka županija" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "Splitsko-dalmatinska županija" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "Šibensko-kninska županija" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "Varaždinska županija" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "Virovitičko-podravska županija" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "Vukovarsko-srijemska županija" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "Zadarska županija" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "Zagrebačka županija" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Informe um código postal válido." - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Informe um número NIK/KTP válido." - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Achém" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Banten" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Bengkulu" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Yogyakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Jacarta" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Gorontalo" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Jambi" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Java Ocidental" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Java Central" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Java Oriental" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Kalimantan Ocicental" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Kalimantan do Sul" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Kalimantan Central" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Kalimantan Oriental" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Ilhas Bangka-Belitung" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Ilhas Riau" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampung" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Molucas" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Molucas do Norte" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Sonda Ocidental" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Sonda Oriental" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papua" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Papua Ocidental" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Riau" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Celebes Ocidental" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Celebes do Sul" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Celebes Central" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Celebes do Sudeste" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Celebes do Norte" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Sumatra Ocidental" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Sumatra do Sul" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Sumatra do Norte" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Magelang" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Surakarta - Solo" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madiun" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kediri" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanuli" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Achém" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Ilhas Bangka Belitung" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Corpo Consulado" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Corpo Diplomático" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Bandung" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Norte do Continente" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timor" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Ilhas Sulawesi do Norte" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lombok" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Papua e Papua Ocidental" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Cirebon" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbawa" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Flores" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Bogor" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalongan" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Semarang" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Pati" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Surubaia" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Madura" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malang" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Jember" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banyumas" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Governo Federal" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purwakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarjo" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Garut" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Antrim" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Armagh" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Carlow" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Cavan" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Clare" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Cork" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Derry" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Donegal" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Down" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Dublin" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fermanagh" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Galway" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerry" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Kildare" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Condado" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Laois" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Condado" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerick" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Longford" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Louth" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Mayo" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Meath" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Monaghan" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Offaly" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Roscommon" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Sligo" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tipperary" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tyrone" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Waterford" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Westmeath" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Wexford" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Condado" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Introduza um código postal no formato XXXXX" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Digite um número de ID válido." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "Insira um CEP no formato XXXXXX ou XXX XXX." - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "Informe um estado ou território Indiano." - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" -"Os números de telefone devem estar no formato 02X-8X ou 03X-7X ou 04X-6X." - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "Informe um número de identificação islandês válido." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "O número de identificação islandês não é válido." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Informe um código postal válido." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Informe um número de Segurança Social válido." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Informe um número IVA válido." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Informe um código postal no formato XXXXXXX ou XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaido" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Yamagata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukushima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Tochigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Chiba" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tóquio" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Yamanashi" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Toyama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ishikawa" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Shizuoka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Shiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Quioto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osaca" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hyogo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakayama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okayama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hiroshima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Yamaguchi" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokushima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Kochi" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Oita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Miyazaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagoshima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinawa" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Informe um ID Civil Kuwaitiano válido." - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" -"Números de cartão de identidade deve conter de 4 a 7 dígitos ou uma letra " -"maiúscula e 7 dígitos." - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "Este campo deve conter exatamente 13 dígitos." - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" -"Os 7 primeiros dígitos do UMCN devem representar uma data no passado válida." - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "O UMCN não é válido." - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "Aerodrom" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "Aračinovo" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "Berovo" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "Bitola" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "Bogdanci" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "Bogovinje" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "Bosilovo" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "Brvenica" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "Butel" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "Valandovo" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "Vasilevo" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "Vevčani" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "Veles" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "Vinica" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "Vraneštica" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "Vrapčište" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "Gazi Baba" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "Gevgelija" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "Gostivar" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "Gradsko" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" -"Os números de telefone devem estar no formato 02X-8X ou 03X-7X ou 04X-6X." - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "Debarca" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "Delčevo" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "Demir Kapija" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "Demir Hisar" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "Dolneni" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "Drugovo" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "Gjorče Petrov" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "Želino" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "Zajas" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "Zelenikovo" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "Zrnovci" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "Ilinden" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "Jegunovce" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "Kavadarci" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "Karbinci" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "Karpoš" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "Kisela Voda" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "Kičevo" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "Konče" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "Koćani" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "Kratovo" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "Kriva Palanka" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "Krivogaštani" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "Kruševo" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "Kumanovo" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "Lipkovo" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "Lozovo" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "Mavrovo i Rostuša" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "Makedonska Kamenica" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "Makedonski Brod" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "Mogila" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "Negotino" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "Novaci" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "Novo Selo" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "Oslomej" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "Ohrid" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "Petrovec" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "Pehčevo" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "Plasnica" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "Prilep" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "Probištip" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "Radoviš" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "Rankovce" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "Resen" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "Rosoman" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "Saraj" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "Sveti Nikole" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "Sopište" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "Star Dojran" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "Staro Nagoričane" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "Struga" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "Strumica" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "Studeničani" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "Tearce" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "Tetovo" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "Centar" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "Centar-Župa" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "Čair" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "Čaška" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "Češinovo-Obleševo" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "Čučer-Sandevo" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "Štip" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "Šuto Orizari" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "Número do cartão de identidade macedônio" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "Um município Macedônio (código de 2 caracteres)" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "Insira um código postal válido no formato XXXXX." - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "Insira um RFC válido." - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "Checksum inválido para RFC." - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "Insira um CURP válido." - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "Checksum inválido para CURP." - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "Estado do México (três letras maiúsculas)" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "Código postal do México" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "RFC Mexicano" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "CURP Mexicano" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baja California" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baja California Sur" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Distrito Federal" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Estado do México" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacán" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo León" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Querétaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potosí" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Yucatán" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Informe um código postal válido." - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Informe um número SoFi válido." - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drente" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevolândia" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Frísia" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Güéldria" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groninga" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Brabante do Norte" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Holanda do Norte" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrecht" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zelândia" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Holanda do Sul" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Informe um número de segurança social norueguês válido." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Este campo requer 8 dígitos." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Este campo requer 11 dígitos." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "O Número de Identificação Nacional consistem de 11 dígitos." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Número de Identificação Nacional incorreto." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "Número do ID Nacional é composto por 3 letras e 6 dígitos." - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "Checksum errado para o Número do Cartão de ID Nacional." - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" -"Insira no campo um número fiscal (NIP) no formato XXX-XXX-XX-XX, XXX-XX-XX-" -"XXX ou XXXXXXXXXX." - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "O Número de Identificação Tributária (NIP) é incorreto." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" -"O Número Nacional de Registro de Negócios (REGON) consiste em 9 ou 14 " -"dígitos." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "O Número Nacional de Registro de Negócios (REGON) é incorreto." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Informe um código postal válido no formato XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Baixa Silésia" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kuyavia-Pomerania" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublin" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubúsquia" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Łódź" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Pequena Polônia" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Mazóvia" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opole" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Subcarpácia" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlasie" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomerânia" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Silésia" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Santa Cruz" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Vármia-Masúria" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Grande Polônia" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "Pomerânia Ocidental" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Informe um código postal no formato XXXX-XXX." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" -"Números de telefone precisam conter 9 dígios, ou começarem com + ou 00." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Informe um CIF válido." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Informe um CNP válido." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "Informe um IBAN válido no formato ROXX-XXXX-XXXX-XXXX-XXXX-XXXX." - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Números de telefone devem estar no formato XXXX-XXXXXX." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Informe um código postal no formato XXXXXX." - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "Insira um código postal no formato XXXXXX." - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "Insira um número de passaporte no formato XXXX XXXXXX." - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "Insira um número de passaporte no formato XX XXXXXXX." - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "Moskva" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "Moskovskaya oblast'" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "Adygeya, Respublika" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "Bashkortostan, Respublika" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "Buryatia, Respublika" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "Altay, Respublika" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "Dagestan, Respublika" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "Ingushskaya Respublika" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "Kabardino-Balkarskaya Respublika" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "Kalmykia, Respublika" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "Karachaevo-Cherkesskaya Respublika" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "Karelia, Respublika" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "Komi, Respublika" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "Mariy Ehl, Respublika" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "Mordovia, Respublika" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "Sakha, Respublika (Yakutiya)" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "Severnaya Osetia, Respublika (Alania)" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "Tatarstan, Respublika" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "Tyva, Respublika (Tuva)" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "Udmurtskaya Respublika" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "Khakassiya, Respublika" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "Chechenskaya Respublika" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "Chuvashskaya Respublika" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "Altayskiy Kray" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "Zabaykalskiy Kray" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "Kamchatskiy Kray" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "Krasnodarskiy Kray" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "Krasnoyarskiy Kray" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "Permskiy Kray" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "Primorskiy Kray" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "Stavropol'siyy Kray" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "Khabarovskiy Kray" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "Amurskaya oblast'" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "Arkhangel'skaya oblast'" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "Astrakhanskaya oblast'" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "Belgorodskaya oblast'" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "Bryanskaya oblast'" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "Vladimirskaya oblast'" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "Volgogradskaya oblast'" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "Vologodskaya oblast'" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "Voronezhskaya oblast '" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "Ivanovskaya oblast'" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "Irkutskaya oblast'" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "Kaliningradskaya oblast'" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "Kaluzhskaya oblast'" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "Kemerovskaya oblast'" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "Kirovskaya oblast'" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "Kostromskaya oblast'" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "Kurganskaya oblast'" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "Kurskaya oblast'" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "Leningradskaya oblast'" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "Lipeckaya oblast'" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "Magadanskaya oblast'" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "Murmanskaya oblast'" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "Nizhegorodskaja oblast'" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "Novgorodskaya oblast'" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "Novosibirskaya oblast'" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "Omskaya oblast'" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "Orenburgskaya oblast'" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "Orlovskaya oblast'" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "Penzenskaya oblast'" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "Pskovskaya oblast'" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "Rostovskaya oblast'" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "Rjazanskaya oblast'" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "Samarskaya oblast'" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "Saratovskaya oblast'" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "Sakhalinskaya oblast'" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "Sverdlovskaya oblast'" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "Smolenskaya oblast'" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "Tambovskaya oblast'" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "Tverskaya oblast'" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "Tomskaya oblast'" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "Tul'skaya oblast'" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "Tyumenskaya oblast'" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "Ul'ianovskaya oblast'" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "Chelyabinskaya oblast'" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "Yaroslavskaya oblast'" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "Evreyskaya avtonomnaja oblast'" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "Neneckiy autonomnyy okrug" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "Chukotskiy avtonomnyy okrug" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "Yamalo-Neneckiy avtonomnyy okrug" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Informe um número de organização sueco válido." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Informe um número sueco de identidade pessoal válido." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Números de coordenação não são permitidos." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Informe um código postal sueco válido no formato XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Estocolmo" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Västerbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norrbotten" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Uppsala" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Södermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Östergötland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Jönköping" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmar" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Gotlândia" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Blekinge" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Skåne" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halland" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Västra Götaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Värmland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Örebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Västmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Dalarna" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gävleborg" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Västernorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jämtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" -"Os 7 primeiros dígitos do EMSO devem representar uma data no passado válida." - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "O EMSO não é válido." - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "Insira um número fiscal válido na forma SIXXXXXXXX" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "Insira o número do telefone na forma +386XXXXXXXX ou 0XXXXXXXX." - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Banská Bystrica" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banská Štiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Bánovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytča" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Čadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolný Kubín" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajská Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenné" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kežmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komárno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Košice I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Košice II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Košice III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Košice IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Košice - okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucké Nové Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoča" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovský Mikuláš" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lučenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Námestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nové Mesto nad Váhom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nové Zámky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizánske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piešťany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltár" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Považská Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Prešov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Púchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revúca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavská Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Rožňava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ružomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spišská Nová Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stará Ľubovňa" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidník" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Šaľa" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topoľčany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebišov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trenčín" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turčianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdošín" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Veľký Krtíš" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Topľou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlaté Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Žarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Žiar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Žilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Região de Banská Bystrica" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Região de Bratislava" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Região de Košice" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Região de Nitra" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Região de Prešov" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Região de Trenčín" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Região de Trnava" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Região de Žilina" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Introduza um código postal no formato XXXXX." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Números de telefone devem estar no formato 0XXX XXX XXXX." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Digite um número de identificação turco válido." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "Número de identificação turco deve ter 11 dígitos." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Informe um código postal no formato XXXXX ou XXXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Números de telefone devem estar no formato XXX-XXX-XXXX." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" -"Informe um número de Seguro Social dos EUA válido no formato XXX-XX-XXXX." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Insira um estado ou território dos E.U.A." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Estado dos E.U.A. (duas letras maiúsculas)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "código postal dos EUA(duas letras maiúsculas)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Número de telefone" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" -"Informe um número CI válido no formato X.XXX.XXX-X,XXXXXXX-X ou XXXXXXXX." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Informe um número CI válido." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Informe um ID sul-africado válido." - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Informe um código postal sul-africado válido." - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Cabo Oriental" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Estado Livre" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Cabo Setentrional" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "Noroeste" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Cabo Ocidental" diff --git a/django/contrib/localflavor/locale/ro/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/ro/LC_MESSAGES/django.mo deleted file mode 100644 index 9bf158f508..0000000000 Binary files a/django/contrib/localflavor/locale/ro/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/ro/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/ro/LC_MESSAGES/django.po deleted file mode 100644 index 66ce07c80a..0000000000 --- a/django/contrib/localflavor/locale/ro/LC_MESSAGES/django.po +++ /dev/null @@ -1,3551 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Denis Darii , 2011. -# Jannis Leidel , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Denis Darii \n" -"Language-Team: Romanian (http://www.transifex.net/projects/p/django/language/" -"ro/)\n" -"Language: ro\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" -"2:1))\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Introduceți un cod poștal valid de forma NNNN sau ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Acest câmp acceptă doar numere." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Acest câmp are nevoie de 7 sau 8 cifre." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Introduceți un CUIT valid de forma XX-XXXXXXXX-X sau XXXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "CUIT invalid." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Carintia" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Austria Inferioară" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Austria Superioară" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salzburg" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Styria" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tirol" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlberg" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Viena" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Introduceți un cod poștal de forma XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Introduceţi un Număr de Securitate Socială Austriac valabil în formatul XXXX " -"XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Anvers" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Bruxelles" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Flanderul de est" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Flemish Brabant" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hainaut" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Vasal" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburg" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Luxemburg" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Walloon Brabant" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Flanders de Vest" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Regiunea-Capitală din Bruxel" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Valonia" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Introduceți un număr de telefon valabil în unul din următoarele formate: 0x " -"xxx xx xx, 0xx xx xx xx, 04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx." -"xx.xx, 0x.xxx.xx.xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Adăugați un cod poștal de forma XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Numerele de telefon trebuie să fie în format XXX-XXX-XXXX." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Selectați un stat brazilian valid. Acest stat nu se află printre statele " -"disponibile." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Număr CPF invalid." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Acest câmp are nevoie de cel mult 11 cifre sau 14 caractere." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Număr CNPJ invalid." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Acest câmp are nevoie de cel puțin 14 cifre." - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Introduceți un cod poștal de forma XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"Introduceți un număr canadian de asigurare socială valid de forma XXX-XXX-" -"XXX." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aargau" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basel-Stadt" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basel-Land" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Berna" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Fribourg" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Geneva" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubuenden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucerna" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchatel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "St. Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "JoiTurgovia" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zurich" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Introduceți un număr elvetian de identitate sau pașaport, valid, de forma " -"X1234567<0 sau 1234567890." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Introduceți RUT chilian valid." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Introduceți un RUT chilian valid. Formatul este XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "RUT-ul chilean nu este valid." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Praga" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Regiunea Liberec" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Regiunea Hradec" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Regiunea Pardubice" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Regiunea Vysočina" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Regiunea Moravia de Sud" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Regiunea Olomouc" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Introduceți un cod poștal de forma XXXXX or XXX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "Introduceți data de naștere în formatul XXXXXX/XXXX sau XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Introduceți data de nastere valabilă" - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "" - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Wuerttemberg" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Bavaria" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlin" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburg" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Bremen" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburg" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hessa" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklenburg-Pomerania Inferioara" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Saxonia Inferioara" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "Renania de Nord-Westfalia" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Renanina-Palatinat" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Saarland" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Saxonia" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Saxonia-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Turingia" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Introduceți un cod poștal de forma XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Introduceți un număr german de identitate valid, de forma XXXXXXXXXXX-" -"XXXXXXX-XXXXXXX-X." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Arava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alacant" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almeria" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Avila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Insulele Baleare" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barcelona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Caceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cadiz" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castello" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Cordoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "A Coruna" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Girona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipuzkoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaen" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "Leon" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lleida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madrid" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Malaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murcia" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarra" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Ourense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturias" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palencia" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Cruz de Tenerife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Cantabria" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Sevilia" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valencia" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Bizkaia" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Zaragoza" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andalusia" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragon" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Principatul Asturiei" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Insulele Baleare" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Tara Bascilor" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Insulele Canare" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Castile-La Mancha" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Castilia și Leon" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Catalonia" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Extremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galicia" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Regiunea Murcia" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Comunitatea Forală Navara" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Comunitatea Valencia" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" -"Introduceți un cod poștal valid în intervalul și de forma 01XXX - 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Introduceți un număr de telefon valid într-unul dintre formatele 6XXXXXXXX, " -"8XXXXXXXX sau 9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Introduceţi vă rog un NIF, NIE sau CIF valid." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Introduceți vă rog un NIF sau NIE valid." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Sumă de control invalidă pentru NIF." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Sumă de control invalidă pentru NIE." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Sumă de control invalidă pentru CIF." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Introduceți un număr de cont bancar valid de forma XXXX-XXXX-XX-XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Sumă de control invalidă pentru numărul de cont bancar." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Introduceți un număr finlandez de securitate socială valid." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Numerele de telefon trebuie să fie în formatul 0X XX XX XX XX." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Introduceți un cod poștal valid." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Cornwall și Insulele Scilly" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cumbria" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "East Sussex" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Essex" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Londra Mare" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Greater Manchester" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordshire" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "North Yorkshire" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northamptonshire" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oxfordshire" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "South Yorkshire" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordshire" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne și Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "West Midlands" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "West Sussex" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "West Yorkshire" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "Comitatul Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "Comitatul Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "Comitatul Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "Comitatul Fermanagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "Comitatul Londonderry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "Comitatul Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "South Glamorgan" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "West Glamorgan" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Central Scotland" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries și Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Orkney Islands" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Shetland Islands" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Western Isles" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "Anglia" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Irlanda de Nord" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Scotia" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Țara Galilor" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Introduceţi un număr de telefon valid" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Introduceţi un cod poştal valabil" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampung" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papua" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Papua Barat" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Introduceți codul poștal în următorul format XXXXX" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" -"Introduceți un număr islandez de autentificare valid. Formatul este XXXXXX-" -"XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Numărul islandez de identificare nu este valid." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Introduceți un cod poștal valid." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Introduceți un număr de securitate socială valid." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Introduceți un număr TVA valid." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Introduceți un cod poștal de forma XXXXXXX sau XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaido" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Yamagata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukushima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Tochigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Chiba" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tokyo" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Yamanashi" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Toyama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ishikawa" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Shizuoka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Shiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kyoto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hyogo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakayama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okayama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hiroshima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Yamaguchi" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokushima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Kochi" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Oita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Miyazaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagoshima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinawa" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baja California" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baja California Sur" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Districtul Federal" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Introduceți un cod poștal valid" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Introduceți un număr SoFi valid" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Frizia" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Gelderland" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groningen" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Brabantul de Nord" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Olanda de Nord" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrecht" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zeelanda" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Olanda de Sud" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Introduceți un număr norvegian de securitate socială valid." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Acest câmp are nevoie de 8 cifre." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Acest câmp are nevoie de 11 cifre." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Numărul Național de Identificare conține 11 cifre." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Sumă de control greșită pentru Numărul Național de Identificare." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Sumă de control greșită pentru Numărul de Taxa (NIP)." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" -"Suma de control gresita pentru Numărul National din Registrul pentru Afaceri " -"(REGON)." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Introduceți un cod poștal de forma XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Silezia Inferioară" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kuyavia-Pomerania" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublin" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubusz" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodz" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Polonia Mică" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Masovia" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opole" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Podcarpatia" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlasie" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomerania" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Silezia" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Swietokrzyskie" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Warmia-Masuria" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Polonia Mare" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "Pomerania Occidentală" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "" - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "" - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "" - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "" - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Introduceți un cod poștal valabil în formatul XXXXXX." - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "" - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "" - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Banska Bystrica" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banska Stiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Banovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytca" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Cadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolny Kubin" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajska Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenne" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kezmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komarno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Kosice I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Kosice II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Kosice III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Kosice IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Kosice - okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucke Nove Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoca" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovsky Mikulas" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lucenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Namestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nove Mesto nad Vahom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nove Zamky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizanske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piestany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltar" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povazska Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Presov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Puchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revuca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Roznava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ruzomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spisska Nova Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stara Lubovna" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidnik" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Sala" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolcany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebisov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trencin" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turcianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdosin" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velky Krtis" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Zarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Zilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Banska Bystrica region" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Regiunea Bratislava" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Regiunea Kosice" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Regiunea Nitra" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Regiunea Presov" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Regiunea Trencin" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Regiunea Trnava" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Regiunea Zilina" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Introduceți codul poștal în formatul XXXXX." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Numărul de telefon trebuie să fie în formatul 0XXX XXX XXXX." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Introduceți un cod poștal de forma XXXXX or XXXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Numărul de telefon trebuie să fie în formatul XXX-XXX-XXXX." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" -"Introduceți un număr SUA de Securitate Sociala de forma XXX-XX-XXXX format." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Stat SUA (doua litere mari)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Număr de telefon" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "" - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Introduceți un ID sud african valid" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Introduceți un cod poștal sud african valid" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Eastern Cape" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Free State" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Northern Cape" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "North West" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Western Cape" diff --git a/django/contrib/localflavor/locale/ru/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/ru/LC_MESSAGES/django.mo deleted file mode 100644 index d1d3fc1a74..0000000000 Binary files a/django/contrib/localflavor/locale/ru/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/ru/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/ru/LC_MESSAGES/django.po deleted file mode 100644 index f482cc0841..0000000000 --- a/django/contrib/localflavor/locale/ru/LC_MESSAGES/django.po +++ /dev/null @@ -1,3562 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Denis Darii , 2011. -# Jannis Leidel , 2011. -# Michael Bashkirov , 2011. -# Алексей Борискин , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Алексей Борискин \n" -"Language-Team: Russian (http://www.transifex.net/projects/p/django/language/" -"ru/)\n" -"Language: ru\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Введите почтовый индекс в формате NNNN или ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Это поле принимает только числа." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Это поле требует 7 или 8 цифр." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Введите правильный CUIT в формате XX-XXXXXXXX-X или XXXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "Неверный CUIT." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Бургенланд" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Каринтия" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Нижняя Австрия" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Верхняя Австрия" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Зальцбург" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Штирия" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Тироль" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Ворарлберг" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Вена" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Введите правильный индекс в формате XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Введите правильный номер социального страхования Австрии в формате XXXX " -"XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "Введите 4 цифры почтового индекса" - -#: au/models.py:9 -msgid "Australian State" -msgstr "Австралийский штат" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "Австралийский почтовый индекс" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "Австралийский телефонный номер" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Антверпен" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Брюссель" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Восточная Фландрия" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Фламандский Брабант" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Хаинаут" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Льеж" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Лимбург" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Люксембург" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Намюр" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Валлонский Брабант" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Западная Фландрия" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Брюссельская Капитальная Область" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Фламандский регион" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Валлония" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" -"Введите действительный почтовый индекс в диапазон и формат 1xxx - 9xxx." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Введите действительный номер телефона в одном из форматов 0x хх хх ххх, 0xx " -"хх хх хх, 04xx хх хх хх, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x . xxx." -"xx.xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx или 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Введите почтовый индекс в формате XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Телефонные номера должны быть в формате XX-XXXX-XXXX." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Выберите корректный бразильский штат. Указанного варианта нет среди " -"допустимых значений." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Неправильный CPF номер." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Это поле требует 11 цифр или 14 символов." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Неправильный CNPJ номер." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Это поле требует как минимум 14 цифр" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Введите почтовый индекс в формате XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"Введите правильный номер социального страхования Канады в формате XXX-XXX-" -"XXX." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Ааргау" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Аппенцелль-Иннерроден" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Аппенцелль-Ауссерроден" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Базель-Штадт" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Базель-Ланд" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Берн" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Фрибур" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Женева" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Гларус" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Граубюнден" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Джура" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Люцерн" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Нёвшатель" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Нидвальден" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Обвальден" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Шаффхаузен" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Швиц" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Золотурн" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "Санкт-Галлен" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Тургау" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Тичино" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Ури" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Вале" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Во" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Цуг" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Цюрих" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Введите правильный номер швейцарского паспорта личности или номер карты в " -"формате X1234567<0 или 1234567890." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Введите правильный RUT Чили." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Введите правильный RUT Чили. Формат: XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "Чилийский RUT недействителен." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "Введите почтовый индекс в формате XXXXXX." - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "Номер идентификационной карты состоит из 15 или 18 цифр." - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "Неверный номер идентификационной карты: контрольная сумма неверна" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "Неверный номер идентификационной карты: неверная дата рождения" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "Неверный номер идентификационной карты: неверный код региона" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "Введите корректный телефонный номер." - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "Введите корректный номер мобильного телефона." - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Прага" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Среднечешский край" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Южночешский край" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Пльзенский край" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Карловарский край" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Устецкий край" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Либерецкий край" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Краловеградецкий край" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Пардубицкий край" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Край Высочина" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Южноморавский край" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Оломоуцкий край" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Злинский край" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Моравскосилезский край" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Введите почтовый индекс в формате XXXXX или XXX-XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" -"Введите номер свидетельства о рождении в формате XXXXXX/XXXX или XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "Неверный аргумент для пола, допустимые значения: 'f' и 'm'" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Введите правильный номер свидетельства о рождении." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Введите правильный IC номер." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Баден-Вюртемберг" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Бавария" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Берлин" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Бранденбург" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Бремен" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Гамбург" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Гессен" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Мекленбург-Западная Померания" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Нижняя Саксония" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "Северный Рейн-Вестфалия" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Рейнланд-Пфальц" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Саар" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Саксония" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Саксония-Анхальт" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Шлезвиг-Гольштейн" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Тюрингия" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Введите почтовый индекс в формате XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Введите правильный номер паспорта личности в формате XXXXXXXXXXX-XXXXXXX-" -"XXXXXXX-X." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Арава" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Альбасете" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Аликанте" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Альмерия" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Авила" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Бадахос" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Балеарские острова" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Барселона" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Бургос" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Касерес" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Кадис" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Кастельо" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Сьюдад-Реаль" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Кордоба" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "Ла-Корунья" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Куэнка" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Херона" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Гранада" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Гвадалахара" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Гипускоа" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Уэльва" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Уэска" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Хаэн" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "Леон" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Лерида" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "Риоха" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Луго" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Мадрид" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Малага" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Мурсия" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Наварра" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Оренсе" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Астурия" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Паленсия" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Лас-Пальмас" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Понтеведра" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Саламанка" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Санта-Крус-де-Тенерифе" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Кантабрия" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Сеговия" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Севилья" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Сория" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Таррагона" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Теруэль" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Толедо" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Валенсия" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Вальядолид" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Бискайя" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Замора" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Сарагоса" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Сеута" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Мелилья" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Андалусия" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Арагон" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Астурийское княжество" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Балеарские острова" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Страна Басков" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Канарские острова" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Кастилия-Ла-Манча" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Кастилия и Леон" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Каталония" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Эстремадура" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Галисия" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Мурсия" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Наварра" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Валенсия" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Введите почтовый индекс в диапазоне и формате 01XXX - 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Введите правильный телефонный номер в одном из форматов 6XXXXXXXX, 8XXXXXXXX " -"или 9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Пожалуйста, введите правильный NIF, NIE или CIF." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Пожалуйста, введите правильный NIF или NIE." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Неверная проверочная сумма для NIF." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Неверная проверочная сумма для NIE." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Неверная проверочная сумма для CIF." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Пожалуйста, введите правильный банковский номер в формате XXXX-XXXX-XX-" -"XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Неверная проверочная сумма для банковского номера." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Введите правильный номер социального страхования Финляндии." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Телефонные номера должны быть в формате 0X XX XX XX XX." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Введите правильный почтовый индекс." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Бедфордшир" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Бакингемшир" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Чешир" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Корнуолл и острова Силли" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Камбрия" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Дербишир" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Девон" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Дорсет" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Дарем" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "Восточный Сассекс" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Эссекс" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Глостершир" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Большой Лондон" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Большой Манчестер" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Хэмпшир" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Хартфордшир" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Кент" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Ланкашир" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Лестершир" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Линкольншир" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Мерсисайд" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Норфолк" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "Северный Йоркшир" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Нортгемптоншир" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Нортумберленд" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Ноттингемшир" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Оксфордшир" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Шропшир" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Сомерсет" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "Южный Йоркшир" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Стаффордшир" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Саффолк" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Сюррей" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Тайн и Уир" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Уорикшир" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "Уэст-Мидлендс" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "Западный Сассекс" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "Западный Йоркшир" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Уилтшир" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Вустершир" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "Графство Антрим" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "Графство Арма" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "Графство Даун" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "Графство Фермана" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "Графство Лондондерри" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "Графство Тирон" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Клуид" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Дивед" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Гуент" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Гуинет" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Мид-Гламорган" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Поуис" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "Южный Гламорган" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "Западный Гламорган" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Бордерс" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Центральная Шотландия" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Дамфрис и Галлоуэй" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Файф" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Грампиан" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Хайленд" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Лотиан" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Оркнейские острова" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Шетлендские острова" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Стратклайд" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Тэйсайд" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Западные острова" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "Англия" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Северная Ирландия" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Шотландия" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Уэльс" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "Введите корретный 13-значный JMBG" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "Ошибка в сегменте даты" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "Введите корретный 11-значный OIB" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Введите правильный регистрационный номер автомобиля" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "Введите корретный код региона" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "Числовая часть не может быть нулём" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "Введите корректный 5-значный почтовый индекс" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Введите правильный телефонный номер" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "Введите корректный код региона или код мобильной сети" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "Слишком длинный телефонный номер" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "Введите корректный 19-значный JMBAG, начинающийся с 601983" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "Код выпуска карты не может быть нулём" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "Город Загреб" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "Беловарско-Билогорская жупания" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "Бродско-Посавская жупания" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "Дубровницко-Неретванская жупания" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "Истрийская жупания" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "Карловацкая жупания" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "Копривницко-Крижевацкая жупания" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "Крапинско-Загорская жупания" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "Лицко-Сеньская жупания" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "Меджумурская жупания" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "Осиецко-Бараньская жупания" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "Пожежско-Славонская жупания" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "Приморско-Горанская жупания" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "Сисацко-Мославинская жупания" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "Сплитско-Далматинская жупания" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "Шибенско-Книнская жупания" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "Вараждинская жупания" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "Вировитицко-Подравская жупания" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "Вуковарско-Сремская жупания" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "Задарская жупания" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "Загребская жупания" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Введите правильный почтовый индекс" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Введите правильный NIK/KTP номер" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Ачех" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Бали" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Бантен" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Бенгкулу" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Джокьякарта" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Джакарта" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Горонтало" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Джамби" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Западная Ява" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Центральная Ява" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Восточная Ява" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Западный Калимантан" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Южный Калимантан" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Центральный Калимантан" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Восточный Калимантан" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Острова Бангка-Белитунг" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Острова Риау" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Лампунг" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Молукку" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Северное Молукку" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Западные Малые Зондские острова" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Восточные Малые Зондские острова" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Папуа" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Западное Папуа" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Риау" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Западное Сулавеси" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Южное Сулавеси" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Центральное Сулавеси" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Юго-Восточное Сулавеси" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Северное Сулавеси" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Западная Суматра" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Южная Суматра" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Северная Суматра" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Магеланг" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Суракарта - Соло" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Мадиун" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Кедири" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Тапанули" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Ачех" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Бангка-Белитунг" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Консульский корпус" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Дипломатический корпус" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Бандунг" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Северное Сулавеси" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Тимор" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Северное Сулавеси" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Ломбок" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Папуа и Западное Папуа" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Чиребон" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Сумбава" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Флорес" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Сумба" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Богор" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Пекалонган" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Семаранг" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Пати" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Сурабая" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Мадура" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Маланг" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Джембер" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Банджумас" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Федеральное правительство" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Боджонегоро" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Пурвакарта" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Сидоарджо" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Гарут" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Антрим" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Арма" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Карлоу" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Каван" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Клэр" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Корк" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Дерри" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Донегол" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Даун" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Дублин" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Фермана" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Голуэй" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Керри" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Килдэр" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Килкенни" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Лиишь" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Литрим" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Лимерик" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Лонгфорд" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Лаут" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Мейо" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Мит" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Монахан" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Оффали" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Роскоммон" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Слайго" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Типперэри" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Тирон" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Уотерфорд" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Уэстмит" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Уэксфорд" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Уиклоу" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Введите почтовый индекс в формате XXXXX" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Введите действительный ID номер." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "Введите корректный почтовый индекс в формате XXXXXX или XXX XXX." - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "Введите индийский штат или территорию." - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" -"Телефонные номера должны быть в формате 02X-8X, или 03X-7X, или 04X-6X." - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" -"Введите правильный исландский идентификационный номер. Формат: XXXXXX-XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Неправильный исландский идентификационный номер." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Введите правильный почтовый индекс." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Введите правильный номер социального страхования." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Введите правильный VAT номер." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Введите почтовый индекс в формате XXXXXXX или XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Хоккайдо" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Аомори" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Иватэ" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Мияги" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Акита" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Ямагата" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Фукушима" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ибакари" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Тотиги" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Гунма" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Сайтама" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Тиба" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Токио" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Канагава" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Яманаси" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Нагано" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Ниигата" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Тояма" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Исикава" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Фукуи" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Гифу" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Сидзуока" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Айчи" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Миэ" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Сига" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Киото" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Осака" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Хёго" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Нара" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Вакаяма" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Тоттори" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Симанэ" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Окаяма" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Хиросима" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Ямагути" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Токусима" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Кагава" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Эхимэ" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Коти" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Фукуока" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Сага" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Нагасаки" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Кумамото" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Оита" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Миядзаки" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Кагосима" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Окинава" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Введите правильный номер кувейтского удостоверения личности" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" -"Номер идентификационной карты должен содержать или от 4 до 7 цифр, или " -"заглавную букву и 7 цифр." - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "Это поле должно содержать ровно 13 цифр." - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "Первые 7 цифр UMCN должны быть корректной датой в прошлом." - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "Некорректный UMCN." - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "Аэродром" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "Арачиново" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "Берово" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "Битола" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "Богданци" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "Боговинье" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "Босилово" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "Брвеница" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "Бутел" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "Валандово" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "Василево" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "Вевчани" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "Велес" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "Виница" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "Вранештица" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "Врапчиште" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "Гази-Баба" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "Гевгелия" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "Гостивар" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "Градско" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "Дебар" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "Дебарца" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "Делчево" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "Демир-Капия" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "Демир-Хисар" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "Долнени" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "Другово" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "Гёрче-Петров" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "Желино" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "Заяс" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "Зелениково" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "Зрновци" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "Илинден" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "Егуновце" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "Кавадарци" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "Карбинци" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "Карпош" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "Кисела-Вода" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "Кичево" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "Конче" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "Кочани" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "Кратово" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "Крива-Паланка" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "Кривогаштани" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "Крушево" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "Куманово" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "Липково" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "Лозово" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "Маврово и Ростуша" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "Македонска-Каменица" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "Македонски-Брод" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "Могила" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "Неготино" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "Новаци" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "Ново-Село" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "Осломей" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "Охрид" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "Петровец" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "Пехчево" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "Пласница" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "Прилеп" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "Пробиштип" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "Радовиш" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "Ранковце" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "Ресен" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "Росоман" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "Сарай" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "Свети-Николе" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "Сопиште" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "Стар-Дойран" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "Старо-Нагоричане" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "Струга" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "Струмица" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "Студеничани" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "Теарце" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "Тетово" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "Центр" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "Центар-Жупа" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "Чаир" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "Чашка" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "Чешиново-Облешево" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "Чучер-Сандево" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "Штип" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "Шуто-Оризари" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "Номер идентификационной карты Македонии" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "Македонский муниципалитет (двухбуквенный код)" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "Индивидуальный номер гражданина (13 цифр)" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "Введите корректный почтовый индекс в формате XXXXX." - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "Введите корректный RFC." - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "Неверная контрольная сумма RFC." - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "Введите корректный CURP." - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "Неверная контрольная сумма CURP." - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "Мексиканский штат (три заглавных буквы)" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "Мексиканский почтовый индекс" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "Мексиканский RFC" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "Мексиканский CURP" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Агуаскальентес" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Нижняя Калифорния" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Южная Нижняя Калифорни" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Кампече" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Чиуауа" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Чьяпас" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Коауила" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Колима" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Федеральный округ" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Дуранго" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Герреро" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Гуанахуато" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Идальго" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Халиско" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Мехико" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Мичоакан" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Морелос" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Наярит" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Нуэво-Леон" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Оахака" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Пуэбла" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Керетаро" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Кинтана-Роо" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Синалоа" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "Сан-Луис-Потоси" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Сонора" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Табаско" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Тамаулипас" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Тласкала" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Веракрус" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Юкатан" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Сакатекас" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Введите правильный почтовый индекс" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Введите правильный SoFi номер" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Дренте" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Флеволанд" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Фрисланд" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Гелдерланд" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Гронинген" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Северный Брабант" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Северная Голландия" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Оверэйсел" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Утрехт" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Зеландия" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Южная Голландия" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Введите правильный номер социального страхования Норвегии." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Это поле требует 8 цифр." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Это поле требует 11 цифр." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Национальный идентификационный номер состоит из 11 цифр." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Неверная проверочная сумма для NIF." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "Номер национальной идентификационной карты содержит 3 буквы и 6 цифр." - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" -"Некорректная контрольная сумма номера национальной идентификационной карты." - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" -"Введите идентификатор налогоплательщика (NIP) в формате XXX-XXX-XX-XX, XXX-" -"XX-XX-XXX или XXXXXXXXXX." - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Неверная проверочная сумма для NIP." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" -"Национальный деловой регистрационный номер (REGON) состоит из 9 или 14 цифр." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" -"Неверная проверочная сумма для национального делового регистрационного " -"номера (REGON)." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Введите почтовый индекс в формате XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Нижнесилезское" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Куявско-Поморское" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Люблинское" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Любушское" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Лодзинское" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Малопольское" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Мазовецкое" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Опольское" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Подкарпатское" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Подляское" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Поморское" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Силезское" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Свентокшиское" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Варминско-Мазурское" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Великопольское" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "Западнопоморское" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Введите почтовый индекс в формате XXXX-XXX." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "Телефонные номера должны состоять из 9 цифр или начинаться с + или 00." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Введите правильный CIF." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Введите правильный CNP." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "Введите правильный IBAN в формате ROXX-XXXX-XXXX-XXXX-XXXX-XXXX." - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Телефонные номера должны быть в формате XXXX-XXXXXX." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Введите почтовый индекс в формате XXXXXX." - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "Введите почтовый индекс в формате XXXXXX." - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "Введите номер и серию паспорта в формате XXXX XXXXXX." - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "Введите номер и серию паспорта в формате XX XXXXXXX." - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "Центральный федеральный округ" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "Южный федеральный округ" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "Северо-Западный федеральный округ" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "Дальневосточный федеральный округ" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "Сибирский федеральный округ" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "Уральский федеральный округ" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "Приволжский федеральный округ" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "Северо-Кавказский федеральный округ" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "Москва" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "Санкт-Петербург" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "Московская область" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "Адыгея, Республика" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "Башкортостан, Республика" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "Бурятия, Республика" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "Алтай, Республика" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "Дагестан, Республика" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "Ингушская Республика" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "Кабардино-Балкарская Республика" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "Республика Калмыкия" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "Карачаево-Черкесская Республика" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "Карелия, Республика" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "Коми, Республика" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "Марий Эл, Республика" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "Мордовия, Республика" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "Саха, Республика (Якутия)" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "Северная Осетия, Республика (Алания)" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "Татарстан, Республика" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "Тыва, Республика (Тува)" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "Удмуртская Республика" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "Хакасия, Республика" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "Чеченская Республика" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "Чувашская Республика" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "Алтайский Край" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "Забайкальский Край" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "Камчатский Край" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "Краснодарский Край" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "Красноярский Край" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "Пермский Край" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "Приморский Край" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "Ставропольский Край" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "Хабаровский Край" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "Амурская область" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "Архангельская область" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "Астраханская область" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "Белгородская область" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "Брянская область" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "Владимирская область" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "Волгоградская область" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "Вологодская область" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "Воронежская область" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "Ивановская область" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "Иркутская область" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "Калининградская область" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "Калужская область" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "Кемеровская область" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "Кировская область" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "Костромская область" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "Курганская область" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "Курская область" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "Ленинградская область" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "Липецкая область" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "Магаданская область" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "Мурманская область" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "Нижегородская область" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "Новгородская область" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "Новосибирская область" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "Омская область" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "Оренбургская область" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "Орловская область" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "Пензенская область" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "Псковская область" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "Ростовская область" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "Рязанская область" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "Самарская область" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "Саратовская область" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "Сахалинская область" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "Свердловская область" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "Смоленская область" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "Тамбовская область" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "Тверская область" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "Томская область" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "Тульская область" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "Тюменская область" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "Ульяновская область" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "Челябинская область" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "Ярославская область" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "Еврейская автономная область" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "Ненецкий автономный округ" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "Ханты-Мансийский автономный округ — Югра " - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "Чукотский автономный округ" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "Ямало-Ненецкий автономный округ" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Введите правильный шведский идентификационный номер организации." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Введите правильный шведский персональный идентификационный номер." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Координационные номера запрещены" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Введите шведский почтовый индекс в формате XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Стокгольм" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Вестерботтен" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Норрботтен" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Уппсала" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Сёдерманланд" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Эстергётланд" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Йёнчёпинг" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Крунуберг" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Кальмар" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Готланд" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Блекинге" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Сконе" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Халланд" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Вестра-Гёталанд" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Вермланд" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Эребру" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Вестманланд" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Даларна" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Евлеборг" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Вестерноррланд" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Емтланд" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "Первые 7 цифр EMSO должны быть корректной датой в прошлом." - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "EMSO некорректен." - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "Введите корректный идентификатор налогоплательщика в форме SIXXXXXXXX" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "Введите телефонный номер в форме +386XXXXXXXX или 0XXXXXXXX." - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Банска Бистрица" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Банска Штьявница" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Бардейов" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Бановце-над-Бебравоу" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Брезно" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Братислава I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Братислава II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Братислава III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Братислава IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Братислава V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Битча" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Чадца" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Детва" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Долны Кубин" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Дунайска Стреда" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Галанта" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Гелница" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Глоговец" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Гуменне" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Илава" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Кежмарок" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Комарно" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Кошице I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Кошице II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Кошице III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Кошице IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Кошице-периферия" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Крупина" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Кисуцке Нове Место" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Левице" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Левоча" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Липтовски Микулаш" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Лученец" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Малацки" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Мартин" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Медзилаборце" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Михаловце" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Миява" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Наместово" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Нитра" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Новое Место-над-Вагом" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Нове Замки" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Партизанске" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Пезинок" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Пьештяны" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Полтар" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Попрад" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Поважска Бистрица" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Прешов" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Прьевидза" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Пухов" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Ревуца" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Римавска Собота" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Рожнява" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ружомберок" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Сабинов" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Сенец" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Сеница" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Скалица" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Снина" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Собранце" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Спишска Нова Вес" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Стара Любовня" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Стропков" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Свидник" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Сала" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Топольчаны" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Требишов" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Тренчин" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Трнава" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Турчьянске Теплице" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Тврдошин" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Вельки Кртиш" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Вранов-над-Топлёу" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Злате Моравце" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Зволен" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Жарновица" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Жьяр-над-Гроном" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Жилина" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Банскобистрицкий край" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Братиславский край" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Кошицкий край" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Нитранский край" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Прешовский край" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Тренчинский край" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Трнавский край" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Жилинский край" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Введите почтовый индекс в формате XXXXX." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Номера телефонов должны быть в формате 0xxx XXX XXXX." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Введите действительный турецкий Идентификационный номер." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "У турецкого Идентификационного номера должно быть 11 цифр." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Введите почтовый индекс в формате XXXXX или XXXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Телефонные номера должны быть в формате XXX-XXX-XXXX." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" -"Введите правильный номер социального страхования США в формате XXX-XX-XXXX." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Введите штат или территорию США" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Штат США (две заглавные буквы)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "Американский индекс (две заглавные буквы)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Номер телефона" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" -"Введите правильный CI-номер в формате X.XXX.XXX-X,XXXXXXX-X или XXXXXXXX." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Введите правильный CI-номер." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Введите правильный идентификационный номер Южной Африки." - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Введите правильный почтовый индекс Южной Африки" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Восточная Капская провинция" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Свободный штат" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Гаутенг" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "Квазулу-Натал" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Лимпопо" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Мпумаланга" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Северная Капская провинция" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "Северо-запад" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Западная Капская провинция" diff --git a/django/contrib/localflavor/locale/sk/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/sk/LC_MESSAGES/django.mo deleted file mode 100644 index 366c21da00..0000000000 Binary files a/django/contrib/localflavor/locale/sk/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/sk/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/sk/LC_MESSAGES/django.po deleted file mode 100644 index 8dfbe3659e..0000000000 --- a/django/contrib/localflavor/locale/sk/LC_MESSAGES/django.po +++ /dev/null @@ -1,3546 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011. -# Marian Andre , 2011, 2012. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Marian Andre \n" -"Language-Team: Slovak (http://www.transifex.net/projects/p/django/language/" -"sk/)\n" -"Language: sk\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Zadajte poštové smerovacie číslo v tvare NNNN alebo ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Toto pole môže obsahovať len čísla." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Toto pole vyžaduje 7 alebo 8 číslic." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Vložte platné CUIT vo formáte XX-XXXXXXXX-X alebo XXXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "Neplatné CUIT." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Korutánsko" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Dolné Rakúsko" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Horné Rakúsko" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salzburg" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Štajersko" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tirolsko" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlbersko" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Viedeň" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Zadajte poštové smerovacie číslo v tvare XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Zadajte platné rakúske číslo sociálneho poistenia vo formáte XXXX XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "Zadajte štvorciferné poštové smerovacie číslo." - -#: au/models.py:9 -msgid "Australian State" -msgstr "Austrálsky štát" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "Austrálske PSČ" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "Austrálske telefónne číslo" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Antverpy" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Brusel" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Východné Flámsko" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Flámsky Brabant" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hennegavsko" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Liege" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburg" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Belgické Luxembursko" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Valónsky Brabant" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Západné Flámsko" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Región hlavného mesta Brusel" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Flámsky región" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Valónsko" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" -"Zadajte platné poštové smerovacie číslo v rozmedzí a v tvare 1XXX - 9XXX." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Zadajte platné telefónne číslo v jednom z tvarov 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx alebo 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Zadajte poštové smerovacie číslo v tvare XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Telefónne čísla musia byť vo formáte XX-XXXX-XXXX." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Vyberte platný brazílsky štát. Tento štát nepatrí medzi existujúce štáty." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Chybné CPF číslo." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Toto pole môže mať najviac 11 čísel alebo 14 písmen." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Chybné CNPJ číslo." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Toto pole vyžaduje minimálne 14 číslic" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Zadajte poštové smerovacie číslo v tvare XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"Zadajte platné číslo kanadského sociálneho poistenia vo formáte XXX-XXX-XX." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aargau" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basel-Stadt" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basel-Land" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Bern" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Fribourg" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Ženeva" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubuenden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucern" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchatel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "St. Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zurich" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Vložte platné švajčiarske číslo občianskeho preukazu alebo pasu vo formáte " -"X1234567<0 alebo 1234567890." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Vložte platné čilské RUT." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Vložte platné čilské RUT. Formát je XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "Čilské RUT nie je platné." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "Zadajte poštové smerovacie číslo v tvare XXXXXX." - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "Číslo preukazu sa skladá z 15 alebo 18 číslic." - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "Neplatné číslo preukazu: Zlý kontrolný súčet" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "Neplatné číslo preukazu: Zlý dátum narodenia" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "Neplatné číslo preukazu: Zlý kód územia" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "Zadajte platné telefónne číslo." - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "Zadajte platné číslo mobilného telefónu." - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Praha" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Stredočeský kraj" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Juhočeský kraj" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Plzenský kraj" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Karlovarský kraj" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Ústecký kraj" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Liberecký kraj" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Hradecký kraj" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Pardubický kraj" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Vysočina" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Juhomoravský kraj" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Olomoucký kraj" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Žlínsky kraj" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Moravskosliezsky kraj" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Zadajte poštové smerovacie číslo v tvare XXXXX alebo XXX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "Zadajte rodné číslo vo formáte XXXXXX/XXXX alebo XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "Neplatný voliteľný parameter pohlavie, platné hodnoty sú 'f' a 'm'" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Zadajte platné rodné číslo." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Zadajte platné IC číslo." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Bádensko-Wuerttembersko" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Bavorsko" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlín" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenbursko" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Brémy" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburg" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hessensko" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Meklenbursko-Predpomoransko" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Dolné Sasko" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "Severné Porýnie-Westfálsko" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Porýnie-Falcko" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Saarland" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Sasko" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Sasko-Anhaltsko" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswigsko-Holsteinsko" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Thuringia" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Vložte poštové smerovacie číslo v tvare XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Vložte platné nemecké číslo občianskeho preukazu vo formáte XXXXXXXXXXX-" -"XXXXXXX-XXXXXXX-X." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Arava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alacant" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almeria" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Avila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Baleáry" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barcelona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Caceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cadiz" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castello" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Cordoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "A Coruna" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Girona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipuzkoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaen" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "Leon" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lleida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madrid" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Malaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murcia" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarre" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Ourense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturias" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palencia" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Cruz de Tenerife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Kantábria" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Sevilla" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valencia" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Bizkaia" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Zaragoza" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andalúzia" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragon" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Asturské kniežatstvo" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Baleárske ostrovy" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Baskicko" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Kanárske ostrovy" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Kastília-La Mancha" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Kastília-León" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Katalánsko" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Estremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galícia" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Murcia a okolie" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Navarra" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Valencijské spoločenstvo" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" -"Zadajte platné poštové smerovacie číslo v rozmedzí a v tvare 01XXX - 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Zadajte platné telefónne číslo v tvare 6XXXXXXXX, 8XXXXXXXX alebo 9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Zadajte platné NIF, NIE alebo CIF, prosím." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Zadajte platné NIF alebo NIE, prosím." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Neplatný kontrolný súčet pre NIF." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Neplatný kontrolný súčet pre NIE." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Neplatný kontrolný súčet pre CIF." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Zadajte, prosím, platné číslo bankového účtu v tvare XXXX-XXXX-XX-XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Neplatný kontrolný súčet čísla bankového účtu." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Vložte platné fínske číslo sociálneho poistenia." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Telefónne čísla musia mať formát 0X XX XX XX XX." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Zadajte platné poštové smerovacie číslo." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Cornwall a Ostrovy Scilly" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cumbria" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "East Sussex" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Essex" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Greater London" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Greater Manchester" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordshire" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "North Yorkshire" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northamptonshire" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oxfordshire" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "South Yorkshire" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordshire" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne a Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "West Midlands" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "West Sussex" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "West Yorkshire" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "okres Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "okres Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "okres Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "okres Fermanagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "okres Londonderry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "okres Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "South Glamorgan" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "West Glamorgan" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Central Scotland" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries a Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Orkneyské ostrovy" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Shetlandské ostrovy" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Western Isles" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "Anglicko" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Severné Írsko" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Škótsko" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Wales" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "Zadajte platných 13 číslic JMBG" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "Chyba v dátumovej časti" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "Zadajte platných 11 číslic OIB" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Zadajte platnú štátnu poznávaciu značku auta" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "Zadajte platný kód územia " - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "Číselná časť nemôže byť nula" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "Zadajte platné 5-miestne PSČ" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Zadajte platné telofónne číslo" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "Zadajte platný kód pre oblasť alebo mobilnú sieť" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "Telefónne číslo je príliš dlhé" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "Zadajte platných 19 číslic JMBAG počnúc 601983" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "Číslo vydania karty nemôže byť nula" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "Záhreb" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "Bjelovarsko-bilogorská župa" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "Brodsko-posávska župa" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "Dubrovnícko-neretvianska župa" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "Istrijská župa" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "Karlovecká župa" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "Koprivnicko-križevatská župa" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "Krapinsko-zagorská župa" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "Licko-senjská župa" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "Medzimurská župa" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "Osijecko-baranjská župa" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "Požecko-slavónska župa" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "Prímorsko-gorskokotarská župa" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "Sisacko-moslavinská župa" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "Splitsko-dalmatínska župa" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "Šibenicko-kninská župa" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "Varaždínska župa" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "Viroviticko-podrávska župa" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "Vukovarsko-sriemska župa" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "Zadarská župa" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "Záhrebská župa" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Zadajte platné poštové smerovacie číslo" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Zadajte platné NIK/KTP číslo" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Aceh" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Banten" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Bengkulu" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Yogyakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Jakarta" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Gorontalo" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Jambi" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Jawa Barat" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Jawa Tengah" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Jawa Timur" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Kalimantan Barat" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Kalimantan Selatan" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Kalimantan Tengah" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Kalimantan Timur" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Kepulauan Bangka-Belitung" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Kepulauan Riau" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampung" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Maluku" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Maluku Utara" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Nusa Tenggara Barat" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Nusa Tenggara Timur" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papua" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Papua Barat" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Riau" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Sulawesi Barat" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Sulawesi Selatan" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Sulawesi Tengah" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Sulawesi Tenggara" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Sulawesi Utara" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Sumatera Barat" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Sumatera Selatan" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Sumatera Utara" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Magelang" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Surakarta - Solo" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madiun" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kediri" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanuli" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Nanggroe Aceh Darussalam" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Kepulauan Bangka Belitung" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Corps Consulate" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Corps Diplomatic" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Bandung" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Sulawesi Utara Daratan" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timor" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Sulawesi Utara Kepulauan" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lombok" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Papua dan Papua Barat" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Cirebon" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbawa" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Flores" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Bogor" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalongan" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Semarang" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Pati" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Surabaya" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Madura" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malang" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Jember" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banyumas" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Federálna vláda" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purwakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarjo" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Garut" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Antrim" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Armagh" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Carlow" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Cavan" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Clare" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Cork" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Derry" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Donegal" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Down" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Dublin" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fermanagh" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Galway" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerry" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Kildare" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Kilkenny" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Laois" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Leitrim" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerick" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Longford" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Louth" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Mayo" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Meath" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Monaghan" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Offaly" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Roscommon" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Sligo" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tipperary" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tyrone" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Waterford" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Westmeath" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Wexford" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Wicklow" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Zadajte poštové smerovacie číslo v tvare XXXXX." - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Zadajte platné ID číslo." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "Zadajte poštové smerovacie číslo v tvare XXXXXX, alebo XXX XXX." - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "Zadajte indický štát alebo územie." - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "Telefónne čísla musia byť v tvare 02X-8X alebo 03X-7X alebo 04X-6X." - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "Zadajte platné islandské identifikačné číslo. Formát je XXXXXX-XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Islandské identifikačné číslo je neplatné." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Zadajte platné poštové smerovacie číslo." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Vložte platné číslo sociálneho poistenia." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Zadajte platné VAT číslo." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Zadajte poštové smerovacie číslo v tvare XXXXXXX alebo XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaidó" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Mijagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Jamagata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukušima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Točigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Čiba" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tokio" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Jamanaši" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Tojama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Išikawa" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Šizuoka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aiči" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Šiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kjóto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hjógo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakajama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Šimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okajama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hirošima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Jamaguči" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokušima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Kóči" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Oita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Mijazaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagošima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinawa" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Zadajte platné kuvaitské civilné identifikačné číslo" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" -"Číslo občianskeho preukazu musí obsahovať buď 4 až 7 číslic alebo veľké " -"písmeno a 7 číslic." - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "Toto pole musí obsahovať presne 13 číslic." - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "Prvých 7 číslic UMCN musí predstavovať platný dátum minulosti." - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "UMCN nie je platný." - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "Aerodrom" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "Aračinovo" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "Berovo" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "Bitola" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "Bogdanci" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "Bogovinje" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "Bosilovo" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "Brvenica" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "Butel" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "Valandovo" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "Vasilevo" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "Vevčani" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "Veles" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "Vinica" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "Vraneštica" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "Vrapčište" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "Gazi Baba" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "Gevgelija" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "Gostivar" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "Gradsko" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "Debar" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "Debarca" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "Delčevo" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "Demir Kapija" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "Demir Hisar" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "Dolneni" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "Drugovo" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "Gjorče Petrov" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "Želino" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "Zajas" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "Zelenikovo" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "Zrnovci" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "Ilinden" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "Jegunovce" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "Kavadarci" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "Karbinci" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "Karpoš" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "Kisela Voda" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "Kičevo" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "Konče" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "Koćani" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "Kratovo" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "Kriva Palanka" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "Krivogaštani" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "Kruševo" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "Kumanovo" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "Lipkovo" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "Lozovo" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "Mavrovo a Rostuša" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "Makedonska Kamenica" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "Makedonski Brod" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "Mogila" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "Negotino" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "Novaci" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "Novo Selo" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "Oslomej" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "Ohrid" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "Petrovec" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "Pehčevo" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "Plasnica" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "Prilep" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "Probištip" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "Radoviš" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "Rankovce" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "Resen" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "Rosoman" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "Saraj" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "Sveti Nikole" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "Sopište" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "Star Dojran" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "Staro Nagoričane" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "Struga" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "Strumica" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "Studeničani" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "Tearce" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "Tetovo" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "Centar" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "Centar-Župa" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "Čair" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "Čaška" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "Češinovo-Obleševo" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "Čučer-Sandevo" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "Štip" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "Šuto Orizari" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "Číslo macedónskeho preukazu totožnosti" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "Macedónska samospráva (2 znakový kód)" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "Unikátne číslo občana (13 číslic)" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "Zadajte platné poštové smerovacie číslo v tvare XXXXX." - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "Zadajte platné RFC." - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "Neplatný kontrolný súčet pre RFC." - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "Zadajte platné CURP." - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "Neplatný kontrolný súčet pre CURP." - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "Štát Mexika (tri veľké písmená)" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "Mexické PSČ" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "Mexické RFC" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "Mexické CURP" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baja California" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baja California Sur" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Distrito Federal" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Estado de México" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacán" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo León" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Querétaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Róo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potosí" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Yucatán" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Zadajte platné poštové smerovacie číslo" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Zadajte platné SoFi číslo" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drente" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flavónsko" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Frízsko" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Gelderland" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groningen" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Severné Brabantsko" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Severný Holland" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrecht" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zéland" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Južný Holland" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Vložte platné nórske číslo sociálneho poistenia." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Toto pole vyžaduje 8 číslic." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Toto pole vyžaduje 11 číslic." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Národné identifikačné číslo sa skladá z 11 číslic." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Nesprávny kontrolný súčet pre národné identifikačné číslo." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "Číslo občianskeho preukazu sa skladá z 3 písmen a 6 číslic." - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "Zlý kontrolný súčet pre číslo občianskeho preukazu." - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Nesprávny kontrolný súčet pre daňové číslo (NIP)." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" -"Číslo národného obchodného registra (REGON) sa skladá z 9 alebo zo 14 číslic." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" -"Nesprávny kontrolný súčet pre číslo národného obchodného registra (REGON)." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Vložte poštové smerovacie číslo v tvare XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Dolnosliezske vojvodstvo" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kujavsko-pomoranské vojvodstvo" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lubelské vojvodstvo" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubuské vojvodstvo" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodžské vojvodstvo" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Malopoľské vojvodstvo" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Mazovské vojvodstvo" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opolské vojvodstvo" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Podkarpatské vojvodstvo" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podleské vojvodstvo" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomoranské vojvodstvo" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Sliezske vojvodstvo" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Svätokrížske vojvodstvo" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Varmsko-mazurské vojvodstvo" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Veľkopoľské vojvodstvo" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "Západopomoranské vojvodstvo" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Zadajte poštové smerovacie číslo v tvare XXXX-XXX." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "Telefónne čísla musia obsahovať 9 číslic a začína znakom + alebo 00." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Zadajte platné CIF." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Zadajte platné CNP." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "Zadajte platné IBAN vo formáte ROXX-XXXX-XXXX-XXXX-XXXX-XXXX" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Telefónne čísla musia mať formát XXXX-XXXXXX." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Zadajte platné poštové smerovacie číslo v tvare XXXXXX" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "Zadajte poštové smerovacie číslo v tvare XXXXXX." - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "Zadajte číslo pasu v tvare XXXX XXXXXX." - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "Zadajte číslo pasu v tvare XX XXXXXXX." - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "Centrálny federálny okruh" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "Južný federálny okruh" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "Severozápadný federálny okruh" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "Ďalekovýchodný federálny okruh" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "Sibírsky federálny okruh" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "Uralský federálny okruh" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "Povolžský federálny okruh" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "Severokaukazský federálny okruh" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "Moskva" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "Petrohrad" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "Moskovská oblasť" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "Adygejská republika" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "Baškirská republika" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "Buriatska republika" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "Altajská republika" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "Dagestanská republika" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "Ingušská republika" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "Kabardsko-balkardská republika" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "Kalmycká republika" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "Karačajsko-čerkeská republika" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "Karelská republika" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "Komijská republika" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "Marijská republika" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "Mordvianska republika" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "Jakutská republika (Sacha)" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "Severoosetská republika (Alánsko)" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "Tatárska republika" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "Tuvianska republika (Tuvia)" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "Udmurtská republika" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "Karačajsko-čerkeská republika" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "Čečenská republika" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "Čuvašská republika" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "Altajský kraj" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "Zabajkalský kraj" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "Kamčatský kraj" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "Krasnodarský kraj" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "Krasnojarský kraj" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "Permský kraj" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "Prímorský kraj" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "Stavropoľský kraj" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "Chabarovský kraj" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "Amurská oblasť" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "Archangeľská oblasť" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "Astrachánska oblasť" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "Belgorodská oblasť" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "Brianska oblasť" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "Vladimírska oblasť" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "Volgogradská oblasť" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "Vologdská oblasť" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "Voronežská oblasť" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "Ivanovská oblasť" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "Irkutská oblasť" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "Kaliningradská oblasť" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "Kalužská oblasť" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "Kemerovská oblasť" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "Kirovská oblasť" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "Kostromská oblasť" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "Kurganská oblasť" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "Kurská oblasť" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "Leningradská oblasť" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "Lipecká oblasť" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "Magadanská oblasť" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "Murmanská oblasť" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "Nižnonovgorodská oblasť" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "Novgorodská oblasť" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "Novosibírska oblasť" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "Omská oblasť" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "Orenburská oblasť" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "Orlovská oblasť" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "Penzianska oblasť" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "Pskovská oblasť" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "Rostovská oblasť" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "Riazanská oblasť" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "Samarská oblasť" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "Saratovská oblasť" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "Sachalinská oblasť" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "Sverdlovská oblasť" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "Smolenská oblasť" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "Tambovská oblasť" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "Tverská oblasť" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "Tomská oblasť" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "Tulská oblasť" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "Ťumenská oblasť" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "Ulianovská oblasť" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "Čeľabinská oblasť" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "Jaroslavlianska oblasť" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "Židovská autonómna oblasť" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "Nenecký autonómny okruh" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "Chantyjsko-mansijský autonómny okruh " - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "Čukotský autonómny okruh" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "Jamalskonenecký autonómny okruh" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Zadajte platné švédske číslo organizácie." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Zadajte platné švédske osobné identifikačné číslo." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Koordinačné čísla nie sú povolené." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Zadajte švédske poštové smerovacie číslo v tvare XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Stockholm" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Västerbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norrbotten" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Uppsala" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Södermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Östergötland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Jönköping" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmar" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Gotland" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Blekinge" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Skåne" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halland" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Västra Götaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Värmland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Örebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Västmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Dalarna" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gävleborg" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Västernorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jämtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "Prvých 7 číslic EMSO musí predstavovať platný dátum minulosti." - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "EMSO nie je platný." - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "Zadajte platné daňové identifikačné číslo v tvare SIXXXXXXXX" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "Zadajte telefónne číslo v tvare +386XXXXXXXX alebo 0XXXXXXXX." - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Banská Bystrica" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banská Štiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Bánovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytča" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Čadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolný Kubín" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajská Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenné" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kežmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komárno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Košice I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Košice II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Košice III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Košice IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Košice - okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucké Nové Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoča" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovský Mikuláš" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lučenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Námestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nové Mesto nad Váhom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nové Zámky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizánske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piešťany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltár" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Považská Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Prešov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Púchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revúca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavská Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Rožňava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ružomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spišská Nová Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stará Ľubovňa" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidník" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Šaľa" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topoľčany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebišov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trenčín" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turčianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdošín" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Veľký Krtíš" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Topľou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlaté Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Žarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Žiar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Žilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Banskobystrický kraj" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Bratislavský kraj" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Košický kraj" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Nitriansky kraj" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Prešovský kraj" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Trančiansky kraj" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Trnavský kraj" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Žilinský kraj" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Zadajte poštové smerovacie číslo v tvare XXXXX." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Telefónne čísla musia mať tvar 0XXX XXX XXXX." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Zadajte platné turecké identifikačné číslo." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "Turecké identifikačné číslo musí mať 11 číslic." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Zadajte poštové smerovacie číslo vo formáte XXXXX alebo XXXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Telefónne čísla musia byť vo formáte XXX-XXX-XXXX." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "Vložte platné číslo U.S. sociálneho poistenia vo formáte XXX-XX-XXXX." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Zadajte štát USA alebo teritórium." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Štát USA (dve veľké písmená)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "Poštový kód (dve veľké písmená)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Telefónne číslo" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "Vložte platné CI vo formáte X.XXX.XXX-X,XXXXXXX-X alebo XXXXXXXX." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Zadajte platné IC číslo." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Zadajte platné juhoafrické ID číslo." - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Zadajte platné juhoafrické poštové smerovacie číslo" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Eastern Cape" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Free State" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Northern Cape" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "North West" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Western Cape" diff --git a/django/contrib/localflavor/locale/sl/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/sl/LC_MESSAGES/django.mo deleted file mode 100644 index 10d789ed8f..0000000000 Binary files a/django/contrib/localflavor/locale/sl/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/sl/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/sl/LC_MESSAGES/django.po deleted file mode 100644 index 33981bfd9b..0000000000 --- a/django/contrib/localflavor/locale/sl/LC_MESSAGES/django.po +++ /dev/null @@ -1,3559 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# iElectric , 2011. -# Jannis Leidel , 2011. -# Jure Cuhalev , 2011. -# , 2011, 2012. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: zejn \n" -"Language-Team: Slovenian (http://www.transifex.net/projects/p/django/" -"language/sl/)\n" -"Language: sl\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" -"%100==4 ? 2 : 3)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Vpišite poštno številko v zapisu NNNN ali ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "To polje lahko vsebuje samo številke." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "To polje mora vsebovati 7 ali 8 števk." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Vpišite veljavno CUIT v zapisu XX-XXXXXXXX-X or XXXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "Neveljaven CUIT vnos." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Gradiščansko" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Koroška" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Spodnja Avstrija" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Zgornja Avstrija" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salzburg" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Avstrijska Štajerska" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tirolska" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlberg" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Dunaj" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Vnesite veljavno poštno številko v obliki XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Vpišite veljavno številko avstrijskega socialnega zavarovanja v zapisu XXXX " -"XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "Vnesite 4-mestno poštno številko." - -#: au/models.py:9 -msgid "Australian State" -msgstr "Avstralska zvezna država" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "Avstralska poštna številka" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "Avstralska telefonska številka" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Antwerpen" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Bruselj" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "vzhodna Flanska" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Flemish Brabant" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hengavsko" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Liège" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburg" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Luksemburg" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Walloon Brabant" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "zahodna Flamska" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Bruseljska regija" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Flemska regija" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Valonija" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "Vnesi veljavno poštno številko v obliki 1XXX - 9XXX." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Vnesite veljavno telefonsko številko v eni od naslednjih oblik: 0x xxx xx " -"xx, 0xx xx xx xx, 04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, " -"0x.xxx.xx.xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx ali 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Vnesite poštno številko v zapisu XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Telefonska številka mora biti v zapisu XX-XXXX-XXXX." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Izberite veljavno brazilsko državo. Ta država ni med ponujenimi izbirami." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Nepravilna CPF številka." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "To polje zahteva največ 11 števk ali 14 znakov." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Nepravilna CNPJ številka." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "To polje mora vsebovati vsaj 14 števk." - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Vnesite veljavno poštno številko v obliki XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"Vpišite veljavno številko kanadskega socialnega zavarovanja v zapisu XXX-XXX-" -"XXX." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aargau" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basel (mesto)" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basel (dežela)" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Berne" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Fribourg" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Ženeva" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubuenden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucerne" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchatel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "St. Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zurich" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Vpišite veljavno številko švicarske osebne izkaznice ali potnega lista v " -"zapisu X1234567<0 ali 1234567890." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Vnesite veljaven čilski RUT." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Vpišite veljaven čilenski RUT v zapisu XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "Ta čilenski RUT ni veljaven." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "Vnesite poštno številko v obliki XXXXXX." - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "Številka ID kartice je sestavljena iz 15 ali 18 števk." - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "Neveljavna številka ID kartice: napačna preverjevalna števka." - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "Neveljavna številka ID kartice: neveljaven datum rojstva." - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "Neveljavna številka ID kartice: neveljavna lokacijska koda." - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "Vnesite veljavno telefonsko številko." - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "Vnesite veljavno mobilno številko." - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Praga" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Central Bohemian Region" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "South Bohemian Region" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Pilsen Region" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Carlsbad Region" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Usti Region" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Liberec Region" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Hradec Region" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Pardubice Region" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Vysocina Region" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "South Moravian Region" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Olomouc Region" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Zlin Region" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Moravian-Silesian Region" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Vpišite poštno številko v zapisu XXXXX ali XXX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "Vnesite rojstno številko v obliki XXXXXX/XXXX ali XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "Neveljaven neobvezni vnos Spol, veljavne vrednosti sta 'f' in 'm'" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Vnesite veljavno rojstno številko." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Vnesite veljavno IC številko." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Wuerttemberg" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Bavarska" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlin" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburg" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Bremen" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburg" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hessen" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklenburg-Western Pomerania" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Lower Saxony" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "Severno porenje - Westfalija" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Rhineland-Palatinate" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Posarje" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Saxony" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Saška-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Thuringia" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Vnesite veljavno poštno številko v obliki XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Vpišite veljavno številko nemške osebne izkaznice v zapisu XXXXXXXXXXX-" -"XXXXXXX-XXXXXXX-X." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Arava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alacant" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almeria" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Avila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Balearski otoki" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barcelona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Caceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cadiz" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castello" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Cordoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "A Coruna" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Girona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipuzkoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaen" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "Leon" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lleida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madrid" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Malaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murcia" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarre" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Ourense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturias" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palencia" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Cruz de Tenerife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Cantabria" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Seville" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valencia" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Bizkaia" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Zaragoza" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andalusia" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragon" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Principality of Asturias" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Balearski otoki" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Baskovska pokrajina" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Kanarski otoki" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Castile-La Mancha" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Castile and Leon" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Catalonia" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Extremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galicia" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Region of Murcia" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Foral Community of Navarre" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Valencian Community" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Vpišite veljavno poštno številko v obsegu in zapisu od 01XXX do 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Vpišite veljavno telefonsko številko v zapisu 6XXXXXXXX, 8XXXXXXXX ali " -"9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Prosimo, vnesite veljavni NIF, NIE, ali CIF." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Prosimo, vnesite veljaven NIF ali NIE." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Neveljavna preverjevalna vsota za NIF." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Neveljavna preverjevalna vsota za NIE." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Neveljavna preverjevalna vsota za CIF." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Vpišite veljavno številko bančnega računa v zapisu XXXX-XXXX-XX-XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Neveljavna preverjevalna vsota za številko bančnega računa." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Vnesite veljavno številko finskega socialnega zavarovanja." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Telefonska številka mora biti v zapisu 0X XX XX XX XX." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Vnesite veljavno poštno številko." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Cornwall and Isles of Scilly" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cumbria" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "East Sussex" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Essex" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Greater London" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Greater Manchester" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordshire" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "North Yorkshire" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northamptonshire" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oxfordshire" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "South Yorkshire" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordshire" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne and Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "West Midlands" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "West Sussex" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "West Yorkshire" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "County Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "County Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "County Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "County Fermanagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "County Londonderry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "County Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "South Glamorgan" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "West Glamorgan" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Central Scotland" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries and Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Orkney Islands" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Shetland Islands" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Western Isles" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "England" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Northern Ireland" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Scotland" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Wales" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "Vnesite veljavno 13-mestno številko JMBG." - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "Napaka v datumskem delu." - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "Vnesite veljavno 11-mestno OIB številko." - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Vnesite veljavno avtomobilsko registrsko številko" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "Vnesite veljavno lokacijsko kodo." - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "Številski del ne more biti nič" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "Vnesite veljavno 5-mestno poštno številko" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Vnesite veljavno telefonsko številko" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "Vnesite veljavno področno ali omrežno številko" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "Telefonska številka je predolga" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "Vnesite veljavno 19-mestno JMBAG številko, ki se začne z 601983" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "Potrdilna številka kartice ne more biti nič" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "Mesto Zagreb" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "Bjelovarsko-belogorska pokrajina" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "Brodsko-posavska pokrajina" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "Dubrovniško-neretvanska pokrajina" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "Istrska pokrajina" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "Karlovška pokrajina" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "Koprivniško-križevačka pokrajina" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "Krapinsko-zagorska pokrajina" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "Ličko-senjska pokrajina" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "Međimurska pokrajina" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "Osješko-baranjska pokrajina" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "Požeško-slavonska pokrajina" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "Primorsko-gorska pokrajina" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "Siško-moslavška pokrajina" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "Splitsko-dalmatinska pokrajina" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "Šibeniško-kninska pokrajina" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "Varaždinska pokrajina" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "Virovitško-podravska pokrajina" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "Vukovarsko-sremska pokrajina" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "Zadrska pokrajina" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "Zagrebška pokrajina" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Vnesite veljavno poštno številko" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Vnesite veljavno NIK/KTP številko." - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Aceh" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Banten" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Bengkulu" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Yogyakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Jakarta" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Gorontalo" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Jambi" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Jawa Barat" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Jawa Tengah" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Jawa Timur" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Kalimantan Barat" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Kalimantan Selatan" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Kalimantan Tengah" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Kalimantan Timur" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Kepulauan Bangka-Belitung" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Kepulauan Riau" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampung" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Maluku" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Maluku Utara" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Nusa Tenggara Barat" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Nusa Tenggara Timur" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papua" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Papua Barat" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Riau" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Sulawesi Barat" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Sulawesi Selatan" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Sulawesi Tengah" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Sulawesi Tenggara" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Sulawesi Utara" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Sumatera Barat" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Sumatera Selatan" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Sumatera Utara" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Magelang" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Surakarta - Solo" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madiun" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kediri" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanuli" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Nanggroe Aceh Darussalam" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Kepulauan Bangka Belitung" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Corps Consulate" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Corps Diplomatic" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Bandung" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Sulawesi Utara Daratan" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timor" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Sulawesi Utara Kepulauan" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lombok" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Papua dan Papua Barat" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Cirebon" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbawa" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Flores" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Bogor" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalongan" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Semarang" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Pati" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Surabaya" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Madura" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malang" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Jember" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banyumas" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Zvezna vlada" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purwakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarjo" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Garut" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Antrim" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Armagh" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Carlow" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Cavan" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Clare" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Cork" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Derry" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Donegal" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Down" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Dublin" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fermanagh" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Galway" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerry" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Kildare" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Kilkenny" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Laois" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Leitrim" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerick" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Longford" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Louth" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Mayo" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Meath" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Monaghan" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Offaly" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Roscommon" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Sligo" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tipperary" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tyrone" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Waterford" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Westmeath" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Wexford" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Wicklow" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Vnesi poštno številko v obliki XXXXX" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Vnesi veljavno ID številko." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "Vnesite poštno številko v zapisu XXXXXX ali XXX XXX." - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "Vnesite indijsko državo ali teritorij." - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "Telefonske številke morajo biti v zapisu 02X-8X ali 03X-7X ali 04X-6X." - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" -"Vpišite pravilno islandsko identifikacijsko številko v zapisu XXXXXX-XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Islandska identifikacijska številka ni pravilna." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Vnesite veljavno poštno številko." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Vnesite veljavno številko socialnega zavarovanja." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Vnesite veljavno davčno (DDV) številko." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Vpišite poštno številko v zapisu XXXXXXX or XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokaido" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Jamagata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukushima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Točigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Čiba" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tokio" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Jamanaši" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Toyama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Išikava" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Šizuoka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Šiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kjoto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hjogo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Vakajama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Šimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okajama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hirošima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Jamaguči" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokušima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Koči" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Oita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Miyazaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagošima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinava" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Vnesite veljavno Kuvajtsko osebno ID številko" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" -"Številka osebne izkaznice mora vsebovati ali od 4 do 7 števk ali veliko črko " -"in 7 števk." - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "To polje mora vsebovati natanko 13 števil." - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "Prvih 7 števil UMCN mora predstavljati veljaven datum v preteklosti." - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "Število UMCN ni veljavno." - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "Aerodrom" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "Aračinovo" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "Berovo" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "Bitola" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "Bogdanci" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "Bogovinje" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "Bosilovo" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "Brvenica" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "Butel" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "Valandovo" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "Vasilevo" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "Vevčani" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "Veles" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "Vinica" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "Vraneštica" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "Vrapčište" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "Gazi Baba" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "Gevgelija" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "Gostivar" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "Gradsko" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "Debar" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "Debarca" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "Delčevo" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "Demir Kapija" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "Demir Hisar" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "Dolneni" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "Drugovo" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "Gjorče Petrov" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "Želino" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "Zajas" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "Zelenikovo" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "Zrnovci" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "Ilinden" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "Jegunovce" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "Kavadarci" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "Karbinci" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "Karpoš" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "Kisela Voda" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "Kičevo" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "Konče" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "Koćani" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "Kratovo" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "Kriva Palanka" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "Krivogaštani" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "Kruševo" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "Kumanovo" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "Lipkovo" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "Lozovo" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "Mavrovo i Rostuša" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "Makedonska Kamenica" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "Makedonski Brod" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "Mogila" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "Negotino" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "Novaci" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "Novo Selo" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "Oslomej" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "Ohrid" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "Petrovec" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "Pehčevo" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "Plasnica" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "Prilep" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "Probištip" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "Radoviš" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "Rankovce" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "Resen" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "Rosoman" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "Saraj" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "Sveti Nikole" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "Sopište" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "Star Dojran" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "Staro Nagoričane" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "Struga" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "Strumica" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "Studenčani" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "Tearce" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "Tetovo" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "Centar" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "Centar-Župa" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "Čair" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "Čaška" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "Češinovo-Obleševo" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "Čučer-Sandevo" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "Štip" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "Šuto Orizani" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "Številka makedonske osebne izkaznice" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "Šifra makedonskega mesta (2 črkovna koda)" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "Enotna matična številka občana (13 števk)" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "Vnesite veljavno poštno številko v zapisu XXXXX." - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "Vnesite veljaven RFC." - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "Neveljavna preverjevalna števka za RFC." - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "Vnesite veljavno CURP." - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "Neveljavna preverjevalna števka za CURP." - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "Mehiška država (tri velike črke)" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "Mehiška poštna številka" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "Mehiški RFC" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "Mehiški CURP" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baja California" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baja California Sur" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Distrito Federal" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Estado de México" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacán" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo León" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Querétaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potosí" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Yucatán" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Vnesite veljavno poštno številko" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Vnesite veljavno nizozemsko davčno številko" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drenthe" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Friesland" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Gelderland" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groningen" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Noord-Brabant" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Noord-Holland" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrecht" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zeeland" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Zuid-Holland" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Vnesite veljavno številko norveškega socialnega zavarovanja." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "To polje mora vsebovati 8 števk." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "To polje mora vsebovati 11 števk." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Nacionalna identifikacijska številka je sestavljena iz 11 števk." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "" -"Preverjevalna vsota za nacionalno identifikacijsko številko ne ustreza." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "Številka osebne izkaznice je sestavljena iz treh črk in šestih števk." - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "Napačna preverjevalna števka za številko osebne izkaznice." - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" -"Vnesite veljavno davčno številko (NIP) v zapisu XXX-XXX-XX-XX, XXX-XX-XX-XXX " -"ali XXXXXXXXXX." - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Napačna preverjevalna vsota za davčno številko (NIP)." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" -"Nacionalna poslovna registracijska številka (REGON) je sestavljena iz 9 ali " -"14 števk." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" -"Napačna preverjevalna vsota za nacionalno poslovno registracijsko številko " -"(REGON)." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Vnesite veljavno poštno številko v obliki XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Spodna Šlezija" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kuyavia-Pomerania" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublin" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubusz" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodz" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Lesser Poland" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Masovia" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opole" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Subcarpatia" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlasie" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomerania" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Šlezija" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Swietokrzyskie" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Warmia-Masuria" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Greater Poland" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "West Pomerania" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Vnesite poštno številko v zapisu XXXX-XXX." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "Telefonske številke morajo imeti 9 števk ali pa se začeti z + ali 00." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Vnesite veljaven CIF." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Vnesite veljaven CNP." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "Vpišite veljaen IBAN v obliki ROXX-XXXX-XXXX-XXXX-XXXX-XXXX." - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Telefonska številka mora biti v zapisu XXXX-XXXXXX." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Vnesite veljavno poštno številko v obliki XXXXXX." - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "Vnesite poštno številko v zapisu XXXXXX." - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "Vnesite številko potnega lista v zapisu XXXX XXXXXX." - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "Vnesite številko potnega lista v zapisu XX XXXXXXX." - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "Osrednja zvezna pokrajina" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "Južna zvezna pokrajina" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "Severozahodna zvezna pokrajina" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "Zvezna pokrajina daljnega vzhoda" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "Sibirska zvezna pokrajina" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "Uralska zvezna pokrajina" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "Zvezna pokrajina Privolzhsky" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "Servernokavkaška zvezna pokrajina" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "Moskva" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "Sankt Petersburg" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Vnesite veljavno švedsko številko organizacije." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Vnesite veljavno švedsko osebno identifikacijsko številko." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Koordinacijske številke niso dovoljene." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Vnesite veljavno švedsko poštno številko v obliki XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Stockholm" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Västerbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norrbotten" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Uppsala" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Södermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Östergötland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Jönköping" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmar" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Gotland" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Blekinge" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Skåne" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halland" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Västra Götaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Värmland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Örebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Västmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Dalarna" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gävleborg" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Västernorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jämtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "Prvih 7 števk EMŠO števila mora biti veljaven pretekli datum." - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "EMŠO ni veljaven." - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "Vnesite veljavno davčno številko v zapisu SIXXXXXXXX" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "Vnesite telefonsko številko v zapisu +386XXXXXXXX ali 0XXXXXXXX." - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Banska Bystrica" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banska Stiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Banovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytca" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Cadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolny Kubin" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajska Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenne" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kezmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komarno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Kosice I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Kosice II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Kosice III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Kosice IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Kosice - okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucke Nove Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoca" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovsky Mikulas" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lucenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Namestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nove Mesto nad Vahom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nove Zamky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizanske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piestany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltar" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povazska Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Presov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Puchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revuca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Roznava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ruzomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spisska Nova Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stara Lubovna" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidnik" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Sala" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolcany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebisov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trencin" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turcianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdosin" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velky Krtis" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Zarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Zilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Regija Banska Bystrica" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Bratislavska regija" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Regija Kosice" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Regija Nitra" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Regija Presov" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Regija Trencin" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Regija Trnava" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Regija Zilina" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Vnesi poštno številko v formatu XXXXX." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Telefonske številke morajo biti v obliki 0XXX XXX XXXX." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Vnesi veljavno turško identifikacijsko številko." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "Turška identifikacijska številka mora biti dolga 11 znakov." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Vnesite poštno številko v zapisu XXXXX ali XXXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Telefonska številka mora biti zapisana v formatu XXX-XXX-XXXX." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" -"Vpišite veljavno številko ameriškega socialnega zavarovanja v zapisu XXX-XX-" -"XXXX." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Vpiši zvezno državno ZDA ali ozemlje ZDA." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Koda ameriške zvezne države (dve veliki črki)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "ZDA poštna številka (dve veliki črki)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Telefonska številka" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" -"Vpišite veljavno CI številko v formatu X.XXX.XXX-X,XXXXXXX-X ali XXXXXXXX." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Vnesite veljavno CI številko." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Vnesite veljavno južnoafriško ID številko" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Vnesite veljavno južnoafriško poštno številko." - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Eastern Cape" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Free State" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Northern Cape" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "North West" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Western Cape" diff --git a/django/contrib/localflavor/locale/sq/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/sq/LC_MESSAGES/django.mo deleted file mode 100644 index a871e9b76f..0000000000 Binary files a/django/contrib/localflavor/locale/sq/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/sq/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/sq/LC_MESSAGES/django.po deleted file mode 100644 index 9194549152..0000000000 --- a/django/contrib/localflavor/locale/sq/LC_MESSAGES/django.po +++ /dev/null @@ -1,3526 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Albanian (http://www.transifex.net/projects/p/django/language/" -"sq/)\n" -"Language: sq\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "" - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "" - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "" - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "" - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "" - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "" - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "" - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "" - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "" - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "" - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "" - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "" - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "" - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "" - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "" - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "" - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "" - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "" - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "" - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "" - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "" - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "" - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "" - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "" - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "" - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "" - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "" - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "" - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "" - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "" - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "" - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "" - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "" - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "" - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "" - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "" - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "" - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "" - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "" - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "" - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "" - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "" - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "" - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "" - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "" - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "" - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "" - -#: us/models.py:26 -msgid "Phone number" -msgstr "" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "" - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "" diff --git a/django/contrib/localflavor/locale/sr/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/sr/LC_MESSAGES/django.mo deleted file mode 100644 index 33ed1672b0..0000000000 Binary files a/django/contrib/localflavor/locale/sr/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/sr/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/sr/LC_MESSAGES/django.po deleted file mode 100644 index 15d9b8bdc6..0000000000 --- a/django/contrib/localflavor/locale/sr/LC_MESSAGES/django.po +++ /dev/null @@ -1,3529 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Serbian (http://www.transifex.net/projects/p/django/language/" -"sr/)\n" -"Language: sr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Унесите поштански број у формату НННН или АННННААА." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Ово поље мора да садржи само бројке." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Ово поље мора да садржи 7 или 8 цифара" - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Унестие важећи CUIT у формату XX-XXXXXXXX-X or XXXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "Неважећи CUIT" - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Бургенланд" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Каринтија" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Доња Аустрија" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Горња Аустрија" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Салцбург" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Стирија" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Тирол" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Воралбер" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Беч" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Унесите поштански број у формату XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Унесите важећи аустријски број социјалног осигурања у формату XXXX XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Унесите поштански број у формату XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Број телефона мора бити у формату XX-XXXX-XXXX." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "Одаберите постојећу бразилску државу. Та држава није међу понуђенима." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Неважећи CPF број" - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "" - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "" - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "" - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "" - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "" - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "" - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "" - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "" - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "" - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "" - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "" - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "" - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "" - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "" - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "" - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "" - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "" - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "" - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "" - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "" - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "" - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "" - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "" - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "" - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "" - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "" - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "" - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "" - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "" - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "" - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "" - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "" - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "" - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "" - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "" - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "" - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "" - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Држава у САД (два велика слова)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Број телефона" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "" - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "" diff --git a/django/contrib/localflavor/locale/sr_Latn/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/sr_Latn/LC_MESSAGES/django.mo deleted file mode 100644 index f5c12d3e24..0000000000 Binary files a/django/contrib/localflavor/locale/sr_Latn/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/sr_Latn/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/sr_Latn/LC_MESSAGES/django.po deleted file mode 100644 index 3b856aecad..0000000000 --- a/django/contrib/localflavor/locale/sr_Latn/LC_MESSAGES/django.po +++ /dev/null @@ -1,3529 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Serbian (Latin) (http://www.transifex.net/projects/p/django/" -"language/sr@latin/)\n" -"Language: sr@latin\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Unesite poštanski broj u formatu NNNN ili ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Ovo polje mora da sadrži samo brojke." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Ovo polje mora da sadrži 7 ili 8 cifara" - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Unestie važeći CUIT u formatu XX-XXXXXXXX-X or XXXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "Nevažeći CUIT" - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Karintija" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Donja Austrija" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Gornja Austrija" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salcburg" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Stirija" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tirol" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Voralber" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Beč" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Unesite poštanski broj u formatu XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Unesite važeći austrijski broj socijalnog osiguranja u formatu XXXX XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Unesite poštanski broj u formatu XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Broj telefona mora biti u formatu XX-XXXX-XXXX." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "Odaberite postojeću brazilsku državu. Ta država nije među ponuđenima." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Nevažeći CPF broj" - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "" - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "" - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "" - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "" - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "" - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "" - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "" - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "" - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "" - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "" - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "" - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "" - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "" - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "" - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "" - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "" - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "" - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "" - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "" - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "" - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "" - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "" - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "" - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "" - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "" - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "" - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "" - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "" - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "" - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "" - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "" - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "" - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "" - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "" - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "" - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "" - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "" - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Država u SAD (dva velika slova)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Broj telefona" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "" - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "" diff --git a/django/contrib/localflavor/locale/sv/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/sv/LC_MESSAGES/django.mo deleted file mode 100644 index d9f679f8a8..0000000000 Binary files a/django/contrib/localflavor/locale/sv/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/sv/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/sv/LC_MESSAGES/django.po deleted file mode 100644 index 9228b51c91..0000000000 --- a/django/contrib/localflavor/locale/sv/LC_MESSAGES/django.po +++ /dev/null @@ -1,3553 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Andreas Pelme , 2011, 2012. -# Jannis Leidel , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Andreas Pelme \n" -"Language-Team: Swedish (http://www.transifex.net/projects/p/django/language/" -"sv/)\n" -"Language: sv\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Fyll i ett postnummer med formatet NNNN eller ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Detta fält kräver enbart siffror." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Detta fält kräver 7 eller 8 sifrror." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Fyll i ett giltigt CUIT med formatet XX-XXXXXXXX-X eller XXXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "Felaktigt CUIT." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Kärnten" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Niederösterreich" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Oberösterreich" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salzburg" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Steiermark" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tyrolen" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlberg" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Wien" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Fyll i postnummer med formatet XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "Fyll i ett giltigt Österrikiskt personnummer i formatet XXXX XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "Ange ett fyrsiffrigt postnummer." - -#: au/models.py:9 -msgid "Australian State" -msgstr "Australiensisk stat" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "Australiensiskt postnummer" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "Australiensiskt telefonnummer" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Antwerpen" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Bryssel" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Östra Flandern" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Flamländska Brabant" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hainaut" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Liege" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburg" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Luxemburg" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Vallonska Brabant" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Västflandern" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Huvudstadsregionen Bryssel" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Flandern" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Vallonien" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "Ange ett giltig postnummer i området och formatet 1XXX-9XXX." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Ange ett giltigt telefonnummer i något av formaten 0x xxx xx xx, 0xx xx xx " -"xx, 04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, " -"0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Fyll i ett postnummer med formatet XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Telefonnummer måste vara i formatet XX-XXXX-XXXX." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Välj ett giltigt alternativ. Det valet finns inte bland tillgängliga " -"alternativ." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Ogiltigt CPF-nummer." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Detta fält kräver högst 11 siffror eller 14 bokstäver." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Ogiltigt CNPJ-nummer." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Detta fält kräver minst 14 sifrror" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Fyll i ett postnummer med formatet XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"Fyll i ett giltigt Kanadensiskt \"social insurance number\" med formatet XXX-" -"XXX-XXX." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aargau" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basel-Stadt" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basel-Landschaft" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Bern" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Fribourg" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Genève" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubünden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Luzern" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchâtel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "Sankt Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zürich" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Fyll i ett giltigt Schweiziskt ID- eller passkortnummer med formatet " -"X1234567<0 eller 1234567890." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Fyll i ett giltigt chilenskt RUT" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Fyll i ett giltigt chilenskt RUT. Formatet är XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "Det chilenska RUT:et var inte giltigt." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "Ange ett postnummer i formatet XXXXXX." - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "ID-kortnummer består av 15 eller 18 siffror." - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "Ogiltigt ID-kortnummer: Felaktig kontrollsumma" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "Ogiltigt ID-kortnummer: Felaktig födelsedag" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "Ogiltigt ID-kortnummer: Felaktig platskod" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "Ange ett giltigt telefonnummer." - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "Ange ett giltigt mobiltelefonnummer." - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Prag" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Centralböhmen" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Sydböhmen" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Pilsen" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Carlsbad" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Usti" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Liberec" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Hradec" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Pardubice" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Vysocina" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "Sydmähren" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Olomouc" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Zlin" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Mähren-Schlesien" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Fyll i ett postnummer med formatet XXXXX eller XXX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "Ange ett födelsenummer i formatet XXXXXX/XXXX or XXXXXXXXXX." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "Ogiltigt val av kön, giltiga värden är 'f' och 'm'." - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Fyll i ett giltigt födelsenummer." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Ange ett giltigt IC-nummer." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Württemberg" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Bayern" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlin" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburg" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Bremen" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburg" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hessen" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklenburg-Vorpommern" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Nedre Sachsen" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "Nordrhein-Westfalen" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Rhenlandet" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Saarland" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Sachsen" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Sachsen-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Thüringen" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Fyll i ett postnummer med formatet XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Fyll i ett giltigt tyskt ID-kortnummer med formatet XXXXXXXXXXX-XXXXXXX-" -"XXXXXXX-X." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Arava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alacant" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "AlmeriaAlmería" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Ávila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Illes Balears" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barcelona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Cáceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cádiz" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castellón" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Córdoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "A Coruña" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Girona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipuzkoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaén" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "León" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lleida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madrid" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Málaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murcia" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarra" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Ourense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturien" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palencia" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Cruz de Tenerife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Kantabrien" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Sevilla" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valencia" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Biscaya" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Zaragoza" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andalusien" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragonien" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Asturien" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Balearerna" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Baskien" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Kanarieöarna" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Kastilien-La Mancha" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Kastilien och Leon" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Katalonien" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Extremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galicien" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Murciaregionen" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Navarra" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Valenciaregionen" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Fyll i ett giltigt postnummer i serien och med formatet 01XXX - 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Fyll i ett giltigt telefonnummer med ett av formaten: 6XXXXXXXX, 8XXXXXXXX " -"eller 9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Var god fyll i en giltig NIF, NIE, eller CIF." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Var god fyll i giltigt NIF eller NIE." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Ogiltig kontrollsumma för NIF." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Ogiltig kontrollsumma för NIE." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Ogiltig kontrollsumma för CIF." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Var god fyll i ett giltigt bankkontonummer i XXXX-XXXX-XX-XXXXXXXXXX-format." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Ogiltig kontrollsumma för bankkontonummer." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Fyll i ett giltigt finskt personnummer." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Telefonnummer måste vara i formatet 0X XX XX XX XX." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Fyll i ett giltigt postnummer." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Cornwall and Isles of Scilly" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cumbria" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "East Sussex" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Essex" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Gloucestershire" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Greater London" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Greater Manchester" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordshire" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "North Yorkshire" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northamptonshire" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oxfordshire" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "South Yorkshire" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordshire" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne and Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "West Midlands" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "West Sussex" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "West Yorkshire" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "County Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "County Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "County Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "County Fermanagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "County Londonderry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "County Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Mid Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "South Glamorgan" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "West Glamorgan" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Central Scotland" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries and Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Orkney Islands" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Shetland Islands" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Western Isles" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "England" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Nordirland" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Scotland" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Wales" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "Ange en giltig 13-siffrig JMBG." - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "Fel i datumdelen." - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "Ange en giltig 11-siffrig OIB." - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Ange ett giltigt bilnummer" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "Ange en giltig platskod." - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "Nummerdelen får inte vara noll." - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "Ange ett giltigt femsiffrigt postnummer." - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Fyll i ett giltigt telefonnummer." - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "Ange en giltigt riktnummer eller mobiltelefonnummer." - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "Telefonnumret är för långt." - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "Ange ett giltigt 19-siffrigt JMBAG som börjar med 601983" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "Kortutfärdarnumret får inte vara noll" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "Grad Zagreb" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "Bjelovar-Bilogoras län" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "Brod-Posavinas län" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "Dubrovnik-Neretvas län" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "Istriens län" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "Karlovacs län" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "Koprivnica-Križevcis län" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "Krapina-Zagorjes län" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "Lika-Senjs län" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "Međimurjes län" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "Osijek-Baranjas län" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "Požega-Slavoniens län" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "Primorje-Gorski kotars län" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "Sisak-Moslavinas län" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "Split-Dalmatiens län" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "Šibenik-Knins län" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "Varaždins län" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "Virovitica-Podravinas län" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "Vukovarsko-srijemska županija" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "Zadars län" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "Zagrebs län" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Ange ett giltigt postnummer" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Ange ett giltigt NIK/KTP-nummer." - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Aceh" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Banten" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Bengkulu" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Yogyakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Jakarta" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Gorontalo" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Jambi" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Jawa Barat" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Jawa Tengah" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Jawa Timur" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Kalimantan Barat" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Kalimantan Selatan" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Kalimantan Tengah" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Kalimantan Timur" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Kepulauan Bangka-Belitung" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Kepulauan Riau" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampung" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Maluku" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Maluku Utara" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Nusa Tenggara Barat" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Nusa Tenggara Timur" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papua" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Papua Barat" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Riau" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Sulawesi Barat" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Sulawesi Selatan" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Sulawesi Tengah" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Sulawesi Tenggara" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Sulawesi Utara" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Sumatera Barat" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Sumatera Selatan" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Sumatera Utara" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Magelang" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Surakarta - Solo" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madiun" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kediri" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanuli" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Nanggroe Aceh Darussalam" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Kepulauan Bangka Belitung" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Corps Consulate" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Corps Diplomatic" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Bandung" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Sulawesi Utara Daratan" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timor" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Sulawesi Utara Kepulauan" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lombok" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Papua dan Papua Barat" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Cirebon" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbawa" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Flores" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Bogor" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalongan" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Semarang" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Pati" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Surabaya" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Madura" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malang" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Jember" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banyumas" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Federala regeringen" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purwakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarjo" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Garut" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Antrim" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Armagh" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Carlow" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Cavan" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Clare" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Cork" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Derry" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Donegal" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Down" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Dublin" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fermanagh" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Galway" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerry" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Kildare" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Kilkenny" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Laois" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Leitrim" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerick" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Longford" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Louth" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Mayo" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Meath" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Monaghan" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Offaly" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Roscommon" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Sligo" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tipperary" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tyrone" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Waterford" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Westmeath" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Wexford" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Wicklow" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "Ange ett postnummer i formatet XXXXX" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Ange ett giltigt ID-nummer." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "Ange ett postnummer i formatet XXXXXX eller XXX XXX." - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "Ange en indisk stat eller territorium." - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "Telefonnummer måste vara i formatet 02X-8X, 03X-7X eller 04X-6X." - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "Fyll i ett giltigt isländskt personnummer. Formatet är XXXXXX-XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Det isländska personnumret är inte giltigt." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Fyll i ett giltigt postnummer." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Fyll i ett giltigt personnummer." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Fyll i ett giltigt VAT-nummer." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Fyll i ett postnummer med formatet XXXXXXX eller XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaido" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Yamagata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukushima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Tochigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Chiba" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tokyo" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Yamanashi" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Toyama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ischikawa" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Shizuoka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Shiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kyoto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hyogo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakayama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okayama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hiroshima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Yamaguchi" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokushima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Kochi" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kuamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Oita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Miyazaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "kagoshima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinawa" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Ange ett giltigt kuwaitiskt personnummer." - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" -"ID-kortnummer måste innehålla antingen fyra till sju siffror eller en versal " -"och sju siffror." - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "Fältet ska innehålla exakt 13 siffror." - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" -"De första sju siffrorna av UMCN-numret måste representera ett giltigt, " -"passerat datum." - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "UMCN-numret är inte giltigt." - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "Aerodrom" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "Aračinovo" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "Berovo" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "Bitola" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "Bogdanci" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "Bogovinje" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "Bosilovo" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "Brvenica" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "Butel" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "Valandovo" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "Vasilevo" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "Vevčani" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "Veles" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "Vinica" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "Vraneštica" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "Vrapčište" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "Gazi Baba" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "Gevgelija" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "Gostivar" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "Gradsko" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "Debar" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "Debarca" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "Delčevo" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "Demir Kapija" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "Demir Hisar" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "Dolneni" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "Drugovo" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "Gjorče Petrov" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "Želino" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "Zajas" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "Zelenikovo" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "Zrnovci" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "Ilinden" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "Jegunovce" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "Kavadarci" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "Karbinci" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "Karpoš" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "Kisela Voda" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "Kičevo" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "Konče" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "Koćani" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "Kratovo" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "Kriva Palanka" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "Krivogaštani" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "Kruševo" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "Kumanovo" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "Lipkovo" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "Lozovo" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "Mavrovo i Rostuša" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "Makedonska Kamenica" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "Makedonski Brod" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "Mogila" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "Negotino" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "Novaci" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "Novo Selo" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "Oslomej" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "Ohrid" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "Petrovec" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "Pehčevo" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "Plasnica" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "Prilep" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "Probištip" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "Radoviš" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "Rankovce" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "Resen" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "Rosoman" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "Saraj" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "Sveti Nikole" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "Sopište" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "Star Dojran" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "Staro Nagoričane" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "Struga" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "Strumica" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "Studeničani" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "Tearce" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "Tetovo" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "Centar" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "Centar-Župa" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "Čair" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "Čaška" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "Češinovo-Obleševo" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "Čučer-Sandevo" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "Štip" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "Šuto Orizari" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "Makedonskt ID-kortsnummer." - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "En makedonsk kommun (tvåsiffrig kod)" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "Unikt medborgarnummer (UMCN) (13 siffror)" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "Ange ett giltigt postnummer i formatet XXXXX." - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "Ange en giltig RFC." - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "Ogiltig kontrollsumma för RFC." - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "Enge en giltig CURP." - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "Ogiltig kontrollsumma för CURP." - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "Mexikansk stat (tre versaler)" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "Mexikanskt postnummer" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "Mexikanst RFC" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "Mexikanst CURP" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baja California" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baja California Sur" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Distrito Federal" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Mexikanska staten" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacán" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo León" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Querétaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potosí" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Yucatán" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Fyll i ett giltigt postnummer." - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Fyll i ett giltigt SoFi-nummer." - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drenthe" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Friesland" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Gelderland" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groningen" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Noord-Brabant" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Noord-Holland" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrecht" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zeeland" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Zuid-Holland" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Fyll i ett giltigt norskt personnummer." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Detta fält kräver 8 sifrror." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Detta fält kräver 11 sifrror." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "\"National Identification Number\" består av 11 siffror." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Fel kontrollsumma för \"National Identification Number\"" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "Nationellt ID-kortnummer består av tre bokstäver och sex siffror." - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "Felaktig kontrollsumma för nationellt ID-kortnummer." - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" -"Ange ett giltigt skattenummer (NIP) på formatet XXX-XXX-XX-XX, XXX-XX-XX-XXX " -"eller XXXXXXXXXX." - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Fel kontrollsumma för skattenumret (NIP)." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" -"National Business Register Number (REGON) består av 9 eller 14 siffror." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "Fel kontrollsumma för \"National Business Register Number\" (REGON)." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Fyll i ett postnummer med formatet XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Lower Silesia" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kuyavia-Pomerania" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublin" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubusz" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodz" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Lesser Poland" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Masovia" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opole" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Subcarpatia" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlasie" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomerania" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Silesia" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Swietokrzyskie" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Warmia-Masuria" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Greater Poland" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "West Pomerania" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "Ange ett postnummer i formatet XXXX-XXX." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "Telefonnummer måste innehålla 9 siffror eller börja på + eller 00." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Fyll i ett giltigt CIF." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Fyll i ett giltigt CNP." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "Fyll i ett giltigt IBAN med formatet ROXX-XXXX-XXXX-XXXX-XXXX-XXXX." - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Telefonnummer måste vara i formatet XXXX-XXXXXX." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Fyll i ett postnummer med formatet XXX XXX." - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "Ange ett postnummer på formatet XXXXXX." - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "Ange ett passnummer på formatet XXXX XXXXXX." - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "Ange ett passnummer på formatet XX XXXXXXX." - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "Tsentralnyj" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "Juzjnyj" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "Severo-Zapadnyj" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "Dalnevostotjnyj" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "Sibirskij" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "Uralskij" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "Privolzjskij" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "Severo-Kavkazskij" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "Moskva" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "Sankt Peterburg" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "Moskva oblast" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "Adygeiska republiken" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "Republiken Basjkirien" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "Republiken Burjatien" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "Altajrepubliken" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "Dagestanrepubliken" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "Ingushskaya" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "Kabardinien-Balkarien" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "Kalmuckien" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "Karatjajen-Tjerkessien" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "Karelska republiken" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "Komi" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "Mari" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "Mordvinien" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "Sacha" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "Republiken Nordossetien-Alanien" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "Tatarstan" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "Tuva" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "Udmurtienr" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "Chakassien" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "Tjetjenien" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "Tjuvasjien" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "Altaj kraj" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "Zabajkalskij kraj" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "Kamtjatka kraj" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "Krasnodar kraj" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "Krasnojarsk kraj" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "Perm kraj" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "Primorje kraj" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "Stavropol kraj" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "Chabarovsk kraj" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "Amur oblast" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "Archangelsk oblast" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "Astrachan oblast" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "Belgorod oblast" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "Brjansk oblast" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "Vladimir oblast" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "Volgograd oblast" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "Vologda oblast" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "Voronezj oblast" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "Ivanovo oblast" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "Irkutsk oblast" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "Kaliningrad oblast" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "Kaluga oblast" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "Kemerovo oblast" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "Kirov oblast" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "Kostroma oblast" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "Kurgan oblast" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "Kursk oblast" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "Leningrad oblast" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "Lipetsk oblast" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "Magadan oblast" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "Murmansk oblast" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "Nizjnij Novgorod oblast" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "Novgorod oblast" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "Novosibirsk oblast" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "Omsk oblast" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "Orenburg oblast" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "Orjol oblast" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "Penza oblast" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "Pskov oblast" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "Rostov oblast" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "Rjazan oblast" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "Samara oblast" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "Saratov oblast" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "Sachalin oblast" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "Sverdlovsk oblast" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "Smolensk oblast" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "Tambov oblast" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "Tver oblast" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "Tomsk oblast" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "Tula oblast" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "Tiumen oblast" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "Uljanovsk oblast" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "Tjeljabinsk oblast" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "Jaroslavl oblast" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "Judiska autonoma länet" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "Nentsien" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "Chantien-Mansien" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "Tjuktjien" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "Jamalo-Nentsien" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Ange ett giltigt svenskt organisationsnummer." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Ange ett giltigt svenskt personnummer." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Koordinationsnummer är ej tillåtna." - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "Ange ett giltigt svenskt postnummer i formatet XXXXX." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Stockholm" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Västerbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norrbotten" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Uppsala" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Södermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Östergötland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Jönköping" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmar" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Gotland" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Blekinge" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Skåne" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halland" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Västra Götaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Värmland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Örebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Västmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Dalarna" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gävleborg" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Västernorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jämtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" -"De första sju siffrorna av EMSO måste representera ett giltigt, passerat " -"datum." - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "EMSO är inte giltig." - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "Ange ett giltigt skattenummer på formatet SIXXXXXXXX." - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" -"Ange ett giltigt telefonnummer på formatet +386XXXXXXXX eller 0XXXXXXXX." - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Banska Bystrica" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banska Stiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Banovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytca" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Cadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolny Kubin" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajska Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenne" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kezmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komarno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Kosice I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Kosice II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Kosice III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Kosice IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Kosice - okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucke Nove Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoca" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovsky Mikulas" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lucenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Namestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nove Mesto nad Vahom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nove Zamky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizanske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piestany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltar" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povazska Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Presov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Puchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revuca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Roznava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ruzomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spisska Nova Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stara Lubovna" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidnik" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Sala" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolcany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebisov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trencin" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turcianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdosin" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velky Krtis" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Zarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Zilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Banska Bystrica-regionen" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Bratislava-regionen" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Kosice-regionen" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Nitra-regionen" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Presov-regionen" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Trencin-regionen" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Trnava-regionen" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Zilina-regionen" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "Ange ett postnummer i formatet XXXXX." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Telefonnummer måste anges i formatet 0XXX XXX XXXX." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Ange ett giltigt turkiskt personnummer." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "Turkiska personnummer måste vara 11 siffror." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Fyll i ett postnummer med formatet XXXXX eller XXXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Telefonnummer måste vara i formatet XXX-XXX-XXXX." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "Fyll i ett giltigt amerikanskt personnummer i formatet XXX-XX-XXXX." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "Ange en amerikansk delstat eller territorium." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Delstat i USA (två versaler)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "U.S.A. postnummer (två versaler)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Telefonnummer" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" -"Ange ett giltigt CI-nummer i formatet X.XXX.XXX-X,XXXXXXX-X eller XXXXXXXX." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Ange ett giltigt CI-nummer." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Fyll i ett giltigt Sydafrikanskt ID-nummer." - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Fyll i ett giltigt Afrikanskt postnummer." - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Eastern Cape" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Free State" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Northern Cape" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "North West" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Western Cape" diff --git a/django/contrib/localflavor/locale/sw/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/sw/LC_MESSAGES/django.mo deleted file mode 100644 index b23b2b79bc..0000000000 Binary files a/django/contrib/localflavor/locale/sw/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/sw/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/sw/LC_MESSAGES/django.po deleted file mode 100644 index 273a54e289..0000000000 --- a/django/contrib/localflavor/locale/sw/LC_MESSAGES/django.po +++ /dev/null @@ -1,3526 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2011-01-19 16:22+0000\n" -"Last-Translator: Django team\n" -"Language-Team: Swahili (http://www.transifex.net/projects/p/django/language/" -"sw/)\n" -"Language: sw\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "" - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "" - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "" - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "" - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "" - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "" - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "" - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "" - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "" - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "" - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "" - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "" - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "" - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "" - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "" - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "" - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "" - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "" - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "" - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "" - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "" - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "" - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "" - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "" - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "" - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "" - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "" - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "" - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "" - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "" - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "" - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "" - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "" - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "" - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "" - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "" - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "" - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "" - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "" - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "" - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "" - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "" - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "" - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "" - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "" - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "" - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "" - -#: us/models.py:26 -msgid "Phone number" -msgstr "" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "" - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "" diff --git a/django/contrib/localflavor/locale/ta/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/ta/LC_MESSAGES/django.mo deleted file mode 100644 index e7c5b9a328..0000000000 Binary files a/django/contrib/localflavor/locale/ta/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/ta/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/ta/LC_MESSAGES/django.po deleted file mode 100644 index 87645234de..0000000000 --- a/django/contrib/localflavor/locale/ta/LC_MESSAGES/django.po +++ /dev/null @@ -1,3527 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Tamil (http://www.transifex.net/projects/p/django/language/" -"ta/)\n" -"Language: ta\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "" - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "" - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "" - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "" - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "" - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "" - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "" - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "" - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "" - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "" - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "" - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "" - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "" - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "" - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "" - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "" - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "" - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "" - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "" - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "" - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "" - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "" - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "" - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "" - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "" - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "" - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "" - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "" - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "" - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "" - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "" - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "" - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "" - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "" - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "" - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "" - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "" - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "" - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "" - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "" - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "" - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "" - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "" - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "" - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "" - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "" - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "U.S. மாநிலம் (இரண்டு மேல் எழுத்துவகை எழுத்து" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "" - -#: us/models.py:26 -msgid "Phone number" -msgstr "தொலைபேசி எண்" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "" - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "" diff --git a/django/contrib/localflavor/locale/te/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/te/LC_MESSAGES/django.mo deleted file mode 100644 index 3c59a75a1b..0000000000 Binary files a/django/contrib/localflavor/locale/te/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/te/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/te/LC_MESSAGES/django.po deleted file mode 100644 index 61d5a330a2..0000000000 --- a/django/contrib/localflavor/locale/te/LC_MESSAGES/django.po +++ /dev/null @@ -1,3533 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# bhaskar teja yerneni , 2011. -# Jannis Leidel , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: bhaskar teja yerneni \n" -"Language-Team: Telugu (http://www.transifex.net/projects/p/django/language/" -"te/)\n" -"Language: te\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "దయచెసి తపాలు సంహిత NNNN లెక ANNNNAAA రూపలవన్యములొ ఇవ్వండి" - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "ఈ క్షేత్రములో కేవలము అంకెలు మాత్రమే సమర్పించగలరు " - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "ఈ క్షేత్రములో కేవలము 7 లేక 8 అంకములు మాత్రమే సమర్పించగలరు." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "దయచేసి సరైన CUIT(XX-XXXXXXXX-X లెక XXXXXXXXXXXX రూపలవన్యం) ఇవ్వండి." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "సరికాని CUIT." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "బుర్గెన్లాండ్" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "కారింథియా" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "లొవర్ ఆస్ట్రియ" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "అప్పర్ ఆస్ట్రియ" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "సాల్సబర్గ్" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "స్టైరియా" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "టైరొల్" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "వొరార్లబెర్గ్" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "వియెన్నా" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "దయచేసి తపాలు సంహిత XXXX రూపలవన్యములొ ఇవ్వండి." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "దయచేసి సరైన ఆస్ట్రేలియన్ సొషల్ సెక్యురిటి (XXXX XXXXXX రూపలవన్యము) సంఖ్య ఇవ్వండి." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "అంత్వేర్ప్ " - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "బ్రుస్సేల్స్ " - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "తూర్పు ఫ్లన్దేర్స్ " - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "ఫ్లెమిష్ బ్రబంట్" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "హైనుట్ " - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "లిఎగే " - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "లింబర్గ్" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "నాముర్" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "వాల్లూన్ బ్రబంట్ " - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "పశ్చిమ ఫ్లన్దేర్స్ " - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "బ్రుస్సేల్స్ రాజధాని ప్రదేశము " - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "ఫ్లెమిష్ ప్రదేశము" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "వాల్లోనియా " - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "దయచేసి తపాలు సంహిత XXXXX-XXX రూపలవన్యములొ ఇవ్వండి." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "దూరవాణి సంఖ్య XX-XXXX-XXXX రూపలావన్యములొ ఉండాలి." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "సరైన బ్రజిలియన్ రజ్యము ఏర్పర్చండి. ఈ రజ్యం లభ్యమైన రజ్యాలొ లెదు." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "చెల్లని CPF సంఖ్య" - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "" - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "చెల్లని CNPJ సంఖ్య" - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "దయచేసి తపాలు సంహిత XXX XXX రూపలవన్యములొ ఇవ్వండి." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "దయచేసి సరైన కనెడియన్ సొషల్ ఇన్షురన్స్ (XXX-XXX-XXX రూపలవన్యము) సంఖ్య ఇవ్వండి." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "ఆర్గౌ" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "ఆప్పెంజెల్ ఈన్నెర్హొడెన్" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "ఆప్పెంజెల్ ఆఉస్సెర్హొడెన్" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "బసెల్-స్టద్ట్" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "బసెల్-లాండ్" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "బర్న్" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "ఫ్రిబౌర్గ్" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "జెనీవా" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "గ్లారస్" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "గ్రౌబెండెన్" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "జుర" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "లుకర్న్" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "న్యుకటెల్" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "నిడ్వాల్డెన్" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "ఒబ్వాల్డెన్" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "షఫౌసెన్" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "ష్విజ్" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "సొలొథర్న్" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "స్త్.గాలెన్" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "తర్గౌ" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "తికినొ" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "ఉరి" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "వలె" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "వౌడ్" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "జుగ్గ" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "జురిక్" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"దయచేసి సరైన స్విస్సు గుర్తు లెక పాస్పొర్టు సంఖ్య ఇవ్వండి (X1234567<0 లెక 1234567890 " -"రూపలావన్యము)" - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "దయచేసి సరైన చిలి RUT ఇవ్వండి." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "సరైన చిలి RUT (XX.XXX.XXX-X రూపలవన్యము) సంఖ్య ఇవ్వండి." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "మీరు ఇచ్చిన చిలి RUT చెల్లదు." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "ప్రెగ్" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "మధ్య బోహేమియన్ ప్రదేశము " - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "దక్షిణ బోహేమియన్ ప్రదేశము " - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "పిల్సేన్ ప్రదేశము" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "కార్ల్సబాద్ " - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "దయచేసి తపాలు సంహిత (XXXXX లెక XXX XX రూపలవన్యములొ )ఇవ్వండి." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "దయచేసి సరియిన పుట్టిన తేదిను ఇవ్వండి " - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "" - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "భాడెన్-వెర్తెంబెర్గ్" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "బవారియా" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "బెర్లిన్" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "బ్రాండెంబర్గ్" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "బ్రెమెన్" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "హంబర్గ్" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "హెస్సెన్" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "మెక్లెంబర్గ్-పశ్చిమ ఫొమెరనియా" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "లౌఎర్ సాక్సొని" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "ఉత్తర రైన్-వెస్టఫలియా" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "రైనెలాండ్-ఫలాటినట్" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "సార్లాండ్" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "సాక్సొని" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "సాక్సొని-అనాట్" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "శ్లెజ్విగ్-హొల్సటైన్" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "థురింగియా" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "దయచేసి తపాలు సంహిత XXXXX రూపలవన్యములొ ఇవ్వండి." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"దయచేసి సరైన జర్మన్ గుర్తు చీట్లు (XXXXXXXXXXX-XXXXXXX-XXXXXXX-X రూపలవన్యము) సంఖ్య " -"ఇవ్వండి." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "అరవ" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "అల్బాసెట్" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "అలకంట్" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "అల్మిరియా" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "అవిల" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "బడాజొజ్జ్" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "ఇల్లెస్ బలేర్స్" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "బార్సిలొనా" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "బర్గొస్" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "కసిరెస్" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "కడిజ్" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "kasTello" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "సియుడాడ్ రియాల్" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "కొర్డొబా" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "ఆ కొరున్యా" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "కువెంకా" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "గిరొనా" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "గ్రనడా" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "గువడలజర" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "గువిపుజకొవ" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "హువెల్వ" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "హుఎస్కా" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "జేన్" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "లియొన్" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "లైడ" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "ల రిఒజ" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "లుగొ" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "మాడ్రిడ్" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "మలగా" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "మర్కియ" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "నవర్రె" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "ఔరెన్సె" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "అస్టురియాస్" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "పలెన్శియా" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "లా పామాస్" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "పొంటెవెడెర" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "సలమంక" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "సాంట క్రుజ్ ద టెనెరిఫె" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "కంటబ్రియా" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "సెగొవియా" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "సెవియా" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "సొరియా" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "టర్రగొన" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "టెరువెల్" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "టొలిడొ" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "వెలెన్షియా" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "వల్లడొలిడ్" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "బిజ్కైయా" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "జమొర" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "జరగొసా" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "క్యుట" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "మెలిల్ల్యా" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "అండలుసియా" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "ఎరొగొన్" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "ప్రిన్సిపాలిటి ఒఫ్ ఆస్టురియాస్" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "బలెయారిక్ ద్వీపాలు" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "బాస్క్ దెశం" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "కనరి ద్వీపాలు" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "కస్తిల్-ల మంక" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "కస్టిల్ మరియు లియొన్" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "కటలొనియా" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "ఎక్స్ట్రీమదుర" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "గలిషియా" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "మర్కియ రాజ్యము" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "ఫొరల్ కమ్యునిటి ఒఫ్ నావర్రె" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "వాలెన్షియన్ కమ్యునిటి" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"దయచేసి సరైన దూరవాణి సంఖ్య ఇవ్వండి (6XXXXXXXX, 8XXXXXXXX లెక 9XXXXXXXX రూపలావన్యము)" - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "దయచేసి సరైన NIF, NIE లెక CIF ఇవ్వండి ." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "దయచేసి సరైన NIF లెక NIEఇవ్వండి." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "చెల్లని NIF నియంతృలెక్యం." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "చెల్లని NIE నియంతృలెక్యం." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "చెల్లని CIF నియంతృలెక్యం." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "దయచేసి సరైన కొఠీ లెక్య సంఖ్య ఇవ్వండి (XXXX-XXXX-XX-XXXXXXXXXX రూపలావన్యము)" - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "చెల్లని కొఠీ లెక్క సంఖ్య నియంతృలెక్యం." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "దయచెసి సరైన ఫిన్నిష్ సొషల్ సెక్యురిటి సంఖ్య ఇవ్వండి." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "" - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "దయచేసి సరైన తపాలు సంహిత ఇవ్వండి." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "బెడ్ఫర్డషైర్" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "బఖింఘమషైర్" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "చెషైర్" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "కార్న్వాల్ మరియు సిసిల్లీ ద్వీపాలు" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "కంబ్రియా" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "డెర్బీషైర్" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "డెవొన్" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "డొర్సెట్" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "డుర్హం" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "తూర్పు సుస్సెక్స" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "ఎసెక్స" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "గ్లౌసెస్తెరషైర్" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "గ్రెటర్ లండన్" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "గ్రెటర్ మాంచెస్టర్" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "హాంపషైర్" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "హెర్ట్ఫొర్డషైర్" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "కెంట్" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "లెంకషైర్" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "లెసెటర్షర్" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "లింకన్షర్" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "మర్సీసైడ్" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "నార్ఫొల్క" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "ఉత్తర యొర్కషైర్" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "నార్తంప్టొనషైర్" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "నార్థంబెర్లాండ్" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "నాటింఘమషైర్" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "ఆక్ష్ఫర్డషైర్" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "ష్రొపషైర్" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "సొమర్సెట్" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "దక్షిణ యొర్కషైర్" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "స్టఫ్ఫొర్డషైర్" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "సఫ్ఫొల్క" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "సుర్రెయ్" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "టైన్ మరియు వెర్" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "వార్విక్షైర్" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "పశ్చిమ మిడ్లాండ్స" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "పశ్చిమ ససెక్స" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "పశ్చిమ యొర్కషైరె" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "విల్టషైర్" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "వొర్సెస్టషైర్" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "కౌంటీ అంట్రిం" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "కౌంటీ అర్మాఘ్" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "కౌంటీ డౌన్" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "కౌంటీ ఫెర్మనాఘ్" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "కౌంటీ లొండొండెర్రీ" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "కౌంటీ టైరొన్" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "క్ల్వైడ్" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "డైఫెద్" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "గ్వెంట్" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "గ్వైనెడ్" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "మిడ్ గ్లమార్గాను" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "పొవిస్" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "దక్షిణ గ్లమార్గాను" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "పశ్చిమ గ్లమార్గాను" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "బార్డర్స్" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "మధ్యస్థమైన స్కాట్లాండ్" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "డుంఫ్రిఎస్ మరియు గెలొవెస్" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "ఫిఫె" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "గ్రాంపియన్" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "హైలాండ్" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "లొతియన్" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "ఓర్క్నీ ద్వీపాలు" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "షెట్లాండ్ ద్వీపాలు" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "స్త్రట్తక్లైడ్" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "టేసైడ్" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "వెస్టెర్న ద్వీపాలు" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "ఇంగ్లాండ్" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "నార్తెర్న ఐర్లాండ్" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "స్కాట్లాండ్" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "వెల్స్" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "దయచెసి సరైన దూరవాణి సంఖ్య ఇవ్వండి" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "దయచేసి సరియిన తపాలా సంక్యను ఇవ్వండి " - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "దయచేసి సరియిన NIK/KTP సంక్యను ఇవ్వండి " - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "బాలి " - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "జకార్త" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "గోరోంటలో" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "జాంబి " - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "దయచేసి సరైన ఐస్లాండిక్ గుర్తు(XXXXXX-XXXX రూపలవన్యము) సంఖ్య ఇవ్వండి." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "చెల్లని ఐస్లాండిక్ గుర్తు సంఖ్య." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "దయచేసి సరైన తపాలు సంహిత ఇవ్వండి." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "దయచేసి సరైన సొషల్ సెక్యురిటి సంఖ్య ఇవ్వండి." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "దయచేసి సరైన VAT సంఖ్య ఇవ్వండి." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "దయచేసి తపాలు సంహిత (XXXXX-XXX లెక XXX-XXXX రూపలవన్యము ) ఇవ్వండి." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "హొకైడొ" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "ఒమొరి" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "ఇవాటె" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "మియాగి" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "అకిట" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "యమగాట" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "ఫుకుషిమ" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "ఇబరాకి" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "టొచిగి" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "గున్మ" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "సైతమా" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "చిబ" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "టొకియొ" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "కనగావా" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "యమనాషి" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "నగానొ" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "నీగాట" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "టొయామా" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "ఇషికావా" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "ఫుకుయి" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "గిఫు" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "షిజుఒక" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "ఐచి" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "మి" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "షిగ" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "క్యొటొ" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "ఒసాకా" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "హ్యొగొ" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "నారా" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "వకయామా" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "టొట్టొరి" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "షిమానె" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "ఒకయామా" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "హిరొషిమా" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "యామాగుచ్చి" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "టొకుషిమా" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "కగావా" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "ఎహిమె" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "కొచి" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "ఫుకొకు" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "సగా" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "నాగాసాకి" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "కుమమొటొ" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "ఒయిటొ" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "మియజాకి" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "కాగొషిమా" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "ఒకినావా" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "అగూస్కలియెంటెస్" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "బాహా కాలిఫొర్నియ" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "బాహా కాలిఫొర్నియ సుర్" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "కంపెచె" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "చిహువహువ" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "చియపస్" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "కోహుయిల" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "కొలిమ" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "డిస్ట్రిటొ ఫెడ్రల్" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "డురంగొ" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "గువెర్రెరొ" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "గువనజువటొ" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "హిడల్గొ" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "జలిస్కొ" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "ఏస్తడొ డ మెక్సికొ" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "మికోకన్" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "మొరెలొస్" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "నయరిట్" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "నుఎవొ లియొన్" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "ఓక్సక" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "పువెబ్ల" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "కువెరెటరొ" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "క్వింటన రూ" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "సినలో" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "సన్ లువిస్ పొటొసి" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "సొనొర" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "టబస్కొ" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "టమౌలిపాస్" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "లక్స్కాలా" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "వెరక్రుజ్" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "యుకటన్" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "జకటెకాస్" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "దయచేసి సరైన తపాలు సంహిత ఇవ్వండి" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "దయచేసి సరైన SoFi సంఖ్య ఇవ్వండి." - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "డ్రెంత్" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "ఫ్లెవొలాండ్" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "ఫ్రియెస్లాండ్" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "జెల్దెర్లాండ్" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "గ్రొనింజెన్" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "నొర్డ్-బ్రబంట్" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "నొర్డ్-హలాండ్" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "ఒవెరిస్సెల్" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "యూట్రెక్" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "జీలాండ్" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "జుఇడ్-హాలాండ్" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "దయచెసి సరైన నార్వెజియన్ సొషల్ సెక్యురిటి సంఖ్య ఇవ్వండి." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "" - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "" - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "" - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "చెల్లని రష్ట్ర గుర్తు సంఖ్య నియంతృలెక్యము" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "చెల్లని పన్ను సంఖ్య (ణీఫ్)నియంతృలెక్యము" - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "చెల్లని రష్ట్ర వ్వవహార లెక్క పట్టి సంఖ్య నియంతృలెక్యము (REGON)." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "దయచేసి తపాలు సంహిత XX-XXX రూపలవన్యములొ ఇవ్వండి." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "లౌఎర్ సిలెసియ" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "కుయవియ-పొమెరానియ" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "లబ్లిన్" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "లుబుస్" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "లొడ్జ్" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "లెస్సెర్ పొలాండ్" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "మసొవియ" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "ఒపొల్" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "సుబ్కర్పతియ" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "పొడ్లసి" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "పొమెరానియా" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "సిలెసియా" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "స్విటొక్ర్జిస్కియె" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "వర్మియ-మాసురియా" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "గ్రేటెర్ పొలాండ్" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "పశ్చిమ పొమెరనియా" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "" - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "దయచేసి సరైన CIF ఇవ్వండి." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "దయచేసి సరైన CNP ఇవ్వండి." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "దయచేసి సరైన IBAN (ROXX-XXXX-XXXX-XXXX-XXXX రూపలవన్యము) ఇవ్వండి." - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "దూరవాణి సంఖ్య XXXX-XXXXXX రూపలవన్యములొ ఇవ్వాలి." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "దయచేసి సరైన తపాలు సంహిత XXXXXX రూపలవన్యములొ ఇవ్వండి." - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "" - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "" - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "బన్స్క బైస్ట్రిక" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "బన్స్క స్టీవ్నిక" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "భర్డెజొవ్" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "బనొవ్స నడ్ బెబ్రవౌ" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "బ్రెజ్నొ" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "బ్రాటిస్లావా I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "బ్రాటిస్లావా II " - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "బ్రాటిస్లావా III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "బ్రాటిస్లావా IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "బ్రాటిస్లావా V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "బిట్స" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "కడ్క" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "దెట్వ" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "డొల్ని కుబిన్" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "డునజస్క స్ట్రెడ" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "గలంటా" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "గెల్నికా" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "లొహొవెక్" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "హుమీనె" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "ఇలావ" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "కెజ్మరొక్" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "కొమార్నొ" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "కొసైస్ I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "కొసైస్ II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "కొసైస్ III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "కొసైస్ IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "కొసైస్ - ఒకొలి" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "క్రుపిన" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "kysuke nove mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "లెవిస్" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "లెవొక" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "లిప్టొవ్స్కి మికులాస్" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "లుసెనెక్" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "మలకీ" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "మార్టిన్" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "మెద్జిలబొర్స్" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "మిషాలొవ్సె" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "మైజావా" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "నేంస్తొవొ" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "నిట్రా" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "నొవె మెస్టొ నడ్ వాహొం" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "నొవె జంకి" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "పర్తిజన్స్కె" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "పెజినొక్" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "పిఎస్టాని" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "పొల్టర్" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "పొప్రడ్" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "పొవజ్స్క బ్య్స్ట్రిక" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "ప్రెసొవ్" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "ప్రిఎవిద్జ" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "పుచొవ్" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "రెవుక" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "రిమవ్స్క సొబొట" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "రొజ్నవ" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "రుజొంబెరొక్" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "సబినొవ్" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "సెనెక్" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "సెనికా" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "స్కాలికా" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "స్నిన" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "సొబ్రన్సె" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "స్పిస్స్కా నొవ వెస్" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "స్టరలుబ్నొవ" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "స్ట్రొప్కొవ్" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "స్విడ్నిక్" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "సాలా" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "టొపొల్కొని" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "ట్రెబిసొవ్" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "త్రెంకిన్" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "నావా" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "టుర్చీన్స్కె టెప్లిచె" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "దొసిన్" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "వెల్కై రిటిస్" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "వ్రనొవ్ నాడ్ టొప్లౌ" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "జ్లటె మొరావ్సె" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "జ్వొలెన్" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "జార్నొవిక" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "జీర్ నాడ్ రొనొం" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "జిలిన" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "భన్స్క భైస్త్రిక రాజ్యం" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "బ్రాటిస్లావ రాజ్యము" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "కొసైస్ రాజ్యము" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "నిట్రా రాజ్యము" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "ప్రెసావు రాజ్యము" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "ట్రెంకిన్ రాజ్యము" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "ట్ర్నావా రాజ్యము" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "జిలిన రాజ్యము" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "దయచేసి తపాలు సంహిత (XXXXX లెక XXXXX-XXXX రూపలవన్యము) ఇవ్వండి." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "" - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "దయచేసి సరైన అమెరిక సొషల్ సెక్యురిటి (XXX-XX-XXXX రూపలవన్యము) సంఖ్య ఇవ్వండి." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "అమెరికా రాజ్యము" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "" - -#: us/models.py:26 -msgid "Phone number" -msgstr "ఫోన్ నంబరు" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "" - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "దయచేసి సరైన దక్షిణ ఆఫ్రిక ఐడ్ ఇవ్వండి." - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "దయచేసి సరైన దక్షిణ ఆఫ్రిక తపాలు సాంహిత ఇవ్వండి." - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "తూర్పు కెప్" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "ఫ్రీ స్టెట్" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "గౌటెంగ్" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "క్వజులు-నటాల్" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "లింపొపొ" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "పుమలంగ" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "naarterna kEp" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "పశ్చిమ కెప్" diff --git a/django/contrib/localflavor/locale/th/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/th/LC_MESSAGES/django.mo deleted file mode 100644 index 1392a95d9d..0000000000 Binary files a/django/contrib/localflavor/locale/th/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/th/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/th/LC_MESSAGES/django.po deleted file mode 100644 index b7848b702b..0000000000 --- a/django/contrib/localflavor/locale/th/LC_MESSAGES/django.po +++ /dev/null @@ -1,3533 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011. -# Suteepat Damrongyingsupab , 2012. -# Vichai Vongvorakul , 2012. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-12 06:54+0000\n" -"Last-Translator: Suteepat Damrongyingsupab \n" -"Language-Team: Thai (http://www.transifex.net/projects/p/django/language/" -"th/)\n" -"Language: th\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "กรุณาใส่รหัสไปรษณีย์ ในรูปแบบของ NNNN หรือ ANNNNAAA " - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "ฟิลด์นี้ต้องการเฉพาะตัวเลขเท่านั้น" - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "ฟิลด์นี้ต้องการตัวเลขจำนวน 7 หรือ 8 หลัก" - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "ใส่ CUIT ในรูปของ XX-XXXXXXXX-X หรือ XXXXXXXXXXXX" - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "CUIT ไม่สมบูรณ์" - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "เบอร์เกินแลนด์" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "คารินเธีย" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "ออสเตรียใต้" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "ออสเตรียเหนือ" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "แซลซ์เบิร์ก" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "สไตเรีย" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "ไทรอล" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "โวราร์ลเบิร์ก" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "เวียนนา" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "ใส่รหัสไปรษณีย์ในรูปแบบของ XXXX" - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "ใส่หมายเลขประกันสังคมออสเตรีย ในรูปแบบ XXXX XXXXXX " - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "ใส่หมายเลขรหัสไปรษณีย์ 4 หลัก" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "แอนต์เวิร์ป" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "กรุงบรัสเซลส์" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "ฟลานเดอร์ตะวันออก" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "ฟลามส์บราบานต์" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "แอโน" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "ไลกี" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "ลิมเบอร์ก" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "ลักเซมเบิร์ก" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "นามูร์" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "วัลลูนบราแบนต์" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "ฟลานเดอร์ตะวันตก" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "เขตเมืองหลวงบรัสเซลส์" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "เขตฟลามส์" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "เขตวัลลูน" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "โปรดใส่รหัสไปรษณีย์ที่ถูกต้องทั้งระยะช่วงและรูปแบบ 1XXX - 9XXX." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"โปรดใส่หมายเลขโทรศัพท์ในรูปแบบใดรูปแบบหนึ่ง ดังต่อไปนี้ 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "ใส่รหัสไปรษณีย์ในรูปแบบ XXXXX-XXX " - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "ใส่หมายเลขโทรศัพท์ในรูปแบบ XX-XXXX-XXXX " - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "เลือกชื่อเมืองของบราซิล" - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "ตัวเลข CPF ไม่สมบูรณ์" - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "ฟิลด์นี้ต้องการตัวเลขมากที่สุด 11 หรือ 14 ตัว" - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "ตัวเลข CNPJ ไม่สมบูรณ์" - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "ฟิลด์นี้ต้องการตัวเลขอย่างน้อย 14 หลัก" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "ใส่รหัสไปรษณีย์ในรูปแบบ XXX XXX " - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "ใส่หมายเลขของบัตรประกันสังคมแคนาดา ในรูปแบบ XXX-XXX-XXX " - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "อาร์เกา" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "แอพเพ็นเซล อินเนอร์ฮอเดน" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "แอพเพ็นเซล ออสเซอร์ฮอเดน" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "บาเซิล-ชตัดท์" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "บาเซิล-ชตัดท์" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "เบอร์เน" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "ฟรายบวก" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "เจนีวา" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "กลารัส" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "เกาบึนเดน" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "จูรา" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "ลูเซิร์น" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "นูชาเทล" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "นิดวาลเดน" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "ออบวาลเดน" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "ชัฟเฮาซัน" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "ชวิซ" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "โซโลเธิร์น" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "เซนท์ กัลเลน" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "เธอร์เกอ" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "ทีชิโน" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "ยูริ" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "วาเล" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "วอด" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "ซูก" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "ซูริค" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"ใส่หมายเลขประจำตัวประชาชนหรือหมายเลขพาสปอร์ต ในรูปแบบ X1234567<0 หรือ 1234567890" - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "ใส่ RUT ของชิลีที่ถูกต้อง" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "ใส่หมายเลข RUT ของชิลีที่ถูกต้องในรูปแบบ XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "RUT ของชิลีไม่ถูกต้อง" - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "เมืองปราก" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "เขตเซ็นทรัลโบฮีเมีย" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "เขตเซาท์โบฮีเมีย" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "เขตเปิลเซน" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "เขตคาร์ลสแบด" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "เขตอูสตีนาดลาเบม" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "เขตลีเบเรซ" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "เขตฮราเดตส์กราลอเว" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "เขตปาร์ดูบีตเซ" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "เขตวีซอชีนา" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "เขตเซาท์มอเรเวีย" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "เขตออลอโมตซ์" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "เขตซลีน" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "เขตมอเรเวีย-ไซลีเชีย" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "กรุณาใส่รหัสไปรษณีย์ในรูปของ XXXXX หรือ XXX XX " - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "ใส่เลขที่เกิดในรูปแบบ XXXXXX / XXXX หรือ XXXXXXXXXX" - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "รหัสเพศไม่ถูกต้อง, ค่าที่ถูกต้องคือ 'f' และ 'm'" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "ใส่เลขที่เกิดให้ถูกต้อง" - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "ใส่หมายเลข IC ที่ถูกต้อง" - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "บาเดิน-เวือร์ทเทมแบร์ก" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "บาวาเรีย" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "เบอร์ลิน" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "บรานเดนเบิร์ก" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "เบรเมน" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "ฮัมบูร์ก" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "เฮสส์" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "เม็กเลนเบิร์กตะวันตก-โพเมราเนีย" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "แซกโซนีล่าง" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "ไรน์ เวสท์ฟาเลีย เหนือ" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "ไรน์แลนด์-พาลาทิเนต" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "ซาร์แลนด์" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "แซกโซนี" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "แซกโซนี-แอเฮาท์" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "ชเลสวิก-โฮลชไตน์" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "เธอร์ริงเกีย" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "ใส่รหัสไปรษณ๊ย์ ในรูปแบบ XXXXX" - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "ใส่หมายเลขประจำตัวประชาชนเยอรมันในรูปแบบ XXXXXXXXXXX-XXXXXXX-XXXXXXX-X" - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "อราวา" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "อัลบาเซเต" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "อลาแคนท์" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "อัลมีเรีย" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "อบียา" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "บาดาจอซ" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "หมู่เกาะแบลีแอริก" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "บาเซโลนา" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "เบอร์โกซ" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "กาเซเรส" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "คาดิซ" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "คาสเทลโล" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "ซิวดัด เรอัล" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "คอร์โดบา" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "ลา คอรุนญ่า" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "เกวงกา" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "จีโรนา" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "กรานาดา" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "กวาดาลาฮารา" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "กีปุซโกอา" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "อูเอลบา" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "อวยสกา" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "คาเอน " - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "ลีออน" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "เยย์ดา" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "ลา ริโอฮา" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "ลูโก" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "มาดริด" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "มายอกา" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "มูร์เซีย" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "นาวาร์" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "โอเรนเซ" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "อัสตูเรียส" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "ปาเลนเซีย" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "ลาส พัลมาส" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "ปอนเตเบดรา" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "ซาลามังกา" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "ซานตาครูซ ดา เตริเนเฟ" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "กันตาเบรีย" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "เซโกเบีย" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "เซบียา" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "โซเรีย" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "ตาร์ราโกนา" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "เตรวยล์" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "โตเลโด" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "บาเลนเซีย" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "บายาโดลิด" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "บิสกาเอีย" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "ซาโมรา" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "ซาราโกซา" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "เซวตา" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "เมลียา" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "อันดาลูเซีย" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "อะรากอน" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "ราชรัฐอัสตูเรียส" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "หมู่เกาะแบลีแอริก" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "แคว้นบาสค์" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "หมู่เกาะคะเนรี" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "กัสตียา-ลามันชา" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "คาสตีลและเลออน" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "คาเทโลเนีย" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "เอกเตรมาดูรา" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "กาลิเซีย" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "แคว้น มูเซียร์" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "แคว้นกฎบัตรนาวาร์ " - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "แคว้นบาเลนเซีย" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "ใส่รหัสไปรษณีย์ในรูปของ 01XXX - 52XXX " - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "ใส่เบอร์โทรศัพท์ในรูปของ 6XXXXXXXX, 8XXXXXXXX หรือ 9XXXXXXXX " - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "กรุณาใส่ NIF, NIE, หรือ CIF " - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "กรุณาใส่ NIF หรือ NIE" - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "ผลรวมตรวจสอบ สำหรับ NIF ผิดพลาด" - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "ผลรวมตรวจสอบ สำหรับ NIE ผิดพลาด" - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "ผลรวมตรวจสอบ สำหรับ CIF ผิดพลาด" - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "กรุณาใส่หมายเลขบัญชีในรูปแบบ XXXX-XXXX-XX-XXXXXXXXXX" - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "ผลรวมตรวจสอบ สำหรับบัญชีธนาคารผิดพลาด" - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "ใส่หมายเลขประกันสังคมฟินแลนด์" - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "หมายเลขโทรศัพท์จะต้องอยู่ในรูปแบบ 0x XX XX XX XX" - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "ใส่รหัสไปรษณีย์" - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "เบดฟอร์ดเชียร์" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "บัคกิ้งแฮมเชียร์" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "ชีเชียร์" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "คอนวอลล์ และไฮเซลส์แห่งซิลลี" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "คัมเบรีย" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "เดอร์บีเชียร์" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "เดวอน" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "ดอร์เซท" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "เดอร์แรม" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "ซัสเซ็กซ์ ตะวันออก" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "เอสเซ็กซ์" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "กลอสเตอร์เชียร์" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "เกรตเตอร์ ลอนดอน" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "เกรตเตอร์ แมนเชสเตอร์" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "แฮมเชียร์" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "เฮิร์ทฟอร์ดเชียร์" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "เคนท์" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "แลงคาเชียร์" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "เลสเตอร์เชียร์" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "ลินคอล์นเชียร์" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "เมอร์ซี่ไซด์" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "นอร์ฟอล์ก" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "ยอร์กเชียร์เหนือ" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "นอร์ทแฮมตันเชียร์" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "นอร์ทฮัมเบอร์แลนด์" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "นอตติ้งแฮมเชียร์" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "ออกซ์ฟอร์ดเชียร์" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "ชรอพเชียร์" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "ซอมเมอร์เซท" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "ยอร์กเชียร์ ใต้" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "สตาฟฟอร์ดเชียร์" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "ซัฟฟอล์ก" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "เซอร์รี่" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "ไทน์ และ เวียร์" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "วอร์วิกเชียร์" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "มิดแลนด์ ตะวันตก" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "ซัสเซ็กซ์ ตะวันตก" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "ยอร์กเชียร์ ตะวันตก" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "วิลท์เชียร์" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "วอร์เซสเตอร์เชียร์" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "แอนทริม" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "อามาห์" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "ดาวน์" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "เฟอร์มานาห์" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "ลอนดอนเดอร์รี่" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "ไทโรน" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "คลูวิด" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "ดิฟฟิด" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "เกวนท์" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "กวินนืดด์" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "กลามอร์แกนกลาง" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "โพวิส" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "กลามอร์แกน ใต้" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "กลามอร์แกน ตะวันตก" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "บอร์เดอส์" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "สกอตแลนด์กลาง" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "ดัมฟรายส์และแกลโลเวย์" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "ไฟฟ์" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "แกรมเพียน" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "ไฮแลนด์" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "ลอเธียน" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "เกาะออร์กนี่" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "เกาะเชตแลนด์" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "สเตรทไคลด์" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "เทย์ไซด์" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "ไอเซลส์ตะวันออก" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "อังกฤษ" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "ไอร์แลนด์เหนือ" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "สกอตต์แลนด์" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "เวลส์" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "ใส่เลขแผ่นป้ายทะเนียนรถให้ถูกต้อง" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "ใส่หมายเลขโทรศัพท์" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "ใส่รหัสที่ไปรษณีย์ให้ถูกต้อง" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "ใส่หมายเลข NIK / KTP ที่ถูกต้อง" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "เขตปกครองพิเศษอาเจะห์" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "จังหวัดบาหลี" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "จังหวัดบันเตน" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "จังหวัดเบงกูลู" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "เขตปกครองพิเศษย็อกยาการ์ตา" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "เขตนครหลวงพิเศษจาการ์ตา" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "จังหวัดโกรอนตาโล" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "จังหวัดจัมบี" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "จังหวัดชวาตะวันตก" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "จังหวัดชวากลาง" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "จังหวัดชวาตะวันออก" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "จังหวัดกาลีมันตันตะวันตก" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "จังหวัดกาลีมันตันใต้" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "จังหวัดกาลีมันตันกลาง" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "จังหวัดกาลีมันตันตะวันออก" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "หมู่เกาะบังกาเบลีตุง" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "หมู่เกาะเรียว" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "จังหวัดลัมปุง" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "จังหวัดมาลูกู" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "จังหวัดมาลูกูเหนือ" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "จังหวัดนูซาเต็งการาตะวันตก" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "จังหวัดนูซาเต็งการาตะวันออก" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "จังหวัดปาปัว" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "ใส่รหัสไปรษณีย์ในรูปแบบ XXXXX" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "ป้อนหมายเลขรหัสที่ถูกต้อง" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "ใส่หมายเลขประจำตัวประชาชนไอซ์แลนด์ในรูปของ XXXXXX-XXXX" - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "หมายเลขประจำตัวประชาชนไอซ์แลนด์ไม่ถูกต้อง" - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "ใส่รหัสไปรษณีย์" - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "ใส่หมายเลขประกันสังคม" - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "กรอกหมายเลขภาษีมูลค่าเพิ่มที่ถูต้อง" - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "ใส่รหัสไปรษณีย์ในรูปของ XXXXXXX หรือ XXX-XXXX" - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "ฮอกไกโด" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "อาโอโมริ" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "อิวาเตะ" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "มิยากิ" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "อากิตะ" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "ยามากาตา" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "ฟุกุชิมา" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "อิบารากิ" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "โตชิกิ" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "กันมา" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "ไซตามะ" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "ชิบะ" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "โตเกียว" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "คะนะงะวะ" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "ยามานาชิ" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "นากาโนะ" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "นีงะตะ" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "โทยามะ" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "อิชิคาวะ" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "ฟูกุอิ" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "กิฟู" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "ชิซูโอกะ" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "อะอิชิ" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "มิเอะ" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "ชิกะ" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "เกียวโต" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "โอซากา" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "เฮียวโงะ" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "นาระ" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "วากะยามะ" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "ทตโตะริ" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "ชิมาเนะ" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "โอกะยามะ" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "ฮิโรชิมา" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "ยามากุชิ" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "โตกุชิมะ" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "คากะวะ" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "อิฮิเมะ" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "โคจิ" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "ฟุกุโอกะ" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "ซากะ" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "นากะซากิ" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "คุมะโมโตะ" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "โออิตะ" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "มิยาซากิ" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "คาโกชิมา" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "โอคินาวะ" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "ใส่หมายเลขรหัสไปรษณีย์ 4 หลัก" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "อากวัสกาเลียนเตส" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "บาจา แคลิฟอร์เนีย" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "บาฮากาลิฟอร์เนียซูร์" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "กัมเปเช" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "ชีวาวา" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "เชียปัส" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "โกอาวีลา" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "โคลิมา" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "เม็กซิโก ซิตี้" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "ดูรังโก" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "เกร์เรโร" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "กวานาวาโต" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "ฮิดาลโก" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "จาลิสโค" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "เม็กซิโก" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "มิโชอากัง" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "มอเรโลส" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "นายาริต" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "นวยโวเลออง" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "โออาซากา" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "ปวยบลา" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "กิเรตาโร" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "กินตานาโร" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "ซีนาโลอา" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "ซันลุยส์โปโตซี" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "โซโนร่า" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "ทาบาสโค" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "ตาเมาลีปัส" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "ตลัซกาลา" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "เวรากรูซ" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "ยูกาตัง" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "ซากาเตกัส" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "ใส่รหัสไปรษณีย์" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "กรอกหมายเลขประจำตัวประชาชน" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "แดรนด์" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "เฟลโวแลนด์" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "ฟรายส์แลนด์" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "เกลเดอร์แลนด์" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "เกรอนิงเกน" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "นอร์ด บราเบนต์" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "นอร์ด ฮอลแลนด์" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "โอเวอรีเซล" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "อูเทรซ์ค" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "ซีแลนด์" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "ซูด ฮอลแลนด์" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "ใส่หมายเลขประกันสังคมนอร์เวย์" - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "ข่องนี้ต้องการตัวเลข 8 ตัว" - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "ช่องนี้ต้องการตัวเลข 11 ตัว" - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "บัตรประจำตัวประชาประกอบด้วยตัวเลข 11 ตัว" - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "ผลรวมตรวจสอบของหมายเลขประจำตัวประชาชนผิดพลาด" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "ผลรวมตรวจสอบสำหรับหมายเลขผู้เสียภาษี (NIP) ผิดพลาด." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "ผลรวมตรวจสอบ National Business Register Number (REGON) ผิดพลาด." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "ใส่รหัสไปรษณีย์ในรูปของ XX-XXX" - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "ซิลเลสเซียใต้" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "คูยาเวีย-โพเมราเนีย" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "ลูบลิน" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "ลูเบิส์ช" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "ลอดซ์" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "เลสเซอร์โปแลนด์" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "มาโซเวีย" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "โอโปล์" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "ซับคาเพเทีย" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "พอดลาซีย์" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "โพเมราเนีย" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "ซิลเลสเซีย" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "สเวียตโตเชียตสกี" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "วอร์เมีย มาซูเรีย" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "เกรทเธอร์โปแลนด์" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "โพเมราเนียตะวันตก" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "ใส่รหัสไปรษณีย์ในรูปแบบ XXXX-XXX" - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "หมายเลขโทรศัพท์ต้องมี 9 หลักหรือเริ่มต้นด้วยการ + หรือ 00" - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "กรุณาใส่ CIF" - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "กรุณาใส่ CNP" - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "ใส่หมายเลข IBAN ในรูปแบบ ROXX-XXXX-XXXX-XXXX-XXXX-XXXX" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "หมายเลขโทรศัพท์ต้องอยู่ในรูปแบบ XXXX-XXXXXX" - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "กรุณาใส่รหัสไปรษณีย์ในรูปของ XXXXXX" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "" - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "" - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "แคว้น บันสคา บิสทิคา" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "แคว้น บันสคา สเตรียนิคา" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "บาเดโยฟ" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "บานอฟเซ นาด เบบราวู" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "เบรซโน" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "บราทิสลาวา หนึ่ง" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "บราทิสลาวา สอง" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "บราทิสลาวา สาม" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "บราทิสลาวา สี่" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "บราทิสลาวา ห้า" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "ไบต์กา" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "คัดคา" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "เดทวา" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "ดอลนี่ คูบิน" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "ดูนูซกา สเตรดา" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "กาลันตา" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "เกลนิคา" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "ลอเวคช์" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "ฮูเมนเน" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "อิลลาวา" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "เคซมารอก" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "โคมาร์โน" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "แคว้น โคซิเซ หนึ่ง" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "แคว้น โคซิเซ สอง" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "แคว้น โคซิเซ สาม" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "แคว้น โคซิเซ สี่" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "แคว้น โคซิเซ โอโคไล" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "ครูพินา" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "เคียสเซียก โนฟ เมสโต" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "เลวิซ" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "เลโวคา" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "ลิบโตสกี มิคูลาส" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "ลูเซินเนค" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "มาเลคสกี" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "มาร์ติน" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "เม็ดซิลลาบอร์ซ" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "มิคัลโลฟเซอ" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "มียาวา" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "เนเมสโตโว" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "นิทรา" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "โนเฟ เมสโต นาด วาห์อม" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "โนเฟ ซามกี" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "ปาร์ติซานเก" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "เปซินอก" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "เปียสตานี" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "พอลต้าร์" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "ป็อบปราด" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "โปวาสคา บิสทิคา" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "แคว้น พรีซอฟ" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "เปรียวิซา" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "ปูชอพ" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "เรวูก้า" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "ริมาฟสกา โซโบตา" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "รอซนาวา" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "บูซอมเบรอก" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "ซาบินอฟ" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "เซเนค" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "เซนิก้า" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "สคาลิก้า" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "สนินา" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "โซบรานเซ" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "สปิสสกา โนวา เวส" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "สตรารา ลูโบฟนา" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "สตรอปคอฟ" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "สวิดนิก" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "ซาลา" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "โทพอลคานี่" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "เทรบิซอฟ" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "เทรนซิน" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "แคว้น ทนาวา" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "เทอเซียนสเค เตปลิเซ" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "ทวาโดซิน" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "เวลเค เคอติส" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "วรานอฟ นาด ท็อปพลู" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "สตาเต โทราฟเซ" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "ซโวเลน" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "ซาร์โนวีก้า" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "ไซอาร์ นาด โฮนอม" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "ซิลินา" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "แคว้น บันสคา บิสทิคา" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "แคว้น บราทิสลาวา" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "แคว้น โคซิเซ" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "แคว้น นิทรา" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "แคว้น พรีซอฟ" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "แคว้น เทรนซิน" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "แคว้น ทนาวา" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "แคว้น ซิลินา" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "ใส่รหัสไปรษณีย์ในรูปแบบ XXXXX" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "หมายเลขโทรศัพท์จะต้องอยู่ในรูปแบบ 0XXX xxx xxxx" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "ใส่รหัสไปรษณีย์ในรูปของ XXXXX หรือ XXXXX-XXXX" - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "หมายเลขโทรศัพท์จะต้องอยู่ในรูปแบบ XXX-XXX-XXXX" - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "ใส่หมายเลขประกันสังคมอเมริกา" - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "รัฐในสหรัฐ (ตัวอักษรใหญ่ 2 ตัว)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "" - -#: us/models.py:26 -msgid "Phone number" -msgstr "หมายเลขโทรศัพท์" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "" - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "ใส่หมายเลขประจำตัวประชาชนแอฟริกาใต้" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "ใส่รหัสไปรษณีย์แอฟริกาใต้" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "อิสเทิร์นแคป" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "ฟรีเสตต์" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "กัวเตง" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "ควาซูลา-เนทาล" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "ลิมโพโพ" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "มูมาลากา" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "นอร์ทเทิร์นแคป" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "นอร์ทเวสต์" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "เวสต์เทิร์นแคป" diff --git a/django/contrib/localflavor/locale/tr/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/tr/LC_MESSAGES/django.mo deleted file mode 100644 index a135a569cf..0000000000 Binary files a/django/contrib/localflavor/locale/tr/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/tr/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/tr/LC_MESSAGES/django.po deleted file mode 100644 index b8b31d1e11..0000000000 --- a/django/contrib/localflavor/locale/tr/LC_MESSAGES/django.po +++ /dev/null @@ -1,3559 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011. -# Metin Amiroff , 2011, 2012. -# Murat Çorlu , 2012. -# Murat Sahin , 2011, 2012. -# Ozan , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-12 21:26+0000\n" -"Last-Translator: Murat Çorlu \n" -"Language-Team: Turkish (http://www.transifex.net/projects/p/django/language/" -"tr/)\n" -"Language: tr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "NNNN ya da ANNNNAAA formatında bir posta kodu yazın." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Bu alan sadece rakam gerektirmektedir." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Bu alan 7 veya 8 rakam gerektirmektedir." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "XX-XXXXXXXX-X ya da XXXXXXXXXXXX formatında bir CUIT girin." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "Geçersiz CUIT." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Burgenland" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Carinthia" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Alt Avusturya" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Üst Avusturya" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Salzburg" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Styria" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Tyrol" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Vorarlberg" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Vyana" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "XXXX formatında posta kodu girin." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Lütfen XXXX XXXXXX formatında geçerli bir Avusturya Sosyal Güvenlik Numarası " -"giriniz." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "4 rakamlı postakodunu girin." - -#: au/models.py:9 -msgid "Australian State" -msgstr "Avustralya Eyaleti" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "Avustralya Posta Kodu" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "Avustralya Telefon Numarası" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "Antwerp" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Brüksel" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "Doğu Flanders" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "Flemish Brabant" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "Hainaut" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Liege" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Limburg" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Lüksemburg" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "Namur" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "Walloon Brabant" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "Batı Flanders" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "Brüksel Başkent Bölgesi" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "Flemish Bölgesi" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "Vallonya" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" -"Lütfen 1XXX - 9XXX şeklinde ve aralığında geçerli bir posta kodu giriniz." - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"Lütfen altta verilen formatlardan birisinde geçerli bir telefon numarası " -"giriniz: 0x xxx xx xx, 0xx xx xx xx, 04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx." -"xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx veya " -"04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "XXXXX-XXX formatında posta kodu girin." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Telefon numaraları XX-XXXX-XXXX formatında olmalıdır." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Lütfen geçerli bir Brezilya bölgesi seçin. Seçilen bölge mevcutlar arasında " -"yoktur." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Geçersiz CPF numarası." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Bu en fazla 11 rakam veya 14 karakter gerektirmektedir." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Geçersiz CNPJ numarası." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Bu alan en az 14 rakam gerektirmektedir" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "XXX XXX formatında posta kodunu girin." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"Lütfen XXX-XXX-XXX formatında geçerli bir Kanada Sosyal Güvenlik Numarası " -"girin." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aargau" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basel-Stadt" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basel-Land" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Berne" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Fribourg" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Cenevre" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubuenden" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucerne" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchatel" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "St. Gallen" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zürih" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Lütfen X1234567<0 veya 1234567890 formatında geçerli bir İsviçre kimlik veya " -"pasaport numarası giriniz." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Geçerli bir Şili RUT numarası girin." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Geçerli bir Şili RUT numarası girin. Format: XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "Şili RUT numarası geçersizdir." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "XXXXXX formatında bir posta kodu yazın." - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "ID Kartı Numarası 15 veya 18 basamaktan oluşur." - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "Geçersiz Kimlik Kartı Numarası: Yanlış sağlama toplamı" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "Geçersiz Kimlik Kartı Numarası: Hatalı doğum tarihi" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "Geçersiz Kimlik Kartı Numarası: Hatalı konum kodu" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "Geçerli bir telefon numarası girin." - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "Geçerli bir cep telefonu numarası girin." - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Prag" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "Merkezi Bohemia Bölgesi" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "Güney Bohemia Bölgesi" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "Pilsen Bölgesi" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "Carlsbad Bölgesi" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "Usti Bölgesi" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "Liberec Bölgesi" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "Hradec Bölgesi" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "Pardubice Bölgesi" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "Vysocina Bölgesi" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "South Moravian Bölgesi" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "Olomouc Bölgesi" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "Zlin Bölgesi" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "Moravian-Silesian Bölgesi" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "XXXXX ya da XXX XX formatında bir posta kodu girin." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" -"XXXXXX/XXXX veya XXXXXXXXXX formatında geçerli bir doğum numarası girin." - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" -"Geçersiz isteğe bağlı Cinsiyet parametresi, geçerli değerler 'f' ve 'm'dir" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "Geçerli bir doğum numarası girin." - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "Geçerli bir IC numarası girin." - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Wuerttemberg" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Bavaria" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlin" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburg" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Bremen" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburg" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Hessen" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklenburg-Batı Pomerania" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Alt Saxony" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "North Rhine-Westphalia" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Rhineland-Palatinate" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Saarland" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Saxony" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Saxony-Anhalt" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Thuringia" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "XXXXX formatında posta kodu girin." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Lütfen XXXXXXXXXXX-XXXXXXX-XXXXXXX-X formatında geçerli bir Alman kimlik " -"numarası giriniz." - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Arava" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Albacete" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alacant" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Almeria" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Avila" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Badajoz" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Illes Balears" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Barselona" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Burgos" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Caceres" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Cadiz" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Castello" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Cordoba" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "A Coruna" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Cuenca" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Girona" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Granada" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Guadalajara" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipuzkoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Huelva" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Huesca" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Jaen" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "Leon" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lleida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "La Rioja" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Lugo" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Madrid" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Malaga" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Murcia" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Navarre" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Ourense" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Asturias" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Palencia" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Las Palmas" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Pontevedra" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Salamanca" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Santa Cruz de Tenerife" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Cantabria" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Segovia" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Seville" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Soria" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Tarragona" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Teruel" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Toledo" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Valencia" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Valladolid" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Bizkaia" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Zamora" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Zaragoza" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Ceuta" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Melilla" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Andalusia" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Aragon" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Principality of Asturias" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Balearic Adaları" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Basque Country" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Canary Adaları" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Castile-La Mancha" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Castile ve Leon" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Catalonia" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Extremadura" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Galicia" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Murcia Bölgesi" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Foral Community of Navarre" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Valencian Community" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "01XXX - 52XXX aralığında ve formatında geçerli bir posta kodu girin." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"6XXXXXXXX, 8XXXXXXXX ya da 9XXXXXXXX formatlarından birisine uyan geçerli " -"bir posta kodu girin." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Lütfen geçerli bir NIF, NIE ya da CIF girin." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Lütfen geçerli bir NIF ya da NIE girin." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Yanlış NIF sağlama toplamı." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Yanlış NIE sağlama toplamı." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Yanlış CIF sağlama toplamı." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Lütfen XXXX-XXXX-XX-XXXXXXXXXX formatında geçerli bir banka hesabı numarası " -"girin." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Banka hesabı numarası için geçersiz sağlama toplamı." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Geçerli bir Finlandiya sosyal güvenlik numarası girin." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "Telefon numaraları 0X XX XX XX XX formatında olmalıdır." - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Geçerli bir posta kodu girin." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Buckinghamshire" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Cheshire" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Cornwall ve Scilly Adaları" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Cumbria" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Devon" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Dorset" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Durham" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "Doğu Sussex" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "c" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "c" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Greater London" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Greater Manchester" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Hampshire" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Hertfordshire" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Kent" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Lancashire" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Leicestershire" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Lincolnshire" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Norfolk" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "North Yorkshire" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Northamptonshire" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Northumberland" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Nottinghamshire" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Oxfordshire" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Shropshire" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Somerset" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "South Yorkshire" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Staffordshire" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Suffolk" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Surrey" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne and Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Warwickshire" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "West Midlands" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "West Sussex" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "West Yorkshire" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Wiltshire" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Worcestershire" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "County Antrim" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "County Armagh" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "County Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "County Fermanagh" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "County Londonderry" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "County Tyrone" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Orta Glamorgan" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "Kuzey Glamorgan" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "Batı Glamorgan" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Merkezi İskoçya" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Dumfries ve Galloway" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Fife" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Grampian" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Highland" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Lothian" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Orkney Adaları" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Shetland Adaları" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Strathclyde" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Tayside" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Batı Adaları" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "England" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Kuzey İrlanda" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "İskoçya" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Wales" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "Geçerli bir 13 haneli JMBG girin" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "Tarih bölümünde hata" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "Geçerli bir 11 haneli ÖİB girin" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "Geçerli bir araç plaka numarası girin" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "Geçerli bir konum kodu girin" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "Numara bölümü sıfır olamaz." - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "Geçerli bir 5 rakamlı postakodu girin." - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Geçerli bir telefon numarası girin" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "Geçerli bir alan veya mobil ağ kodu girin" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "Telefon numarası çok uzun." - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "601983 ile başlayan geçerli bir 19 basamaklı JMBAG girin" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "Kart sorunu numarası sıfır olamaz" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "Grad Zagreb" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "Bjelovarsko-bilogorska županija" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "Brodsko-posavska županija" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "Dubrovačko-neretvanska županija" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "Istarska županija" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "Karlovačka županija" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "Koprivničko-križevačka županija" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "Krapinsko-zagorska županija" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "Ličko-senjska županija" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "Međimurska županija" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "Osječko-baranjska županija" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "Požeško-slavonska županija" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "Primorsko-goranska županija" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "Sisačko-moslavačka županija" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "Splitsko-dalmatinska županija" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "Šibensko-kninska županija" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "Varaždinska županija" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "Virovitičko-podravska županija" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "Vukovarsko-srijemska županija" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "Zadarska županija" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "Zagrebačka županija" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "Geçerli bir posta kodu girin" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "Geçerli bir NIK/KTP numarası girin" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "Aceh" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "Bali" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "Banten" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "Bengkulu" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "Yogyakarta" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Jakarta" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "Gorontalo" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "Jambi" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "Jawa Barat" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "Jawa Tengah" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "Jawa Timur" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "Kalimantan Barat" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "Kalimantan Selatan" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "Kalimantan Tengah" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "Kalimantan Timur" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "Kepulauan Bangka-Belitung" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "Kepulauan Riau" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "Lampung" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "Maluku" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "Maluku Utara" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "Nusa Tenggara Barat" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "Nusa Tenggara Timur" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "Papua" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "Papua Barat" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "Riau" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "Sulawesi Barat" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "Sulawesi Selatan" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "Sulawesi Tengah" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "Sulawesi Tenggara" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "Sulawesi Utara" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "Sumatera Barat" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "Sumatera Selatan" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "Sumatera Utara" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "Magelang" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "Surakarta - Solo" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "Madiun" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "Kediri" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "Tapanuli" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "Nanggroe Aceh Darussalam" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "Kepulauan Bangka Belitung" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "Corps Consulate" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "Corps Diplomatic" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "Bandung" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "Sulawesi Utara Daratan" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "NTT - Timor" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "Sulawesi Utara Kepulauan" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "NTB - Lombok" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "Papua dan Papua Barat" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "Cirebon" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "NTB - Sumbawa" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "NTT - Flores" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "NTT - Sumba" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "Bogor" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "Pekalongan" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "Semarang" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "Pati" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "Surabaya" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "Madura" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "Malang" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "Jember" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "Banyumas" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "Federal Hükümet" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "Bojonegoro" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "Purwakarta" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "Sidoarjo" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "Garut" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "Antrim" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "Armagh" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "Carlow" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "Cavan" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "Clare" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "Cork" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "Derry" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "Donegal" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "Down" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "Dublin" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "Fermanagh" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "Galway" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "Kerry" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "Kildare" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "Kilkenny" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "Laois" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "Leitrim" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "Limerick" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "Longford" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "Louth" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "Mayo" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "Meath" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "Monaghan" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "Offaly" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "Roscommon" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "Sligo" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "Tipperary" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "Tyrone" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "Waterford" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "Westmeath" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "Wexford" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "Wicklow" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "XXXXX formatında bir posta kodu giriniz" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "Geçerli bir kimlik numarası giriniz." - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "XXXXXX veya XXX XXX biçiminde bir posta kodu girin." - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "Bir Hintli eyaleti veya bölgesi girin." - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" -"Telefon numaraları 02X-8X veya 03X-7X veya 04X-6X formatında olmalıdır." - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "Geçerli bir İzlanda kimlik numarası girin. Format: XXXXXX-XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Geçersiz İzlanda kimlik numarası." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Geçerli bir posta kodu girin." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Geçerli bir Sosyal Güvenlik numarası girin." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Geçerli bir VAT girin." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "XXXXXXX ya da XXX-XXXX formatında bir posta kodu girin." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaido" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Yamagata" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukushima" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Tochigi" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Chiba" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tokyo" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Yamanashi" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Toyama" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ishikawa" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Shizuoka" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Shiga" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kyoto" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osaka" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hyogo" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakayama" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okayama" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hiroshima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Yamaguchi" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokushima" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Kochi" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasaki" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Oita" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Miyazaki" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagoshima" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinawa" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "Geçerli bir Kuveyt kimlik numarası girin" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" -"Kimlik kartı numaraları 4 ila 7 basamak veya büyük harf ve 7 basamak " -"içermelidir." - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "Bu alan tam 13 basamak içermelidir." - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "UMCN'nin ilk 7 basamaği geçerli bir geçmiş tarihi ifade etmelidir." - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "UMCN geçerli değil." - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "Aerodrom" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "Aračinovo" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "Berovo" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "Bitola" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "Bogdanci" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "Bogovinje" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "Bosilovo" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "Brvenica" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "Butel" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "Valandovo" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "Vasilevo" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "Vevčani" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "Veles" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "Vinica" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "Vraneštica" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "Vrapčište" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "Gazi Baba" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "Gevgelija" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "Gostivar" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "Gradsko" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "Debar" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "Debarca" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "Delčevo" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "Demir Kapija" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "Demir Hisar" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "Dolneni" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "Drugovo" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "Gjorče Petrov" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "Želino" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "Zajas" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "Zelenikovo" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "Zrnovci" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "Ilinden" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "Jegunovce" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "Kavadarci" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "Karbinci" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "Karpoš" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "Kisela Voda" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "Kičevo" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "Konče" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "Koćani" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "Kratovo" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "Kriva Palanka" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "Krivogaštani" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "Kruševo" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "Kumanovo" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "Lipkovo" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "Lozovo" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "Mavrovo i Rostuša" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "Makedonska Kamenica" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "Makedonski Brod" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "Mogila" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "Negotino" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "Novaci" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "Novo Selo" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "Oslomej" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "Ohrid" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "Petrovec" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "Pehčevo" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "Plasnica" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "Prilep" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "Probištip" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "Radoviš" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "Rankovce" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "Resen" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "Rosoman" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "Saraj" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "Sveti Nikole" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "Sopište" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "Star Dojran" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "Staro Nagoričane" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "Struga" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "Strumica" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "Studeničani" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "Tearce" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "Tetovo" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "Centar" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "Centar-Župa" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "Čair" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "Čaška" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "Češinovo-Obleševo" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "Čučer-Sandevo" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "Štip" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "Šuto Orizari" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "Makedon kimlik kartı numarası" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "Bir Makedon Belediye (2 karakter kodu)" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "Benzersiz ana vatandaşlık numarası (13 haneli)" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "XXXXX biçiminde geçerli bir posta kodu girin." - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "Geçerli bir RFC girin." - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "RFC için geçersiz sağlama." - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "Geçerli bir CURP girin." - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "CURP için geçersiz sağlama." - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "Meksika devleti (üç büyük harf)" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "Meksika posta kodu" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "Meksika RFC" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "Meksika CURP" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Aguascalientes" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Baja California" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Baja California Sur" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Campeche" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Chihuahua" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Chiapas" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Coahuila" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Colima" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Distrito Federal" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Durango" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Guerrero" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Hidalgo" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Jalisco" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Estado de México" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Michoacán" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Morelos" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Nayarit" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Nuevo León" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Oaxaca" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Puebla" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Querétaro" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Quintana Roo" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Sinaloa" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "San Luis Potosí" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Sonora" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Tabasco" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Tamaulipas" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Tlaxcala" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Veracruz" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Yucatán" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Zacatecas" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Geçerli bir posta kodu girin" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Geçerli bir SoFi numarası girin" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Drenthe" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Friesland" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Gelderland" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Groningen" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Noord-Brabant" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Noord-Holland" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Overijssel" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Utrecht" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zeeland" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Zuid-Holland" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Geçerli bir Norveç Sosyal Güvenlik numarası girin." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Bu alan 8 rakam gerektirmektedir." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Bu alan 11 rakam gerektirmektedir." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Ulusal Kimlik Numarası 11 rakamdan oluşmaktadır." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Ulusal Kimlik Numarası için geçersiz sağlama toplamı." - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "Ulusal Kimlik Kartı Numarası 3 harf ve 6 rakamdan oluşur." - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "Ulusal Kimlik Kartı Numarası yanlış sağlama toplamı." - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" -"XXX-XXX-XX-XX, XXX-XX-XX-XXX veya XXXXXXXXXX biçiminde bir vergi numarası " -"alanı (NIP) girin." - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Vergi Numarası (NIP) için geçersiz sağlama toplamı." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "Ulusal İş Kayıt Numarası (REGON) 9 veya 17 rakamdan oluşmaktadır." - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "Ulusal İş Kayıt Numarası (REGON) için geçersiz sağlama toplamı." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "XX-XXX formatında bir posta kodu girin." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Alt Silesia" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kuyavia-Pomerania" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublin" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubusz" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodz" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Küçük Polonya" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Masovia" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opole" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Subcarpatia" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlasie" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomerania" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Silesia" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Swietokrzyskie" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Warmia-Masuria" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Büyük Polonya" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "Batı Pomerania" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "XXXX-XXX formatında posta kodu girin." - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" -"Telefon numaraları 9 rakamdan oluşmalı, veyahut + veya 00 ile başlamalıdır." - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Geçerli bir CIF girin." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Geçerli bir CNP girin." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "ROXX-XXXX-XXXX-XXXX-XXXX-XXXX formatında geçerli bir IBAN giriniz" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Telefon numaraları XXXX-XXXXXX formatında olmalıdır." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "XXXXXX formatında bir posta kodu girin." - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "XXXXXX biçiminde bir posta kodunu girin." - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "XXXX XXXXXX biçiminde bir pasaport numarası girin." - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "XX XXXXXXX biçiminde bir pasaport numarası girin." - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "Merkez Federal İlçe" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "Güney Federal İlçe" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "Kuzey-Batı Federal İlçe" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "Uzak-Doğu Federal İlçe" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "Sibirya Federal Vilayeti" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "Ural Federal Vilayeti" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "Privolzhsky Federal Vilayeti" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "Kuzey Kafkasya Federal Vilayeti" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "Moskova" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "Sankt Petersburg" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "Moskova bölgesi" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "Adıgeya Cumhuriyyeti" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "Başkortostan Cumhuriyyeti" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "Buryatiya Cumhuriyyeti" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "Altay Cumhuriyyeti" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "Dağıstan, Respublika" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "Ingushskaya Respublika" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "Kabardey-Balkarskaya Respublika" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "Kalmykia, Respublika" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "Karaçay-Çerkezya Respublika" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "Karelya, Respublika" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "Komi, Respublika" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "Mari Ehl, Respublika" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "Mordovya, Respublika" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "Saha, Respublika (Takutistan)" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "Severnaya Osetya, Respublika (Alania)" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "Tataristan, Respublika" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "Tuva, Respublika (Tuva)" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "Udmurtskaya Respublika" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "Khakassiya, Respublika" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "Çeçenya Respublika" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "Chuvashskaya Respublika" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "Altayskiy Kray" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "Zabaykalskiy Kray" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "Kamchatskiy Kray" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "Krasnodarskiy Kray" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "Krasnoyarskiy Kray" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "Permskiy Kray" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "Primorskiy Kray" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "Stavropol'siyy Kray" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "Khabarovskiy Kray" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "Amurskaya oblast'" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "Arkhangel'skaya oblast'" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "Astrakhanskaya oblast'" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "Belgorodskaya oblast'" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "Bryanskaya oblast'" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "Vladimirskaya oblast'" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "Volgogradskaya oblast'" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "Vologodskaya oblast'" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "Voronezhskaya oblast'" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "Ivanovskaya oblast'" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "Irkutskaya oblast'" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "Kaliningradskaya oblast'" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "Kaluzhskaya oblast'" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "Kemerovo bölgesi" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "Kirov bölgesi" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "Kostromskaya bölgesi" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "Kurganskaya bölgesi" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "Kursk bölgesi" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "Leningrad bölgesi" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "Lipeck bölgesi" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "Magadansk bölgesi" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "Murmansk bölgesi" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "Nizhegorodsk bölgesi" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "Novgorod bölgesi" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "Novosibirsk bölgesi" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "Omsk bölgesi" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "Orenburgsk bölgesi" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "Orlovsk bölgesi" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "Penzenskaya bölgesi" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "Pskovskaya bölgesi" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "Rostov bölgesi" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "Rjazan bölgesi" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "Samara bölgesi" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "Saratov bölgesi" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "Sakhalinsk bölgesi" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "Sverdlovsk bölgesi" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "Smolensk bölgesi" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "Tambov bölgesi" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "Tversk bölgesi" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "Tomsk bölgesi" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "Tula bölgesi" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "Tyumen bölgesi" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "Ul'ianovskaya bölgesi" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "Chelyabinsk bölgesi" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "Yaroslavl bölgesi" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "Evreyskaya özerk bölgesi" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "Neneckiy özerk bölgesi" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "Khanty-Mansiyskiy özerk bölgesi" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "Chukotskiy özerk bölgesi" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "Yamalo-Neneckiy özerk bölgesi" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "Geçerli bir İsveç organizasyon numarası girin." - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "Geçerli bir İsveç kimlik numarası girin." - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "Kordinat numaralarına izin verilmemektedir" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "XXXXX formatında geçerli bir İsveç posta kodu girin." - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "Stockholm" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "Västerbotten" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "Norrbotten" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "Uppsala" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "Södermanland" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "Östergötland" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "Jönköping" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "Kronoberg" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "Kalmar" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "Gotland" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "Blekinge" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "Skåne" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "Halland" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "Västra Götaland" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "Värmland" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "Örebro" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "Västmanland" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "Dalarna" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "Gävleborg" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "Västernorrland" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "Jämtland" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "EMSO'nun ilk 7 basamaği geçerli bir geçmiş tarihi ifade etmelidir." - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "EMSO geçerli değil." - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "SIXXXXXXXX biçiminde geçerli bir vergi numarası girin" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "+386 XXXXXXXX veya 0XXXXXXXX biçiminde telefon numarasını girin." - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Banska Bystrica" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banska Stiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Banovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Brezno" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Bytca" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Cadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Detva" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolny Kubin" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajska Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Galanta" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Gelnica" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Hlohovec" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenne" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ilava" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kezmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komarno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Kosice I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Kosice II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Kosice III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Kosice IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Kosice - okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Krupina" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucke Nove Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Levoca" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovsky Mikulas" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lucenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Medzilaborce" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Namestovo" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Nitra" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nove Mesto nad Vahom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nove Zamky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Partizanske" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Pezinok" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piestany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Poltar" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povazska Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Presov" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Puchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revuca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Roznava" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ruzomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Senec" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Sobrance" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spisska Nova Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stara Lubovna" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Svidnik" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Sala" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolcany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Trebisov" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Trencin" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turcianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdosin" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velky Krtis" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Zlate Moravce" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Zvolen" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Zarnovica" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Zilina" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Banska Bystrica bölgesi" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Bratislava region" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Kosice bölgesi" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Nitra region" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Presov bölgesi" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Trencin bölgesi" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Trnava bölgesi" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Zilina bölgesi" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "XXXXX formatında bir posta kodu giriniz." - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "Telefon numaraları 0XXX XXX XXXX formatında olmalıdır." - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "Lütfen geçerli TC kimlik numarası giriniz." - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "TC kimlik numarası 11 karakterden oluşmaktadır." - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "XXXXX ya da XXXXX-XXXX biçiminde bir posta kodu yazın." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "Telefon numaraları XXX-XXX-XXXX formatında olmalıdır." - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" -"XXX-XX-XXXX formatında geçerli bir A.B.D. Sosyal Güvenlik Numarası giriniz." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "ABD devlet veya bölge adı girin." - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Şehir Kodu (iki karakter)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "A.B.D. posta kodu (iki büyük harf)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Telefon numarası" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX formatında geçerli bir CI girin." - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "Geçerli bir CI numarası girin." - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Geçerli bir Güney Afrika Cumhuriyeti kimlik numarası girin" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Geçerli bir Güney Afrika Cumhuriyeti posta kodu girin" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Doğu Cape" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Free State" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Gauteng" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "KwaZulu-Natal" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Limpopo" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Mpumalanga" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Northern Cape" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "Kuzey Batı" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Batı Cape" diff --git a/django/contrib/localflavor/locale/tt/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/tt/LC_MESSAGES/django.mo deleted file mode 100644 index 871c1e2f38..0000000000 Binary files a/django/contrib/localflavor/locale/tt/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/tt/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/tt/LC_MESSAGES/django.po deleted file mode 100644 index ea0e5f900d..0000000000 --- a/django/contrib/localflavor/locale/tt/LC_MESSAGES/django.po +++ /dev/null @@ -1,3526 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2011-01-19 16:22+0000\n" -"Last-Translator: Django team\n" -"Language-Team: Tatar (http://www.transifex.net/projects/p/django/language/" -"tt/)\n" -"Language: tt\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "" - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "" - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "" - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "" - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "" - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "" - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "" - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "" - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "" - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "" - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "" - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "" - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "" - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "" - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "" - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "" - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "" - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "" - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "" - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "" - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "" - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "" - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "" - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "" - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "" - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "" - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "" - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "" - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "" - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "" - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "" - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "" - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "" - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "" - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "" - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "" - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "" - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "" - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "" - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "" - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "" - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "" - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "" - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "" - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "" - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "" - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "" - -#: us/models.py:26 -msgid "Phone number" -msgstr "" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "" - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "" diff --git a/django/contrib/localflavor/locale/uk/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/uk/LC_MESSAGES/django.mo deleted file mode 100644 index 4db0645be2..0000000000 Binary files a/django/contrib/localflavor/locale/uk/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/uk/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/uk/LC_MESSAGES/django.po deleted file mode 100644 index 6949bbda80..0000000000 --- a/django/contrib/localflavor/locale/uk/LC_MESSAGES/django.po +++ /dev/null @@ -1,3547 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011. -# Sergey Lysach , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Sergey Lysach \n" -"Language-Team: Ukrainian (http://www.transifex.net/projects/p/django/" -"language/uk/)\n" -"Language: uk\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Введіть поштовий індекс у форматі NNNN або ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "В це поле можна вводити тільки числа." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "В це поле можна вводити тільки 7 або 8 цифр." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Введіть правильний CUIT у форматі XX-XXXXXXXX-X або XXXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "Невірний CUIT." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "Бургенленд" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "Каринтія" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "Нижня Австрія" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "Верхня Австрія" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "Зальцбург" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "Штирія" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "Тіроль" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "Форарльберг" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Відень" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Введіть поштовий індекс у форматі ХХХХ." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Введіть правильний австрійський номер соціального страхування в форматі XXXX " -"XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "Брюссель" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "Льєж" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "Лімбурґ" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "Люксембург" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Введіть поштовий індекс у форматі XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Телефонні номери мають бути у форматі XX-XXXX-XXXX." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Оберіть правильний бразильський штат. Штата, який ви обрали, не має серед " -"представлених тут." - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Помилковий номер CPF." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Це поле вимагає максимум 11 цифр або 14 символів." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Помилковий номер CNPJ." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Це поле вимагає як мінімум 14 цифр" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Введіть поштовий індекс у форматі XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"Введіть правильний канадський номер соціального страхування у форматі XXX-" -"XXX-XXX." - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "Ааргау" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Аппенцелль Іннерходен" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Аппенцелль Ауссеррходен" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Базель" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Базель-Ленд" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "Берн" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Фрібург" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "Женева" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "Гларус" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Граубюнден" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "Юра" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Люцерн" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Невшатель" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Нідвальден" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Обвальден" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Шафхаузен" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Швіц" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Золотурн" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "Санкт-Галлен" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Тургау" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "Тичино" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "Урі" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "Вале" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "Во" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "Цуг" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Цюріх" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Введіть вірний номер посвідчення особи або паспорту у форматі X1234567<0 або " -"1234567890." - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "Введіть вірний чилійський RUT." - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Введіть вірний чилійський RUT. Формат: XX.XXX.XXX-X." - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "Чилійський RUT не правильний." - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "Прага" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Введіть поштовий індекс у форматі XXXXX або XXX XX." - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "" - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "" - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Баден-Вюртемберг" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "Баварія" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Берлін" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "Бранденбург" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "Бремен" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Гамбург" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "Гессен" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Мекленбург — Передня Померанія" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Нижня Саксонія" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "Північний Рейн – Вестфалія" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Райнланд-Пфальц" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "Саарланд" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Саксонія" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Саксонія-Ангальт" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Шлезвіг-Гольштайн" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "Тюрінгія" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Введіть поштовий індекс у форматі XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Введіть правильний номер німецького посвідчення особи в форматі XXXXXXXXXXX-" -"XXXXXXX-XXXXXXX-X " - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "Алава" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "Альбасете" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Аліканте" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "Альмерія" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "Авіла" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "Бадахос" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "Балеарські острови" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "Барселона" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "Бургос" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "Касерес" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "Кадіс" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "Кастельйон" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Сьюдад-Реаль" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "Кордова" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "Ла-Корунья" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "Куенка" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "Жірона" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "Гранада" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "Гвадалахара" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Гіпускоа" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "Уельва" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "Уеска" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "Хаен" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "Леон" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Льєйда" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "Ла-Ріоха" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "Луго" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "Мадрід" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "Малага" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "Мурсія" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "Наварра" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "Оренсе" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "Астурія" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "Паленсія" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "Лас-Пальмас" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "Понтеведра" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "Саламанка" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "Санта-Крус-де-Тенерифе" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "Кантабрія" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "Сеговія" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "Севілья" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "Сорія" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "Таррагона" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "Теруель" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "Толедо" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "Валенсія" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "Вальядолід" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Біскайя" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "Самора" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "Сарагоса" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "Сеута" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "Мелілья" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "Андалусія" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "Арагон" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Астурія" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "Балеарські острови" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "Країна Басків (Еускаді)" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "Канарські острови" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "Кастилія — Ла-Манча" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "Кастилія і Леон" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "Каталонія" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "Естремадура" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "Галісія" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "Мурсія" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Наварра" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "Валенсія" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Введіть правильний поштовий індекс в диапазоні формату 01XXX - 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Введіть правильний номер телефону в одному з форматів 6XXXXXXXX,8XXXXXXXX or " -"9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Будь ласка введіть правильний NIF, NIE, або CIF." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Будь ласка введіть правильний NIF або NIE" - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "Помилкова контрольна сума для NIF." - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "Помилкова контрольна сума для NIE." - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "Помилкова контрольна сума для CIF." - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Будь ласка, введіть правильний номер банківського рахунку у форматі XXXX-" -"XXXX-XX-XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "Помилкова контрольна сума для номеру банківського рахунку." - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "Введіть правильний номер фінського соціального страхування." - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "" - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "Уведіть правильний поштовий індекс." - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Бедфордшір" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "Бакінгемшир" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "Чешир" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Корнуолл" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "Камбрія" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Дербішир" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "Девон" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "Дорсет" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "Дарем" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "Східний Сассекс" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "Ессекс" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "Глостершир" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "Великий Лондон" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "Великий Манчестер" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "Хемпшир" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "Хартфордшир" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "Кент" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "Ланкашир" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "Лестершир" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "Лінкольншир" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Мерсісайд" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "Норфолк" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "Північний Йоркшир" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "Нортгемптоншир" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "Нортумберленд" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "Ноттінгемшир" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "Оксфордшир" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "Шропшир" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "Сомерсет" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "Південний Йоркшир" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "Стаффордшир" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "Саффолк" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "Суррей" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Тайн-енд-Уїр" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "Варвікшир" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "Уест Мідлендс" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "Західний Сассекс" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "Західний Йоркшир" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "Уілтшир" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "Вустершир" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "Графство Антрім" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "Графство Арма" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "Графство Даун" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "Графство Фєрмана" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "Графство Лондондеррі" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "Графство Тірон" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Клуід" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Давєд" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Гвєнт" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Гвінед" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "Мід Гламорган" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Поуіс" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "Південний Гламорган" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "Західний Гламорган" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Бордерс" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "Центральна Шотландія" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "Дамфріс і Галлоуей" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "Файф" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "Гремпіан" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "Хайленд" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "Лотіан" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "Оркнейські острови" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "Шетлендські острови" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "Стресклайд" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "Тейсайд" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "Західні острови" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "Англія" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Північна Ірландія" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Шотландія" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Уельс" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Введіть правильний номер телефону." - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "Джакарта" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" -"Введіть правильний номер ісландського посвідчення особи. Формат: XXXXXX-XXXX." - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "Номер ісландського посвідчення особи не вірний." - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Введіть правильну поштову адресу." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Введіть правильний номер соціального страхування" - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Введіть правильний номер VAT." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Введіть поштовий індекс у форматі XXXXXXX or XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Хоккайдо" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Аоморі" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Івате" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Міяґі" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Акіта" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Ямаґата" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Фукусіма" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ібаракі" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Тотіґі" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Ґумма" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Сайтама" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Тіба" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Токіо" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Канаґава" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Яманасі" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Наґано" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Ніїґата" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Тояма" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ісікава" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Фукуї" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Ґіфу" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Сідзуока" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Аїті" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Міє" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Сіґа" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Кіото" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Осака" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Хьоґо" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Нара" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Вакаяма" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Тотторі" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Сімане" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Окаяма" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Хіросіма" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Ямаґуті" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Токусіма" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Каґава" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ехіме" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Коті" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Фукуока" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Саґа" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Наґасакі" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Кумамото" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Оїта" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Міядзакі" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Каґосіма" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Окінава" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "Аґуаскальєнтес" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "Нижня Каліфорнія Північна" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "Нижня Каліфорнія Південна" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "Кампече" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "Чіуауа" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "Чіапас" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "Коауїла" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "Коліма" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "Федеральний округ" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "Дуранго" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "Ґерреро" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Ґуанахуато" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "Ідальґо" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "Халіско" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Мехіко" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "Мічоакан" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "Морелос" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "Наяріт" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "Нуево-Леон" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "Оахака" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "Пуебла" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "Керетаро" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "Кінтана-Роо" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "Сіналоа" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "Сан-Луїс-Потосі" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "Сонора" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "Табаско" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "Тамауліпас" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "Тлашкала" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "Веракрус" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "Юкатан" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "Сакатекас" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Уведіть правильний поштовий індекс." - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Введіть правильний номер SoFi." - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "Дренте" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Флеволанд" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "Фризляндія" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "Ґельдерланд" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "Ґронінґен" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "Північний Брабант" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "Північна Голландія" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "Оверейсел" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "Утрехт" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Зеландія" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "Південна Голландія" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Введіть правильний номер норвезького соціального страхування." - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "В це поле можна ввести тільки 8 цифр." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "В це поле можна ввести тільки 11 цифр." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Національний ідентифікаційний номер складається з 11 цифр." - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "Помилкова контрольна сума для Національного ідентифікаційного номера" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Помилкова контрольна сума для податкового номеру (NIP)." - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" -"Помилкова контрольна сума для Національного ділового реєстраційного номеру " -"(REGON)." - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Введіть поштовий індекс у форматі XX-XXX." - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Нижньосілезьке" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Куявсько-Поморське" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Люблінське" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Любуське" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Лодзинське" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Малопольське" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Мазовецьке" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Опольське" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Підкарпатське" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Підляське" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Поморське" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Сілезьке" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Свентокшиське" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Вармінсько-Мазурське" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Великопольське" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "Західнопоморське" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "" - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "Введіть правильний CIF." - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "Введіть правильний CNP." - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "Введіть правильний IBAN в форматі ROXX-XXXX-XXXX-XXXX-XXXX-XXXX" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "Телефонні номери мають бути у форматі XXX-XXX-XXXX." - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "Введіть правильний поштовий індекс у форматі XXXXXX" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "" - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "" - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "Банська Бистриця" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Банська Шт'явниця" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Бардейов" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Бановце-над-Бебравоу" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "Брезно" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Братіслава I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Братіслава II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Братіслава III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Братіслава IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Братіслава V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "Бітча" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Чадца" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "Детва" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Долни Кубін" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Дунайська Стреда" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "Галанта" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "Гелница" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "Глоговець" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Гуменне" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "Ілава" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Кежмарок" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Комарно" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Кошице I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Кошице II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Кошице III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Кошице IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Кошице - периферія" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "Крупіна" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Кошицький край" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Левіце" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "Левоча" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Ліптовскі Мікулаш" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Лученєць" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Малацькі" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Мартін" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "Мєдзілаборце" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Міхаловце" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Міява" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "Намєстово" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "Нітра" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Нове Мєсто-над-Вагом" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Нове Замкі" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "Партизанське" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "Пєзінок" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "П'єштяни" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "Полтар" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Попрад" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Поважська Бистриця" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "Прєшов" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Пр'євідза" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Пухов" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Рєвуца" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Рімавська Собота" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "Рожнява" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ружомберок" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Сабінов" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "Сєнєц" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Сєніца" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Скаліца" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Сніна" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "Собранце" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Спішська Нова Вєс" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Стара Любовня" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Стропков" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "Свіднік" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "Шаля" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Топольчани" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "Требішов" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "Трєнчін" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Трнава" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Турч'янське Тепліце" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Тврдошін" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Вельки Кртіш" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Вранов-над-Топльеу" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "Злате Моравце" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "Зволен" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "Жарновиця" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ж'яр-над-Гроном" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "Жиліна" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Банкобистрицький край" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Братиславський край" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Кошицький край" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Нітранський край" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Прєшовський край" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Тренчин" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Трнава" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Жилінський край" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Введіть поштовий індекс у форматі XXXXX або XXXXX-XXXX." - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "" - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" -"Введіть правильний номер соціального забезпення США в форматі XXX-XX-XXXX." - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "Штат Сполучених Штатів Америки (дві великіх букви)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Телефонний номер" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "" - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "Введіть правильний Південно-Африканський ідентифікаційний номер" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Введіть правильний поштовий індекс Південної Африки" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "Східна Капська" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Вільна країна" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "Гаутенг" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "КваЗулу-Наталь" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "Лімпопо" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "Мпумаланга" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "Північна Капська" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "Північно-Західна" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "Західна Капська" diff --git a/django/contrib/localflavor/locale/ur/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/ur/LC_MESSAGES/django.mo deleted file mode 100644 index 171d242c7c..0000000000 Binary files a/django/contrib/localflavor/locale/ur/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/ur/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/ur/LC_MESSAGES/django.po deleted file mode 100644 index 8cbda8b8f5..0000000000 --- a/django/contrib/localflavor/locale/ur/LC_MESSAGES/django.po +++ /dev/null @@ -1,3526 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2011-01-19 16:22+0000\n" -"Last-Translator: Django team\n" -"Language-Team: Urdu (http://www.transifex.net/projects/p/django/language/" -"ur/)\n" -"Language: ur\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "" - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "" - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "" - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "" - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "" - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "" - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "" - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "" - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "" - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "" - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "" - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "" - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "" - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "" - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "" - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "" - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "" - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "" - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "" - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "" - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "" - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "" - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "" - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "" - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "" - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "" - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "" - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "" - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "" - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "" - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "" - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "" - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "" - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "" - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "" - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "" - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "" - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "" - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "" - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "" - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "" - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "" - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "" - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "" - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "" - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "" - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "" - -#: us/models.py:26 -msgid "Phone number" -msgstr "" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "" - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "" diff --git a/django/contrib/localflavor/locale/vi/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/vi/LC_MESSAGES/django.mo deleted file mode 100644 index 0f954c6b0b..0000000000 Binary files a/django/contrib/localflavor/locale/vi/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/vi/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/vi/LC_MESSAGES/django.po deleted file mode 100644 index de1db2f44f..0000000000 --- a/django/contrib/localflavor/locale/vi/LC_MESSAGES/django.po +++ /dev/null @@ -1,3528 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:42+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Jannis Leidel \n" -"Language-Team: Vietnamese (http://www.transifex.net/projects/p/django/" -"language/vi/)\n" -"Language: vi\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Hãy nhập mã bưu điện theo mẫu NNNN hoặc ANNNNAAA." - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "Điền một chữ số duy nhất." - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "Bạn cần điền 7 hoặc 8 chữ số." - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Hãy nhập CUIT hợp lệ theo dạng XX-XXXXXXXX-X hoặc XXXXXXXXXXXX." - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "CUIT không hợp lệ." - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "Thành phố Viên" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "Hãy nhập mã bưu điện theo dạng XXXX." - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "Hãy nhập số an sinh xã hội của nước Áo theo dạng XXXX XXXXXX." - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "" - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Hãy nhập mã bưu điện theo dạng XXXXX-XXX." - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Số điện thoại phải dưới dạng XX-XXXX-XXXX." - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "Số CPF không hợp lệ." - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Điền nhiều nhất là 11 chữ số hoặc 14 kí tự." - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "Số CNPJ không hợp lệ." - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "Bạn phải cần điền ít nhất là 14 chữ số." - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "Hãy nhập mã bưu điện theo dạng XXX XXX." - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "Thành phố Zurich" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "" - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "" - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "" - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "" - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "" - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "Berlin" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburg" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "Bang Saxony" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "Hãy nhập mã bưu điện theo mẫu XXXXX." - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Hãy nhập mã số bưu điện hợp lệ theo dạng 01XXX - 52XXX." - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Hãy nhập số điện thoại hợp lệ theo dạng 6XXXXXXXX, 8XXXXXXXX hoặc 9XXXXXXXX." - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "Hãy nhập NIF, NIE, hoặc CIF hợp lệ." - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "Hãy nhập NIF hoặc NIE hợp lệ." - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "" - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "" - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "" - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "Hãy nhập số tài khoản ngân hàng theo dạng XXXX-XXXX-XX-XXXXXXXXXX." - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "" - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "" - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "" - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "" - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "Vùng South Yorkshire" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "Nước Anh" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "Bắc Ai-len" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "Sccotland" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "Xứ Wale" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "Hãy nhập số điện thoại có hiệu lực" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "" - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "" - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "Hãy nhập mã bưu điện hợp lệ." - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "Hãy nhập số Bảo hiểm Xã hội hợp lệ." - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "Hãy nhập số VAT hợp lệ." - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Hãy nhập mã bưu điện theo dạng XXXXXXX hoặc XXX-XXXX." - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Thành phố Hirosima" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Thành phố Okinawa" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "Hãy nhập mã bưu điện có hiệu lực" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "Hãy nhập số SoFi hợp lệ" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "Hãy nhập số an sinh xã hội có hiệu lực" - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "Bạn cần điền 8 chữ số." - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "Bạn cần điền 11 chữ số." - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "Số CMTND gồm 11 chữ số" - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "" - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "" - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Hãy nhập mã bưu điện theo mẫu XX-XXX" - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "" - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "" - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "" - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "" - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "" - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "" - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "" - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Hãy nhập mã bưu điện theo mẫu XXXXX hoặc XXXXX-XXXX" - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "" - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "Hãy nhập số an sinh xã hội dưới dạng XXX-XX-XXXX" - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "" - -#: us/models.py:26 -msgid "Phone number" -msgstr "Số điện thoại" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "" - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "" - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "Hãy nhập mã bưu điện Nam Phi có hiệu lực" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "Tây Bắc" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "" diff --git a/django/contrib/localflavor/locale/zh_CN/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/zh_CN/LC_MESSAGES/django.mo deleted file mode 100644 index 2a30c09075..0000000000 Binary files a/django/contrib/localflavor/locale/zh_CN/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/zh_CN/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/zh_CN/LC_MESSAGES/django.po deleted file mode 100644 index 33825a390c..0000000000 --- a/django/contrib/localflavor/locale/zh_CN/LC_MESSAGES/django.po +++ /dev/null @@ -1,3534 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Daniel Duan , 2011. -# Jannis Leidel , 2011. -# Lele Long , 2011. -# slene , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:43+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: Daniel Duan \n" -"Language-Team: Chinese (China) (http://www.transifex.net/projects/p/django/" -"language/zh_CN/)\n" -"Language: zh_CN\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "以 NNNN 或 ANNNNAAA 的格式输入一个邮政编码。" - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "这个字段只能输入数字。" - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "这个字段要求输入 7 或 8 位数字。" - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "以 XX-XXXXXXXX-X 或 XXXXXXXXXXXX 的格式输入一个有效的 CUIT。" - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "无效 CUIT。" - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "布尔根兰州" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "卡林西亚" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "下奥地利州" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "上奥地利州" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "萨尔茨堡" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "施蒂里亚语" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "蒂罗尔" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "福拉尔贝格州" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "维也纳" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "以 XXXX 的格式输入一个邮政编码。" - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "以 XXXX XXXXXX 的格式输入一个有效的奥地利社会保障号码。" - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "安特卫普" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "布鲁塞尔" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "东佛兰德" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "佛兰芒布拉班特" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "厄诺" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "列日" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "林堡" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "卢森堡" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "纳慕尔" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "瓦隆布拉邦" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "西佛兰德" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "布鲁塞尔首都区域" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "法阑德斯地区" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "瓦龙" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "请输入有效的邮政编码,范围和格式为 1XXX - 9XXX" - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"请输入以下格式之一的有效电话号码:0x xxx xx xx, 0xx xx xx xx, 04xx xx xx xx, " -"0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx.xx.xx.xx, 04xx." -"xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "以 XXXXX-XXX 的格式输入一个邮政编码。" - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "电话号码必须为 XXX-XXX-XXXX 格式。" - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "选择一个有效的巴西州。该州并不是现有的州。" - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "无效的 CPF 号码。" - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "该字段要求填写最多 11 位数字或 14 个字符。" - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "无效的 CNPJ 号码。" - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "这个字段要求至少 14 位数字" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "以 XXX XXX 的格式输入一个邮政编码。" - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "以 XXX-XXX-XXX 的格式输入一个有效的加拿大社会保障号码。" - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "阿尔高州" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "内阿彭策尔半州" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "外阿彭策尔半州" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "巴塞尔城半州" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "巴塞尔乡半州" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "伯尔尼州" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "弗里堡州" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "日内瓦州" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "格拉鲁斯州" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "格劳宾登州" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "汝拉州" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "琉森州" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "纳沙特尔州" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "下瓦尔登州" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "上瓦尔登州" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "沙夫豪森州" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "施维茨州" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "索洛图恩州" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "圣加仑州" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "图尔高州" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "提契诺州" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "乌里州" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "瓦莱州" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "沃州" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "楚格州" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "苏黎世州" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"输入一个有效的瑞士身份证号码或者护照卡号,格式为 X1234567<0 或 1234567890" - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "输入一个有效的 Chilean RUT。" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "输入一个有效的 Chilean RUT。格式为 XX.XXX.XXX-X。" - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "Chilean RUT 无效。" - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "布拉格" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "波希米亚中部地区" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "南波希米亚地区" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "比尔森地区" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "卡尔斯巴德地区" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "乌斯季地区" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "利贝雷茨地区" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "赫拉德茨地区" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "帕尔杜比采地区" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "維索基納" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "南摩拉维亚地区" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "奥洛穆茨地区" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "兹林地区" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "摩拉维亚,西里西亚地区" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "以 XXXXX 或 XX XXX 的格式输入一个邮政编码。" - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "以 x" - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "可选参数性别无效,请在'f'(女)和'm'(男)之间选择。" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "输入一个有效的出生码。" - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "输入一个有效的 IC 号码。" - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "巴登符腾堡州" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "巴伐利亚" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "柏林" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "勃兰登堡" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "不来梅" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "汉堡" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "黑森州" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "梅克伦堡-西部米拉尼亚" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "下萨克森" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "北莱茵-威斯特法伦州" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "莱茵河法耳茨地区" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "萨尔州" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "萨克森" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "萨克森-安哈尔特" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "石勒苏益格-荷尔斯泰因" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "图林根州" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "以 XXXXX 的格式输入一个邮政编码。" - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "以 XXXXXXXXXXX-XXXXXXX-XXXXXXX-X 的格式输入一个有效的德国身份证号码。" - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "阿拉瓦" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "阿尔巴塞特" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "Alacant" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "阿尔梅里亚" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "阿维拉" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "巴达霍斯" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "巴利阿里群岛" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "巴塞罗那" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "布尔戈斯" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "卡塞雷斯" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "卡迪斯" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "卡斯特罗" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "Ciudad Real" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "科尔多瓦" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "拉科鲁尼亚" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "昆卡" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "西罗纳" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "格拉纳达" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "瓜达拉哈拉" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "Guipuzkoa" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "韦尔瓦" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "韦斯卡" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "哈恩" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "里昂" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "Lleida" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "里欧哈" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "卢戈" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "马德里" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "马拉加" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "穆尔西亚" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "纳瓦拉" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "奥伦塞" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "阿斯图里亚斯" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "帕伦西亚" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "拉斯帕尔马斯" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "庞特维德拉" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "萨拉曼卡" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "圣克鲁斯-德特内里费" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "坎塔布利亚" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "塞戈维亚" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "塞维利亚" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "索里亚" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "塔拉戈纳" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "特鲁埃尔" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "托莱多" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "瓦伦西亚" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "巴利亚多利德" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "Bizkaia" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "萨莫拉" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "萨拉戈萨" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "休达" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "梅利利亚" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "安达卢西亚" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "阿拉贡" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "摩纳哥的阿斯图里亚斯" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "巴利阿里群岛" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "巴斯克地区" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "加纳利群岛" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "卡斯蒂利亚-拉曼恰" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "卡斯蒂利亚和莱昂" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "加泰隆尼亚" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "埃斯特雷马杜拉" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "加利西亚" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "穆尔西亚地区" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "Foral Community of Navarre" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "巴伦西亚社区" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "以 01XXX - 52XXX 的格式输入一个有效范围之内的邮政编码。" - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "以 6XXXXXXXX, 8XXXXXXXX 或 9XXXXXXXX 的格式输入一个有效的电话号码。" - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "请输入一个有效的 NIF、NIE 或 CIF。" - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "请输入一个有效的 NIF 或 NIE 。" - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "无效的 NIF 校验和。" - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "无效的 NIE 校验和。" - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "无效的 CIF 校验和。" - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "请输入一个有效的银行帐号,格式为 XXXX-XXXX-XX-XXXXXXXXXX。" - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "无效的银行帐号校验和。" - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "输入一个有效的芬兰社会保障号码。" - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "电话号码必须为 XXXX-XXXXXX 格式。" - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "输入一个有效的邮政编码。" - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "Bedfordshire" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "白金汉郡" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "柴郡" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "Cornwall and Isles of Scilly" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "坎布里亚" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "Derbyshire" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "德宏" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "多塞特" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "达勒姆" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "东苏塞克斯" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "埃塞克斯" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "格洛斯特" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "大伦敦" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "大曼彻斯特" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "新罕布什尔州" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "赫特福德郡" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "肯特" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "兰开夏" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "莱斯特郡" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "林肯郡" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "Merseyside" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "诺福克" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "北约克郡" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "北安普敦郡" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "诺森伯兰" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "诺丁汉" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "牛津郡" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "什罗普郡" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "萨默塞特" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "南约克郡" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "斯塔福德" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "萨福克" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "萨里" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "Tyne and Wear" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "沃里克郡" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "西米德兰地区" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "西萨塞克斯" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "西约克郡" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "威尔特郡" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "伍斯特郡" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "安特里姆郡" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "阿玛县" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "County Down" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "弗马纳县" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "伦敦德里县" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "泰隆郡" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "Clwyd" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "Dyfed" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "Gwent" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "Gwynedd" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "中格拉摩根" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "Powys" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "南格拉摩根" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "西格拉摩根" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "Borders" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "中苏格兰" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "邓弗里斯和加洛韦" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "法伊夫" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "嘉林" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "高原" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "洛锡安" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "康威离岛" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "设得兰群岛" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "斯特拉思克莱德" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "泰赛德" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "西岛" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "英格兰" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "北爱尔兰" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "苏格兰" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "威尔斯" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "输入一个有效的车牌号码" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "输入一个有效的电话号码" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "输入一个有效的邮政编码" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "输入一个有效的 NIK/KTP 号码" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "亚齐" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "巴厘岛" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "万丹国" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "明古鲁" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "日惹" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "雅加达" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "哥伦打洛" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "占碑" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "西爪哇" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "中爪哇" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "爪哇帖木儿" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "西加里曼丹" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "南加里曼丹" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "中加里曼丹" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "东加里曼丹" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "邦加勿里洞群岛" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "廖内群岛" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "楠榜" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "马鲁古群岛" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "北马鲁古" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "西努沙登加拉" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "东努沙登加拉" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "巴布亚" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "廖内群岛" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "苏拉威西巴拉" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "罗斯哥蒙" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "斯莱戈" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "蒂帕雷里" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "泰隆" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "沃特福德" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "韦斯特米斯" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "韦克斯福德" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "维克罗" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "以 XXXXX 格式输入一个邮政编码。" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "输入一个有效的 ID 号码。" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "输入一个有效的冰岛身份证号码。格式为 XXXXXX-XXXX 。" - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "无效的冰岛身份证号码。" - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "输入一个有效的邮政编码。" - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "输入一个有效的社会保障号码。" - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "输入一个有效的 VAT 号码。" - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "以 XXXXXXX 或 XXX-XXXX 的格式输入一个邮政编码。" - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "北海道" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "青森" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "岩手" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "宫城" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "秋田" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "山形" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "福岛" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "茨城" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "枥木" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "群马" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "埼玉" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "千叶" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "东京" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "神奈川" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "山梨" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "长野" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "新舄" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "富山" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "石川" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "福井" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "岐阜" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "静冈" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "爱知" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "三重" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "滋贺" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "京都" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "大坂" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "兵库" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "奈良" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "和歌山" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "鸟取" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "岛根" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "冈山" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "广岛" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "山口" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "德岛" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "香川" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "爱媛" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "高知" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "福冈" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "佐贺" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "长崎" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "熊本" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "大分" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "宫崎" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "鹿儿岛" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "冲绳岛" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "阿瓜斯卡连特斯" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "下加利福尼亚州" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "巴哈加利福尼亚" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "坎佩切" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "奇瓦瓦" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "恰帕斯" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "科阿韦拉" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "科利马" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "联邦区" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "杜兰戈" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "格雷罗" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "Guanajuato" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "伊达尔戈" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "哈利斯科州" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Estado de México" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "米却肯州" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "莫雷洛斯" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "纳亚里特" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "新莱昂州" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "瓦哈卡" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "普埃布拉" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "克雷塔罗" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "金塔纳罗奥" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "锡那罗亚州" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "圣路易斯波托西" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "索诺拉" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "塔巴斯科" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "塔毛利帕斯" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "特拉斯卡拉" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "韦拉克鲁斯" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "尤卡坦" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "萨卡特卡斯" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "输入一个有效的邮政编码" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "输入一个有效的 SoFi 号码" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "德伦特省" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "Flevoland" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "菲仕兰" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "格尔德兰" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "格罗宁根" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "北布拉邦" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "北荷兰" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "艾瑟尔" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "乌得勒支" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "Zeeland" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "南荷兰省" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "请输入一个有效的挪威社会保障号码。" - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "这个字段要求填写 8 位数字。" - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "这个字段要求填写 11 位数字。" - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "国家身份证号码由 11 位数字组成。" - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "国家身份证号码校验和错误。" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "税号(NIP)校验和错误。" - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "国家商业注册号码(REGON)由 9 位或 14 位数字组成。" - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "国家商业注册号码(REGON)校验和错误。" - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "以 XX-XXX 的格式输入一个邮政编码。" - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "下西里西亚" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kuyavia-Pomerania" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "卢布林" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubusz" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "罗兹" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Lesser Poland" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "马佐夫舍" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "奥波莱" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Subcarpatia" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlasie" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "波美拉尼亚" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "西里西亚" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Swietokrzyskie" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Warmia-Masuria" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Greater Poland" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "西波美拉尼亚" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "以 XXXX-XXX 格式输入一个邮政编码。" - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "电话号码必须是9位数,以 + 或 00 开头。" - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "输入一个有效的 CIF。" - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "输入一个有效的 CNP。" - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "以 ROXX-XXXX-XXXX-XXXX-XXXX-XXXX 格式输入一个有效的 IBAN" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "电话号码必须为 XXXX-XXXXXX 格式。" - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "以 XXXXXX 的格式输入一个邮政编码" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "输入一个有效的瑞典机构编号。" - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "输入一个瑞典个人身份证号码。" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "统筹号码是不允许的。" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "以 XXXXX 格式输入一个瑞典邮政编码。" - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "斯德哥尔摩" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "乌普萨拉" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "班斯卡-比斯特里察" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "Banska Stiavnica" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "Bardejov" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "Banovce nad Bebravou" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "布雷兹诺" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "Bratislava I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "Bratislava II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "Bratislava III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "Bratislava IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "Bratislava V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "比特恰" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "Cadca" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "代特瓦" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "Dolny Kubin" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "Dunajska Streda" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "加兰塔" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "盖尔尼察" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "赫洛霍韦茨" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "Humenne" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "伊拉瓦" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "Kezmarok" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "Komarno" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "Kosice I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "Kosice II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "Kosice III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "Kosice IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "Kosice - okolie" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "克鲁皮纳" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "Kysucke Nove Mesto" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "Levice" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "勒沃卡" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "Liptovsky Mikulas" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "Lucenec" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "Malacky" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "Martin" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "梅济拉博尔采" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "Michalovce" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "Myjava" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "纳梅斯托沃" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "尼特拉" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "Nove Mesto nad Vahom" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "Nove Zamky" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "帕帝查斯葛" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "佩兹那克市" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "Piestany" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "波尔塔尔" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "Poprad" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "Povazska Bystrica" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "普雷绍夫" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "Prievidza" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "Puchov" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "Revuca" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "Rimavska Sobota" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "罗日尼亚瓦" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "Ruzomberok" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "Sabinov" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "塞内茨" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "Senica" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "Skalica" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "Snina" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "索布兰采" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "Spisska Nova Ves" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "Stara Lubovna" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "Stropkov" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "斯维德尼克" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "撒拉族" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "Topolcany" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "特雷比绍夫" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "特伦钦" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "Trnava" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "Turcianske Teplice" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "Tvrdosin" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "Velky Krtis" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "Vranov nad Toplou" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "兹拉特莫拉夫采" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "兹沃伦" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "扎尔诺维察" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "Ziar nad Hronom" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "日利纳" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "班斯卡-比斯特里察地区" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "布拉迪斯拉发地区" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "科希策地区" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "尼特拉地区" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "普雷绍夫地区" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "特伦钦地区" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "特尔纳瓦地区" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "日利纳地区" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "以 XXXXX 的格式输入一个邮政编码。" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "电话号码的格式必须是 0XXX XXX XXXX 。" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "输入一个有效的土耳其身份证号码。" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "土耳其身份证号码必须为11位数字。" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "以 XXXXX 或 XXXXX-XXX 的格式输入一个邮政编码。" - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "电话号码的格式必须是 XXX-XXX-XXXX。" - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "以 XXX-XX-XXXX 的格式输入一个有效的美国社会保障号码。" - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "输入一个美国州或领地名称。" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "美国州名(两个大写字母)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "美国邮政编码(两个小写字母)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "电话号码" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "以 X.XXX.XXX-X,XXXXXXX-X 或 XXXXXXXX 格式输入一个有效的 CI 号码" - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "输入一个有效的 CI 号码" - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "请输入一个有效的南非身份证号码。" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "输入一个有效的南非邮政编码" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "东开普省" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "Free State" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "豪登省" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "夸祖卢-纳塔尔" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "林波波河" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "姆普马兰加省" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "北开普省" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "西北" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "西开普" diff --git a/django/contrib/localflavor/locale/zh_TW/LC_MESSAGES/django.mo b/django/contrib/localflavor/locale/zh_TW/LC_MESSAGES/django.mo deleted file mode 100644 index 0f4a0363d3..0000000000 Binary files a/django/contrib/localflavor/locale/zh_TW/LC_MESSAGES/django.mo and /dev/null differ diff --git a/django/contrib/localflavor/locale/zh_TW/LC_MESSAGES/django.po b/django/contrib/localflavor/locale/zh_TW/LC_MESSAGES/django.po deleted file mode 100644 index 09d939727d..0000000000 --- a/django/contrib/localflavor/locale/zh_TW/LC_MESSAGES/django.po +++ /dev/null @@ -1,3535 +0,0 @@ -# This file is distributed under the same license as the Django package. -# -# Translators: -# Jannis Leidel , 2011. -# ming hsien tzang , 2011. -# quantum9876 , 2011. -# tcc , 2011. -msgid "" -msgstr "" -"Project-Id-Version: Django\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-23 02:43+0100\n" -"PO-Revision-Date: 2012-03-08 12:24+0000\n" -"Last-Translator: tcc \n" -"Language-Team: Chinese (Taiwan) (http://www.transifex.net/projects/p/django/" -"language/zh_TW/)\n" -"Language: zh_TW\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0\n" - -#: ar/forms.py:30 -msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "以 NNNN 或 ANNNNAAA的格式輸入郵遞區號。" - -#: ar/forms.py:52 br/forms.py:95 br/forms.py:134 pe/forms.py:27 pe/forms.py:55 -msgid "This field requires only numbers." -msgstr "此欄位只允許輸入數字" - -#: ar/forms.py:53 -msgid "This field requires 7 or 8 digits." -msgstr "此欄位需要 7~8 位數" - -#: ar/forms.py:82 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "以 XX-XXXXXXXX-X 或 XXXXXXXXXXXX 的格式輸入CUIT 。" - -#: ar/forms.py:83 -msgid "Invalid CUIT." -msgstr "無效的 CUIT" - -#: at/at_states.py:5 -msgid "Burgenland" -msgstr "布爾根蘭" - -#: at/at_states.py:6 -msgid "Carinthia" -msgstr "凱恩藤州" - -#: at/at_states.py:7 -msgid "Lower Austria" -msgstr "下奧地利州" - -#: at/at_states.py:8 -msgid "Upper Austria" -msgstr "上奧地利州" - -#: at/at_states.py:9 -msgid "Salzburg" -msgstr "薩爾茨堡" - -#: at/at_states.py:10 -msgid "Styria" -msgstr "施蒂利亞州" - -#: at/at_states.py:11 -msgid "Tyrol" -msgstr "蒂羅爾州" - -#: at/at_states.py:12 -msgid "Vorarlberg" -msgstr "福拉爾貝格州" - -#: at/at_states.py:13 -msgid "Vienna" -msgstr "維也納州" - -#: at/forms.py:22 ch/forms.py:22 no/forms.py:19 -msgid "Enter a zip code in the format XXXX." -msgstr "用 XXXX 的格式輸入郵遞區號。" - -#: at/forms.py:50 -msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "以 XXXX XXXXXX 的格式輸入奧地利社會安全號碼。" - -#: au/forms.py:26 -msgid "Enter a 4 digit postcode." -msgstr "" - -#: au/models.py:9 -msgid "Australian State" -msgstr "" - -#: au/models.py:19 -msgid "Australian Postcode" -msgstr "" - -#: au/models.py:33 -msgid "Australian Phone number" -msgstr "" - -#: be/be_provinces.py:5 -msgid "Antwerp" -msgstr "安特衛普" - -#: be/be_provinces.py:6 -msgid "Brussels" -msgstr "布魯塞爾" - -#: be/be_provinces.py:7 -msgid "East Flanders" -msgstr "東佛蘭德省" - -#: be/be_provinces.py:8 -msgid "Flemish Brabant" -msgstr "法蘭德斯-布拉班特省" - -#: be/be_provinces.py:9 -msgid "Hainaut" -msgstr "埃諾省" - -#: be/be_provinces.py:10 -msgid "Liege" -msgstr "烈日省" - -#: be/be_provinces.py:11 nl/nl_provinces.py:9 -msgid "Limburg" -msgstr "林堡" - -#: be/be_provinces.py:12 -msgid "Luxembourg" -msgstr "盧森堡" - -#: be/be_provinces.py:13 -msgid "Namur" -msgstr "那慕爾" - -#: be/be_provinces.py:14 -msgid "Walloon Brabant" -msgstr "布拉班特-瓦隆" - -#: be/be_provinces.py:15 -msgid "West Flanders" -msgstr "西佛蘭德省" - -#: be/be_regions.py:5 -msgid "Brussels Capital Region" -msgstr "布魯塞爾" - -#: be/be_regions.py:6 -msgid "Flemish Region" -msgstr "法蘭德斯區" - -#: be/be_regions.py:7 -msgid "Wallonia" -msgstr "瓦隆" - -#: be/forms.py:25 -msgid "Enter a valid postal code in the range and format 1XXX - 9XXX." -msgstr "以 1XXX - 9XXX 為範圍、格式輸入郵遞區號。" - -#: be/forms.py:48 -msgid "" -"Enter a valid phone number in one of the formats 0x xxx xx xx, 0xx xx xx xx, " -"04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, 04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx." -"xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx or 04xxxxxxxx." -msgstr "" -"以 0x xxx xx xx, 0xx xx xx xx, 04xx xx xx xx, 0x/xxx.xx.xx, 0xx/xx.xx.xx, " -"04xx/xx.xx.xx, 0x.xxx.xx.xx, 0xx.xx.xx.xx, 04xx.xx.xx.xx, 0xxxxxxxx 或 " -"04xxxxxxxx 其中之一為格式,輸入電話號碼。" - -#: br/forms.py:22 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "用 XXXXX-XXX 的格式輸入郵遞區號。" - -#: br/forms.py:31 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "電話號碼必須是 XX-XXXX-XXXX 格式。" - -#: br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "您輸入的不是正確的州。請選擇一個位於巴西的管轄州。" - -#: br/forms.py:93 -msgid "Invalid CPF number." -msgstr "無效的 CPF 號碼。" - -#: br/forms.py:94 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "此欄必須輸入 11 位數的數字,或 14 個字母。" - -#: br/forms.py:133 -msgid "Invalid CNPJ number." -msgstr "無效的 CNPJ 號碼。" - -#: br/forms.py:135 -msgid "This field requires at least 14 digits" -msgstr "此欄必須至少有 14 位數。" - -#: ca/forms.py:29 -msgid "Enter a postal code in the format XXX XXX." -msgstr "以 XXX XXX 為格式輸入郵遞區號。" - -#: ca/forms.py:110 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "以 XXX-XXX-XXX 為格式輸入加拿大社會保險號碼。" - -#: ch/ch_states.py:5 -msgid "Aargau" -msgstr "阿爾高州" - -#: ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "內亞本塞州" - -#: ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "外阿彭策爾" - -#: ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "巴澤爾城市" - -#: ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "巴澤爾鄉村" - -#: ch/ch_states.py:10 -msgid "Berne" -msgstr "伯恩" - -#: ch/ch_states.py:11 -msgid "Fribourg" -msgstr "弗里堡" - -#: ch/ch_states.py:12 -msgid "Geneva" -msgstr "日內瓦" - -#: ch/ch_states.py:13 -msgid "Glarus" -msgstr "格拉魯斯" - -#: ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "格勞賓登" - -#: ch/ch_states.py:15 -msgid "Jura" -msgstr "汝拉" - -#: ch/ch_states.py:16 -msgid "Lucerne" -msgstr "琉森" - -#: ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "納沙泰爾" - -#: ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "下瓦爾登" - -#: ch/ch_states.py:19 -msgid "Obwalden" -msgstr "上瓦爾登" - -#: ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "沙夫豪森" - -#: ch/ch_states.py:21 -msgid "Schwyz" -msgstr "施維茨" - -#: ch/ch_states.py:22 -msgid "Solothurn" -msgstr "索洛圖恩" - -#: ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "聖加侖" - -#: ch/ch_states.py:24 -msgid "Thurgau" -msgstr "圖爾高州" - -#: ch/ch_states.py:25 -msgid "Ticino" -msgstr "提契諾" - -#: ch/ch_states.py:26 -msgid "Uri" -msgstr "烏裡州" - -#: ch/ch_states.py:27 -msgid "Valais" -msgstr "瓦萊" - -#: ch/ch_states.py:28 -msgid "Vaud" -msgstr "沃" - -#: ch/ch_states.py:29 -msgid "Zug" -msgstr "楚格" - -#: ch/ch_states.py:30 -msgid "Zurich" -msgstr "蘇黎世" - -#: ch/forms.py:68 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"以格式為 X1234567<0 或 1234567890 輸入一個有效的瑞士身份證號碼或者或是護照號" -"碼。" - -#: cl/forms.py:32 -msgid "Enter a valid Chilean RUT." -msgstr "請輸入智利 RUT。" - -#: cl/forms.py:33 -msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "以 XX.XXX.XXX-x 為格式輸入智利RUT。" - -#: cl/forms.py:34 -msgid "The Chilean RUT is not valid." -msgstr "輸入的智利 RUT 無效。" - -#: cn/forms.py:84 -msgid "Enter a post code in the format XXXXXX." -msgstr "" - -#: cn/forms.py:105 -msgid "ID Card Number consists of 15 or 18 digits." -msgstr "" - -#: cn/forms.py:106 -msgid "Invalid ID Card Number: Wrong checksum" -msgstr "" - -#: cn/forms.py:107 -msgid "Invalid ID Card Number: Wrong birthdate" -msgstr "" - -#: cn/forms.py:108 -msgid "Invalid ID Card Number: Wrong location code" -msgstr "" - -#: cn/forms.py:193 -msgid "Enter a valid phone number." -msgstr "" - -#: cn/forms.py:210 -msgid "Enter a valid cell number." -msgstr "" - -#: cz/cz_regions.py:8 -msgid "Prague" -msgstr "布拉格" - -#: cz/cz_regions.py:9 -msgid "Central Bohemian Region" -msgstr "中波希米亞州" - -#: cz/cz_regions.py:10 -msgid "South Bohemian Region" -msgstr "南波希米亞州" - -#: cz/cz_regions.py:11 -msgid "Pilsen Region" -msgstr "比爾森州" - -#: cz/cz_regions.py:12 -msgid "Carlsbad Region" -msgstr "卡羅維發利州" - -#: cz/cz_regions.py:13 -msgid "Usti Region" -msgstr "烏斯季州" - -#: cz/cz_regions.py:14 -msgid "Liberec Region" -msgstr "利貝雷茨州" - -#: cz/cz_regions.py:15 -msgid "Hradec Region" -msgstr "赫拉德茨-克拉洛韋州" - -#: cz/cz_regions.py:16 -msgid "Pardubice Region" -msgstr "帕爾杜比采州" - -#: cz/cz_regions.py:17 -msgid "Vysocina Region" -msgstr "維索基納州" - -#: cz/cz_regions.py:18 -msgid "South Moravian Region" -msgstr "南摩拉維亞州" - -#: cz/cz_regions.py:19 -msgid "Olomouc Region" -msgstr "奧洛穆茨州" - -#: cz/cz_regions.py:20 -msgid "Zlin Region" -msgstr "茲林州" - -#: cz/cz_regions.py:21 -msgid "Moravian-Silesian Region" -msgstr "摩拉維亞-西里西亞州" - -#: cz/forms.py:32 sk/forms.py:33 -msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "以 XXXXX 或 XXX XX 的格式輸入郵遞區號。" - -#: cz/forms.py:52 -msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "以 XXXXXX/XXXX 或 XXXXXXXXXX 輸入出生日期。" - -#: cz/forms.py:53 -msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "您輸入錯誤的性別參數,應輸入 'f' 或 'm'。" - -#: cz/forms.py:54 -msgid "Enter a valid birth number." -msgstr "請輸入正確的出生日期。" - -#: cz/forms.py:115 -msgid "Enter a valid IC number." -msgstr "請輸入正確的 IC 號碼。" - -#: de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "巴登符騰堡" - -#: de/de_states.py:6 -msgid "Bavaria" -msgstr "巴伐利亞" - -#: de/de_states.py:7 -msgid "Berlin" -msgstr "柏林" - -#: de/de_states.py:8 -msgid "Brandenburg" -msgstr "勃蘭登堡" - -#: de/de_states.py:9 -msgid "Bremen" -msgstr "布萊梅" - -#: de/de_states.py:10 -msgid "Hamburg" -msgstr "漢堡" - -#: de/de_states.py:11 -msgid "Hessen" -msgstr "黑森" - -#: de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "梅克倫堡-前波莫瑞" - -#: de/de_states.py:13 -msgid "Lower Saxony" -msgstr "下薩克森" - -#: de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "北萊茵-威斯特法倫" - -#: de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "萊茵蘭-普法爾茨" - -#: de/de_states.py:16 -msgid "Saarland" -msgstr "薩爾蘭" - -#: de/de_states.py:17 -msgid "Saxony" -msgstr "薩克森" - -#: de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "薩克森-安哈爾特" - -#: de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "石勒蘇益格-荷爾斯泰因" - -#: de/de_states.py:20 -msgid "Thuringia" -msgstr "圖林根" - -#: de/forms.py:20 fi/forms.py:18 fr/forms.py:20 -msgid "Enter a zip code in the format XXXXX." -msgstr "用 XXXXX 的格式輸入郵遞區號。" - -#: de/forms.py:46 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "以 XXXXXXXXXXX-XXXXXXX-XXXXXXX-X 的格式輸入德國身份證字號。" - -#: es/es_provinces.py:5 -msgid "Arava" -msgstr "阿拉瓦" - -#: es/es_provinces.py:6 -msgid "Albacete" -msgstr "阿爾瓦塞特" - -#: es/es_provinces.py:7 -msgid "Alacant" -msgstr "阿利坎特" - -#: es/es_provinces.py:8 -msgid "Almeria" -msgstr "阿爾梅里亞" - -#: es/es_provinces.py:9 -msgid "Avila" -msgstr "阿維拉" - -#: es/es_provinces.py:10 -msgid "Badajoz" -msgstr "巴達霍斯" - -#: es/es_provinces.py:11 -msgid "Illes Balears" -msgstr "巴利阿里群島" - -#: es/es_provinces.py:12 -msgid "Barcelona" -msgstr "巴塞羅那" - -#: es/es_provinces.py:13 -msgid "Burgos" -msgstr "布爾戈斯" - -#: es/es_provinces.py:14 -msgid "Caceres" -msgstr "卡塞雷斯" - -#: es/es_provinces.py:15 -msgid "Cadiz" -msgstr "加迪斯" - -#: es/es_provinces.py:16 -msgid "Castello" -msgstr "城堡" - -#: es/es_provinces.py:17 -msgid "Ciudad Real" -msgstr "雷亞爾" - -#: es/es_provinces.py:18 -msgid "Cordoba" -msgstr "科多巴" - -#: es/es_provinces.py:19 -msgid "A Coruna" -msgstr "拉科魯納" - -#: es/es_provinces.py:20 -msgid "Cuenca" -msgstr "昆卡" - -#: es/es_provinces.py:21 -msgid "Girona" -msgstr "赫羅納" - -#: es/es_provinces.py:22 -msgid "Granada" -msgstr "格拉納達" - -#: es/es_provinces.py:23 -msgid "Guadalajara" -msgstr "瓜達拉哈拉" - -#: es/es_provinces.py:24 -msgid "Guipuzkoa" -msgstr "吉普斯夸" - -#: es/es_provinces.py:25 -msgid "Huelva" -msgstr "韋爾瓦" - -#: es/es_provinces.py:26 -msgid "Huesca" -msgstr "韋斯卡" - -#: es/es_provinces.py:27 -msgid "Jaen" -msgstr "哈恩" - -#: es/es_provinces.py:28 -msgid "Leon" -msgstr "里昂" - -#: es/es_provinces.py:29 -msgid "Lleida" -msgstr "萊里達" - -#: es/es_provinces.py:30 es/es_regions.py:17 -msgid "La Rioja" -msgstr "里奧夏" - -#: es/es_provinces.py:31 -msgid "Lugo" -msgstr "盧戈" - -#: es/es_provinces.py:32 es/es_regions.py:18 -msgid "Madrid" -msgstr "馬德里" - -#: es/es_provinces.py:33 -msgid "Malaga" -msgstr "馬拉加" - -#: es/es_provinces.py:34 -msgid "Murcia" -msgstr "穆爾西亞" - -#: es/es_provinces.py:35 -msgid "Navarre" -msgstr "納瓦拉" - -#: es/es_provinces.py:36 -msgid "Ourense" -msgstr "奥倫斯" - -#: es/es_provinces.py:37 -msgid "Asturias" -msgstr "阿斯杜里亞斯" - -#: es/es_provinces.py:38 -msgid "Palencia" -msgstr "帕倫西亞" - -#: es/es_provinces.py:39 -msgid "Las Palmas" -msgstr "洛斯卡布斯" - -#: es/es_provinces.py:40 -msgid "Pontevedra" -msgstr "蓬特韋德拉" - -#: es/es_provinces.py:41 -msgid "Salamanca" -msgstr "薩拉曼卡" - -#: es/es_provinces.py:42 -msgid "Santa Cruz de Tenerife" -msgstr "聖克魯斯-德特內裡費" - -#: es/es_provinces.py:43 es/es_regions.py:11 -msgid "Cantabria" -msgstr "坎塔布里亞" - -#: es/es_provinces.py:44 -msgid "Segovia" -msgstr "塞哥維亞" - -#: es/es_provinces.py:45 -msgid "Seville" -msgstr "塞維利亞" - -#: es/es_provinces.py:46 -msgid "Soria" -msgstr "索里亞" - -#: es/es_provinces.py:47 -msgid "Tarragona" -msgstr "塔拉戈納" - -#: es/es_provinces.py:48 -msgid "Teruel" -msgstr "特魯埃爾" - -#: es/es_provinces.py:49 -msgid "Toledo" -msgstr "托萊多" - -#: es/es_provinces.py:50 -msgid "Valencia" -msgstr "巴倫西亞" - -#: es/es_provinces.py:51 -msgid "Valladolid" -msgstr "瓦利阿多里德" - -#: es/es_provinces.py:52 -msgid "Bizkaia" -msgstr "巴斯克" - -#: es/es_provinces.py:53 -msgid "Zamora" -msgstr "薩莫拉" - -#: es/es_provinces.py:54 -msgid "Zaragoza" -msgstr "薩拉戈薩" - -#: es/es_provinces.py:55 -msgid "Ceuta" -msgstr "休達" - -#: es/es_provinces.py:56 -msgid "Melilla" -msgstr "梅利利亞" - -#: es/es_regions.py:5 -msgid "Andalusia" -msgstr "安達魯西亞" - -#: es/es_regions.py:6 -msgid "Aragon" -msgstr "阿拉貢" - -#: es/es_regions.py:7 -msgid "Principality of Asturias" -msgstr "Principality of Asturias" - -#: es/es_regions.py:8 -msgid "Balearic Islands" -msgstr "巴利阿里群島" - -#: es/es_regions.py:9 -msgid "Basque Country" -msgstr "巴斯克地區" - -#: es/es_regions.py:10 -msgid "Canary Islands" -msgstr "加那利群島" - -#: es/es_regions.py:12 -msgid "Castile-La Mancha" -msgstr "卡斯提爾-拉曼查" - -#: es/es_regions.py:13 -msgid "Castile and Leon" -msgstr "卡斯蒂利亞和里昂" - -#: es/es_regions.py:14 -msgid "Catalonia" -msgstr "加泰隆尼亞" - -#: es/es_regions.py:15 -msgid "Extremadura" -msgstr "艾司德雷馬度" - -#: es/es_regions.py:16 -msgid "Galicia" -msgstr "加利西亞" - -#: es/es_regions.py:19 -msgid "Region of Murcia" -msgstr "穆爾西亞地區" - -#: es/es_regions.py:20 -msgid "Foral Community of Navarre" -msgstr "納瓦爾王國" - -#: es/es_regions.py:21 -msgid "Valencian Community" -msgstr "瓦倫西亞自治區" - -#: es/forms.py:26 -msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "輸入範圍 01XXX - 52XXX 的郵遞區號。" - -#: es/forms.py:46 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "以 6XXXXXXXX, 8XXXXXXXX 或 9XXXXXXXX 的格式輸入電話號碼。" - -#: es/forms.py:73 -msgid "Please enter a valid NIF, NIE, or CIF." -msgstr "輸入正確的 NIF, NIE 或 CIF。" - -#: es/forms.py:74 -msgid "Please enter a valid NIF or NIE." -msgstr "輸入正確的 NIF 或 NIE。" - -#: es/forms.py:75 -msgid "Invalid checksum for NIF." -msgstr "無效的 NIF 校驗和。" - -#: es/forms.py:76 -msgid "Invalid checksum for NIE." -msgstr "無效的 NIE 校驗和。" - -#: es/forms.py:77 -msgid "Invalid checksum for CIF." -msgstr "無效的 CIF 校驗和。" - -#: es/forms.py:149 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "請輸入一個有效的銀行值帳號,格式為 XXXX-XXXX-XX-XXXXXXXXXX。" - -#: es/forms.py:150 -msgid "Invalid checksum for bank account number." -msgstr "無效的銀行帳號校驗和。" - -#: fi/forms.py:33 -msgid "Enter a valid Finnish social security number." -msgstr "請輸入一個有效的芬蘭社會保險號碼。" - -#: fr/forms.py:35 -msgid "Phone numbers must be in 0X XX XX XX XX format." -msgstr "以 0X XX XX XX XX 的格式輸入電話號碼。" - -#: gb/forms.py:25 -msgid "Enter a valid postcode." -msgstr "輸入有效的郵遞區號" - -#: gb/gb_regions.py:11 -msgid "Bedfordshire" -msgstr "貝德福郡" - -#: gb/gb_regions.py:12 -msgid "Buckinghamshire" -msgstr "白金漢郡" - -#: gb/gb_regions.py:14 -msgid "Cheshire" -msgstr "柴郡" - -#: gb/gb_regions.py:15 -msgid "Cornwall and Isles of Scilly" -msgstr "康瓦爾和錫利群島" - -#: gb/gb_regions.py:16 -msgid "Cumbria" -msgstr "坎布里亞郡" - -#: gb/gb_regions.py:17 -msgid "Derbyshire" -msgstr "德比郡" - -#: gb/gb_regions.py:18 -msgid "Devon" -msgstr "德文郡" - -#: gb/gb_regions.py:19 -msgid "Dorset" -msgstr "多實郡" - -#: gb/gb_regions.py:20 -msgid "Durham" -msgstr "達拉謨" - -#: gb/gb_regions.py:21 -msgid "East Sussex" -msgstr "東薩塞克斯郡" - -#: gb/gb_regions.py:22 -msgid "Essex" -msgstr "雅息士郡" - -#: gb/gb_regions.py:23 -msgid "Gloucestershire" -msgstr "告羅士打郡" - -#: gb/gb_regions.py:24 -msgid "Greater London" -msgstr "大倫敦" - -#: gb/gb_regions.py:25 -msgid "Greater Manchester" -msgstr "大曼徹斯特郡" - -#: gb/gb_regions.py:26 -msgid "Hampshire" -msgstr "漢普郡" - -#: gb/gb_regions.py:27 -msgid "Hertfordshire" -msgstr "哈特福郡" - -#: gb/gb_regions.py:28 -msgid "Kent" -msgstr "肯特郡" - -#: gb/gb_regions.py:29 -msgid "Lancashire" -msgstr "蘭開夏" - -#: gb/gb_regions.py:30 -msgid "Leicestershire" -msgstr "萊斯特郡" - -#: gb/gb_regions.py:31 -msgid "Lincolnshire" -msgstr "林肯郡" - -#: gb/gb_regions.py:32 -msgid "Merseyside" -msgstr "默西塞德郡" - -#: gb/gb_regions.py:33 -msgid "Norfolk" -msgstr "諾福克郡" - -#: gb/gb_regions.py:34 -msgid "North Yorkshire" -msgstr "北約克郡" - -#: gb/gb_regions.py:35 -msgid "Northamptonshire" -msgstr "北安普敦郡" - -#: gb/gb_regions.py:36 -msgid "Northumberland" -msgstr "諾森伯蘭郡" - -#: gb/gb_regions.py:37 -msgid "Nottinghamshire" -msgstr "諾丁罕郡" - -#: gb/gb_regions.py:38 -msgid "Oxfordshire" -msgstr "牛津郡" - -#: gb/gb_regions.py:39 -msgid "Shropshire" -msgstr "施洛普郡" - -#: gb/gb_regions.py:40 -msgid "Somerset" -msgstr "森麻實郡" - -#: gb/gb_regions.py:41 -msgid "South Yorkshire" -msgstr "南約克郡" - -#: gb/gb_regions.py:42 -msgid "Staffordshire" -msgstr "斯塔福郡" - -#: gb/gb_regions.py:43 -msgid "Suffolk" -msgstr "沙福郡" - -#: gb/gb_regions.py:44 -msgid "Surrey" -msgstr "舒梨郡" - -#: gb/gb_regions.py:45 -msgid "Tyne and Wear" -msgstr "泰恩-威爾郡" - -#: gb/gb_regions.py:46 -msgid "Warwickshire" -msgstr "瓦立克郡" - -#: gb/gb_regions.py:47 -msgid "West Midlands" -msgstr "西密德蘭" - -#: gb/gb_regions.py:48 -msgid "West Sussex" -msgstr "西薩塞克斯郡" - -#: gb/gb_regions.py:49 -msgid "West Yorkshire" -msgstr "西約克郡" - -#: gb/gb_regions.py:50 -msgid "Wiltshire" -msgstr "威爾特郡" - -#: gb/gb_regions.py:51 -msgid "Worcestershire" -msgstr "伍斯特郡" - -#: gb/gb_regions.py:55 -msgid "County Antrim" -msgstr "安特里姆郡" - -#: gb/gb_regions.py:56 -msgid "County Armagh" -msgstr "阿馬郡" - -#: gb/gb_regions.py:57 -msgid "County Down" -msgstr "唐郡" - -#: gb/gb_regions.py:58 -msgid "County Fermanagh" -msgstr "弗馬納郡" - -#: gb/gb_regions.py:59 -msgid "County Londonderry" -msgstr "倫敦德里郡" - -#: gb/gb_regions.py:60 -msgid "County Tyrone" -msgstr "蒂龍郡" - -#: gb/gb_regions.py:64 -msgid "Clwyd" -msgstr "克盧伊德" - -#: gb/gb_regions.py:65 -msgid "Dyfed" -msgstr "戴菲德" - -#: gb/gb_regions.py:66 -msgid "Gwent" -msgstr "格溫特" - -#: gb/gb_regions.py:67 -msgid "Gwynedd" -msgstr "圭內斯" - -#: gb/gb_regions.py:68 -msgid "Mid Glamorgan" -msgstr "中格拉摩根" - -#: gb/gb_regions.py:69 -msgid "Powys" -msgstr "波伊斯" - -#: gb/gb_regions.py:70 -msgid "South Glamorgan" -msgstr "南格拉摩根" - -#: gb/gb_regions.py:71 -msgid "West Glamorgan" -msgstr "西格拉摩根" - -#: gb/gb_regions.py:75 -msgid "Borders" -msgstr "博德斯" - -#: gb/gb_regions.py:76 -msgid "Central Scotland" -msgstr "中央蘇格蘭" - -#: gb/gb_regions.py:77 -msgid "Dumfries and Galloway" -msgstr "鄧弗里斯-加洛韋" - -#: gb/gb_regions.py:78 -msgid "Fife" -msgstr "法夫" - -#: gb/gb_regions.py:79 -msgid "Grampian" -msgstr "嘉林邊" - -#: gb/gb_regions.py:80 -msgid "Highland" -msgstr "高地 (蘇格蘭行政區)" - -#: gb/gb_regions.py:81 -msgid "Lothian" -msgstr "洛錫安" - -#: gb/gb_regions.py:82 -msgid "Orkney Islands" -msgstr "奧克尼群島" - -#: gb/gb_regions.py:83 -msgid "Shetland Islands" -msgstr "昔德蘭群島" - -#: gb/gb_regions.py:84 -msgid "Strathclyde" -msgstr "斯特拉思克萊德" - -#: gb/gb_regions.py:85 -msgid "Tayside" -msgstr "泰賽德" - -#: gb/gb_regions.py:86 -msgid "Western Isles" -msgstr "埃利安錫爾" - -#: gb/gb_regions.py:90 -msgid "England" -msgstr "英格蘭" - -#: gb/gb_regions.py:91 -msgid "Northern Ireland" -msgstr "北愛爾蘭" - -#: gb/gb_regions.py:92 -msgid "Scotland" -msgstr "蘇格蘭" - -#: gb/gb_regions.py:93 -msgid "Wales" -msgstr "威爾斯" - -#: hr/forms.py:75 -msgid "Enter a valid 13 digit JMBG" -msgstr "" - -#: hr/forms.py:76 -msgid "Error in date segment" -msgstr "" - -#: hr/forms.py:123 -msgid "Enter a valid 11 digit OIB" -msgstr "" - -#: hr/forms.py:152 id/forms.py:112 -msgid "Enter a valid vehicle license plate number" -msgstr "輸入正確的居住許可號碼。" - -#: hr/forms.py:153 -msgid "Enter a valid location code" -msgstr "" - -#: hr/forms.py:154 -msgid "Number part cannot be zero" -msgstr "" - -#: hr/forms.py:190 -msgid "Enter a valid 5 digit postal code" -msgstr "" - -#: hr/forms.py:218 id/forms.py:72 nl/forms.py:56 -msgid "Enter a valid phone number" -msgstr "輸入正確的電話號碼。" - -#: hr/forms.py:219 -msgid "Enter a valid area or mobile network code" -msgstr "" - -#: hr/forms.py:220 -msgid "The phone nubmer is too long" -msgstr "" - -#: hr/forms.py:258 -msgid "Enter a valid 19 digit JMBAG starting with 601983" -msgstr "" - -#: hr/forms.py:259 -msgid "Card issue number cannot be zero" -msgstr "" - -#: hr/hr_choices.py:12 -msgid "Grad Zagreb" -msgstr "" - -#: hr/hr_choices.py:13 -msgid "Bjelovarsko-bilogorska županija" -msgstr "" - -#: hr/hr_choices.py:14 -msgid "Brodsko-posavska županija" -msgstr "" - -#: hr/hr_choices.py:15 -msgid "Dubrovačko-neretvanska županija" -msgstr "" - -#: hr/hr_choices.py:16 -msgid "Istarska županija" -msgstr "" - -#: hr/hr_choices.py:17 -msgid "Karlovačka županija" -msgstr "" - -#: hr/hr_choices.py:18 -msgid "Koprivničko-križevačka županija" -msgstr "" - -#: hr/hr_choices.py:19 -msgid "Krapinsko-zagorska županija" -msgstr "" - -#: hr/hr_choices.py:20 -msgid "Ličko-senjska županija" -msgstr "" - -#: hr/hr_choices.py:21 -msgid "Međimurska županija" -msgstr "" - -#: hr/hr_choices.py:22 -msgid "Osječko-baranjska županija" -msgstr "" - -#: hr/hr_choices.py:23 -msgid "Požeško-slavonska županija" -msgstr "" - -#: hr/hr_choices.py:24 -msgid "Primorsko-goranska županija" -msgstr "" - -#: hr/hr_choices.py:25 -msgid "Sisačko-moslavačka županija" -msgstr "" - -#: hr/hr_choices.py:26 -msgid "Splitsko-dalmatinska županija" -msgstr "" - -#: hr/hr_choices.py:27 -msgid "Šibensko-kninska županija" -msgstr "" - -#: hr/hr_choices.py:28 -msgid "Varaždinska županija" -msgstr "" - -#: hr/hr_choices.py:29 -msgid "Virovitičko-podravska županija" -msgstr "" - -#: hr/hr_choices.py:30 -msgid "Vukovarsko-srijemska županija" -msgstr "" - -#: hr/hr_choices.py:31 -msgid "Zadarska županija" -msgstr "" - -#: hr/hr_choices.py:32 -msgid "Zagrebačka županija" -msgstr "" - -#: id/forms.py:31 -msgid "Enter a valid post code" -msgstr "輸入正確的郵遞區號。" - -#: id/forms.py:176 -msgid "Enter a valid NIK/KTP number" -msgstr "輸入正確的 NIK/KTP 號碼。" - -#: id/id_choices.py:15 -msgid "Aceh" -msgstr "亞齊特別行政區" - -#: id/id_choices.py:16 id/id_choices.py:79 -msgid "Bali" -msgstr "峇里省" - -#: id/id_choices.py:17 id/id_choices.py:51 -msgid "Banten" -msgstr "萬丹省" - -#: id/id_choices.py:18 id/id_choices.py:60 -msgid "Bengkulu" -msgstr "明古魯省" - -#: id/id_choices.py:19 id/id_choices.py:53 -msgid "Yogyakarta" -msgstr "日惹市" - -#: id/id_choices.py:20 id/id_choices.py:57 -msgid "Jakarta" -msgstr "雅加達首都特區" - -#: id/id_choices.py:21 id/id_choices.py:81 -msgid "Gorontalo" -msgstr "哥倫打洛省" - -#: id/id_choices.py:22 id/id_choices.py:63 -msgid "Jambi" -msgstr "占碑省" - -#: id/id_choices.py:23 -msgid "Jawa Barat" -msgstr "西爪哇省" - -#: id/id_choices.py:24 -msgid "Jawa Tengah" -msgstr "中爪哇省" - -#: id/id_choices.py:25 -msgid "Jawa Timur" -msgstr "東爪哇省" - -#: id/id_choices.py:26 id/id_choices.py:94 -msgid "Kalimantan Barat" -msgstr "西加里曼丹省" - -#: id/id_choices.py:27 id/id_choices.py:72 -msgid "Kalimantan Selatan" -msgstr "南加里曼丹省" - -#: id/id_choices.py:28 id/id_choices.py:95 -msgid "Kalimantan Tengah" -msgstr "中加里曼丹省" - -#: id/id_choices.py:29 id/id_choices.py:96 -msgid "Kalimantan Timur" -msgstr "東加里曼丹省" - -#: id/id_choices.py:30 -msgid "Kepulauan Bangka-Belitung" -msgstr "邦加-勿里洞省" - -#: id/id_choices.py:31 id/id_choices.py:68 -msgid "Kepulauan Riau" -msgstr "廖內群島省" - -#: id/id_choices.py:32 id/id_choices.py:61 -msgid "Lampung" -msgstr "楠榜省" - -#: id/id_choices.py:33 id/id_choices.py:76 -msgid "Maluku" -msgstr "馬魯古省" - -#: id/id_choices.py:34 id/id_choices.py:77 -msgid "Maluku Utara" -msgstr "北馬魯古省" - -#: id/id_choices.py:35 -msgid "Nusa Tenggara Barat" -msgstr "西努沙登加拉省" - -#: id/id_choices.py:36 -msgid "Nusa Tenggara Timur" -msgstr "東努沙登加拉省" - -#: id/id_choices.py:37 -msgid "Papua" -msgstr "巴布亞省" - -#: id/id_choices.py:38 -msgid "Papua Barat" -msgstr "西巴布亞省" - -#: id/id_choices.py:39 id/id_choices.py:66 -msgid "Riau" -msgstr "廖內省" - -#: id/id_choices.py:40 id/id_choices.py:74 -msgid "Sulawesi Barat" -msgstr "西蘇拉威西省" - -#: id/id_choices.py:41 id/id_choices.py:75 -msgid "Sulawesi Selatan" -msgstr "南蘇拉威西省" - -#: id/id_choices.py:42 id/id_choices.py:82 -msgid "Sulawesi Tengah" -msgstr "中蘇拉威西省" - -#: id/id_choices.py:43 id/id_choices.py:85 -msgid "Sulawesi Tenggara" -msgstr "東南蘇拉威西省" - -#: id/id_choices.py:44 -msgid "Sulawesi Utara" -msgstr "北蘇拉威西省" - -#: id/id_choices.py:45 id/id_choices.py:58 -msgid "Sumatera Barat" -msgstr "西蘇門答臘省" - -#: id/id_choices.py:46 id/id_choices.py:62 -msgid "Sumatera Selatan" -msgstr "中蘇門答臘省" - -#: id/id_choices.py:47 id/id_choices.py:64 -msgid "Sumatera Utara" -msgstr "北蘇門答臘省" - -#: id/id_choices.py:52 -msgid "Magelang" -msgstr "馬格朗" - -#: id/id_choices.py:54 -msgid "Surakarta - Solo" -msgstr "梭羅市" - -#: id/id_choices.py:55 -msgid "Madiun" -msgstr "茉莉芬" - -#: id/id_choices.py:56 -msgid "Kediri" -msgstr "練義里" - -#: id/id_choices.py:59 -msgid "Tapanuli" -msgstr "塔帕努里" - -#: id/id_choices.py:65 -msgid "Nanggroe Aceh Darussalam" -msgstr "亞齊達魯薩蘭特區" - -#: id/id_choices.py:67 -msgid "Kepulauan Bangka Belitung" -msgstr "邦加勿裡洞群島" - -#: id/id_choices.py:69 -msgid "Corps Consulate" -msgstr "領事團" - -#: id/id_choices.py:70 -msgid "Corps Diplomatic" -msgstr "外交使團" - -#: id/id_choices.py:71 -msgid "Bandung" -msgstr "萬隆" - -#: id/id_choices.py:73 -msgid "Sulawesi Utara Daratan" -msgstr "蘇拉威西北內地" - -#: id/id_choices.py:78 -msgid "NTT - Timor" -msgstr "東努沙登加拉省 - 帝汶" - -#: id/id_choices.py:80 -msgid "Sulawesi Utara Kepulauan" -msgstr "蘇拉威西群島" - -#: id/id_choices.py:83 -msgid "NTB - Lombok" -msgstr "西努沙登加拉省 - 龍目" - -#: id/id_choices.py:84 -msgid "Papua dan Papua Barat" -msgstr "巴布亞和西巴布亞" - -#: id/id_choices.py:86 -msgid "Cirebon" -msgstr "井里汶" - -#: id/id_choices.py:87 -msgid "NTB - Sumbawa" -msgstr "西努沙登加拉省 - 松巴哇" - -#: id/id_choices.py:88 -msgid "NTT - Flores" -msgstr "東努沙登加拉省 - 弗洛勒斯" - -#: id/id_choices.py:89 -msgid "NTT - Sumba" -msgstr "東努沙登加拉省 - 松巴" - -#: id/id_choices.py:90 -msgid "Bogor" -msgstr "茂物" - -#: id/id_choices.py:91 -msgid "Pekalongan" -msgstr "北加浪岸" - -#: id/id_choices.py:92 -msgid "Semarang" -msgstr "三寶壟" - -#: id/id_choices.py:93 -msgid "Pati" -msgstr "帕蒂" - -#: id/id_choices.py:97 -msgid "Surabaya" -msgstr "泗水" - -#: id/id_choices.py:98 -msgid "Madura" -msgstr "馬杜拉" - -#: id/id_choices.py:99 -msgid "Malang" -msgstr "馬朗" - -#: id/id_choices.py:100 -msgid "Jember" -msgstr "任抹" - -#: id/id_choices.py:101 -msgid "Banyumas" -msgstr "班尤馬" - -#: id/id_choices.py:102 -msgid "Federal Government" -msgstr "聯合政府" - -#: id/id_choices.py:103 -msgid "Bojonegoro" -msgstr "新埔頭" - -#: id/id_choices.py:104 -msgid "Purwakarta" -msgstr "普瓦卡達" - -#: id/id_choices.py:105 -msgid "Sidoarjo" -msgstr "詩都阿佐" - -#: id/id_choices.py:106 -msgid "Garut" -msgstr "牙律" - -#: ie/ie_counties.py:8 -msgid "Antrim" -msgstr "安特里姆郡" - -#: ie/ie_counties.py:9 -msgid "Armagh" -msgstr "阿馬郡" - -#: ie/ie_counties.py:10 -msgid "Carlow" -msgstr "卡婁郡" - -#: ie/ie_counties.py:11 -msgid "Cavan" -msgstr "卡文郡" - -#: ie/ie_counties.py:12 -msgid "Clare" -msgstr "克萊爾郡" - -#: ie/ie_counties.py:13 -msgid "Cork" -msgstr "科克郡" - -#: ie/ie_counties.py:14 -msgid "Derry" -msgstr "德里" - -#: ie/ie_counties.py:15 -msgid "Donegal" -msgstr "當尼戈爾郡" - -#: ie/ie_counties.py:16 -msgid "Down" -msgstr "唐郡" - -#: ie/ie_counties.py:17 -msgid "Dublin" -msgstr "都柏林郡" - -#: ie/ie_counties.py:18 -msgid "Fermanagh" -msgstr "弗馬納郡" - -#: ie/ie_counties.py:19 -msgid "Galway" -msgstr "高維郡" - -#: ie/ie_counties.py:20 -msgid "Kerry" -msgstr "凱瑞郡" - -#: ie/ie_counties.py:21 -msgid "Kildare" -msgstr "基爾代爾郡" - -#: ie/ie_counties.py:22 -msgid "Kilkenny" -msgstr "基爾肯尼郡" - -#: ie/ie_counties.py:23 -msgid "Laois" -msgstr "利施郡" - -#: ie/ie_counties.py:24 -msgid "Leitrim" -msgstr "利特里姆郡" - -#: ie/ie_counties.py:25 -msgid "Limerick" -msgstr "利默里克郡" - -#: ie/ie_counties.py:26 -msgid "Longford" -msgstr "朗福德郡" - -#: ie/ie_counties.py:27 -msgid "Louth" -msgstr "勞斯郡" - -#: ie/ie_counties.py:28 -msgid "Mayo" -msgstr "梅歐郡" - -#: ie/ie_counties.py:29 -msgid "Meath" -msgstr "西米斯郡" - -#: ie/ie_counties.py:30 -msgid "Monaghan" -msgstr "莫納亨郡" - -#: ie/ie_counties.py:31 -msgid "Offaly" -msgstr "奧法利郡" - -#: ie/ie_counties.py:32 -msgid "Roscommon" -msgstr "羅斯康門郡" - -#: ie/ie_counties.py:33 -msgid "Sligo" -msgstr "斯萊戈郡" - -#: ie/ie_counties.py:34 -msgid "Tipperary" -msgstr "蒂珀雷里郡" - -#: ie/ie_counties.py:35 -msgid "Tyrone" -msgstr "蒂龍郡" - -#: ie/ie_counties.py:36 -msgid "Waterford" -msgstr "沃特福德郡" - -#: ie/ie_counties.py:37 -msgid "Westmeath" -msgstr "西米斯郡" - -#: ie/ie_counties.py:38 -msgid "Wexford" -msgstr "韋克斯福德" - -#: ie/ie_counties.py:39 -msgid "Wicklow" -msgstr "威克洛郡" - -#: il/forms.py:31 -msgid "Enter a postal code in the format XXXXX" -msgstr "以 XXXXX 的格式輸入郵遞區號。" - -#: il/forms.py:50 -msgid "Enter a valid ID number." -msgstr "請輸入正確的 ID 號碼。" - -#: in_/forms.py:41 -msgid "Enter a zip code in the format XXXXXX or XXX XXX." -msgstr "" - -#: in_/forms.py:64 -msgid "Enter an Indian state or territory." -msgstr "" - -#: in_/forms.py:103 -msgid "Phone numbers must be in 02X-8X or 03X-7X or 04X-6X format." -msgstr "" - -#: is_/forms.py:22 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "用 XXXXXX-XXXX 的格式輸入冰島身份證號碼。" - -#: is_/forms.py:23 -msgid "The Icelandic identification number is not valid." -msgstr "無效的冰島身份證號碼。" - -#: it/forms.py:21 -msgid "Enter a valid zip code." -msgstr "請輸入正確的郵遞區號。" - -#: it/forms.py:48 -msgid "Enter a valid Social Security number." -msgstr "請輸入正確的社會安全號碼。" - -#: it/forms.py:73 -msgid "Enter a valid VAT number." -msgstr "請輸入正確的 VAT 號碼。" - -#: jp/forms.py:19 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "用 XXXXXXX 或 XXX-XXXX 的格式輸入郵遞區號。" - -#: jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "北海道" - -#: jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "青森" - -#: jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "岩手" - -#: jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "宮城縣" - -#: jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "秋田" - -#: jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "山形" - -#: jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "福島" - -#: jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "茨城" - -#: jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "櫪木" - -#: jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "群馬" - -#: jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "埼玉" - -#: jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "千葉" - -#: jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "東京" - -#: jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "神奈川" - -#: jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "山梨" - -#: jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "長野" - -#: jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "新瀉" - -#: jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "富山" - -#: jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "石川" - -#: jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "福井" - -#: jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "岐阜" - -#: jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "靜岡" - -#: jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "愛知" - -#: jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "三重" - -#: jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "滋賀" - -#: jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "京都" - -#: jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "大阪" - -#: jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "兵庫" - -#: jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "奈良" - -#: jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "和歌山" - -#: jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "鳥取" - -#: jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "島根" - -#: jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "岡山" - -#: jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "廣島" - -#: jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "山口" - -#: jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "德島" - -#: jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "香川" - -#: jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "愛媛縣" - -#: jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "高知" - -#: jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "福岡" - -#: jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "左賀" - -#: jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "長崎" - -#: jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "熊本" - -#: jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "大分" - -#: jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "宫崎" - -#: jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "鹿兒島" - -#: jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "琉球" - -#: kw/forms.py:25 -msgid "Enter a valid Kuwaiti Civil ID number" -msgstr "請輸入一個正確的科威特身分證號碼。" - -#: mk/forms.py:18 -msgid "" -"Identity card numbers must contain either 4 to 7 digits or an uppercase " -"letter and 7 digits." -msgstr "" - -#: mk/forms.py:57 si/forms.py:24 -msgid "This field should contain exactly 13 digits." -msgstr "" - -#: mk/forms.py:58 -msgid "The first 7 digits of the UMCN must represent a valid past date." -msgstr "" - -#: mk/forms.py:59 -msgid "The UMCN is not valid." -msgstr "" - -#: mk/mk_choices.py:8 -msgid "Aerodrom" -msgstr "" - -#: mk/mk_choices.py:9 -msgid "Aračinovo" -msgstr "" - -#: mk/mk_choices.py:10 -msgid "Berovo" -msgstr "" - -#: mk/mk_choices.py:11 -msgid "Bitola" -msgstr "" - -#: mk/mk_choices.py:12 -msgid "Bogdanci" -msgstr "" - -#: mk/mk_choices.py:13 -msgid "Bogovinje" -msgstr "" - -#: mk/mk_choices.py:14 -msgid "Bosilovo" -msgstr "" - -#: mk/mk_choices.py:15 -msgid "Brvenica" -msgstr "" - -#: mk/mk_choices.py:16 -msgid "Butel" -msgstr "" - -#: mk/mk_choices.py:17 -msgid "Valandovo" -msgstr "" - -#: mk/mk_choices.py:18 -msgid "Vasilevo" -msgstr "" - -#: mk/mk_choices.py:19 -msgid "Vevčani" -msgstr "" - -#: mk/mk_choices.py:20 -msgid "Veles" -msgstr "" - -#: mk/mk_choices.py:21 -msgid "Vinica" -msgstr "" - -#: mk/mk_choices.py:22 -msgid "Vraneštica" -msgstr "" - -#: mk/mk_choices.py:23 -msgid "Vrapčište" -msgstr "" - -#: mk/mk_choices.py:24 -msgid "Gazi Baba" -msgstr "" - -#: mk/mk_choices.py:25 -msgid "Gevgelija" -msgstr "" - -#: mk/mk_choices.py:26 -msgid "Gostivar" -msgstr "" - -#: mk/mk_choices.py:27 -msgid "Gradsko" -msgstr "" - -#: mk/mk_choices.py:28 -msgid "Debar" -msgstr "" - -#: mk/mk_choices.py:29 -msgid "Debarca" -msgstr "" - -#: mk/mk_choices.py:30 -msgid "Delčevo" -msgstr "" - -#: mk/mk_choices.py:31 -msgid "Demir Kapija" -msgstr "" - -#: mk/mk_choices.py:32 -msgid "Demir Hisar" -msgstr "" - -#: mk/mk_choices.py:33 -msgid "Dolneni" -msgstr "" - -#: mk/mk_choices.py:34 -msgid "Drugovo" -msgstr "" - -#: mk/mk_choices.py:35 -msgid "Gjorče Petrov" -msgstr "" - -#: mk/mk_choices.py:36 -msgid "Želino" -msgstr "" - -#: mk/mk_choices.py:37 -msgid "Zajas" -msgstr "" - -#: mk/mk_choices.py:38 -msgid "Zelenikovo" -msgstr "" - -#: mk/mk_choices.py:39 -msgid "Zrnovci" -msgstr "" - -#: mk/mk_choices.py:40 -msgid "Ilinden" -msgstr "" - -#: mk/mk_choices.py:41 -msgid "Jegunovce" -msgstr "" - -#: mk/mk_choices.py:42 -msgid "Kavadarci" -msgstr "" - -#: mk/mk_choices.py:43 -msgid "Karbinci" -msgstr "" - -#: mk/mk_choices.py:44 -msgid "Karpoš" -msgstr "" - -#: mk/mk_choices.py:45 -msgid "Kisela Voda" -msgstr "" - -#: mk/mk_choices.py:46 -msgid "Kičevo" -msgstr "" - -#: mk/mk_choices.py:47 -msgid "Konče" -msgstr "" - -#: mk/mk_choices.py:48 -msgid "Koćani" -msgstr "" - -#: mk/mk_choices.py:49 -msgid "Kratovo" -msgstr "" - -#: mk/mk_choices.py:50 -msgid "Kriva Palanka" -msgstr "" - -#: mk/mk_choices.py:51 -msgid "Krivogaštani" -msgstr "" - -#: mk/mk_choices.py:52 -msgid "Kruševo" -msgstr "" - -#: mk/mk_choices.py:53 -msgid "Kumanovo" -msgstr "" - -#: mk/mk_choices.py:54 -msgid "Lipkovo" -msgstr "" - -#: mk/mk_choices.py:55 -msgid "Lozovo" -msgstr "" - -#: mk/mk_choices.py:56 -msgid "Mavrovo i Rostuša" -msgstr "" - -#: mk/mk_choices.py:57 -msgid "Makedonska Kamenica" -msgstr "" - -#: mk/mk_choices.py:58 -msgid "Makedonski Brod" -msgstr "" - -#: mk/mk_choices.py:59 -msgid "Mogila" -msgstr "" - -#: mk/mk_choices.py:60 -msgid "Negotino" -msgstr "" - -#: mk/mk_choices.py:61 -msgid "Novaci" -msgstr "" - -#: mk/mk_choices.py:62 -msgid "Novo Selo" -msgstr "" - -#: mk/mk_choices.py:63 -msgid "Oslomej" -msgstr "" - -#: mk/mk_choices.py:64 -msgid "Ohrid" -msgstr "" - -#: mk/mk_choices.py:65 -msgid "Petrovec" -msgstr "" - -#: mk/mk_choices.py:66 -msgid "Pehčevo" -msgstr "" - -#: mk/mk_choices.py:67 -msgid "Plasnica" -msgstr "" - -#: mk/mk_choices.py:68 -msgid "Prilep" -msgstr "" - -#: mk/mk_choices.py:69 -msgid "Probištip" -msgstr "" - -#: mk/mk_choices.py:70 -msgid "Radoviš" -msgstr "" - -#: mk/mk_choices.py:71 -msgid "Rankovce" -msgstr "" - -#: mk/mk_choices.py:72 -msgid "Resen" -msgstr "" - -#: mk/mk_choices.py:73 -msgid "Rosoman" -msgstr "" - -#: mk/mk_choices.py:74 -msgid "Saraj" -msgstr "" - -#: mk/mk_choices.py:75 -msgid "Sveti Nikole" -msgstr "" - -#: mk/mk_choices.py:76 -msgid "Sopište" -msgstr "" - -#: mk/mk_choices.py:77 -msgid "Star Dojran" -msgstr "" - -#: mk/mk_choices.py:78 -msgid "Staro Nagoričane" -msgstr "" - -#: mk/mk_choices.py:79 -msgid "Struga" -msgstr "" - -#: mk/mk_choices.py:80 -msgid "Strumica" -msgstr "" - -#: mk/mk_choices.py:81 -msgid "Studeničani" -msgstr "" - -#: mk/mk_choices.py:82 -msgid "Tearce" -msgstr "" - -#: mk/mk_choices.py:83 -msgid "Tetovo" -msgstr "" - -#: mk/mk_choices.py:84 -msgid "Centar" -msgstr "" - -#: mk/mk_choices.py:85 -msgid "Centar-Župa" -msgstr "" - -#: mk/mk_choices.py:86 -msgid "Čair" -msgstr "" - -#: mk/mk_choices.py:87 -msgid "Čaška" -msgstr "" - -#: mk/mk_choices.py:88 -msgid "Češinovo-Obleševo" -msgstr "" - -#: mk/mk_choices.py:89 -msgid "Čučer-Sandevo" -msgstr "" - -#: mk/mk_choices.py:90 -msgid "Štip" -msgstr "" - -#: mk/mk_choices.py:91 -msgid "Šuto Orizari" -msgstr "" - -#: mk/models.py:11 -msgid "Macedonian identity card number" -msgstr "" - -#: mk/models.py:25 -msgid "A Macedonian municipality (2 character code)" -msgstr "" - -#: mk/models.py:35 -msgid "Unique master citizen number (13 digits)" -msgstr "" - -#: mx/forms.py:65 -msgid "Enter a valid zip code in the format XXXXX." -msgstr "" - -#: mx/forms.py:108 -msgid "Enter a valid RFC." -msgstr "" - -#: mx/forms.py:109 -msgid "Invalid checksum for RFC." -msgstr "" - -#: mx/forms.py:189 -msgid "Enter a valid CURP." -msgstr "" - -#: mx/forms.py:190 -msgid "Invalid checksum for CURP." -msgstr "" - -#: mx/models.py:14 -msgid "Mexico state (three uppercase letters)" -msgstr "" - -#: mx/models.py:27 -msgid "Mexico zip code" -msgstr "" - -#: mx/models.py:44 -msgid "Mexican RFC" -msgstr "" - -#: mx/models.py:61 -msgid "Mexican CURP" -msgstr "" - -#: mx/mx_states.py:13 -msgid "Aguascalientes" -msgstr "阿瓜斯卡連特斯" - -#: mx/mx_states.py:14 -msgid "Baja California" -msgstr "下加利福尼亞州" - -#: mx/mx_states.py:15 -msgid "Baja California Sur" -msgstr "南下加利福尼亞州" - -#: mx/mx_states.py:16 -msgid "Campeche" -msgstr "坎佩切州" - -#: mx/mx_states.py:17 -msgid "Chihuahua" -msgstr "奇瓦瓦" - -#: mx/mx_states.py:18 -msgid "Chiapas" -msgstr "恰帕斯州" - -#: mx/mx_states.py:19 -msgid "Coahuila" -msgstr "科阿韋拉州" - -#: mx/mx_states.py:20 -msgid "Colima" -msgstr "科利馬" - -#: mx/mx_states.py:21 -msgid "Distrito Federal" -msgstr "聯邦區" - -#: mx/mx_states.py:22 -msgid "Durango" -msgstr "杜蘭戈" - -#: mx/mx_states.py:23 -msgid "Guerrero" -msgstr "格雷羅州" - -#: mx/mx_states.py:24 -msgid "Guanajuato" -msgstr "瓜納華托" - -#: mx/mx_states.py:25 -msgid "Hidalgo" -msgstr "伊達爾戈" - -#: mx/mx_states.py:26 -msgid "Jalisco" -msgstr "哈利斯科" - -#: mx/mx_states.py:27 -msgid "Estado de México" -msgstr "Estado de México" - -#: mx/mx_states.py:28 -msgid "Michoacán" -msgstr "米却肯" - -#: mx/mx_states.py:29 -msgid "Morelos" -msgstr "莫雷洛斯" - -#: mx/mx_states.py:30 -msgid "Nayarit" -msgstr "納亞里特" - -#: mx/mx_states.py:31 -msgid "Nuevo León" -msgstr "新萊昂" - -#: mx/mx_states.py:32 -msgid "Oaxaca" -msgstr "瓦哈卡州" - -#: mx/mx_states.py:33 -msgid "Puebla" -msgstr "普埃布拉" - -#: mx/mx_states.py:34 -msgid "Querétaro" -msgstr "克雷塔羅" - -#: mx/mx_states.py:35 -msgid "Quintana Roo" -msgstr "金塔納羅奧" - -#: mx/mx_states.py:36 -msgid "Sinaloa" -msgstr "錫那羅亞州" - -#: mx/mx_states.py:37 -msgid "San Luis Potosí" -msgstr "聖路易斯波托西" - -#: mx/mx_states.py:38 -msgid "Sonora" -msgstr "索諾拉" - -#: mx/mx_states.py:39 -msgid "Tabasco" -msgstr "塔巴斯科" - -#: mx/mx_states.py:40 -msgid "Tamaulipas" -msgstr "塔毛利帕斯" - -#: mx/mx_states.py:41 -msgid "Tlaxcala" -msgstr "特拉斯卡拉" - -#: mx/mx_states.py:42 -msgid "Veracruz" -msgstr "韋拉克魯斯" - -#: mx/mx_states.py:43 -msgid "Yucatán" -msgstr "尤卡坦" - -#: mx/mx_states.py:44 -msgid "Zacatecas" -msgstr "薩卡特卡斯" - -#: nl/forms.py:26 -msgid "Enter a valid postal code" -msgstr "請輸入有效的郵遞區號。" - -#: nl/forms.py:82 -msgid "Enter a valid SoFi number" -msgstr "請輸入有效的 SoFi 號碼。" - -#: nl/nl_provinces.py:4 -msgid "Drenthe" -msgstr "德倫特省" - -#: nl/nl_provinces.py:5 -msgid "Flevoland" -msgstr "弗萊福蘭" - -#: nl/nl_provinces.py:6 -msgid "Friesland" -msgstr "弗里斯蘭" - -#: nl/nl_provinces.py:7 -msgid "Gelderland" -msgstr "吉德蘭省" - -#: nl/nl_provinces.py:8 -msgid "Groningen" -msgstr "格羅寧根" - -#: nl/nl_provinces.py:10 -msgid "Noord-Brabant" -msgstr "北布拉班特" - -#: nl/nl_provinces.py:11 -msgid "Noord-Holland" -msgstr "北荷蘭" - -#: nl/nl_provinces.py:12 -msgid "Overijssel" -msgstr "上艾瑟爾" - -#: nl/nl_provinces.py:13 -msgid "Utrecht" -msgstr "烏特勒支" - -#: nl/nl_provinces.py:14 -msgid "Zeeland" -msgstr "西蘭省" - -#: nl/nl_provinces.py:15 -msgid "Zuid-Holland" -msgstr "南荷蘭" - -#: no/forms.py:39 -msgid "Enter a valid Norwegian social security number." -msgstr "請輸入一個有效的挪威社會保險號碼。" - -#: pe/forms.py:28 -msgid "This field requires 8 digits." -msgstr "這個欄位是必須是 8 位數字。" - -#: pe/forms.py:56 -msgid "This field requires 11 digits." -msgstr "這個欄位是必須是 11 位數字。" - -#: pl/forms.py:42 -msgid "National Identification Number consists of 11 digits." -msgstr "國家身份證號碼由 11 位數字值組成。" - -#: pl/forms.py:43 -msgid "Wrong checksum for the National Identification Number." -msgstr "國家身份證號碼校驗和錯誤。" - -#: pl/forms.py:79 -msgid "National ID Card Number consists of 3 letters and 6 digits." -msgstr "" - -#: pl/forms.py:80 -msgid "Wrong checksum for the National ID Card Number." -msgstr "" - -#: pl/forms.py:131 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or " -"XXXXXXXXXX." -msgstr "" - -#: pl/forms.py:132 -msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "税號(NIP)校驗和錯誤。" - -#: pl/forms.py:171 -msgid "National Business Register Number (REGON) consists of 9 or 14 digits." -msgstr "國家身分證號碼必須由 9 或 14 位數組成。" - -#: pl/forms.py:172 -msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "國家商標註冊號碼(REGON)由 7 位或 9 位数字組成。" - -#: pl/forms.py:212 -msgid "Enter a postal code in the format XX-XXX." -msgstr "用 XX-XXX 的格式輸入郵遞區號。" - -#: pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "下西里西亞省" - -#: pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "庫亞維-濱海省" - -#: pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "盧布林" - -#: pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "盧布斯卡省" - -#: pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "洛次" - -#: pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "小波蘭省" - -#: pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "瑪佐維亞" - -#: pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "奧波萊" - -#: pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "外喀爾巴阡州" - -#: pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "波德拉謝" - -#: pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "波美拉尼亞" - -#: pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "西利西亞" - -#: pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "聖十字省" - -#: pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "瓦爾米亞-馬祖里" - -#: pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "大波蘭" - -#: pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "西波美拉尼亞省" - -#: pt/forms.py:17 -msgid "Enter a zip code in the format XXXX-XXX." -msgstr "用 XXXXX-XXX 的格式輸入郵遞區號。" - -#: pt/forms.py:37 -msgid "Phone numbers must have 9 digits, or start by + or 00." -msgstr "電話號碼必須有 9 位數,或以 + 或 00 開頭。" - -#: ro/forms.py:20 -msgid "Enter a valid CIF." -msgstr "輸入有效的 CIF。" - -#: ro/forms.py:57 -msgid "Enter a valid CNP." -msgstr "輸入有效的 CNP。" - -#: ro/forms.py:142 -msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" -msgstr "以 ROXX-XXXX-XXXX-XXXX-XXXX-XXXX 的格式輸入一個有效的 IBAN。" - -#: ro/forms.py:174 -msgid "Phone numbers must be in XXXX-XXXXXX format." -msgstr "電話號碼必須是 XXXX-XXXXXX 格式。" - -#: ro/forms.py:199 -msgid "Enter a valid postal code in the format XXXXXX" -msgstr "用 XXXXXX 的格式輸入郵遞區號。" - -#: ru/forms.py:37 -msgid "Enter a postal code in the format XXXXXX." -msgstr "" - -#: ru/forms.py:50 -msgid "Enter a passport number in the format XXXX XXXXXX." -msgstr "" - -#: ru/forms.py:63 -msgid "Enter a passport number in the format XX XXXXXXX." -msgstr "" - -#: ru/ru_regions.py:10 -msgid "Central Federal County" -msgstr "" - -#: ru/ru_regions.py:11 -msgid "South Federal County" -msgstr "" - -#: ru/ru_regions.py:12 -msgid "North-West Federal County" -msgstr "" - -#: ru/ru_regions.py:13 -msgid "Far-East Federal County" -msgstr "" - -#: ru/ru_regions.py:14 -msgid "Siberian Federal County" -msgstr "" - -#: ru/ru_regions.py:15 -msgid "Ural Federal County" -msgstr "" - -#: ru/ru_regions.py:16 -msgid "Privolzhsky Federal County" -msgstr "" - -#: ru/ru_regions.py:17 -msgid "North-Caucasian Federal County" -msgstr "" - -#: ru/ru_regions.py:21 -msgid "Moskva" -msgstr "" - -#: ru/ru_regions.py:22 -msgid "Saint-Peterburg" -msgstr "" - -#: ru/ru_regions.py:23 -msgid "Moskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:24 -msgid "Adygeya, Respublika" -msgstr "" - -#: ru/ru_regions.py:25 -msgid "Bashkortostan, Respublika" -msgstr "" - -#: ru/ru_regions.py:26 -msgid "Buryatia, Respublika" -msgstr "" - -#: ru/ru_regions.py:27 -msgid "Altay, Respublika" -msgstr "" - -#: ru/ru_regions.py:28 -msgid "Dagestan, Respublika" -msgstr "" - -#: ru/ru_regions.py:29 -msgid "Ingushskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:30 -msgid "Kabardino-Balkarskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:31 -msgid "Kalmykia, Respublika" -msgstr "" - -#: ru/ru_regions.py:32 -msgid "Karachaevo-Cherkesskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:33 -msgid "Karelia, Respublika" -msgstr "" - -#: ru/ru_regions.py:34 -msgid "Komi, Respublika" -msgstr "" - -#: ru/ru_regions.py:35 -msgid "Mariy Ehl, Respublika" -msgstr "" - -#: ru/ru_regions.py:36 -msgid "Mordovia, Respublika" -msgstr "" - -#: ru/ru_regions.py:37 -msgid "Sakha, Respublika (Yakutiya)" -msgstr "" - -#: ru/ru_regions.py:38 -msgid "Severnaya Osetia, Respublika (Alania)" -msgstr "" - -#: ru/ru_regions.py:39 -msgid "Tatarstan, Respublika" -msgstr "" - -#: ru/ru_regions.py:40 -msgid "Tyva, Respublika (Tuva)" -msgstr "" - -#: ru/ru_regions.py:41 -msgid "Udmurtskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:42 -msgid "Khakassiya, Respublika" -msgstr "" - -#: ru/ru_regions.py:43 -msgid "Chechenskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:44 -msgid "Chuvashskaya Respublika" -msgstr "" - -#: ru/ru_regions.py:45 -msgid "Altayskiy Kray" -msgstr "" - -#: ru/ru_regions.py:46 -msgid "Zabaykalskiy Kray" -msgstr "" - -#: ru/ru_regions.py:47 -msgid "Kamchatskiy Kray" -msgstr "" - -#: ru/ru_regions.py:48 -msgid "Krasnodarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:49 -msgid "Krasnoyarskiy Kray" -msgstr "" - -#: ru/ru_regions.py:50 -msgid "Permskiy Kray" -msgstr "" - -#: ru/ru_regions.py:51 -msgid "Primorskiy Kray" -msgstr "" - -#: ru/ru_regions.py:52 -msgid "Stavropol'siyy Kray" -msgstr "" - -#: ru/ru_regions.py:53 -msgid "Khabarovskiy Kray" -msgstr "" - -#: ru/ru_regions.py:54 -msgid "Amurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:55 -msgid "Arkhangel'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:56 -msgid "Astrakhanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:57 -msgid "Belgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:58 -msgid "Bryanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:59 -msgid "Vladimirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:60 -msgid "Volgogradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:61 -msgid "Vologodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:62 -msgid "Voronezhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:63 -msgid "Ivanovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:64 -msgid "Irkutskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:65 -msgid "Kaliningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:66 -msgid "Kaluzhskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:67 -msgid "Kemerovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:68 -msgid "Kirovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:69 -msgid "Kostromskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:70 -msgid "Kurganskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:71 -msgid "Kurskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:72 -msgid "Leningradskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:73 -msgid "Lipeckaya oblast'" -msgstr "" - -#: ru/ru_regions.py:74 -msgid "Magadanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:75 -msgid "Murmanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:76 -msgid "Nizhegorodskaja oblast'" -msgstr "" - -#: ru/ru_regions.py:77 -msgid "Novgorodskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:78 -msgid "Novosibirskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:79 -msgid "Omskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:80 -msgid "Orenburgskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:81 -msgid "Orlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:82 -msgid "Penzenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:83 -msgid "Pskovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:84 -msgid "Rostovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:85 -msgid "Rjazanskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:86 -msgid "Samarskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:87 -msgid "Saratovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:88 -msgid "Sakhalinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:89 -msgid "Sverdlovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:90 -msgid "Smolenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:91 -msgid "Tambovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:92 -msgid "Tverskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:93 -msgid "Tomskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:94 -msgid "Tul'skaya oblast'" -msgstr "" - -#: ru/ru_regions.py:95 -msgid "Tyumenskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:96 -msgid "Ul'ianovskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:97 -msgid "Chelyabinskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:98 -msgid "Yaroslavskaya oblast'" -msgstr "" - -#: ru/ru_regions.py:99 -msgid "Evreyskaya avtonomnaja oblast'" -msgstr "" - -#: ru/ru_regions.py:100 -msgid "Neneckiy autonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:101 -msgid "Khanty-Mansiyskiy avtonomnyy okrug - Yugra" -msgstr "" - -#: ru/ru_regions.py:102 -msgid "Chukotskiy avtonomnyy okrug" -msgstr "" - -#: ru/ru_regions.py:103 -msgid "Yamalo-Neneckiy avtonomnyy okrug" -msgstr "" - -#: se/forms.py:54 -msgid "Enter a valid Swedish organisation number." -msgstr "輸入有效的 SoFi 號碼" - -#: se/forms.py:111 -msgid "Enter a valid Swedish personal identity number." -msgstr "請輸入一個有效的芬蘭社會保險號碼。" - -#: se/forms.py:112 -msgid "Co-ordination numbers are not allowed." -msgstr "請勿輸入配位數。" - -#: se/forms.py:154 -msgid "Enter a Swedish postal code in the format XXXXX." -msgstr "用 XX-XXX 的格式輸入郵遞區號。" - -#: se/se_counties.py:15 -msgid "Stockholm" -msgstr "斯德哥爾摩省" - -#: se/se_counties.py:16 -msgid "Västerbotten" -msgstr "西博滕省" - -#: se/se_counties.py:17 -msgid "Norrbotten" -msgstr "北博滕省" - -#: se/se_counties.py:18 -msgid "Uppsala" -msgstr "烏普薩拉省" - -#: se/se_counties.py:19 -msgid "Södermanland" -msgstr "南曼蘭省" - -#: se/se_counties.py:20 -msgid "Östergötland" -msgstr "東約特蘭省" - -#: se/se_counties.py:21 -msgid "Jönköping" -msgstr "延雪平省" - -#: se/se_counties.py:22 -msgid "Kronoberg" -msgstr "克魯努貝里省" - -#: se/se_counties.py:23 -msgid "Kalmar" -msgstr "卡爾馬" - -#: se/se_counties.py:24 -msgid "Gotland" -msgstr "哥德蘭省" - -#: se/se_counties.py:25 -msgid "Blekinge" -msgstr "布萊金厄省" - -#: se/se_counties.py:26 -msgid "Skåne" -msgstr "斯科訥省" - -#: se/se_counties.py:27 -msgid "Halland" -msgstr "哈蘭省" - -#: se/se_counties.py:28 -msgid "Västra Götaland" -msgstr "西約塔蘭省" - -#: se/se_counties.py:29 -msgid "Värmland" -msgstr "韋姆蘭省" - -#: se/se_counties.py:30 -msgid "Örebro" -msgstr "厄勒布魯" - -#: se/se_counties.py:31 -msgid "Västmanland" -msgstr "西曼蘭省" - -#: se/se_counties.py:32 -msgid "Dalarna" -msgstr "達拉納省" - -#: se/se_counties.py:33 -msgid "Gävleborg" -msgstr "耶夫勒堡省" - -#: se/se_counties.py:34 -msgid "Västernorrland" -msgstr "西諾爾蘭省" - -#: se/se_counties.py:35 -msgid "Jämtland" -msgstr "耶姆特蘭省" - -#: si/forms.py:25 -msgid "The first 7 digits of the EMSO must represent a valid past date." -msgstr "" - -#: si/forms.py:26 -msgid "The EMSO is not valid." -msgstr "" - -#: si/forms.py:86 -msgid "Enter a valid tax number in form SIXXXXXXXX" -msgstr "" - -#: si/forms.py:151 -msgid "Enter phone number in form +386XXXXXXXX or 0XXXXXXXX." -msgstr "" - -#: sk/sk_districts.py:8 -msgid "Banska Bystrica" -msgstr "班斯卡·比斯特理察" - -#: sk/sk_districts.py:9 -msgid "Banska Stiavnica" -msgstr "斯洛伐克" - -#: sk/sk_districts.py:10 -msgid "Bardejov" -msgstr "巴爾傑約夫" - -#: sk/sk_districts.py:11 -msgid "Banovce nad Bebravou" -msgstr "巴諾維採" - -#: sk/sk_districts.py:12 -msgid "Brezno" -msgstr "佈雷日諾" - -#: sk/sk_districts.py:13 -msgid "Bratislava I" -msgstr "布拉提斯拉瓦 I" - -#: sk/sk_districts.py:14 -msgid "Bratislava II" -msgstr "布拉提斯拉瓦 II" - -#: sk/sk_districts.py:15 -msgid "Bratislava III" -msgstr "布拉提斯拉瓦 III" - -#: sk/sk_districts.py:16 -msgid "Bratislava IV" -msgstr "布拉提斯拉瓦 IV" - -#: sk/sk_districts.py:17 -msgid "Bratislava V" -msgstr "布拉提斯拉瓦 V" - -#: sk/sk_districts.py:18 -msgid "Bytca" -msgstr "比特察" - -#: sk/sk_districts.py:19 -msgid "Cadca" -msgstr "恰德察" - -#: sk/sk_districts.py:20 -msgid "Detva" -msgstr "德特瓦" - -#: sk/sk_districts.py:21 -msgid "Dolny Kubin" -msgstr "下庫賓" - -#: sk/sk_districts.py:22 -msgid "Dunajska Streda" -msgstr "多瑙-斯特雷達" - -#: sk/sk_districts.py:23 -msgid "Galanta" -msgstr "加蘭塔" - -#: sk/sk_districts.py:24 -msgid "Gelnica" -msgstr "格爾尼察" - -#: sk/sk_districts.py:25 -msgid "Hlohovec" -msgstr "赫洛霍維克" - -#: sk/sk_districts.py:26 -msgid "Humenne" -msgstr "胡門內" - -#: sk/sk_districts.py:27 -msgid "Ilava" -msgstr "伊拉瓦" - -#: sk/sk_districts.py:28 -msgid "Kezmarok" -msgstr "科日馬諾克" - -#: sk/sk_districts.py:29 -msgid "Komarno" -msgstr "科馬爾諾" - -#: sk/sk_districts.py:30 -msgid "Kosice I" -msgstr "科希策 I" - -#: sk/sk_districts.py:31 -msgid "Kosice II" -msgstr "科希策 II" - -#: sk/sk_districts.py:32 -msgid "Kosice III" -msgstr "科希策 III" - -#: sk/sk_districts.py:33 -msgid "Kosice IV" -msgstr "科希策 IV" - -#: sk/sk_districts.py:34 -msgid "Kosice - okolie" -msgstr "科希策郊區" - -#: sk/sk_districts.py:35 -msgid "Krupina" -msgstr "克魯皮納" - -#: sk/sk_districts.py:36 -msgid "Kysucke Nove Mesto" -msgstr "庫舒基-新梅斯托" - -#: sk/sk_districts.py:37 -msgid "Levice" -msgstr "勒維採" - -#: sk/sk_districts.py:38 -msgid "Levoca" -msgstr "利沃察" - -#: sk/sk_districts.py:39 -msgid "Liptovsky Mikulas" -msgstr "利普托夫-米庫拉什" - -#: sk/sk_districts.py:40 -msgid "Lucenec" -msgstr "盧採內克" - -#: sk/sk_districts.py:41 -msgid "Malacky" -msgstr "馬拉基" - -#: sk/sk_districts.py:42 -msgid "Martin" -msgstr "馬丁" - -#: sk/sk_districts.py:43 -msgid "Medzilaborce" -msgstr "梅捷拉博採" - -#: sk/sk_districts.py:44 -msgid "Michalovce" -msgstr "米海洛夫策" - -#: sk/sk_districts.py:45 -msgid "Myjava" -msgstr "米亞瓦" - -#: sk/sk_districts.py:46 -msgid "Namestovo" -msgstr "納梅斯托沃" - -#: sk/sk_districts.py:47 -msgid "Nitra" -msgstr "尼特拉" - -#: sk/sk_districts.py:48 -msgid "Nove Mesto nad Vahom" -msgstr "新梅斯托" - -#: sk/sk_districts.py:49 -msgid "Nove Zamky" -msgstr "新紮姆基" - -#: sk/sk_districts.py:50 -msgid "Partizanske" -msgstr "帕蒂桑斯克" - -#: sk/sk_districts.py:51 -msgid "Pezinok" -msgstr "佩茲諾克" - -#: sk/sk_districts.py:52 -msgid "Piestany" -msgstr "皮爾斯恰尼" - -#: sk/sk_districts.py:53 -msgid "Poltar" -msgstr "波塔爾" - -#: sk/sk_districts.py:54 -msgid "Poprad" -msgstr "波普拉德" - -#: sk/sk_districts.py:55 -msgid "Povazska Bystrica" -msgstr "瓦赫河畔比斯特里察" - -#: sk/sk_districts.py:56 -msgid "Presov" -msgstr "普雷紹夫" - -#: sk/sk_districts.py:57 -msgid "Prievidza" -msgstr "普列維扎" - -#: sk/sk_districts.py:58 -msgid "Puchov" -msgstr "普霍夫" - -#: sk/sk_districts.py:59 -msgid "Revuca" -msgstr "雷烏察" - -#: sk/sk_districts.py:60 -msgid "Rimavska Sobota" -msgstr "里馬夫斯卡-索博塔" - -#: sk/sk_districts.py:61 -msgid "Roznava" -msgstr "羅日納瓦" - -#: sk/sk_districts.py:62 -msgid "Ruzomberok" -msgstr "魯容貝羅克" - -#: sk/sk_districts.py:63 -msgid "Sabinov" -msgstr "薩比諾夫" - -#: sk/sk_districts.py:64 -msgid "Senec" -msgstr "塞內克" - -#: sk/sk_districts.py:65 -msgid "Senica" -msgstr "塞尼察" - -#: sk/sk_districts.py:66 -msgid "Skalica" -msgstr "斯卡利察" - -#: sk/sk_districts.py:67 -msgid "Snina" -msgstr "斯尼納" - -#: sk/sk_districts.py:68 -msgid "Sobrance" -msgstr "索布蘭策" - -#: sk/sk_districts.py:69 -msgid "Spisska Nova Ves" -msgstr "斯皮什斯卡新村" - -#: sk/sk_districts.py:70 -msgid "Stara Lubovna" -msgstr "盧博夫納" - -#: sk/sk_districts.py:71 -msgid "Stropkov" -msgstr "斯特羅普科夫" - -#: sk/sk_districts.py:72 -msgid "Svidnik" -msgstr "斯維德尼克" - -#: sk/sk_districts.py:73 -msgid "Sala" -msgstr "薩拉" - -#: sk/sk_districts.py:74 -msgid "Topolcany" -msgstr "托波爾卡尼" - -#: sk/sk_districts.py:75 -msgid "Trebisov" -msgstr "特雷比紹夫" - -#: sk/sk_districts.py:76 -msgid "Trencin" -msgstr "特倫欽" - -#: sk/sk_districts.py:77 -msgid "Trnava" -msgstr "特爾納瓦" - -#: sk/sk_districts.py:78 -msgid "Turcianske Teplice" -msgstr "特普利採" - -#: sk/sk_districts.py:79 -msgid "Tvrdosin" -msgstr "圖多辛" - -#: sk/sk_districts.py:80 -msgid "Velky Krtis" -msgstr "大克爾季什" - -#: sk/sk_districts.py:81 -msgid "Vranov nad Toplou" -msgstr "弗拉諾夫" - -#: sk/sk_districts.py:82 -msgid "Zlate Moravce" -msgstr "莫拉維採" - -#: sk/sk_districts.py:83 -msgid "Zvolen" -msgstr "茲沃倫" - -#: sk/sk_districts.py:84 -msgid "Zarnovica" -msgstr "扎諾維採" - -#: sk/sk_districts.py:85 -msgid "Ziar nad Hronom" -msgstr "日阿爾" - -#: sk/sk_districts.py:86 -msgid "Zilina" -msgstr "日利纳" - -#: sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "班斯卡·比斯特理察州" - -#: sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "布拉提斯拉瓦州" - -#: sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "科希策州" - -#: sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "尼特拉州" - -#: sk/sk_regions.py:12 -msgid "Presov region" -msgstr "普列索夫州" - -#: sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "特倫欽州" - -#: sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "特爾納瓦州" - -#: sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "日利納州" - -#: tr/forms.py:21 -msgid "Enter a postal code in the format XXXXX." -msgstr "用 XX-XXX 的格式輸入郵遞區號。" - -#: tr/forms.py:42 -msgid "Phone numbers must be in 0XXX XXX XXXX format." -msgstr "電話號碼必須是 XXXX-XXXXXX 格式。" - -#: tr/forms.py:69 -msgid "Enter a valid Turkish Identification number." -msgstr "請輸入一個有效的土耳其身份證號碼。" - -#: tr/forms.py:70 -msgid "Turkish Identification number must be 11 digits." -msgstr "國家身份證號碼必須由 11 位數字值組成。" - -#: us/forms.py:21 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "以 XXXXX 或 XXXXX-XXXX 的格式輸入一個郵遞區號。" - -#: us/forms.py:30 -msgid "Phone numbers must be in XXX-XXX-XXXX format." -msgstr "電話號碼必須是 XX-XXXX-XXXX 格式。" - -#: us/forms.py:59 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "以 XXX-XX-XXXX 的格式輸入一有效的美国身份證字號。" - -#: us/forms.py:92 -msgid "Enter a U.S. state or territory." -msgstr "輸入美國州名。" - -#: us/models.py:8 -msgid "U.S. state (two uppercase letters)" -msgstr "美國州名 (兩個大寫字母)" - -#: us/models.py:17 -msgid "U.S. postal code (two uppercase letters)" -msgstr "美國郵遞區號 (兩個大寫字母)" - -#: us/models.py:26 -msgid "Phone number" -msgstr "電話號碼" - -#: uy/forms.py:29 -msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." -msgstr "以 XX-XXXXXXXX-X 或 XXXXXXXXXXXX 的格式输入一個有效的 CUIT。" - -#: uy/forms.py:31 -msgid "Enter a valid CI number." -msgstr "輸入有效的 CI 號碼。" - -#: za/forms.py:21 -msgid "Enter a valid South African ID number" -msgstr "請輸入一個有效的南非身份證號碼。" - -#: za/forms.py:55 -msgid "Enter a valid South African postal code" -msgstr "輸入一個有效的南非郵遞區號。" - -#: za/za_provinces.py:4 -msgid "Eastern Cape" -msgstr "東開普省" - -#: za/za_provinces.py:5 -msgid "Free State" -msgstr "自由邦省" - -#: za/za_provinces.py:6 -msgid "Gauteng" -msgstr "豪登省" - -#: za/za_provinces.py:7 -msgid "KwaZulu-Natal" -msgstr "誇祖魯-納塔爾省" - -#: za/za_provinces.py:8 -msgid "Limpopo" -msgstr "林波波省" - -#: za/za_provinces.py:9 -msgid "Mpumalanga" -msgstr "普馬蘭加省" - -#: za/za_provinces.py:10 -msgid "Northern Cape" -msgstr "北開普省" - -#: za/za_provinces.py:11 -msgid "North West" -msgstr "西北省" - -#: za/za_provinces.py:12 -msgid "Western Cape" -msgstr "西開普省" diff --git a/django/contrib/localflavor/mk/__init__.py b/django/contrib/localflavor/mk/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/mk/forms.py b/django/contrib/localflavor/mk/forms.py deleted file mode 100644 index 3189f0dec6..0000000000 --- a/django/contrib/localflavor/mk/forms.py +++ /dev/null @@ -1,102 +0,0 @@ -from __future__ import absolute_import, unicode_literals - -import datetime - -from django.core.validators import EMPTY_VALUES -from django.forms import ValidationError -from django.forms.fields import RegexField, Select -from django.utils.translation import ugettext_lazy as _ - -from django.contrib.localflavor.mk.mk_choices import MK_MUNICIPALITIES - - -class MKIdentityCardNumberField(RegexField): - """ - A Macedonian ID card number. Accepts both old and new format. - """ - default_error_messages = { - 'invalid': _('Identity card numbers must contain' - ' either 4 to 7 digits or an uppercase letter and 7 digits.'), - } - - def __init__(self, *args, **kwargs): - kwargs['min_length'] = None - kwargs['max_length'] = 8 - regex = r'(^[A-Z]{1}\d{7}$)|(^\d{4,7}$)' - super(MKIdentityCardNumberField, self).__init__(regex, *args, **kwargs) - - -class MKMunicipalitySelect(Select): - """ - A form ``Select`` widget that uses a list of Macedonian municipalities as - choices. The label is the name of the municipality and the value - is a 2 character code for the municipality. - """ - - def __init__(self, attrs=None): - super(MKMunicipalitySelect, self).__init__(attrs, choices = MK_MUNICIPALITIES) - - -class UMCNField(RegexField): - """ - A form field that validates input as a unique master citizen - number. - - The format of the unique master citizen number has been kept the same from - Yugoslavia. It is still in use in other countries as well, it is not applicable - solely in Macedonia. For more information see: - https://secure.wikimedia.org/wikipedia/en/wiki/Unique_Master_Citizen_Number - - A value will pass validation if it complies to the following rules: - - * Consists of exactly 13 digits - * The first 7 digits represent a valid past date in the format DDMMYYY - * The last digit of the UMCN passes a checksum test - """ - default_error_messages = { - 'invalid': _('This field should contain exactly 13 digits.'), - 'date': _('The first 7 digits of the UMCN must represent a valid past date.'), - 'checksum': _('The UMCN is not valid.'), - } - - def __init__(self, *args, **kwargs): - kwargs['min_length'] = None - kwargs['max_length'] = 13 - super(UMCNField, self).__init__(r'^\d{13}$', *args, **kwargs) - - def clean(self, value): - value = super(UMCNField, self).clean(value) - - if value in EMPTY_VALUES: - return '' - - if not self._validate_date_part(value): - raise ValidationError(self.error_messages['date']) - if self._validate_checksum(value): - return value - else: - raise ValidationError(self.error_messages['checksum']) - - def _validate_checksum(self, value): - a,b,c,d,e,f,g,h,i,j,k,l,K = [int(digit) for digit in value] - m = 11 - (( 7*(a+g) + 6*(b+h) + 5*(c+i) + 4*(d+j) + 3*(e+k) + 2*(f+l)) % 11) - if (m >= 1 and m <= 9) and K == m: - return True - elif m == 11 and K == 0: - return True - else: - return False - - def _validate_date_part(self, value): - daypart, monthpart, yearpart = int(value[:2]), int(value[2:4]), int(value[4:7]) - if yearpart >= 800: - yearpart += 1000 - else: - yearpart += 2000 - try: - date = datetime.datetime(year = yearpart, month = monthpart, day = daypart).date() - except ValueError: - return False - if date >= datetime.datetime.now().date(): - return False - return True diff --git a/django/contrib/localflavor/mk/mk_choices.py b/django/contrib/localflavor/mk/mk_choices.py deleted file mode 100644 index fb705ca820..0000000000 --- a/django/contrib/localflavor/mk/mk_choices.py +++ /dev/null @@ -1,94 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Macedonian municipalities per the reorganization from 2004. -""" -from __future__ import unicode_literals - -from django.utils.translation import ugettext_lazy as _ - -MK_MUNICIPALITIES = ( - ('AD', _('Aerodrom')), - ('AR', _('Aračinovo')), - ('BR', _('Berovo')), - ('TL', _('Bitola')), - ('BG', _('Bogdanci')), - ('VJ', _('Bogovinje')), - ('BS', _('Bosilovo')), - ('BN', _('Brvenica')), - ('BU', _('Butel')), - ('VA', _('Valandovo')), - ('VL', _('Vasilevo')), - ('VV', _('Vevčani')), - ('VE', _('Veles')), - ('NI', _('Vinica')), - ('VC', _('Vraneštica')), - ('VH', _('Vrapčište')), - ('GB', _('Gazi Baba')), - ('GV', _('Gevgelija')), - ('GT', _('Gostivar')), - ('GR', _('Gradsko')), - ('DB', _('Debar')), - ('DA', _('Debarca')), - ('DL', _('Delčevo')), - ('DK', _('Demir Kapija')), - ('DM', _('Demir Hisar')), - ('DE', _('Dolneni')), - ('DR', _('Drugovo')), - ('GP', _('Gjorče Petrov')), - ('ZE', _('Želino')), - ('ZA', _('Zajas')), - ('ZK', _('Zelenikovo')), - ('ZR', _('Zrnovci')), - ('IL', _('Ilinden')), - ('JG', _('Jegunovce')), - ('AV', _('Kavadarci')), - ('KB', _('Karbinci')), - ('KX', _('Karpoš')), - ('VD', _('Kisela Voda')), - ('KH', _('Kičevo')), - ('KN', _('Konče')), - ('OC', _('Koćani')), - ('KY', _('Kratovo')), - ('KZ', _('Kriva Palanka')), - ('KG', _('Krivogaštani')), - ('KS', _('Kruševo')), - ('UM', _('Kumanovo')), - ('LI', _('Lipkovo')), - ('LO', _('Lozovo')), - ('MR', _('Mavrovo i Rostuša')), - ('MK', _('Makedonska Kamenica')), - ('MD', _('Makedonski Brod')), - ('MG', _('Mogila')), - ('NG', _('Negotino')), - ('NV', _('Novaci')), - ('NS', _('Novo Selo')), - ('OS', _('Oslomej')), - ('OD', _('Ohrid')), - ('PE', _('Petrovec')), - ('PH', _('Pehčevo')), - ('PN', _('Plasnica')), - ('PP', _('Prilep')), - ('PT', _('Probištip')), - ('RV', _('Radoviš')), - ('RN', _('Rankovce')), - ('RE', _('Resen')), - ('RO', _('Rosoman')), - ('AJ', _('Saraj')), - ('SL', _('Sveti Nikole')), - ('SS', _('Sopište')), - ('SD', _('Star Dojran')), - ('NA', _('Staro Nagoričane')), - ('UG', _('Struga')), - ('RU', _('Strumica')), - ('SU', _('Studeničani')), - ('TR', _('Tearce')), - ('ET', _('Tetovo')), - ('CE', _('Centar')), - ('CZ', _('Centar-Župa')), - ('CI', _('Čair')), - ('CA', _('Čaška')), - ('CH', _('Češinovo-Obleševo')), - ('CS', _('Čučer-Sandevo')), - ('ST', _('Štip')), - ('SO', _('Šuto Orizari')), -) diff --git a/django/contrib/localflavor/mk/models.py b/django/contrib/localflavor/mk/models.py deleted file mode 100644 index b636357290..0000000000 --- a/django/contrib/localflavor/mk/models.py +++ /dev/null @@ -1,44 +0,0 @@ -from django.db.models.fields import CharField -from django.utils.translation import ugettext_lazy as _ - -from django.contrib.localflavor.mk.mk_choices import MK_MUNICIPALITIES -from django.contrib.localflavor.mk.forms import (UMCNField as UMCNFormField, - MKIdentityCardNumberField as MKIdentityCardNumberFormField) - - -class MKIdentityCardNumberField(CharField): - - description = _("Macedonian identity card number") - - def __init__(self, *args, **kwargs): - kwargs['max_length'] = 8 - super(MKIdentityCardNumberField, self).__init__(*args, **kwargs) - - def formfield(self, **kwargs): - defaults = {'form_class' : MKIdentityCardNumberFormField} - defaults.update(kwargs) - return super(MKIdentityCardNumberField, self).formfield(**defaults) - - -class MKMunicipalityField(CharField): - - description = _("A Macedonian municipality (2 character code)") - - def __init__(self, *args, **kwargs): - kwargs['choices'] = MK_MUNICIPALITIES - kwargs['max_length'] = 2 - super(MKMunicipalityField, self).__init__(*args, **kwargs) - - -class UMCNField(CharField): - - description = _("Unique master citizen number (13 digits)") - - def __init__(self, *args, **kwargs): - kwargs['max_length'] = 13 - super(UMCNField, self).__init__(*args, **kwargs) - - def formfield(self, **kwargs): - defaults = {'form_class' : UMCNFormField} - defaults.update(kwargs) - return super(UMCNField, self).formfield(**defaults) diff --git a/django/contrib/localflavor/mx/__init__.py b/django/contrib/localflavor/mx/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/mx/forms.py b/django/contrib/localflavor/mx/forms.py deleted file mode 100644 index b42bf22b89..0000000000 --- a/django/contrib/localflavor/mx/forms.py +++ /dev/null @@ -1,227 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Mexican-specific form helpers. -""" -from __future__ import unicode_literals -import re - -from django.forms import ValidationError -from django.forms.fields import Select, RegexField -from django.utils import six -from django.utils.translation import ugettext_lazy as _ -from django.core.validators import EMPTY_VALUES -from django.contrib.localflavor.mx.mx_states import STATE_CHOICES - -DATE_RE = r'\d{2}((01|03|05|07|08|10|12)(0[1-9]|[12]\d|3[01])|02(0[1-9]|[12]\d)|(04|06|09|11)(0[1-9]|[12]\d|30))' - -""" -This is the list of inconvenient words according to the `Anexo IV` of the -document described in the next link: - http://www.sisi.org.mx/jspsi/documentos/2005/seguimiento/06101/0610100162005_065.doc -""" - -RFC_INCONVENIENT_WORDS = [ - 'BUEI', 'BUEY', 'CACA', 'CACO', 'CAGA', 'CAGO', 'CAKA', 'CAKO', - 'COGE', 'COJA', 'COJE', 'COJI', 'COJO', 'CULO', 'FETO', 'GUEY', - 'JOTO', 'KACA', 'KACO', 'KAGA', 'KAGO', 'KOGE', 'KOJO', 'KAKA', - 'KULO', 'MAME', 'MAMO', 'MEAR', 'MEAS', 'MEON', 'MION', 'MOCO', - 'MULA', 'PEDA', 'PEDO', 'PENE', 'PUTA', 'PUTO', 'QULO', 'RATA', - 'RUIN', -] - -""" -This is the list of inconvenient words according to the `Anexo 2` of the -document described in the next link: - http://portal.veracruz.gob.mx/pls/portal/url/ITEM/444112558A57C6E0E040A8C02E00695C -""" -CURP_INCONVENIENT_WORDS = [ - 'BACA', 'BAKA', 'BUEI', 'BUEY', 'CACA', 'CACO', 'CAGA', 'CAGO', - 'CAKA', 'CAKO', 'COGE', 'COGI', 'COJA', 'COJE', 'COJI', 'COJO', - 'COLA', 'CULO', 'FALO', 'FETO', 'GETA', 'GUEI', 'GUEY', 'JETA', - 'JOTO', 'KACA', 'KACO', 'KAGA', 'KAGO', 'KAKA', 'KAKO', 'KOGE', - 'KOGI', 'KOJA', 'KOJE', 'KOJI', 'KOJO', 'KOLA', 'KULO', 'LILO', - 'LOCA', 'LOCO', 'LOKA', 'LOKO', 'MAME', 'MAMO', 'MEAR', 'MEAS', - 'MEON', 'MIAR', 'MION', 'MOCO', 'MOKO', 'MULA', 'MULO', 'NACA', - 'NACO', 'PEDA', 'PEDO', 'PENE', 'PIPI', 'PITO', 'POPO', 'PUTA', - 'PUTO', 'QULO', 'RATA', 'ROBA', 'ROBE', 'ROBO', 'RUIN', 'SENO', - 'TETA', 'VACA', 'VAGA', 'VAGO', 'VAKA', 'VUEI', 'VUEY', 'WUEI', - 'WUEY', -] - -class MXStateSelect(Select): - """ - A Select widget that uses a list of Mexican states as its choices. - """ - def __init__(self, attrs=None): - super(MXStateSelect, self).__init__(attrs, choices=STATE_CHOICES) - - -class MXZipCodeField(RegexField): - """ - A form field that accepts a Mexican Zip Code. - - More info about this: - http://en.wikipedia.org/wiki/List_of_postal_codes_in_Mexico - """ - default_error_messages = { - 'invalid': _('Enter a valid zip code in the format XXXXX.'), - } - - def __init__(self, *args, **kwargs): - zip_code_re = r'^(0[1-9]|[1][0-6]|[2-9]\d)(\d{3})$' - super(MXZipCodeField, self).__init__(zip_code_re, *args, **kwargs) - - -class MXRFCField(RegexField): - """ - A form field that validates a Mexican *Registro Federal de Contribuyentes* - for either `Persona física` or `Persona moral`. - - The Persona física RFC string is integrated by a juxtaposition of - characters following the next pattern: - - ===== ====== =========================================== - Index Format Accepted Characters - ===== ====== =========================================== - 1 X Any letter - 2 X Any vowel - 3-4 XX Any letter - 5-10 YYMMDD Any valid date - 11-12 XX Any letter or number between 0 and 9 - 13 X Any digit between 0 and 9 or the letter *A* - ===== ====== =========================================== - - The Persona moral RFC string is integrated by a juxtaposition of - characters following the next pattern: - - ===== ====== ============================================ - Index Format Accepted Characters - ===== ====== ============================================ - 1-3 XXX Any letter including *&* and *Ñ* chars - 4-9 YYMMDD Any valid date - 10-11 XX Any letter or number between 0 and 9 - 12 X Any number between 0 and 9 or the letter *A* - ===== ====== ============================================ - - More info about this: - http://es.wikipedia.org/wiki/Registro_Federal_de_Contribuyentes_(M%C3%A9xico) - """ - default_error_messages = { - 'invalid': _('Enter a valid RFC.'), - 'invalid_checksum': _('Invalid checksum for RFC.'), - } - - def __init__(self, min_length=9, max_length=13, *args, **kwargs): - rfc_re = re.compile(r'^([A-Z&Ññ]{3}|[A-Z][AEIOU][A-Z]{2})%s([A-Z0-9]{2}[0-9A])?$' % DATE_RE, - re.IGNORECASE) - super(MXRFCField, self).__init__(rfc_re, min_length=min_length, - max_length=max_length, *args, **kwargs) - - def clean(self, value): - value = super(MXRFCField, self).clean(value) - if value in EMPTY_VALUES: - return '' - value = value.upper() - if self._has_homoclave(value): - if not value[-1] == self._checksum(value[:-1]): - raise ValidationError(self.default_error_messages['invalid_checksum']) - if self._has_inconvenient_word(value): - raise ValidationError(self.default_error_messages['invalid']) - return value - - def _has_homoclave(self, rfc): - """ - This check is done due to the existance of RFCs without a *homoclave* - since the current algorithm to calculate it had not been created for - the first RFCs ever in Mexico. - """ - rfc_without_homoclave_re = re.compile(r'^[A-Z&Ññ]{3,4}%s$' % DATE_RE, - re.IGNORECASE) - return not rfc_without_homoclave_re.match(rfc) - - def _checksum(self, rfc): - """ - More info about this procedure: - www.sisi.org.mx/jspsi/documentos/2005/seguimiento/06101/0610100162005_065.doc - """ - chars = '0123456789ABCDEFGHIJKLMN&OPQRSTUVWXYZ-Ñ' - if len(rfc) == 11: - rfc = '-' + rfc - - sum_ = sum(i * chars.index(c) for i, c in zip(reversed(range(14)), rfc)) - checksum = 11 - sum_ % 11 - - if checksum == 10: - return 'A' - elif checksum == 11: - return '0' - - return six.text_type(checksum) - - def _has_inconvenient_word(self, rfc): - first_four = rfc[:4] - return first_four in RFC_INCONVENIENT_WORDS - - -class MXCURPField(RegexField): - """ - A field that validates a Mexican Clave Única de Registro de Población. - - The CURP is integrated by a juxtaposition of characters following the next - pattern: - - ===== ====== =================================================== - Index Format Accepted Characters - ===== ====== =================================================== - 1 X Any letter - 2 X Any vowel - 3-4 XX Any letter - 5-10 YYMMDD Any valid date - 11 X Either `H` or `M`, depending on the person's gender - 12-13 XX Any valid acronym for a state in Mexico - 14-16 XXX Any consonant - 17 X Any number between 0 and 9 or any letter - 18 X Any number between 0 and 9 - ===== ====== =================================================== - - More info about this: - http://www.condusef.gob.mx/index.php/clave-unica-de-registro-de-poblacion-curp - """ - default_error_messages = { - 'invalid': _('Enter a valid CURP.'), - 'invalid_checksum': _('Invalid checksum for CURP.'), - } - - def __init__(self, min_length=18, max_length=18, *args, **kwargs): - states_re = r'(AS|BC|BS|CC|CL|CM|CS|CH|DF|DG|GT|GR|HG|JC|MC|MN|MS|NT|NL|OC|PL|QT|QR|SP|SL|SR|TC|TS|TL|VZ|YN|ZS|NE)' - consonants_re = r'[B-DF-HJ-NP-TV-Z]' - curp_re = (r'^[A-Z][AEIOU][A-Z]{2}%s[HM]%s%s{3}[0-9A-Z]\d$' % - (DATE_RE, states_re, consonants_re)) - curp_re = re.compile(curp_re, re.IGNORECASE) - super(MXCURPField, self).__init__(curp_re, min_length=min_length, - max_length=max_length, *args, **kwargs) - - def clean(self, value): - value = super(MXCURPField, self).clean(value) - if value in EMPTY_VALUES: - return '' - value = value.upper() - if value[-1] != self._checksum(value[:-1]): - raise ValidationError(self.default_error_messages['invalid_checksum']) - if self._has_inconvenient_word(value): - raise ValidationError(self.default_error_messages['invalid']) - return value - - def _checksum(self, value): - chars = '0123456789ABCDEFGHIJKLMN&OPQRSTUVWXYZ' - - s = sum(i * chars.index(c) for i, c in zip(reversed(range(19)), value)) - checksum = 10 - s % 10 - - if checksum == 10: - return '0' - return six.text_type(checksum) - - def _has_inconvenient_word(self, curp): - first_four = curp[:4] - return first_four in CURP_INCONVENIENT_WORDS diff --git a/django/contrib/localflavor/mx/models.py b/django/contrib/localflavor/mx/models.py deleted file mode 100644 index 3ef8d5fb03..0000000000 --- a/django/contrib/localflavor/mx/models.py +++ /dev/null @@ -1,70 +0,0 @@ -from django.utils.translation import ugettext_lazy as _ -from django.db.models.fields import CharField - -from django.contrib.localflavor.mx.mx_states import STATE_CHOICES -from django.contrib.localflavor.mx.forms import (MXRFCField as MXRFCFormField, - MXZipCodeField as MXZipCodeFormField, MXCURPField as MXCURPFormField) - - -class MXStateField(CharField): - """ - A model field that stores the three-letter Mexican state abbreviation in the - database. - """ - description = _("Mexico state (three uppercase letters)") - - def __init__(self, *args, **kwargs): - kwargs['choices'] = STATE_CHOICES - kwargs['max_length'] = 3 - super(MXStateField, self).__init__(*args, **kwargs) - - -class MXZipCodeField(CharField): - """ - A model field that forms represent as a forms.MXZipCodeField field and - stores the five-digit Mexican zip code. - """ - description = _("Mexico zip code") - - def __init__(self, *args, **kwargs): - kwargs['max_length'] = 5 - super(MXZipCodeField, self).__init__(*args, **kwargs) - - def formfield(self, **kwargs): - defaults = {'form_class': MXZipCodeFormField} - defaults.update(kwargs) - return super(MXZipCodeField, self).formfield(**defaults) - - -class MXRFCField(CharField): - """ - A model field that forms represent as a forms.MXRFCField field and - stores the value of a valid Mexican RFC. - """ - description = _("Mexican RFC") - - def __init__(self, *args, **kwargs): - kwargs['max_length'] = 13 - super(MXRFCField, self).__init__(*args, **kwargs) - - def formfield(self, **kwargs): - defaults = {'form_class': MXRFCFormField} - defaults.update(kwargs) - return super(MXRFCField, self).formfield(**defaults) - - -class MXCURPField(CharField): - """ - A model field that forms represent as a forms.MXCURPField field and - stores the value of a valid Mexican CURP. - """ - description = _("Mexican CURP") - - def __init__(self, *args, **kwargs): - kwargs['max_length'] = 18 - super(MXCURPField, self).__init__(*args, **kwargs) - - def formfield(self, **kwargs): - defaults = {'form_class': MXCURPFormField} - defaults.update(kwargs) - return super(MXCURPField, self).formfield(**defaults) \ No newline at end of file diff --git a/django/contrib/localflavor/mx/mx_states.py b/django/contrib/localflavor/mx/mx_states.py deleted file mode 100644 index 6ae08ccb12..0000000000 --- a/django/contrib/localflavor/mx/mx_states.py +++ /dev/null @@ -1,46 +0,0 @@ -# -*- coding: utf-8 -*- -""" -A list of Mexican states for use as `choices` in a formfield. - -This exists in this standalone file so that it's only imported into memory -when explicitly needed. -""" -from __future__ import unicode_literals - -from django.utils.translation import ugettext_lazy as _ - -# All 31 states, plus the `Distrito Federal`. -STATE_CHOICES = ( - ('AGU', _('Aguascalientes')), - ('BCN', _('Baja California')), - ('BCS', _('Baja California Sur')), - ('CAM', _('Campeche')), - ('CHH', _('Chihuahua')), - ('CHP', _('Chiapas')), - ('COA', _('Coahuila')), - ('COL', _('Colima')), - ('DIF', _('Distrito Federal')), - ('DUR', _('Durango')), - ('GRO', _('Guerrero')), - ('GUA', _('Guanajuato')), - ('HID', _('Hidalgo')), - ('JAL', _('Jalisco')), - ('MEX', _('Estado de México')), - ('MIC', _('Michoacán')), - ('MOR', _('Morelos')), - ('NAY', _('Nayarit')), - ('NLE', _('Nuevo León')), - ('OAX', _('Oaxaca')), - ('PUE', _('Puebla')), - ('QUE', _('Querétaro')), - ('ROO', _('Quintana Roo')), - ('SIN', _('Sinaloa')), - ('SLP', _('San Luis Potosí')), - ('SON', _('Sonora')), - ('TAB', _('Tabasco')), - ('TAM', _('Tamaulipas')), - ('TLA', _('Tlaxcala')), - ('VER', _('Veracruz')), - ('YUC', _('Yucatán')), - ('ZAC', _('Zacatecas')), -) diff --git a/django/contrib/localflavor/nl/__init__.py b/django/contrib/localflavor/nl/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/nl/forms.py b/django/contrib/localflavor/nl/forms.py deleted file mode 100644 index a05dd38f7f..0000000000 --- a/django/contrib/localflavor/nl/forms.py +++ /dev/null @@ -1,104 +0,0 @@ -""" -NL-specific Form helpers -""" - -from __future__ import absolute_import, unicode_literals - -import re - -from django.contrib.localflavor.nl.nl_provinces import PROVINCE_CHOICES -from django.core.validators import EMPTY_VALUES -from django.forms import ValidationError -from django.forms.fields import Field, Select -from django.utils.encoding import smart_text -from django.utils.translation import ugettext_lazy as _ - - -pc_re = re.compile('^\d{4}[A-Z]{2}$') -sofi_re = re.compile('^\d{9}$') -numeric_re = re.compile('^\d+$') - -class NLZipCodeField(Field): - """ - A Dutch postal code field. - """ - default_error_messages = { - 'invalid': _('Enter a valid postal code'), - } - - def clean(self, value): - super(NLZipCodeField, self).clean(value) - if value in EMPTY_VALUES: - return '' - - value = value.strip().upper().replace(' ', '') - if not pc_re.search(value): - raise ValidationError(self.error_messages['invalid']) - - if int(value[:4]) < 1000: - raise ValidationError(self.error_messages['invalid']) - - return '%s %s' % (value[:4], value[4:]) - -class NLProvinceSelect(Select): - """ - A Select widget that uses a list of provinces of the Netherlands as its - choices. - """ - def __init__(self, attrs=None): - super(NLProvinceSelect, self).__init__(attrs, choices=PROVINCE_CHOICES) - -class NLPhoneNumberField(Field): - """ - A Dutch telephone number field. - """ - default_error_messages = { - 'invalid': _('Enter a valid phone number'), - } - - def clean(self, value): - super(NLPhoneNumberField, self).clean(value) - if value in EMPTY_VALUES: - return '' - - phone_nr = re.sub('[\-\s\(\)]', '', smart_text(value)) - - if len(phone_nr) == 10 and numeric_re.search(phone_nr): - return value - - if phone_nr[:3] == '+31' and len(phone_nr) == 12 and \ - numeric_re.search(phone_nr[3:]): - return value - - raise ValidationError(self.error_messages['invalid']) - -class NLSoFiNumberField(Field): - """ - A Dutch social security number (SoFi/BSN) field. - - http://nl.wikipedia.org/wiki/Sofinummer - """ - default_error_messages = { - 'invalid': _('Enter a valid SoFi number'), - } - - def clean(self, value): - super(NLSoFiNumberField, self).clean(value) - if value in EMPTY_VALUES: - return '' - - if not sofi_re.search(value): - raise ValidationError(self.error_messages['invalid']) - - if int(value) == 0: - raise ValidationError(self.error_messages['invalid']) - - checksum = 0 - for i in range(9, 1, -1): - checksum += int(value[9-i]) * i - checksum -= int(value[-1]) - - if checksum % 11 != 0: - raise ValidationError(self.error_messages['invalid']) - - return value diff --git a/django/contrib/localflavor/nl/nl_provinces.py b/django/contrib/localflavor/nl/nl_provinces.py deleted file mode 100644 index 602917debc..0000000000 --- a/django/contrib/localflavor/nl/nl_provinces.py +++ /dev/null @@ -1,16 +0,0 @@ -from django.utils.translation import ugettext_lazy as _ - -PROVINCE_CHOICES = ( - ('DR', _('Drenthe')), - ('FL', _('Flevoland')), - ('FR', _('Friesland')), - ('GL', _('Gelderland')), - ('GR', _('Groningen')), - ('LB', _('Limburg')), - ('NB', _('Noord-Brabant')), - ('NH', _('Noord-Holland')), - ('OV', _('Overijssel')), - ('UT', _('Utrecht')), - ('ZE', _('Zeeland')), - ('ZH', _('Zuid-Holland')), -) diff --git a/django/contrib/localflavor/no/__init__.py b/django/contrib/localflavor/no/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/no/forms.py b/django/contrib/localflavor/no/forms.py deleted file mode 100644 index 4bd780a312..0000000000 --- a/django/contrib/localflavor/no/forms.py +++ /dev/null @@ -1,87 +0,0 @@ -""" -Norwegian-specific Form helpers -""" - -from __future__ import absolute_import, unicode_literals - -import re -import datetime - -from django.contrib.localflavor.no.no_municipalities import MUNICIPALITY_CHOICES -from django.core.validators import EMPTY_VALUES -from django.forms import ValidationError -from django.forms.fields import Field, RegexField, Select -from django.utils.translation import ugettext_lazy as _ - - -class NOZipCodeField(RegexField): - default_error_messages = { - 'invalid': _('Enter a zip code in the format XXXX.'), - } - - def __init__(self, max_length=None, min_length=None, *args, **kwargs): - super(NOZipCodeField, self).__init__(r'^\d{4}$', - max_length, min_length, *args, **kwargs) - -class NOMunicipalitySelect(Select): - """ - A Select widget that uses a list of Norwegian municipalities (fylker) - as its choices. - """ - def __init__(self, attrs=None): - super(NOMunicipalitySelect, self).__init__(attrs, choices=MUNICIPALITY_CHOICES) - -class NOSocialSecurityNumber(Field): - """ - Algorithm is documented at http://no.wikipedia.org/wiki/Personnummer - """ - default_error_messages = { - 'invalid': _('Enter a valid Norwegian social security number.'), - } - - def clean(self, value): - super(NOSocialSecurityNumber, self).clean(value) - if value in EMPTY_VALUES: - return '' - - if not re.match(r'^\d{11}$', value): - raise ValidationError(self.error_messages['invalid']) - - day = int(value[:2]) - month = int(value[2:4]) - year2 = int(value[4:6]) - - inum = int(value[6:9]) - self.birthday = None - try: - if 000 <= inum < 500: - self.birthday = datetime.date(1900+year2, month, day) - if 500 <= inum < 750 and year2 > 54: - self.birthday = datetime.date(1800+year2, month, day) - if 500 <= inum < 1000 and year2 < 40: - self.birthday = datetime.date(2000+year2, month, day) - if 900 <= inum < 1000 and year2 > 39: - self.birthday = datetime.date(1900+year2, month, day) - except ValueError: - raise ValidationError(self.error_messages['invalid']) - - sexnum = int(value[8]) - if sexnum % 2 == 0: - self.gender = 'F' - else: - self.gender = 'M' - - digits = map(int, list(value)) - weight_1 = [3, 7, 6, 1, 8, 9, 4, 5, 2, 1, 0] - weight_2 = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2, 1] - - def multiply_reduce(aval, bval): - return sum([(a * b) for (a, b) in zip(aval, bval)]) - - if multiply_reduce(digits, weight_1) % 11 != 0: - raise ValidationError(self.error_messages['invalid']) - if multiply_reduce(digits, weight_2) % 11 != 0: - raise ValidationError(self.error_messages['invalid']) - - return value - diff --git a/django/contrib/localflavor/no/no_municipalities.py b/django/contrib/localflavor/no/no_municipalities.py deleted file mode 100644 index d84915caa2..0000000000 --- a/django/contrib/localflavor/no/no_municipalities.py +++ /dev/null @@ -1,33 +0,0 @@ -# -*- coding: utf-8 -*- -""" -An alphabetical list of Norwegian municipalities (fylker) fro use as `choices` -in a formfield. - -This exists in this standalone file so that it's on ly imported into memory -when explicitly needed. -""" -from __future__ import unicode_literals - -MUNICIPALITY_CHOICES = ( - ('akershus', 'Akershus'), - ('austagder', 'Aust-Agder'), - ('buskerud', 'Buskerud'), - ('finnmark', 'Finnmark'), - ('hedmark', 'Hedmark'), - ('hordaland', 'Hordaland'), - ('janmayen', 'Jan Mayen'), - ('moreogromsdal', 'Møre og Romsdal'), - ('nordtrondelag', 'Nord-Trøndelag'), - ('nordland', 'Nordland'), - ('oppland', 'Oppland'), - ('oslo', 'Oslo'), - ('rogaland', 'Rogaland'), - ('sognogfjordane', 'Sogn og Fjordane'), - ('svalbard', 'Svalbard'), - ('sortrondelag', 'Sør-Trøndelag'), - ('telemark', 'Telemark'), - ('troms', 'Troms'), - ('vestagder', 'Vest-Agder'), - ('vestfold', 'Vestfold'), - ('ostfold', 'Østfold') -) diff --git a/django/contrib/localflavor/pe/__init__.py b/django/contrib/localflavor/pe/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/pe/forms.py b/django/contrib/localflavor/pe/forms.py deleted file mode 100644 index 5100bbf575..0000000000 --- a/django/contrib/localflavor/pe/forms.py +++ /dev/null @@ -1,75 +0,0 @@ -# -*- coding: utf-8 -*- -""" -PE-specific Form helpers. -""" - -from __future__ import absolute_import, unicode_literals - -from django.contrib.localflavor.pe.pe_region import REGION_CHOICES -from django.core.validators import EMPTY_VALUES -from django.forms import ValidationError -from django.forms.fields import RegexField, CharField, Select -from django.utils.translation import ugettext_lazy as _ - - -class PERegionSelect(Select): - """ - A Select widget that uses a list of Peruvian Regions as its choices. - """ - def __init__(self, attrs=None): - super(PERegionSelect, self).__init__(attrs, choices=REGION_CHOICES) - -class PEDNIField(CharField): - """ - A field that validates `Documento Nacional de IdentidadŽ (DNI) numbers. - """ - default_error_messages = { - 'invalid': _("This field requires only numbers."), - 'max_digits': _("This field requires 8 digits."), - } - - def __init__(self, max_length=8, min_length=8, *args, **kwargs): - super(PEDNIField, self).__init__(max_length, min_length, *args, - **kwargs) - - def clean(self, value): - """ - Value must be a string in the XXXXXXXX formats. - """ - value = super(PEDNIField, self).clean(value) - if value in EMPTY_VALUES: - return '' - if not value.isdigit(): - raise ValidationError(self.error_messages['invalid']) - if len(value) != 8: - raise ValidationError(self.error_messages['max_digits']) - - return value - -class PERUCField(RegexField): - """ - This field validates a RUC (Registro Unico de Contribuyentes). A RUC is of - the form XXXXXXXXXXX. - """ - default_error_messages = { - 'invalid': _("This field requires only numbers."), - 'max_digits': _("This field requires 11 digits."), - } - - def __init__(self, max_length=11, min_length=11, *args, **kwargs): - super(PERUCField, self).__init__(max_length, min_length, *args, - **kwargs) - - def clean(self, value): - """ - Value must be an 11-digit number. - """ - value = super(PERUCField, self).clean(value) - if value in EMPTY_VALUES: - return '' - if not value.isdigit(): - raise ValidationError(self.error_messages['invalid']) - if len(value) != 11: - raise ValidationError(self.error_messages['max_digits']) - return value - diff --git a/django/contrib/localflavor/pe/pe_region.py b/django/contrib/localflavor/pe/pe_region.py deleted file mode 100644 index 9270bcecf1..0000000000 --- a/django/contrib/localflavor/pe/pe_region.py +++ /dev/null @@ -1,36 +0,0 @@ -# -*- coding: utf-8 -*- -""" -A list of Peru regions as `choices` in a formfield. - -This exists in this standalone file so that it's only imported into memory -when explicitly needed. -""" -from __future__ import unicode_literals - -REGION_CHOICES = ( - ('AMA', 'Amazonas'), - ('ANC', 'Ancash'), - ('APU', 'Apurímac'), - ('ARE', 'Arequipa'), - ('AYA', 'Ayacucho'), - ('CAJ', 'Cajamarca'), - ('CAL', 'Callao'), - ('CUS', 'Cusco'), - ('HUV', 'Huancavelica'), - ('HUC', 'Huánuco'), - ('ICA', 'Ica'), - ('JUN', 'Junín'), - ('LAL', 'La Libertad'), - ('LAM', 'Lambayeque'), - ('LIM', 'Lima'), - ('LOR', 'Loreto'), - ('MDD', 'Madre de Dios'), - ('MOQ', 'Moquegua'), - ('PAS', 'Pasco'), - ('PIU', 'Piura'), - ('PUN', 'Puno'), - ('SAM', 'San Martín'), - ('TAC', 'Tacna'), - ('TUM', 'Tumbes'), - ('UCA', 'Ucayali'), -) diff --git a/django/contrib/localflavor/pl/__init__.py b/django/contrib/localflavor/pl/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/pl/forms.py b/django/contrib/localflavor/pl/forms.py deleted file mode 100644 index 12d9f3d763..0000000000 --- a/django/contrib/localflavor/pl/forms.py +++ /dev/null @@ -1,218 +0,0 @@ -""" -Polish-specific form helpers -""" - -from __future__ import absolute_import, unicode_literals - -import re - -from django.contrib.localflavor.pl.pl_administrativeunits import ADMINISTRATIVE_UNIT_CHOICES -from django.contrib.localflavor.pl.pl_voivodeships import VOIVODESHIP_CHOICES -from django.core.validators import EMPTY_VALUES -from django.forms import ValidationError -from django.forms.fields import Select, RegexField -from django.utils.translation import ugettext_lazy as _ - - -class PLProvinceSelect(Select): - """ - A select widget with list of Polish administrative provinces as choices. - """ - def __init__(self, attrs=None): - super(PLProvinceSelect, self).__init__(attrs, choices=VOIVODESHIP_CHOICES) - -class PLCountySelect(Select): - """ - A select widget with list of Polish administrative units as choices. - """ - def __init__(self, attrs=None): - super(PLCountySelect, self).__init__(attrs, choices=ADMINISTRATIVE_UNIT_CHOICES) - -class PLPESELField(RegexField): - """ - A form field that validates as Polish Identification Number (PESEL). - - Checks the following rules: - * the length consist of 11 digits - * has a valid checksum - - The algorithm is documented at http://en.wikipedia.org/wiki/PESEL. - """ - default_error_messages = { - 'invalid': _('National Identification Number consists of 11 digits.'), - 'checksum': _('Wrong checksum for the National Identification Number.'), - } - - def __init__(self, max_length=None, min_length=None, *args, **kwargs): - super(PLPESELField, self).__init__(r'^\d{11}$', - max_length, min_length, *args, **kwargs) - - def clean(self, value): - super(PLPESELField, self).clean(value) - if value in EMPTY_VALUES: - return '' - if not self.has_valid_checksum(value): - raise ValidationError(self.error_messages['checksum']) - return '%s' % value - - def has_valid_checksum(self, number): - """ - Calculates a checksum with the provided algorithm. - """ - multiple_table = (1, 3, 7, 9, 1, 3, 7, 9, 1, 3, 1) - result = 0 - for i in range(len(number)): - result += int(number[i]) * multiple_table[i] - return result % 10 == 0 - -class PLNationalIDCardNumberField(RegexField): - """ - A form field that validates as Polish National ID Card Number. - - Checks the following rules: - * the length consist of 3 letter and 6 digits - * has a valid checksum - - The algorithm is documented at http://en.wikipedia.org/wiki/Polish_identity_card. - """ - default_error_messages = { - 'invalid': _('National ID Card Number consists of 3 letters and 6 digits.'), - 'checksum': _('Wrong checksum for the National ID Card Number.'), - } - - def __init__(self, max_length=None, min_length=None, *args, **kwargs): - super(PLNationalIDCardNumberField, self).__init__(r'^[A-Za-z]{3}\d{6}$', - max_length, min_length, *args, **kwargs) - - def clean(self,value): - super(PLNationalIDCardNumberField, self).clean(value) - if value in EMPTY_VALUES: - return '' - - value = value.upper() - - if not self.has_valid_checksum(value): - raise ValidationError(self.error_messages['checksum']) - return '%s' % value - - def has_valid_checksum(self, number): - """ - Calculates a checksum with the provided algorithm. - """ - letter_dict = {'A': 10, 'B': 11, 'C': 12, 'D': 13, - 'E': 14, 'F': 15, 'G': 16, 'H': 17, - 'I': 18, 'J': 19, 'K': 20, 'L': 21, - 'M': 22, 'N': 23, 'O': 24, 'P': 25, - 'Q': 26, 'R': 27, 'S': 28, 'T': 29, - 'U': 30, 'V': 31, 'W': 32, 'X': 33, - 'Y': 34, 'Z': 35} - - # convert letters to integer values - int_table = [(not c.isdigit()) and letter_dict[c] or int(c) - for c in number] - - multiple_table = (7, 3, 1, -1, 7, 3, 1, 7, 3) - result = 0 - for i in range(len(int_table)): - result += int_table[i] * multiple_table[i] - - return result % 10 == 0 - - -class PLNIPField(RegexField): - """ - A form field that validates as Polish Tax Number (NIP). - Valid forms are: XXX-YYY-YY-YY, XXX-YY-YY-YYY or XXXYYYYYYY. - - Checksum algorithm based on documentation at - http://wipos.p.lodz.pl/zylla/ut/nip-rego.html - """ - default_error_messages = { - 'invalid': _('Enter a tax number field (NIP) in the format XXX-XXX-XX-XX, XXX-XX-XX-XXX or XXXXXXXXXX.'), - 'checksum': _('Wrong checksum for the Tax Number (NIP).'), - } - - def __init__(self, max_length=None, min_length=None, *args, **kwargs): - super(PLNIPField, self).__init__(r'^\d{3}-\d{3}-\d{2}-\d{2}$|^\d{3}-\d{2}-\d{2}-\d{3}$|^\d{10}$', - max_length, min_length, *args, **kwargs) - - def clean(self,value): - super(PLNIPField, self).clean(value) - if value in EMPTY_VALUES: - return '' - value = re.sub("[-]", "", value) - if not self.has_valid_checksum(value): - raise ValidationError(self.error_messages['checksum']) - return '%s' % value - - def has_valid_checksum(self, number): - """ - Calculates a checksum with the provided algorithm. - """ - multiple_table = (6, 5, 7, 2, 3, 4, 5, 6, 7) - result = 0 - for i in range(len(number)-1): - result += int(number[i]) * multiple_table[i] - - result %= 11 - if result == int(number[-1]): - return True - else: - return False - -class PLREGONField(RegexField): - """ - A form field that validates its input is a REGON number. - - Valid regon number consists of 9 or 14 digits. - See http://www.stat.gov.pl/bip/regon_ENG_HTML.htm for more information. - """ - default_error_messages = { - 'invalid': _('National Business Register Number (REGON) consists of 9 or 14 digits.'), - 'checksum': _('Wrong checksum for the National Business Register Number (REGON).'), - } - - def __init__(self, max_length=None, min_length=None, *args, **kwargs): - super(PLREGONField, self).__init__(r'^\d{9,14}$', - max_length, min_length, *args, **kwargs) - - def clean(self,value): - super(PLREGONField, self).clean(value) - if value in EMPTY_VALUES: - return '' - if not self.has_valid_checksum(value): - raise ValidationError(self.error_messages['checksum']) - return '%s' % value - - def has_valid_checksum(self, number): - """ - Calculates a checksum with the provided algorithm. - """ - weights = ( - (8, 9, 2, 3, 4, 5, 6, 7, -1), - (2, 4, 8, 5, 0, 9, 7, 3, 6, 1, 2, 4, 8, -1), - (8, 9, 2, 3, 4, 5, 6, 7, -1, 0, 0, 0, 0, 0), - ) - - weights = [table for table in weights if len(table) == len(number)] - - for table in weights: - checksum = sum([int(n) * w for n, w in zip(number, table)]) - if checksum % 11 % 10: - return False - - return bool(weights) - -class PLPostalCodeField(RegexField): - """ - A form field that validates as Polish postal code. - Valid code is XX-XXX where X is digit. - """ - default_error_messages = { - 'invalid': _('Enter a postal code in the format XX-XXX.'), - } - - def __init__(self, max_length=None, min_length=None, *args, **kwargs): - super(PLPostalCodeField, self).__init__(r'^\d{2}-\d{3}$', - max_length, min_length, *args, **kwargs) - diff --git a/django/contrib/localflavor/pl/pl_administrativeunits.py b/django/contrib/localflavor/pl/pl_administrativeunits.py deleted file mode 100644 index f5263f19d2..0000000000 --- a/django/contrib/localflavor/pl/pl_administrativeunits.py +++ /dev/null @@ -1,386 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Polish administrative units as in http://pl.wikipedia.org/wiki/Podzia%C5%82_administracyjny_Polski -""" -from __future__ import unicode_literals - - -ADMINISTRATIVE_UNIT_CHOICES = ( - ('wroclaw', 'Wrocław'), - ('jeleniagora', 'Jelenia Góra'), - ('legnica', 'Legnica'), - ('boleslawiecki', 'bolesławiecki'), - ('dzierzoniowski', 'dzierżoniowski'), - ('glogowski', 'głogowski'), - ('gorowski', 'górowski'), - ('jaworski', 'jaworski'), - ('jeleniogorski', 'jeleniogórski'), - ('kamiennogorski', 'kamiennogórski'), - ('klodzki', 'kłodzki'), - ('legnicki', 'legnicki'), - ('lubanski', 'lubański'), - ('lubinski', 'lubiński'), - ('lwowecki', 'lwówecki'), - ('milicki', 'milicki'), - ('olesnicki', 'oleśnicki'), - ('olawski', 'oławski'), - ('polkowicki', 'polkowicki'), - ('strzelinski', 'strzeliński'), - ('sredzki', 'średzki'), - ('swidnicki', 'świdnicki'), - ('trzebnicki', 'trzebnicki'), - ('walbrzyski', 'wałbrzyski'), - ('wolowski', 'wołowski'), - ('wroclawski', 'wrocławski'), - ('zabkowicki', 'ząbkowicki'), - ('zgorzelecki', 'zgorzelecki'), - ('zlotoryjski', 'złotoryjski'), - ('bydgoszcz', 'Bydgoszcz'), - ('torun', 'Toruń'), - ('wloclawek', 'Włocławek'), - ('grudziadz', 'Grudziądz'), - ('aleksandrowski', 'aleksandrowski'), - ('brodnicki', 'brodnicki'), - ('bydgoski', 'bydgoski'), - ('chelminski', 'chełmiński'), - ('golubsko-dobrzynski', 'golubsko-dobrzyński'), - ('grudziadzki', 'grudziądzki'), - ('inowroclawski', 'inowrocławski'), - ('lipnowski', 'lipnowski'), - ('mogilenski', 'mogileński'), - ('nakielski', 'nakielski'), - ('radziejowski', 'radziejowski'), - ('rypinski', 'rypiński'), - ('sepolenski', 'sępoleński'), - ('swiecki', 'świecki'), - ('torunski', 'toruński'), - ('tucholski', 'tucholski'), - ('wabrzeski', 'wąbrzeski'), - ('wloclawski', 'wrocławski'), - ('zninski', 'źniński'), - ('lublin', 'Lublin'), - ('biala-podlaska', 'Biała Podlaska'), - ('chelm', 'Chełm'), - ('zamosc', 'Zamość'), - ('bialski', 'bialski'), - ('bilgorajski', 'biłgorajski'), - ('chelmski', 'chełmski'), - ('hrubieszowski', 'hrubieszowski'), - ('janowski', 'janowski'), - ('krasnostawski', 'krasnostawski'), - ('krasnicki', 'kraśnicki'), - ('lubartowski', 'lubartowski'), - ('lubelski', 'lubelski'), - ('leczynski', 'łęczyński'), - ('lukowski', 'łukowski'), - ('opolski', 'opolski'), - ('parczewski', 'parczewski'), - ('pulawski', 'puławski'), - ('radzynski', 'radzyński'), - ('rycki', 'rycki'), - ('swidnicki', 'świdnicki'), - ('tomaszowski', 'tomaszowski'), - ('wlodawski', 'włodawski'), - ('zamojski', 'zamojski'), - ('gorzow-wielkopolski', 'Gorzów Wielkopolski'), - ('zielona-gora', 'Zielona Góra'), - ('gorzowski', 'gorzowski'), - ('krosnienski', 'krośnieński'), - ('miedzyrzecki', 'międzyrzecki'), - ('nowosolski', 'nowosolski'), - ('slubicki', 'słubicki'), - ('strzelecko-drezdenecki', 'strzelecko-drezdenecki'), - ('sulecinski', 'suleńciński'), - ('swiebodzinski', 'świebodziński'), - ('wschowski', 'wschowski'), - ('zielonogorski', 'zielonogórski'), - ('zaganski', 'żagański'), - ('zarski', 'żarski'), - ('lodz', 'Łódź'), - ('piotrkow-trybunalski', 'Piotrków Trybunalski'), - ('skierniewice', 'Skierniewice'), - ('belchatowski', 'bełchatowski'), - ('brzezinski', 'brzeziński'), - ('kutnowski', 'kutnowski'), - ('laski', 'łaski'), - ('leczycki', 'łęczycki'), - ('lowicki', 'łowicki'), - ('lodzki wschodni', 'łódzki wschodni'), - ('opoczynski', 'opoczyński'), - ('pabianicki', 'pabianicki'), - ('pajeczanski', 'pajęczański'), - ('piotrkowski', 'piotrkowski'), - ('poddebicki', 'poddębicki'), - ('radomszczanski', 'radomszczański'), - ('rawski', 'rawski'), - ('sieradzki', 'sieradzki'), - ('skierniewicki', 'skierniewicki'), - ('tomaszowski', 'tomaszowski'), - ('wielunski', 'wieluński'), - ('wieruszowski', 'wieruszowski'), - ('zdunskowolski', 'zduńskowolski'), - ('zgierski', 'zgierski'), - ('krakow', 'Kraków'), - ('tarnow', 'Tarnów'), - ('nowy-sacz', 'Nowy Sącz'), - ('bochenski', 'bocheński'), - ('brzeski', 'brzeski'), - ('chrzanowski', 'chrzanowski'), - ('dabrowski', 'dąbrowski'), - ('gorlicki', 'gorlicki'), - ('krakowski', 'krakowski'), - ('limanowski', 'limanowski'), - ('miechowski', 'miechowski'), - ('myslenicki', 'myślenicki'), - ('nowosadecki', 'nowosądecki'), - ('nowotarski', 'nowotarski'), - ('olkuski', 'olkuski'), - ('oswiecimski', 'oświęcimski'), - ('proszowicki', 'proszowicki'), - ('suski', 'suski'), - ('tarnowski', 'tarnowski'), - ('tatrzanski', 'tatrzański'), - ('wadowicki', 'wadowicki'), - ('wielicki', 'wielicki'), - ('warszawa', 'Warszawa'), - ('ostroleka', 'Ostrołęka'), - ('plock', 'Płock'), - ('radom', 'Radom'), - ('siedlce', 'Siedlce'), - ('bialobrzeski', 'białobrzeski'), - ('ciechanowski', 'ciechanowski'), - ('garwolinski', 'garwoliński'), - ('gostyninski', 'gostyniński'), - ('grodziski', 'grodziski'), - ('grojecki', 'grójecki'), - ('kozienicki', 'kozenicki'), - ('legionowski', 'legionowski'), - ('lipski', 'lipski'), - ('losicki', 'łosicki'), - ('makowski', 'makowski'), - ('minski', 'miński'), - ('mlawski', 'mławski'), - ('nowodworski', 'nowodworski'), - ('ostrolecki', 'ostrołęcki'), - ('ostrowski', 'ostrowski'), - ('otwocki', 'otwocki'), - ('piaseczynski', 'piaseczyński'), - ('plocki', 'płocki'), - ('plonski', 'płoński'), - ('pruszkowski', 'pruszkowski'), - ('przasnyski', 'przasnyski'), - ('przysuski', 'przysuski'), - ('pultuski', 'pułtuski'), - ('radomski', 'radomski'), - ('siedlecki', 'siedlecki'), - ('sierpecki', 'sierpecki'), - ('sochaczewski', 'sochaczewski'), - ('sokolowski', 'sokołowski'), - ('szydlowiecki', 'szydłowiecki'), - ('warszawski-zachodni', 'warszawski zachodni'), - ('wegrowski', 'węgrowski'), - ('wolominski', 'wołomiński'), - ('wyszkowski', 'wyszkowski'), - ('zwolenski', 'zwoleński'), - ('zurominski', 'żuromiński'), - ('zyrardowski', 'żyrardowski'), - ('opole', 'Opole'), - ('brzeski', 'brzeski'), - ('glubczycki', 'głubczyski'), - ('kedzierzynsko-kozielski', 'kędzierzyński-kozielski'), - ('kluczborski', 'kluczborski'), - ('krapkowicki', 'krapkowicki'), - ('namyslowski', 'namysłowski'), - ('nyski', 'nyski'), - ('oleski', 'oleski'), - ('opolski', 'opolski'), - ('prudnicki', 'prudnicki'), - ('strzelecki', 'strzelecki'), - ('rzeszow', 'Rzeszów'), - ('krosno', 'Krosno'), - ('przemysl', 'Przemyśl'), - ('tarnobrzeg', 'Tarnobrzeg'), - ('bieszczadzki', 'bieszczadzki'), - ('brzozowski', 'brzozowski'), - ('debicki', 'dębicki'), - ('jaroslawski', 'jarosławski'), - ('jasielski', 'jasielski'), - ('kolbuszowski', 'kolbuszowski'), - ('krosnienski', 'krośnieński'), - ('leski', 'leski'), - ('lezajski', 'leżajski'), - ('lubaczowski', 'lubaczowski'), - ('lancucki', 'łańcucki'), - ('mielecki', 'mielecki'), - ('nizanski', 'niżański'), - ('przemyski', 'przemyski'), - ('przeworski', 'przeworski'), - ('ropczycko-sedziszowski', 'ropczycko-sędziszowski'), - ('rzeszowski', 'rzeszowski'), - ('sanocki', 'sanocki'), - ('stalowowolski', 'stalowowolski'), - ('strzyzowski', 'strzyżowski'), - ('tarnobrzeski', 'tarnobrzeski'), - ('bialystok', 'Białystok'), - ('lomza', 'Łomża'), - ('suwalki', 'Suwałki'), - ('augustowski', 'augustowski'), - ('bialostocki', 'białostocki'), - ('bielski', 'bielski'), - ('grajewski', 'grajewski'), - ('hajnowski', 'hajnowski'), - ('kolnenski', 'kolneński'), - ('łomzynski', 'łomżyński'), - ('moniecki', 'moniecki'), - ('sejnenski', 'sejneński'), - ('siemiatycki', 'siematycki'), - ('sokolski', 'sokólski'), - ('suwalski', 'suwalski'), - ('wysokomazowiecki', 'wysokomazowiecki'), - ('zambrowski', 'zambrowski'), - ('gdansk', 'Gdańsk'), - ('gdynia', 'Gdynia'), - ('slupsk', 'Słupsk'), - ('sopot', 'Sopot'), - ('bytowski', 'bytowski'), - ('chojnicki', 'chojnicki'), - ('czluchowski', 'człuchowski'), - ('kartuski', 'kartuski'), - ('koscierski', 'kościerski'), - ('kwidzynski', 'kwidzyński'), - ('leborski', 'lęborski'), - ('malborski', 'malborski'), - ('nowodworski', 'nowodworski'), - ('gdanski', 'gdański'), - ('pucki', 'pucki'), - ('slupski', 'słupski'), - ('starogardzki', 'starogardzki'), - ('sztumski', 'sztumski'), - ('tczewski', 'tczewski'), - ('wejherowski', 'wejcherowski'), - ('katowice', 'Katowice'), - ('bielsko-biala', 'Bielsko-Biała'), - ('bytom', 'Bytom'), - ('chorzow', 'Chorzów'), - ('czestochowa', 'Częstochowa'), - ('dabrowa-gornicza', 'Dąbrowa Górnicza'), - ('gliwice', 'Gliwice'), - ('jastrzebie-zdroj', 'Jastrzębie Zdrój'), - ('jaworzno', 'Jaworzno'), - ('myslowice', 'Mysłowice'), - ('piekary-slaskie', 'Piekary Śląskie'), - ('ruda-slaska', 'Ruda Śląska'), - ('rybnik', 'Rybnik'), - ('siemianowice-slaskie', 'Siemianowice Śląskie'), - ('sosnowiec', 'Sosnowiec'), - ('swietochlowice', 'Świętochłowice'), - ('tychy', 'Tychy'), - ('zabrze', 'Zabrze'), - ('zory', 'Żory'), - ('bedzinski', 'będziński'), - ('bielski', 'bielski'), - ('bierunsko-ledzinski', 'bieruńsko-lędziński'), - ('cieszynski', 'cieszyński'), - ('czestochowski', 'częstochowski'), - ('gliwicki', 'gliwicki'), - ('klobucki', 'kłobucki'), - ('lubliniecki', 'lubliniecki'), - ('mikolowski', 'mikołowski'), - ('myszkowski', 'myszkowski'), - ('pszczynski', 'pszczyński'), - ('raciborski', 'raciborski'), - ('rybnicki', 'rybnicki'), - ('tarnogorski', 'tarnogórski'), - ('wodzislawski', 'wodzisławski'), - ('zawiercianski', 'zawierciański'), - ('zywiecki', 'żywiecki'), - ('kielce', 'Kielce'), - ('buski', 'buski'), - ('jedrzejowski', 'jędrzejowski'), - ('kazimierski', 'kazimierski'), - ('kielecki', 'kielecki'), - ('konecki', 'konecki'), - ('opatowski', 'opatowski'), - ('ostrowiecki', 'ostrowiecki'), - ('pinczowski', 'pińczowski'), - ('sandomierski', 'sandomierski'), - ('skarzyski', 'skarżyski'), - ('starachowicki', 'starachowicki'), - ('staszowski', 'staszowski'), - ('wloszczowski', 'włoszczowski'), - ('olsztyn', 'Olsztyn'), - ('elblag', 'Elbląg'), - ('bartoszycki', 'bartoszycki'), - ('braniewski', 'braniewski'), - ('dzialdowski', 'działdowski'), - ('elblaski', 'elbląski'), - ('elcki', 'ełcki'), - ('gizycki', 'giżycki'), - ('goldapski', 'gołdapski'), - ('ilawski', 'iławski'), - ('ketrzynski', 'kętrzyński'), - ('lidzbarski', 'lidzbarski'), - ('mragowski', 'mrągowski'), - ('nidzicki', 'nidzicki'), - ('nowomiejski', 'nowomiejski'), - ('olecki', 'olecki'), - ('olsztynski', 'olsztyński'), - ('ostrodzki', 'ostródzki'), - ('piski', 'piski'), - ('szczycienski', 'szczycieński'), - ('wegorzewski', 'węgorzewski'), - ('poznan', 'Poznań'), - ('kalisz', 'Kalisz'), - ('konin', 'Konin'), - ('leszno', 'Leszno'), - ('chodzieski', 'chodziejski'), - ('czarnkowsko-trzcianecki', 'czarnkowsko-trzcianecki'), - ('gnieznienski', 'gnieźnieński'), - ('gostynski', 'gostyński'), - ('grodziski', 'grodziski'), - ('jarocinski', 'jarociński'), - ('kaliski', 'kaliski'), - ('kepinski', 'kępiński'), - ('kolski', 'kolski'), - ('koninski', 'koniński'), - ('koscianski', 'kościański'), - ('krotoszynski', 'krotoszyński'), - ('leszczynski', 'leszczyński'), - ('miedzychodzki', 'międzychodzki'), - ('nowotomyski', 'nowotomyski'), - ('obornicki', 'obornicki'), - ('ostrowski', 'ostrowski'), - ('ostrzeszowski', 'ostrzeszowski'), - ('pilski', 'pilski'), - ('pleszewski', 'pleszewski'), - ('poznanski', 'poznański'), - ('rawicki', 'rawicki'), - ('slupecki', 'słupecki'), - ('szamotulski', 'szamotulski'), - ('sredzki', 'średzki'), - ('sremski', 'śremski'), - ('turecki', 'turecki'), - ('wagrowiecki', 'wągrowiecki'), - ('wolsztynski', 'wolsztyński'), - ('wrzesinski', 'wrzesiński'), - ('zlotowski', 'złotowski'), - ('bialogardzki', 'białogardzki'), - ('choszczenski', 'choszczeński'), - ('drawski', 'drawski'), - ('goleniowski', 'goleniowski'), - ('gryficki', 'gryficki'), - ('gryfinski', 'gryfiński'), - ('kamienski', 'kamieński'), - ('kolobrzeski', 'kołobrzeski'), - ('koszalinski', 'koszaliński'), - ('lobeski', 'łobeski'), - ('mysliborski', 'myśliborski'), - ('policki', 'policki'), - ('pyrzycki', 'pyrzycki'), - ('slawienski', 'sławieński'), - ('stargardzki', 'stargardzki'), - ('szczecinecki', 'szczecinecki'), - ('swidwinski', 'świdwiński'), - ('walecki', 'wałecki'), -) - diff --git a/django/contrib/localflavor/pl/pl_voivodeships.py b/django/contrib/localflavor/pl/pl_voivodeships.py deleted file mode 100644 index d8caede3c8..0000000000 --- a/django/contrib/localflavor/pl/pl_voivodeships.py +++ /dev/null @@ -1,24 +0,0 @@ -""" -Polish voivodeship as in http://en.wikipedia.org/wiki/Poland#Administrative_division -""" - -from django.utils.translation import ugettext_lazy as _ - -VOIVODESHIP_CHOICES = ( - ('lower_silesia', _('Lower Silesia')), - ('kuyavia-pomerania', _('Kuyavia-Pomerania')), - ('lublin', _('Lublin')), - ('lubusz', _('Lubusz')), - ('lodz', _('Lodz')), - ('lesser_poland', _('Lesser Poland')), - ('masovia', _('Masovia')), - ('opole', _('Opole')), - ('subcarpatia', _('Subcarpatia')), - ('podlasie', _('Podlasie')), - ('pomerania', _('Pomerania')), - ('silesia', _('Silesia')), - ('swietokrzyskie', _('Swietokrzyskie')), - ('warmia-masuria', _('Warmia-Masuria')), - ('greater_poland', _('Greater Poland')), - ('west_pomerania', _('West Pomerania')), -) diff --git a/django/contrib/localflavor/pt/__init__.py b/django/contrib/localflavor/pt/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/pt/forms.py b/django/contrib/localflavor/pt/forms.py deleted file mode 100644 index 01cdd101b2..0000000000 --- a/django/contrib/localflavor/pt/forms.py +++ /dev/null @@ -1,50 +0,0 @@ -""" -PT-specific Form helpers -""" -from __future__ import unicode_literals - -import re - -from django.core.validators import EMPTY_VALUES -from django.forms import ValidationError -from django.forms.fields import Field, RegexField -from django.utils.encoding import smart_text -from django.utils.translation import ugettext_lazy as _ - -phone_digits_re = re.compile(r'^(\d{9}|(00|\+)\d*)$') - - -class PTZipCodeField(RegexField): - default_error_messages = { - 'invalid': _('Enter a zip code in the format XXXX-XXX.'), - } - - def __init__(self, max_length=None, min_length=None, *args, **kwargs): - super(PTZipCodeField, self).__init__(r'^(\d{4}-\d{3}|\d{7})$', - max_length, min_length, *args, **kwargs) - - def clean(self,value): - cleaned = super(PTZipCodeField, self).clean(value) - if len(cleaned) == 7: - return '%s-%s' % (cleaned[:4],cleaned[4:]) - else: - return cleaned - -class PTPhoneNumberField(Field): - """ - Validate local Portuguese phone number (including international ones) - It should have 9 digits (may include spaces) or start by 00 or + (international) - """ - default_error_messages = { - 'invalid': _('Phone numbers must have 9 digits, or start by + or 00.'), - } - - def clean(self, value): - super(PTPhoneNumberField, self).clean(value) - if value in EMPTY_VALUES: - return '' - value = re.sub('(\.|\s)', '', smart_text(value)) - m = phone_digits_re.search(value) - if m: - return '%s' % value - raise ValidationError(self.error_messages['invalid']) diff --git a/django/contrib/localflavor/py/__init__.py b/django/contrib/localflavor/py/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/py/forms.py b/django/contrib/localflavor/py/forms.py deleted file mode 100644 index 8cb5faa80f..0000000000 --- a/django/contrib/localflavor/py/forms.py +++ /dev/null @@ -1,24 +0,0 @@ -""" -PY-specific Form helpers. -""" - -from __future__ import absolute_import - -from django.contrib.localflavor.py.py_department import DEPARTMENT_CHOICES, DEPARTMENT_ROMAN_CHOICES -from django.forms.fields import Select - - -class PyDepartmentSelect(Select): - """ - A Select widget with a list of Paraguayan departments as choices. - """ - def __init__(self, attrs=None): - super(PyDepartmentSelect, self).__init__(attrs, choices=DEPARTMENT_CHOICES) - - -class PyNumberedDepartmentSelect(Select): - """ - A Select widget with a roman numbered list of Paraguayan departments as choices. - """ - def __init__(self, attrs=None): - super(PyNumberedDepartmentSelect, self).__init__(attrs, choices=DEPARTMENT_ROMAN_CHOICES) diff --git a/django/contrib/localflavor/py/py_department.py b/django/contrib/localflavor/py/py_department.py deleted file mode 100644 index 619bae3edb..0000000000 --- a/django/contrib/localflavor/py/py_department.py +++ /dev/null @@ -1,46 +0,0 @@ -# -*- coding: utf-8 -*- - -# http://www.statoids.com/upy.html -from __future__ import unicode_literals - -DEPARTMENT_CHOICES = ( - ('AG', 'Alto Paraguay'), - ('AA', 'Alto Paraná'), - ('AM', 'Amambay'), - ('AS', 'Asunción'), - ('BQ', 'Boquerón'), - ('CG', 'Caaguazú'), - ('CZ', 'Caazapá'), - ('CY', 'Canindeyú'), - ('CE', 'Central'), - ('CN', 'Concepción'), - ('CR', 'Cordillera'), - ('GU', 'Guairá'), - ('IT', 'Itapúa'), - ('MI', 'Misiones'), - ('NE', 'Ñeembucú'), - ('PG', 'Paraguarí'), - ('PH', 'Pdte. Hayes'), - ('SP', 'San Pedro'), -) - -DEPARTMENT_ROMAN_CHOICES = ( - ('CN', 'I Concepción'), - ('SP', 'II San Pedro'), - ('CR', 'III Cordillera'), - ('GU', 'IV Guairá'), - ('CG', 'V Caaguazú'), - ('CZ', 'VI Caazapá'), - ('IT', 'VII Itapúa'), - ('MI', 'VIII Misiones'), - ('PG', 'IX Paraguarí'), - ('AA', 'X Alto Paraná'), - ('CE', 'XI Central'), - ('NE', 'XII Ñeembucú'), - ('AM', 'XIII Amambay'), - ('CY', 'XIV Canindeyú'), - ('PH', 'XV Pdte. Hayes'), - ('AG', 'XVI Alto Paraguay'), - ('BQ', 'XVII Boquerón'), - ('AS', 'XVIII Asunción'), -) diff --git a/django/contrib/localflavor/ro/__init__.py b/django/contrib/localflavor/ro/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/ro/forms.py b/django/contrib/localflavor/ro/forms.py deleted file mode 100644 index f6de1534c9..0000000000 --- a/django/contrib/localflavor/ro/forms.py +++ /dev/null @@ -1,205 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Romanian specific form helpers. -""" -from __future__ import absolute_import, unicode_literals - -import datetime - -from django.contrib.localflavor.ro.ro_counties import COUNTIES_CHOICES -from django.core.validators import EMPTY_VALUES -from django.forms import ValidationError, Field, RegexField, Select -from django.utils.translation import ugettext_lazy as _ - - -class ROCIFField(RegexField): - """ - A Romanian fiscal identity code (CIF) field - - For CIF validation algorithm see http://www.validari.ro/cui.html - """ - default_error_messages = { - 'invalid': _("Enter a valid CIF."), - } - - def __init__(self, max_length=10, min_length=2, *args, **kwargs): - super(ROCIFField, self).__init__(r'^(RO)?[0-9]{2,10}', max_length, - min_length, *args, **kwargs) - - def clean(self, value): - """ - CIF validation - """ - value = super(ROCIFField, self).clean(value) - if value in EMPTY_VALUES: - return '' - # strip RO part - if value[0:2] == 'RO': - value = value[2:] - key = '753217532'[::-1] - value = value[::-1] - key_iter = iter(key) - checksum = 0 - for digit in value[1:]: - checksum += int(digit) * int(next(key_iter)) - checksum = checksum * 10 % 11 - if checksum == 10: - checksum = 0 - if checksum != int(value[0]): - raise ValidationError(self.error_messages['invalid']) - return value[::-1] - -class ROCNPField(RegexField): - """ - A Romanian personal identity code (CNP) field - - For CNP validation algorithm see http://www.validari.ro/cnp.html - """ - default_error_messages = { - 'invalid': _("Enter a valid CNP."), - } - - def __init__(self, max_length=13, min_length=13, *args, **kwargs): - super(ROCNPField, self).__init__(r'^[1-9][0-9]{12}', max_length, - min_length, *args, **kwargs) - - def clean(self, value): - """ - CNP validations - """ - value = super(ROCNPField, self).clean(value) - if value in EMPTY_VALUES: - return '' - # check birthdate digits - try: - datetime.date(int(value[1:3]), int(value[3:5]), int(value[5:7])) - except ValueError: - raise ValidationError(self.error_messages['invalid']) - # checksum - key = '279146358279' - checksum = 0 - value_iter = iter(value) - for digit in key: - checksum += int(digit) * int(next(value_iter)) - checksum %= 11 - if checksum == 10: - checksum = 1 - if checksum != int(value[12]): - raise ValidationError(self.error_messages['invalid']) - return value - -class ROCountyField(Field): - """ - A form field that validates its input is a Romanian county name or - abbreviation. It normalizes the input to the standard vehicle registration - abbreviation for the given county - - WARNING: This field will only accept names written with diacritics; consider - using ROCountySelect if this behavior is unnaceptable for you - Example: - Argeş => valid - Arges => invalid - """ - default_error_messages = { - 'invalid': 'Enter a Romanian county code or name.', - } - - def clean(self, value): - super(ROCountyField, self).clean(value) - if value in EMPTY_VALUES: - return '' - try: - value = value.strip().upper() - except AttributeError: - pass - # search for county code - for entry in COUNTIES_CHOICES: - if value in entry: - return value - # search for county name - normalized_CC = [] - for entry in COUNTIES_CHOICES: - normalized_CC.append((entry[0], entry[1].upper())) - for entry in normalized_CC: - if entry[1] == value: - return entry[0] - raise ValidationError(self.error_messages['invalid']) - -class ROCountySelect(Select): - """ - A Select widget that uses a list of Romanian counties (judete) as its - choices. - """ - def __init__(self, attrs=None): - super(ROCountySelect, self).__init__(attrs, choices=COUNTIES_CHOICES) - -class ROIBANField(RegexField): - """ - Romanian International Bank Account Number (IBAN) field - - For Romanian IBAN validation algorithm see http://validari.ro/iban.html - """ - default_error_messages = { - 'invalid': _('Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format'), - } - - def __init__(self, max_length=40, min_length=24, *args, **kwargs): - super(ROIBANField, self).__init__(r'^[0-9A-Za-z\-\s]{24,40}$', - max_length, min_length, *args, **kwargs) - - def clean(self, value): - """ - Strips - and spaces, performs country code and checksum validation - """ - value = super(ROIBANField, self).clean(value) - if value in EMPTY_VALUES: - return '' - value = value.replace('-', '') - value = value.replace(' ', '') - value = value.upper() - if value[0:2] != 'RO': - raise ValidationError(self.error_messages['invalid']) - numeric_format = '' - for char in value[4:] + value[0:4]: - if char.isalpha(): - numeric_format += str(ord(char) - 55) - else: - numeric_format += char - if int(numeric_format) % 97 != 1: - raise ValidationError(self.error_messages['invalid']) - return value - -class ROPhoneNumberField(RegexField): - """Romanian phone number field""" - default_error_messages = { - 'invalid': _('Phone numbers must be in XXXX-XXXXXX format.'), - } - - def __init__(self, max_length=20, min_length=10, *args, **kwargs): - super(ROPhoneNumberField, self).__init__(r'^[0-9\-\(\)\s]{10,20}$', - max_length, min_length, *args, **kwargs) - - def clean(self, value): - """ - Strips -, (, ) and spaces. Checks the final length. - """ - value = super(ROPhoneNumberField, self).clean(value) - if value in EMPTY_VALUES: - return '' - value = value.replace('-', '') - value = value.replace('(', '') - value = value.replace(')', '') - value = value.replace(' ', '') - if len(value) != 10: - raise ValidationError(self.error_messages['invalid']) - return value - -class ROPostalCodeField(RegexField): - """Romanian postal code field.""" - default_error_messages = { - 'invalid': _('Enter a valid postal code in the format XXXXXX'), - } - - def __init__(self, max_length=6, min_length=6, *args, **kwargs): - super(ROPostalCodeField, self).__init__(r'^[0-9][0-8][0-9]{4}$', - max_length, min_length, *args, **kwargs) diff --git a/django/contrib/localflavor/ro/ro_counties.py b/django/contrib/localflavor/ro/ro_counties.py deleted file mode 100644 index 282cfc5193..0000000000 --- a/django/contrib/localflavor/ro/ro_counties.py +++ /dev/null @@ -1,53 +0,0 @@ -# -*- coding: utf-8 -*- -""" -A list of Romanian counties as `choices` in a formfield. - -This exists as a standalone file so that it's only imported into memory when -explicitly needed. -""" -from __future__ import unicode_literals - -COUNTIES_CHOICES = ( - ('AB', 'Alba'), - ('AR', 'Arad'), - ('AG', 'Argeş'), - ('BC', 'Bacău'), - ('BH', 'Bihor'), - ('BN', 'Bistriţa-Năsăud'), - ('BT', 'Botoşani'), - ('BV', 'Braşov'), - ('BR', 'Brăila'), - ('B', 'Bucureşti'), - ('BZ', 'Buzău'), - ('CS', 'Caraş-Severin'), - ('CL', 'Călăraşi'), - ('CJ', 'Cluj'), - ('CT', 'Constanţa'), - ('CV', 'Covasna'), - ('DB', 'Dâmboviţa'), - ('DJ', 'Dolj'), - ('GL', 'Galaţi'), - ('GR', 'Giurgiu'), - ('GJ', 'Gorj'), - ('HR', 'Harghita'), - ('HD', 'Hunedoara'), - ('IL', 'Ialomiţa'), - ('IS', 'Iaşi'), - ('IF', 'Ilfov'), - ('MM', 'Maramureş'), - ('MH', 'Mehedinţi'), - ('MS', 'Mureş'), - ('NT', 'Neamţ'), - ('OT', 'Olt'), - ('PH', 'Prahova'), - ('SM', 'Satu Mare'), - ('SJ', 'Sălaj'), - ('SB', 'Sibiu'), - ('SV', 'Suceava'), - ('TR', 'Teleorman'), - ('TM', 'Timiş'), - ('TL', 'Tulcea'), - ('VS', 'Vaslui'), - ('VL', 'Vâlcea'), - ('VN', 'Vrancea'), -) diff --git a/django/contrib/localflavor/ru/__init__.py b/django/contrib/localflavor/ru/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/ru/forms.py b/django/contrib/localflavor/ru/forms.py deleted file mode 100644 index 03114d0629..0000000000 --- a/django/contrib/localflavor/ru/forms.py +++ /dev/null @@ -1,67 +0,0 @@ -""" -Russian-specific forms helpers -""" -from __future__ import absolute_import, unicode_literals - -import re - -from django.contrib.localflavor.ru.ru_regions import RU_COUNTY_CHOICES, RU_REGIONS_CHOICES -from django.forms.fields import RegexField, Select -from django.utils.translation import ugettext_lazy as _ - - -phone_digits_re = re.compile(r'^(?:[78]-?)?(\d{3})[-\.]?(\d{3})[-\.]?(\d{4})$') - -class RUCountySelect(Select): - """ - A Select widget that uses a list of Russian Counties as its choices. - """ - def __init__(self, attrs=None): - super(RUCountySelect, self).__init__(attrs, choices=RU_COUNTY_CHOICES) - - -class RURegionSelect(Select): - """ - A Select widget that uses a list of Russian Regions as its choices. - """ - def __init__(self, attrs=None): - super(RURegionSelect, self).__init__(attrs, choices=RU_REGIONS_CHOICES) - - -class RUPostalCodeField(RegexField): - """ - Russian Postal code field. - Format: XXXXXX, where X is any digit, and first digit is not zero. - """ - default_error_messages = { - 'invalid': _('Enter a postal code in the format XXXXXX.'), - } - def __init__(self, max_length=None, min_length=None, *args, **kwargs): - super(RUPostalCodeField, self).__init__(r'^\d{6}$', - max_length, min_length, *args, **kwargs) - - -class RUPassportNumberField(RegexField): - """ - Russian internal passport number format: - XXXX XXXXXX where X - any digit. - """ - default_error_messages = { - 'invalid': _('Enter a passport number in the format XXXX XXXXXX.'), - } - def __init__(self, max_length=None, min_length=None, *args, **kwargs): - super(RUPassportNumberField, self).__init__(r'^\d{4} \d{6}$', - max_length, min_length, *args, **kwargs) - - -class RUAlienPassportNumberField(RegexField): - """ - Russian alien's passport number format: - XX XXXXXXX where X - any digit. - """ - default_error_messages = { - 'invalid': _('Enter a passport number in the format XX XXXXXXX.'), - } - def __init__(self, max_length=None, min_length=None, *args, **kwargs): - super(RUAlienPassportNumberField, self).__init__(r'^\d{2} \d{7}$', - max_length, min_length, *args, **kwargs) diff --git a/django/contrib/localflavor/ru/ru_regions.py b/django/contrib/localflavor/ru/ru_regions.py deleted file mode 100644 index d07803914f..0000000000 --- a/django/contrib/localflavor/ru/ru_regions.py +++ /dev/null @@ -1,104 +0,0 @@ -# -*- encoding: utf-8 -*- -""" -Sources: - http://ru.wikipedia.org/wiki/Коды_субъектов_Российской_Федерации - http://ru.wikipedia.org/wiki/Федеральные_округа_Российской_Федерации -""" -from django.utils.translation import ugettext_lazy as _ - -RU_COUNTY_CHOICES = ( - ("Central Federal County", _("Central Federal County")), - ("South Federal County", _("South Federal County")), - ("North-West Federal County", _("North-West Federal County")), - ("Far-East Federal County", _("Far-East Federal County")), - ("Siberian Federal County", _("Siberian Federal County")), - ("Ural Federal County", _("Ural Federal County")), - ("Privolzhsky Federal County", _("Privolzhsky Federal County")), - ("North-Caucasian Federal County", _("North-Caucasian Federal County")) -) - -RU_REGIONS_CHOICES = ( - ("77", _("Moskva")), - ("78", _("Saint-Peterburg")), - ("50", _("Moskovskaya oblast'")), - ("01", _("Adygeya, Respublika")), - ("02", _("Bashkortostan, Respublika")), - ("03", _("Buryatia, Respublika")), - ("04", _("Altay, Respublika")), - ("05", _("Dagestan, Respublika")), - ("06", _("Ingushskaya Respublika")), - ("07", _("Kabardino-Balkarskaya Respublika")), - ("08", _("Kalmykia, Respublika")), - ("09", _("Karachaevo-Cherkesskaya Respublika")), - ("10", _("Karelia, Respublika")), - ("11", _("Komi, Respublika")), - ("12", _("Mariy Ehl, Respublika")), - ("13", _("Mordovia, Respublika")), - ("14", _("Sakha, Respublika (Yakutiya)")), - ("15", _("Severnaya Osetia, Respublika (Alania)")), - ("16", _("Tatarstan, Respublika")), - ("17", _("Tyva, Respublika (Tuva)")), - ("18", _("Udmurtskaya Respublika")), - ("19", _("Khakassiya, Respublika")), - ("95", _("Chechenskaya Respublika")), - ("21", _("Chuvashskaya Respublika")), - ("22", _("Altayskiy Kray")), - ("80", _("Zabaykalskiy Kray")), - ("82", _("Kamchatskiy Kray")), - ("23", _("Krasnodarskiy Kray")), - ("24", _("Krasnoyarskiy Kray")), - ("81", _("Permskiy Kray")), - ("25", _("Primorskiy Kray")), - ("26", _("Stavropol'siyy Kray")), - ("27", _("Khabarovskiy Kray")), - ("28", _("Amurskaya oblast'")), - ("29", _("Arkhangel'skaya oblast'")), - ("30", _("Astrakhanskaya oblast'")), - ("31", _("Belgorodskaya oblast'")), - ("32", _("Bryanskaya oblast'")), - ("33", _("Vladimirskaya oblast'")), - ("34", _("Volgogradskaya oblast'")), - ("35", _("Vologodskaya oblast'")), - ("36", _("Voronezhskaya oblast'")), - ("37", _("Ivanovskaya oblast'")), - ("38", _("Irkutskaya oblast'")), - ("39", _("Kaliningradskaya oblast'")), - ("40", _("Kaluzhskaya oblast'")), - ("42", _("Kemerovskaya oblast'")), - ("43", _("Kirovskaya oblast'")), - ("44", _("Kostromskaya oblast'")), - ("45", _("Kurganskaya oblast'")), - ("46", _("Kurskaya oblast'")), - ("47", _("Leningradskaya oblast'")), - ("48", _("Lipeckaya oblast'")), - ("49", _("Magadanskaya oblast'")), - ("51", _("Murmanskaya oblast'")), - ("52", _("Nizhegorodskaja oblast'")), - ("53", _("Novgorodskaya oblast'")), - ("54", _("Novosibirskaya oblast'")), - ("55", _("Omskaya oblast'")), - ("56", _("Orenburgskaya oblast'")), - ("57", _("Orlovskaya oblast'")), - ("58", _("Penzenskaya oblast'")), - ("60", _("Pskovskaya oblast'")), - ("61", _("Rostovskaya oblast'")), - ("62", _("Rjazanskaya oblast'")), - ("63", _("Samarskaya oblast'")), - ("64", _("Saratovskaya oblast'")), - ("65", _("Sakhalinskaya oblast'")), - ("66", _("Sverdlovskaya oblast'")), - ("67", _("Smolenskaya oblast'")), - ("68", _("Tambovskaya oblast'")), - ("69", _("Tverskaya oblast'")), - ("70", _("Tomskaya oblast'")), - ("71", _("Tul'skaya oblast'")), - ("72", _("Tyumenskaya oblast'")), - ("73", _("Ul'ianovskaya oblast'")), - ("74", _("Chelyabinskaya oblast'")), - ("76", _("Yaroslavskaya oblast'")), - ("79", _("Evreyskaya avtonomnaja oblast'")), - ("83", _("Neneckiy autonomnyy okrug")), - ("86", _("Khanty-Mansiyskiy avtonomnyy okrug - Yugra")), - ("87", _("Chukotskiy avtonomnyy okrug")), - ("89", _("Yamalo-Neneckiy avtonomnyy okrug")) -) diff --git a/django/contrib/localflavor/se/__init__.py b/django/contrib/localflavor/se/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/se/forms.py b/django/contrib/localflavor/se/forms.py deleted file mode 100644 index 43d06a08ec..0000000000 --- a/django/contrib/localflavor/se/forms.py +++ /dev/null @@ -1,161 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Swedish specific Form helpers -""" -from __future__ import absolute_import, unicode_literals - -import re - -from django import forms -from django.utils.translation import ugettext_lazy as _ -from django.core.validators import EMPTY_VALUES -from django.contrib.localflavor.se.se_counties import COUNTY_CHOICES -from django.contrib.localflavor.se.utils import (id_number_checksum, - validate_id_birthday, format_personal_id_number, valid_organisation, - format_organisation_number) - - -__all__ = ('SECountySelect', 'SEOrganisationNumberField', - 'SEPersonalIdentityNumberField', 'SEPostalCodeField') - -SWEDISH_ID_NUMBER = re.compile(r'^(?P\d{2})?(?P\d{2})(?P\d{2})(?P\d{2})(?P[\-+])?(?P\d{3})(?P\d)$') -SE_POSTAL_CODE = re.compile(r'^[1-9]\d{2} ?\d{2}$') - -class SECountySelect(forms.Select): - """ - A Select form widget that uses a list of the Swedish counties (län) as its - choices. - - The cleaned value is the official county code -- see - http://en.wikipedia.org/wiki/Counties_of_Sweden for a list. - """ - - def __init__(self, attrs=None): - super(SECountySelect, self).__init__(attrs=attrs, - choices=COUNTY_CHOICES) - -class SEOrganisationNumberField(forms.CharField): - """ - A form field that validates input as a Swedish organisation number - (organisationsnummer). - - It accepts the same input as SEPersonalIdentityField (for sole - proprietorships (enskild firma). However, co-ordination numbers are not - accepted. - - It also accepts ordinary Swedish organisation numbers with the format - NNNNNNNNNN. - - The return value will be YYYYMMDDXXXX for sole proprietors, and NNNNNNNNNN - for other organisations. - """ - - default_error_messages = { - 'invalid': _('Enter a valid Swedish organisation number.'), - } - - def clean(self, value): - value = super(SEOrganisationNumberField, self).clean(value) - - if value in EMPTY_VALUES: - return '' - - match = SWEDISH_ID_NUMBER.match(value) - if not match: - raise forms.ValidationError(self.error_messages['invalid']) - - gd = match.groupdict() - - # Compare the calculated value with the checksum - if id_number_checksum(gd) != int(gd['checksum']): - raise forms.ValidationError(self.error_messages['invalid']) - - # First: check if this is a real organisation_number - if valid_organisation(gd): - return format_organisation_number(gd) - - # Is this a single properitor (enskild firma)? - try: - birth_day = validate_id_birthday(gd, False) - return format_personal_id_number(birth_day, gd) - except ValueError: - raise forms.ValidationError(self.error_messages['invalid']) - - -class SEPersonalIdentityNumberField(forms.CharField): - """ - A form field that validates input as a Swedish personal identity number - (personnummer). - - The correct formats are YYYYMMDD-XXXX, YYYYMMDDXXXX, YYMMDD-XXXX, - YYMMDDXXXX and YYMMDD+XXXX. - - A + indicates that the person is older than 100 years, which will be taken - into consideration when the date is validated. - - The checksum will be calculated and checked. The birth date is checked to - be a valid date. - - By default, co-ordination numbers (samordningsnummer) will be accepted. To - only allow real personal identity numbers, pass the keyword argument - coordination_number=False to the constructor. - - The cleaned value will always have the format YYYYMMDDXXXX. - """ - - def __init__(self, coordination_number=True, *args, **kwargs): - self.coordination_number = coordination_number - super(SEPersonalIdentityNumberField, self).__init__(*args, **kwargs) - - default_error_messages = { - 'invalid': _('Enter a valid Swedish personal identity number.'), - 'coordination_number': _('Co-ordination numbers are not allowed.'), - } - - def clean(self, value): - value = super(SEPersonalIdentityNumberField, self).clean(value) - - if value in EMPTY_VALUES: - return '' - - match = SWEDISH_ID_NUMBER.match(value) - if match is None: - raise forms.ValidationError(self.error_messages['invalid']) - - gd = match.groupdict() - - # compare the calculated value with the checksum - if id_number_checksum(gd) != int(gd['checksum']): - raise forms.ValidationError(self.error_messages['invalid']) - - # check for valid birthday - try: - birth_day = validate_id_birthday(gd) - except ValueError: - raise forms.ValidationError(self.error_messages['invalid']) - - # make sure that co-ordination numbers do not pass if not allowed - if not self.coordination_number and int(gd['day']) > 60: - raise forms.ValidationError(self.error_messages['coordination_number']) - - return format_personal_id_number(birth_day, gd) - - -class SEPostalCodeField(forms.RegexField): - """ - A form field that validates input as a Swedish postal code (postnummer). - Valid codes consist of five digits (XXXXX). The number can optionally be - formatted with a space after the third digit (XXX XX). - - The cleaned value will never contain the space. - """ - - default_error_messages = { - 'invalid': _('Enter a Swedish postal code in the format XXXXX.'), - } - - def __init__(self, *args, **kwargs): - super(SEPostalCodeField, self).__init__(SE_POSTAL_CODE, *args, **kwargs) - - def clean(self, value): - return super(SEPostalCodeField, self).clean(value).replace(' ', '') diff --git a/django/contrib/localflavor/se/se_counties.py b/django/contrib/localflavor/se/se_counties.py deleted file mode 100644 index 20090d3b30..0000000000 --- a/django/contrib/localflavor/se/se_counties.py +++ /dev/null @@ -1,37 +0,0 @@ -# -*- coding: utf-8 -*- -""" -An alphabetical list of Swedish counties, sorted by codes. - -http://en.wikipedia.org/wiki/Counties_of_Sweden - -This exists in this standalone file so that it's only imported into memory -when explicitly needed. - -""" -from __future__ import unicode_literals - -from django.utils.translation import ugettext_lazy as _ - -COUNTY_CHOICES = ( - ('AB', _('Stockholm')), - ('AC', _('Västerbotten')), - ('BD', _('Norrbotten')), - ('C', _('Uppsala')), - ('D', _('Södermanland')), - ('E', _('Östergötland')), - ('F', _('Jönköping')), - ('G', _('Kronoberg')), - ('H', _('Kalmar')), - ('I', _('Gotland')), - ('K', _('Blekinge')), - ('M', _('Skåne')), - ('N', _('Halland')), - ('O', _('Västra Götaland')), - ('S', _('Värmland')), - ('T', _('Örebro')), - ('U', _('Västmanland')), - ('W', _('Dalarna')), - ('X', _('Gävleborg')), - ('Y', _('Västernorrland')), - ('Z', _('Jämtland')), -) diff --git a/django/contrib/localflavor/se/utils.py b/django/contrib/localflavor/se/utils.py deleted file mode 100644 index 783062ebb4..0000000000 --- a/django/contrib/localflavor/se/utils.py +++ /dev/null @@ -1,84 +0,0 @@ -import datetime -from django.utils import six - -def id_number_checksum(gd): - """ - Calculates a Swedish ID number checksum, using the - "Luhn"-algoritm - """ - n = s = 0 - for c in (gd['year'] + gd['month'] + gd['day'] + gd['serial']): - tmp = ((n % 2) and 1 or 2) * int(c) - - if tmp > 9: - tmp = sum([int(i) for i in str(tmp)]) - - s += tmp - n += 1 - - if (s % 10) == 0: - return 0 - - return (((s // 10) + 1) * 10) - s - -def validate_id_birthday(gd, fix_coordination_number_day=True): - """ - Validates the birth_day and returns the datetime.date object for - the birth_day. - - If the date is an invalid birth day, a ValueError will be raised. - """ - - today = datetime.date.today() - - day = int(gd['day']) - if fix_coordination_number_day and day > 60: - day -= 60 - - if gd['century'] is None: - - # The century was not specified, and need to be calculated from todays date - current_year = today.year - year = int(today.strftime('%Y')) - int(today.strftime('%y')) + int(gd['year']) - - if ('%s%s%02d' % (gd['year'], gd['month'], day)) > today.strftime('%y%m%d'): - year -= 100 - - # If the person is older than 100 years - if gd['sign'] == '+': - year -= 100 - else: - year = int(gd['century'] + gd['year']) - - # Make sure the year is valid - # There are no swedish personal identity numbers where year < 1800 - if year < 1800: - raise ValueError - - # ValueError will be raise for invalid dates - birth_day = datetime.date(year, int(gd['month']), day) - - # birth_day must not be in the future - if birth_day > today: - raise ValueError - - return birth_day - -def format_personal_id_number(birth_day, gd): - # birth_day.strftime cannot be used, since it does not support dates < 1900 - return six.text_type(str(birth_day.year) + gd['month'] + gd['day'] + gd['serial'] + gd['checksum']) - -def format_organisation_number(gd): - if gd['century'] is None: - century = '' - else: - century = gd['century'] - - return six.text_type(century + gd['year'] + gd['month'] + gd['day'] + gd['serial'] + gd['checksum']) - -def valid_organisation(gd): - return gd['century'] in (None, 16) and \ - int(gd['month']) >= 20 and \ - gd['sign'] in (None, '-') and \ - gd['year'][0] in ('2', '5', '7', '8', '9') # group identifier - diff --git a/django/contrib/localflavor/si/__init__.py b/django/contrib/localflavor/si/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/si/forms.py b/django/contrib/localflavor/si/forms.py deleted file mode 100644 index bab35935fd..0000000000 --- a/django/contrib/localflavor/si/forms.py +++ /dev/null @@ -1,165 +0,0 @@ -""" -Slovenian specific form helpers. -""" - -from __future__ import absolute_import, unicode_literals - -import datetime -import re - -from django.contrib.localflavor.si.si_postalcodes import SI_POSTALCODES_CHOICES -from django.core.validators import EMPTY_VALUES -from django.forms import ValidationError -from django.forms.fields import CharField, Select, ChoiceField -from django.utils.translation import ugettext_lazy as _ - - -class SIEMSOField(CharField): - """A form for validating Slovenian personal identification number. - - Additionally stores gender, nationality and birthday to self.info dictionary. - """ - - default_error_messages = { - 'invalid': _('This field should contain exactly 13 digits.'), - 'date': _('The first 7 digits of the EMSO must represent a valid past date.'), - 'checksum': _('The EMSO is not valid.'), - } - emso_regex = re.compile('^(\d{2})(\d{2})(\d{3})(\d{2})(\d{3})(\d)$') - - def clean(self, value): - super(SIEMSOField, self).clean(value) - if value in EMPTY_VALUES: - return '' - - value = value.strip() - - m = self.emso_regex.match(value) - if m is None: - raise ValidationError(self.default_error_messages['invalid']) - - # Validate EMSO - s = 0 - int_values = [int(i) for i in value] - for a, b in zip(int_values, list(range(7, 1, -1)) * 2): - s += a * b - chk = s % 11 - if chk == 0: - K = 0 - else: - K = 11 - chk - - if K == 10 or int_values[-1] != K: - raise ValidationError(self.default_error_messages['checksum']) - - # Extract extra info in the identification number - day, month, year, nationality, gender, chksum = [int(i) for i in m.groups()] - - if year < 890: - year += 2000 - else: - year += 1000 - - # validate birthday - try: - birthday = datetime.date(year, month, day) - except ValueError: - raise ValidationError(self.error_messages['date']) - if datetime.date.today() < birthday: - raise ValidationError(self.error_messages['date']) - - self.info = { - 'gender': gender < 500 and 'male' or 'female', - 'birthdate': birthday, - 'nationality': nationality, - } - return value - - -class SITaxNumberField(CharField): - """Slovenian tax number field. - - Valid input is SIXXXXXXXX or XXXXXXXX where X is a number. - """ - - default_error_messages = { - 'invalid': _('Enter a valid tax number in form SIXXXXXXXX'), - } - sitax_regex = re.compile('^(?:SI)?([1-9]\d{7})$') - - def clean(self, value): - super(SITaxNumberField, self).clean(value) - if value in EMPTY_VALUES: - return '' - - value = value.strip() - - m = self.sitax_regex.match(value) - if m is None: - raise ValidationError(self.default_error_messages['invalid']) - value = m.groups()[0] - - # Validate Tax number - s = 0 - int_values = [int(i) for i in value] - for a, b in zip(int_values, range(8, 1, -1)): - s += a * b - chk = 11 - (s % 11) - if chk == 10: - chk = 0 - - if int_values[-1] != chk: - raise ValidationError(self.default_error_messages['invalid']) - - return value - - -class SIPostalCodeField(ChoiceField): - """Slovenian post codes field. - """ - - def __init__(self, *args, **kwargs): - kwargs.setdefault('choices', SI_POSTALCODES_CHOICES) - super(SIPostalCodeField, self).__init__(*args, **kwargs) - - -class SIPostalCodeSelect(Select): - """A Select widget that uses Slovenian postal codes as its choices. - """ - def __init__(self, attrs=None): - super(SIPostalCodeSelect, self).__init__(attrs, - choices=SI_POSTALCODES_CHOICES) - - -class SIPhoneNumberField(CharField): - """Slovenian phone number field. - - Phone number must contain at least local area code. - Country code can be present. - - Examples: - - * +38640XXXXXX - * 0038640XXXXXX - * 040XXXXXX - * 01XXXXXX - * 0590XXXXX - - """ - - default_error_messages = { - 'invalid': _('Enter phone number in form +386XXXXXXXX or 0XXXXXXXX.'), - } - phone_regex = re.compile('^(?:(?:00|\+)386|0)(\d{7,8})$') - - def clean(self, value): - super(SIPhoneNumberField, self).clean(value) - if value in EMPTY_VALUES: - return '' - - value = value.replace(' ', '').replace('-', '').replace('/', '') - m = self.phone_regex.match(value) - - if m is None: - raise ValidationError(self.default_error_messages['invalid']) - return m.groups()[0] diff --git a/django/contrib/localflavor/si/si_postalcodes.py b/django/contrib/localflavor/si/si_postalcodes.py deleted file mode 100644 index 4d027afcff..0000000000 --- a/django/contrib/localflavor/si/si_postalcodes.py +++ /dev/null @@ -1,470 +0,0 @@ -# *-* coding: utf-8 *-* -from __future__ import unicode_literals - -SI_POSTALCODES = [ - (1000, 'Ljubljana'), - (1215, 'Medvode'), - (1216, 'Smlednik'), - (1217, 'Vodice'), - (1218, 'Komenda'), - (1219, 'Laze v Tuhinju'), - (1221, 'Motnik'), - (1222, 'Trojane'), - (1223, 'Blagovica'), - (1225, 'Lukovica'), - (1230, 'Dom\u017eale'), - (1233, 'Dob'), - (1234, 'Menge\u0161'), - (1235, 'Radomlje'), - (1236, 'Trzin'), - (1241, 'Kamnik'), - (1242, 'Stahovica'), - (1251, 'Morav\u010de'), - (1252, 'Va\u010de'), - (1262, 'Dol pri Ljubljani'), - (1270, 'Litija'), - (1272, 'Pol\u0161nik'), - (1273, 'Dole pri Litiji'), - (1274, 'Gabrovka'), - (1275, '\u0160martno pri Litiji'), - (1276, 'Primskovo'), - (1281, 'Kresnice'), - (1282, 'Sava'), - (1290, 'Grosuplje'), - (1291, '\u0160kofljica'), - (1292, 'Ig'), - (1293, '\u0160marje - Sap'), - (1294, 'Vi\u0161nja Gora'), - (1295, 'Ivan\u010dna Gorica'), - (1296, '\u0160entvid pri Sti\u010dni'), - (1301, 'Krka'), - (1303, 'Zagradec'), - (1310, 'Ribnica'), - (1311, 'Turjak'), - (1312, 'Videm - Dobrepolje'), - (1313, 'Struge'), - (1314, 'Rob'), - (1315, 'Velike La\u0161\u010de'), - (1316, 'Ortnek'), - (1317, 'Sodra\u017eica'), - (1318, 'Lo\u0161ki Potok'), - (1319, 'Draga'), - (1330, 'Ko\u010devje'), - (1331, 'Dolenja vas'), - (1332, 'Stara Cerkev'), - (1336, 'Kostel'), - (1337, 'Osilnica'), - (1338, 'Ko\u010devska Reka'), - (1351, 'Brezovica pri Ljubljani'), - (1352, 'Preserje'), - (1353, 'Borovnica'), - (1354, 'Horjul'), - (1355, 'Polhov Gradec'), - (1356, 'Dobrova'), - (1357, 'Notranje Gorice'), - (1358, 'Log pri Brezovici'), - (1360, 'Vrhnika'), - (1370, 'Logatec'), - (1372, 'Hotedr\u0161ica'), - (1373, 'Rovte'), - (1380, 'Cerknica'), - (1381, 'Rakek'), - (1382, 'Begunje pri Cerknici'), - (1384, 'Grahovo'), - (1385, 'Nova vas'), - (1386, 'Stari trg pri Lo\u017eu'), - (1410, 'Zagorje ob Savi'), - (1411, 'Izlake'), - (1412, 'Kisovec'), - (1413, '\u010cem\u0161enik'), - (1414, 'Podkum'), - (1420, 'Trbovlje'), - (1423, 'Dobovec'), - (1430, 'Hrastnik'), - (1431, 'Dol pri Hrastniku'), - (1432, 'Zidani Most'), - (1433, 'Rade\u010de'), - (1434, 'Loka pri Zidanem Mostu'), - (2000, 'Maribor'), - (2201, 'Zgornja Kungota'), - (2204, 'Miklav\u017e na Dravskem polju'), - (2205, 'Star\u0161e'), - (2206, 'Marjeta na Dravskem polju'), - (2208, 'Pohorje'), - (2211, 'Pesnica pri Mariboru'), - (2212, '\u0160entilj v Slovenskih goricah'), - (2213, 'Zgornja Velka'), - (2214, 'Sladki vrh'), - (2215, 'Cer\u0161ak'), - (2221, 'Jarenina'), - (2222, 'Jakobski Dol'), - (2223, 'Jurovski Dol'), - (2229, 'Male\u010dnik'), - (2230, 'Lenart v Slovenskih goricah'), - (2231, 'Pernica'), - (2232, 'Voli\u010dina'), - (2233, 'Sveta Ana v Slovenskih goricah'), - (2234, 'Benedikt'), - (2235, 'Sveta Trojica v Slovenskih goricah'), - (2236, 'Cerkvenjak'), - (2241, 'Spodnji Duplek'), - (2242, 'Zgornja Korena'), - (2250, 'Ptuj'), - (2252, 'Dornava'), - (2253, 'Destrnik'), - (2254, 'Trnovska vas'), - (2255, 'Vitomarci'), - (2256, 'Jur\u0161inci'), - (2257, 'Polen\u0161ak'), - (2258, 'Sveti Toma\u017e'), - (2259, 'Ivanjkovci'), - (2270, 'Ormo\u017e'), - (2272, 'Gori\u0161nica'), - (2273, 'Podgorci'), - (2274, 'Velika Nedelja'), - (2275, 'Miklav\u017e pri Ormo\u017eu'), - (2276, 'Kog'), - (2277, 'Sredi\u0161\u010de ob Dravi'), - (2281, 'Markovci'), - (2282, 'Cirkulane'), - (2283, 'Zavr\u010d'), - (2284, 'Videm pri Ptuju'), - (2285, 'Zgornji Leskovec'), - (2286, 'Podlehnik'), - (2287, '\u017detale'), - (2288, 'Hajdina'), - (2289, 'Stoperce'), - (2310, 'Slovenska Bistrica'), - (2311, 'Ho\u010de'), - (2312, 'Orehova vas'), - (2313, 'Fram'), - (2314, 'Zgornja Polskava'), - (2315, '\u0160martno na Pohorju'), - (2316, 'Zgornja Lo\u017enica'), - (2317, 'Oplotnica'), - (2318, 'Laporje'), - (2319, 'Polj\u010dane'), - (2321, 'Makole'), - (2322, 'Maj\u0161perk'), - (2323, 'Ptujska Gora'), - (2324, 'Lovrenc na Dravskem polju'), - (2325, 'Kidri\u010devo'), - (2326, 'Cirkovce'), - (2327, 'Ra\u010de'), - (2331, 'Pragersko'), - (2341, 'Limbu\u0161'), - (2342, 'Ru\u0161e'), - (2343, 'Fala'), - (2344, 'Lovrenc na Pohorju'), - (2345, 'Bistrica ob Dravi'), - (2351, 'Kamnica'), - (2352, 'Selnica ob Dravi'), - (2353, 'Sv. Duh na Ostrem Vrhu'), - (2354, 'Bresternica'), - (2360, 'Radlje ob Dravi'), - (2361, 'O\u017ebalt'), - (2362, 'Kapla'), - (2363, 'Podvelka'), - (2364, 'Ribnica na Pohorju'), - (2365, 'Vuhred'), - (2366, 'Muta'), - (2367, 'Vuzenica'), - (2370, 'Dravograd'), - (2371, 'Trbonje'), - (2372, 'Libeli\u010de'), - (2373, '\u0160entjan\u017e pri Dravogradu'), - (2380, 'Slovenj Gradec'), - (2381, 'Podgorje pri Slovenj Gradcu'), - (2382, 'Mislinja'), - (2383, '\u0160martno pri Slovenj Gradcu'), - (2390, 'Ravne na Koro\u0161kem'), - (2391, 'Prevalje'), - (2392, 'Me\u017eica'), - (2393, '\u010crna na Koro\u0161kem'), - (2394, 'Kotlje'), - (3000, 'Celje'), - (3201, '\u0160martno v Ro\u017eni dolini'), - (3202, 'Ljube\u010dna'), - (3203, 'Nova Cerkev'), - (3204, 'Dobrna'), - (3205, 'Vitanje'), - (3206, 'Stranice'), - (3210, 'Slovenske Konjice'), - (3211, '\u0160kofja vas'), - (3212, 'Vojnik'), - (3213, 'Frankolovo'), - (3214, 'Zre\u010de'), - (3215, 'Lo\u010de'), - (3220, '\u0160tore'), - (3221, 'Teharje'), - (3222, 'Dramlje'), - (3223, 'Loka pri \u017dusmu'), - (3224, 'Dobje pri Planini'), - (3225, 'Planina pri Sevnici'), - (3230, '\u0160entjur'), - (3231, 'Grobelno'), - (3232, 'Ponikva'), - (3233, 'Kalobje'), - (3240, '\u0160marje pri Jel\u0161ah'), - (3241, 'Podplat'), - (3250, 'Roga\u0161ka Slatina'), - (3252, 'Rogatec'), - (3253, 'Pristava pri Mestinju'), - (3254, 'Pod\u010detrtek'), - (3255, 'Bu\u010de'), - (3256, 'Bistrica ob Sotli'), - (3257, 'Podsreda'), - (3260, 'Kozje'), - (3261, 'Lesi\u010dno'), - (3262, 'Prevorje'), - (3263, 'Gorica pri Slivnici'), - (3264, 'Sveti \u0160tefan'), - (3270, 'La\u0161ko'), - (3271, '\u0160entrupert'), - (3272, 'Rimske Toplice'), - (3273, 'Jurklo\u0161ter'), - (3301, 'Petrov\u010de'), - (3302, 'Gri\u017ee'), - (3303, 'Gomilsko'), - (3304, 'Tabor'), - (3305, 'Vransko'), - (3310, '\u017dalec'), - (3311, '\u0160empeter v Savinjski dolini'), - (3312, 'Prebold'), - (3313, 'Polzela'), - (3314, 'Braslov\u010de'), - (3320, 'Velenje - dostava'), - (3322, 'Velenje - po\u0161tni predali'), - (3325, '\u0160o\u0161tanj'), - (3326, 'Topol\u0161ica'), - (3327, '\u0160martno ob Paki'), - (3330, 'Mozirje'), - (3331, 'Nazarje'), - (3332, 'Re\u010dica ob Savinji'), - (3333, 'Ljubno ob Savinji'), - (3334, 'Lu\u010de'), - (3335, 'Sol\u010dava'), - (3341, '\u0160martno ob Dreti'), - (3342, 'Gornji Grad'), - (4000, 'Kranj'), - (4201, 'Zgornja Besnica'), - (4202, 'Naklo'), - (4203, 'Duplje'), - (4204, 'Golnik'), - (4205, 'Preddvor'), - (4206, 'Zgornje Jezersko'), - (4207, 'Cerklje na Gorenjskem'), - (4208, '\u0160en\u010dur'), - (4209, '\u017dabnica'), - (4210, 'Brnik - aerodrom'), - (4211, 'Mav\u010di\u010de'), - (4212, 'Visoko'), - (4220, '\u0160kofja Loka'), - (4223, 'Poljane nad \u0160kofjo Loko'), - (4224, 'Gorenja vas'), - (4225, 'Sovodenj'), - (4226, '\u017diri'), - (4227, 'Selca'), - (4228, '\u017delezniki'), - (4229, 'Sorica'), - (4240, 'Radovljica'), - (4243, 'Brezje'), - (4244, 'Podnart'), - (4245, 'Kropa'), - (4246, 'Kamna Gorica'), - (4247, 'Zgornje Gorje'), - (4248, 'Lesce'), - (4260, 'Bled'), - (4263, 'Bohinjska Bela'), - (4264, 'Bohinjska Bistrica'), - (4265, 'Bohinjsko jezero'), - (4267, 'Srednja vas v Bohinju'), - (4270, 'Jesenice'), - (4273, 'Blejska Dobrava'), - (4274, '\u017dirovnica'), - (4275, 'Begunje na Gorenjskem'), - (4276, 'Hru\u0161ica'), - (4280, 'Kranjska Gora'), - (4281, 'Mojstrana'), - (4282, 'Gozd Martuljek'), - (4283, 'Rate\u010de - Planica'), - (4290, 'Tr\u017ei\u010d'), - (4294, 'Kri\u017ee'), - (5000, 'Nova Gorica'), - (5210, 'Deskle'), - (5211, 'Kojsko'), - (5212, 'Dobrovo v Brdih'), - (5213, 'Kanal'), - (5214, 'Kal nad Kanalom'), - (5215, 'Ro\u010dinj'), - (5216, 'Most na So\u010di'), - (5220, 'Tolmin'), - (5222, 'Kobarid'), - (5223, 'Breginj'), - (5224, 'Srpenica'), - (5230, 'Bovec'), - (5231, 'Log pod Mangartom'), - (5232, 'So\u010da'), - (5242, 'Grahovo ob Ba\u010di'), - (5243, 'Podbrdo'), - (5250, 'Solkan'), - (5251, 'Grgar'), - (5252, 'Trnovo pri Gorici'), - (5253, '\u010cepovan'), - (5261, '\u0160empas'), - (5262, '\u010crni\u010de'), - (5263, 'Dobravlje'), - (5270, 'Ajdov\u0161\u010dina'), - (5271, 'Vipava'), - (5272, 'Podnanos'), - (5273, 'Col'), - (5274, '\u010crni Vrh nad Idrijo'), - (5275, 'Godovi\u010d'), - (5280, 'Idrija'), - (5281, 'Spodnja Idrija'), - (5282, 'Cerkno'), - (5283, 'Slap ob Idrijci'), - (5290, '\u0160empeter pri Gorici'), - (5291, 'Miren'), - (5292, 'Ren\u010de'), - (5293, 'Vol\u010dja Draga'), - (5294, 'Dornberk'), - (5295, 'Branik'), - (5296, 'Kostanjevica na Krasu'), - (5297, 'Prva\u010dina'), - (6000, 'Koper'), - (6210, 'Se\u017eana'), - (6215, 'Diva\u010da'), - (6216, 'Podgorje'), - (6217, 'Vremski Britof'), - (6219, 'Lokev'), - (6221, 'Dutovlje'), - (6222, '\u0160tanjel'), - (6223, 'Komen'), - (6224, 'Seno\u017ee\u010de'), - (6225, 'Hru\u0161evje'), - (6230, 'Postojna'), - (6232, 'Planina'), - (6240, 'Kozina'), - (6242, 'Materija'), - (6243, 'Obrov'), - (6244, 'Podgrad'), - (6250, 'Ilirska Bistrica'), - (6251, 'Ilirska Bistrica - Trnovo'), - (6253, 'Kne\u017eak'), - (6254, 'Jel\u0161ane'), - (6255, 'Prem'), - (6256, 'Ko\u0161ana'), - (6257, 'Pivka'), - (6258, 'Prestranek'), - (6271, 'Dekani'), - (6272, 'Gra\u010di\u0161\u010de'), - (6273, 'Marezige'), - (6274, '\u0160marje'), - (6275, '\u010crni Kal'), - (6276, 'Pobegi'), - (6280, 'Ankaran - Ancarano'), - (6281, '\u0160kofije'), - (6310, 'Izola - Isola'), - (6320, 'Portoro\u017e - Portorose'), - (6330, 'Piran - Pirano'), - (6333, 'Se\u010dovlje - Sicciole'), - (8000, 'Novo mesto'), - (8210, 'Trebnje'), - (8211, 'Dobrni\u010d'), - (8212, 'Velika Loka'), - (8213, 'Veliki Gaber'), - (8216, 'Mirna Pe\u010d'), - (8220, '\u0160marje\u0161ke Toplice'), - (8222, 'Oto\u010dec'), - (8230, 'Mokronog'), - (8231, 'Trebelno'), - (8232, '\u0160entrupert'), - (8233, 'Mirna'), - (8250, 'Bre\u017eice'), - (8251, '\u010cate\u017e ob Savi'), - (8253, 'Arti\u010de'), - (8254, 'Globoko'), - (8255, 'Pi\u0161ece'), - (8256, 'Sromlje'), - (8257, 'Dobova'), - (8258, 'Kapele'), - (8259, 'Bizeljsko'), - (8261, 'Jesenice na Dolenjskem'), - (8262, 'Kr\u0161ka vas'), - (8263, 'Cerklje ob Krki'), - (8270, 'Kr\u0161ko'), - (8272, 'Zdole'), - (8273, 'Leskovec pri Kr\u0161kem'), - (8274, 'Raka'), - (8275, '\u0160kocjan'), - (8276, 'Bu\u010dka'), - (8280, 'Brestanica'), - (8281, 'Senovo'), - (8282, 'Koprivnica'), - (8283, 'Blanca'), - (8290, 'Sevnica'), - (8292, 'Zabukovje'), - (8293, 'Studenec'), - (8294, 'Bo\u0161tanj'), - (8295, 'Tr\u017ei\u0161\u010de'), - (8296, 'Krmelj'), - (8297, '\u0160entjan\u017e'), - (8310, '\u0160entjernej'), - (8311, 'Kostanjevica na Krki'), - (8312, 'Podbo\u010dje'), - (8321, 'Brusnice'), - (8322, 'Stopi\u010de'), - (8323, 'Ur\u0161na sela'), - (8330, 'Metlika'), - (8331, 'Suhor'), - (8332, 'Gradac'), - (8333, 'Semi\u010d'), - (8340, '\u010crnomelj'), - (8341, 'Adle\u0161i\u010di'), - (8342, 'Stari trg ob Kolpi'), - (8343, 'Dragatu\u0161'), - (8344, 'Vinica pri \u010crnomlju'), - (8350, 'Dolenjske Toplice'), - (8351, 'Stra\u017ea'), - (8360, '\u017du\u017eemberk'), - (8361, 'Dvor'), - (8362, 'Hinje'), - (9000, 'Murska Sobota'), - (9201, 'Puconci'), - (9202, 'Ma\u010dkovci'), - (9203, 'Petrovci'), - (9204, '\u0160alovci'), - (9205, 'Hodo\u0161 - Hodos'), - (9206, 'Kri\u017eevci'), - (9207, 'Prosenjakovci - Partosfalva'), - (9208, 'Fokovci'), - (9220, 'Lendava - Lendva'), - (9221, 'Martjanci'), - (9222, 'Bogojina'), - (9223, 'Dobrovnik - Dobronak'), - (9224, 'Turni\u0161\u010de'), - (9225, 'Velika Polana'), - (9226, 'Moravske Toplice'), - (9227, 'Kobilje'), - (9231, 'Beltinci'), - (9232, '\u010cren\u0161ovci'), - (9233, 'Odranci'), - (9240, 'Ljutomer'), - (9241, 'Ver\u017eej'), - (9242, 'Kri\u017eevci pri Ljutomeru'), - (9243, 'Mala Nedelja'), - (9244, 'Sveti Jurij ob \u0160\u010davnici'), - (9245, 'Spodnji Ivanjci'), - (9250, 'Gornja Radgona'), - (9251, 'Ti\u0161ina'), - (9252, 'Radenci'), - (9253, 'Apa\u010de'), - (9261, 'Cankova'), - (9262, 'Roga\u0161ovci'), - (9263, 'Kuzma'), - (9264, 'Grad'), - (9265, 'Bodonci'), -] - -SI_POSTALCODES_CHOICES = sorted(SI_POSTALCODES, key=lambda k: k[1]) diff --git a/django/contrib/localflavor/sk/__init__.py b/django/contrib/localflavor/sk/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/sk/forms.py b/django/contrib/localflavor/sk/forms.py deleted file mode 100644 index 11d44cc4d2..0000000000 --- a/django/contrib/localflavor/sk/forms.py +++ /dev/null @@ -1,46 +0,0 @@ -""" -Slovak-specific form helpers -""" - -from __future__ import absolute_import, unicode_literals - -from django.contrib.localflavor.sk.sk_districts import DISTRICT_CHOICES -from django.contrib.localflavor.sk.sk_regions import REGION_CHOICES -from django.forms.fields import Select, RegexField -from django.utils.translation import ugettext_lazy as _ - - -class SKRegionSelect(Select): - """ - A select widget widget with list of Slovak regions as choices. - """ - def __init__(self, attrs=None): - super(SKRegionSelect, self).__init__(attrs, choices=REGION_CHOICES) - -class SKDistrictSelect(Select): - """ - A select widget with list of Slovak districts as choices. - """ - def __init__(self, attrs=None): - super(SKDistrictSelect, self).__init__(attrs, choices=DISTRICT_CHOICES) - -class SKPostalCodeField(RegexField): - """ - A form field that validates its input as Slovak postal code. - Valid form is XXXXX or XXX XX, where X represents integer. - """ - default_error_messages = { - 'invalid': _('Enter a postal code in the format XXXXX or XXX XX.'), - } - - def __init__(self, max_length=None, min_length=None, *args, **kwargs): - super(SKPostalCodeField, self).__init__(r'^\d{5}$|^\d{3} \d{2}$', - max_length, min_length, *args, **kwargs) - - def clean(self, value): - """ - Validates the input and returns a string that contains only numbers. - Returns an empty string for empty values. - """ - v = super(SKPostalCodeField, self).clean(value) - return v.replace(' ', '') diff --git a/django/contrib/localflavor/sk/sk_districts.py b/django/contrib/localflavor/sk/sk_districts.py deleted file mode 100644 index 95e87967b9..0000000000 --- a/django/contrib/localflavor/sk/sk_districts.py +++ /dev/null @@ -1,87 +0,0 @@ -""" -Slovak districts according to http://sk.wikipedia.org/wiki/Administrat%C3%ADvne_%C4%8Dlenenie_Slovenska -""" - -from django.utils.translation import ugettext_lazy as _ - -DISTRICT_CHOICES = ( - ('BB', _('Banska Bystrica')), - ('BS', _('Banska Stiavnica')), - ('BJ', _('Bardejov')), - ('BN', _('Banovce nad Bebravou')), - ('BR', _('Brezno')), - ('BA1', _('Bratislava I')), - ('BA2', _('Bratislava II')), - ('BA3', _('Bratislava III')), - ('BA4', _('Bratislava IV')), - ('BA5', _('Bratislava V')), - ('BY', _('Bytca')), - ('CA', _('Cadca')), - ('DT', _('Detva')), - ('DK', _('Dolny Kubin')), - ('DS', _('Dunajska Streda')), - ('GA', _('Galanta')), - ('GL', _('Gelnica')), - ('HC', _('Hlohovec')), - ('HE', _('Humenne')), - ('IL', _('Ilava')), - ('KK', _('Kezmarok')), - ('KN', _('Komarno')), - ('KE1', _('Kosice I')), - ('KE2', _('Kosice II')), - ('KE3', _('Kosice III')), - ('KE4', _('Kosice IV')), - ('KEO', _('Kosice - okolie')), - ('KA', _('Krupina')), - ('KM', _('Kysucke Nove Mesto')), - ('LV', _('Levice')), - ('LE', _('Levoca')), - ('LM', _('Liptovsky Mikulas')), - ('LC', _('Lucenec')), - ('MA', _('Malacky')), - ('MT', _('Martin')), - ('ML', _('Medzilaborce')), - ('MI', _('Michalovce')), - ('MY', _('Myjava')), - ('NO', _('Namestovo')), - ('NR', _('Nitra')), - ('NM', _('Nove Mesto nad Vahom')), - ('NZ', _('Nove Zamky')), - ('PE', _('Partizanske')), - ('PK', _('Pezinok')), - ('PN', _('Piestany')), - ('PT', _('Poltar')), - ('PP', _('Poprad')), - ('PB', _('Povazska Bystrica')), - ('PO', _('Presov')), - ('PD', _('Prievidza')), - ('PU', _('Puchov')), - ('RA', _('Revuca')), - ('RS', _('Rimavska Sobota')), - ('RV', _('Roznava')), - ('RK', _('Ruzomberok')), - ('SB', _('Sabinov')), - ('SC', _('Senec')), - ('SE', _('Senica')), - ('SI', _('Skalica')), - ('SV', _('Snina')), - ('SO', _('Sobrance')), - ('SN', _('Spisska Nova Ves')), - ('SL', _('Stara Lubovna')), - ('SP', _('Stropkov')), - ('SK', _('Svidnik')), - ('SA', _('Sala')), - ('TO', _('Topolcany')), - ('TV', _('Trebisov')), - ('TN', _('Trencin')), - ('TT', _('Trnava')), - ('TR', _('Turcianske Teplice')), - ('TS', _('Tvrdosin')), - ('VK', _('Velky Krtis')), - ('VT', _('Vranov nad Toplou')), - ('ZM', _('Zlate Moravce')), - ('ZV', _('Zvolen')), - ('ZC', _('Zarnovica')), - ('ZH', _('Ziar nad Hronom')), - ('ZA', _('Zilina')), -) diff --git a/django/contrib/localflavor/sk/sk_regions.py b/django/contrib/localflavor/sk/sk_regions.py deleted file mode 100644 index 66de814e01..0000000000 --- a/django/contrib/localflavor/sk/sk_regions.py +++ /dev/null @@ -1,16 +0,0 @@ -""" -Slovak regions according to http://sk.wikipedia.org/wiki/Administrat%C3%ADvne_%C4%8Dlenenie_Slovenska -""" - -from django.utils.translation import ugettext_lazy as _ - -REGION_CHOICES = ( - ('BB', _('Banska Bystrica region')), - ('BA', _('Bratislava region')), - ('KE', _('Kosice region')), - ('NR', _('Nitra region')), - ('PO', _('Presov region')), - ('TN', _('Trencin region')), - ('TT', _('Trnava region')), - ('ZA', _('Zilina region')), -) diff --git a/django/contrib/localflavor/tr/__init__.py b/django/contrib/localflavor/tr/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/tr/forms.py b/django/contrib/localflavor/tr/forms.py deleted file mode 100644 index c4f928e670..0000000000 --- a/django/contrib/localflavor/tr/forms.py +++ /dev/null @@ -1,95 +0,0 @@ -""" -TR-specific Form helpers -""" - -from __future__ import absolute_import, unicode_literals - -import re - -from django.contrib.localflavor.tr.tr_provinces import PROVINCE_CHOICES -from django.core.validators import EMPTY_VALUES -from django.forms import ValidationError -from django.forms.fields import Field, RegexField, Select, CharField -from django.utils.encoding import smart_text -from django.utils.translation import ugettext_lazy as _ - - -phone_digits_re = re.compile(r'^(\+90|0)? ?(([1-9]\d{2})|\([1-9]\d{2}\)) ?([2-9]\d{2} ?\d{2} ?\d{2})$') - -class TRPostalCodeField(RegexField): - default_error_messages = { - 'invalid': _('Enter a postal code in the format XXXXX.'), - } - - def __init__(self, max_length=5, min_length=5, *args, **kwargs): - super(TRPostalCodeField, self).__init__(r'^\d{5}$', - max_length, min_length, *args, **kwargs) - - def clean(self, value): - value = super(TRPostalCodeField, self).clean(value) - if value in EMPTY_VALUES: - return '' - if len(value) != 5: - raise ValidationError(self.error_messages['invalid']) - province_code = int(value[:2]) - if province_code == 0 or province_code > 81: - raise ValidationError(self.error_messages['invalid']) - return value - - -class TRPhoneNumberField(CharField): - default_error_messages = { - 'invalid': _('Phone numbers must be in 0XXX XXX XXXX format.'), - } - - def clean(self, value): - super(TRPhoneNumberField, self).clean(value) - if value in EMPTY_VALUES: - return '' - value = re.sub('(\(|\)|\s+)', '', smart_text(value)) - m = phone_digits_re.search(value) - if m: - return '%s%s' % (m.group(2), m.group(4)) - raise ValidationError(self.error_messages['invalid']) - -class TRIdentificationNumberField(Field): - """ - A Turkey Identification Number number. - See: http://tr.wikipedia.org/wiki/T%C3%BCrkiye_Cumhuriyeti_Kimlik_Numaras%C4%B1 - - Checks the following rules to determine whether the number is valid: - - * The number is 11-digits. - * First digit is not 0. - * Conforms to the following two formula: - (sum(1st, 3rd, 5th, 7th, 9th)*7 - sum(2nd,4th,6th,8th)) % 10 = 10th digit - sum(1st to 10th) % 10 = 11th digit - """ - default_error_messages = { - 'invalid': _('Enter a valid Turkish Identification number.'), - 'not_11': _('Turkish Identification number must be 11 digits.'), - } - - def clean(self, value): - super(TRIdentificationNumberField, self).clean(value) - if value in EMPTY_VALUES: - return '' - if len(value) != 11: - raise ValidationError(self.error_messages['not_11']) - if not re.match(r'^\d{11}$', value): - raise ValidationError(self.error_messages['invalid']) - if int(value[0]) == 0: - raise ValidationError(self.error_messages['invalid']) - chksum = (sum([int(value[i]) for i in range(0, 9, 2)]) * 7 - - sum([int(value[i]) for i in range(1, 9, 2)])) % 10 - if chksum != int(value[9]) or \ - (sum([int(value[i]) for i in range(10)]) % 10) != int(value[10]): - raise ValidationError(self.error_messages['invalid']) - return value - -class TRProvinceSelect(Select): - """ - A Select widget that uses a list of provinces in Turkey as its choices. - """ - def __init__(self, attrs=None): - super(TRProvinceSelect, self).__init__(attrs, choices=PROVINCE_CHOICES) diff --git a/django/contrib/localflavor/tr/tr_provinces.py b/django/contrib/localflavor/tr/tr_provinces.py deleted file mode 100644 index edad74710d..0000000000 --- a/django/contrib/localflavor/tr/tr_provinces.py +++ /dev/null @@ -1,90 +0,0 @@ -# -*- coding: utf-8 -*- -""" -This exists in this standalone file so that it's only imported into memory -when explicitly needed. -""" -from __future__ import unicode_literals - -PROVINCE_CHOICES = ( - ('01', ('Adana')), - ('02', ('Adıyaman')), - ('03', ('Afyonkarahisar')), - ('04', ('Ağrı')), - ('68', ('Aksaray')), - ('05', ('Amasya')), - ('06', ('Ankara')), - ('07', ('Antalya')), - ('75', ('Ardahan')), - ('08', ('Artvin')), - ('09', ('Aydın')), - ('10', ('Balıkesir')), - ('74', ('Bartın')), - ('72', ('Batman')), - ('69', ('Bayburt')), - ('11', ('Bilecik')), - ('12', ('Bingöl')), - ('13', ('Bitlis')), - ('14', ('Bolu')), - ('15', ('Burdur')), - ('16', ('Bursa')), - ('17', ('Çanakkale')), - ('18', ('Çankırı')), - ('19', ('Çorum')), - ('20', ('Denizli')), - ('21', ('Diyarbakır')), - ('81', ('Düzce')), - ('22', ('Edirne')), - ('23', ('Elazığ')), - ('24', ('Erzincan')), - ('25', ('Erzurum')), - ('26', ('Eskişehir')), - ('27', ('Gaziantep')), - ('28', ('Giresun')), - ('29', ('Gümüşhane')), - ('30', ('Hakkari')), - ('31', ('Hatay')), - ('76', ('Iğdır')), - ('32', ('Isparta')), - ('33', ('Mersin')), - ('34', ('İstanbul')), - ('35', ('İzmir')), - ('78', ('Karabük')), - ('36', ('Kars')), - ('37', ('Kastamonu')), - ('38', ('Kayseri')), - ('39', ('Kırklareli')), - ('40', ('Kırşehir')), - ('41', ('Kocaeli')), - ('42', ('Konya')), - ('43', ('Kütahya')), - ('44', ('Malatya')), - ('45', ('Manisa')), - ('46', ('Kahramanmaraş')), - ('70', ('Karaman')), - ('71', ('Kırıkkale')), - ('79', ('Kilis')), - ('47', ('Mardin')), - ('48', ('Muğla')), - ('49', ('Muş')), - ('50', ('Nevşehir')), - ('51', ('Niğde')), - ('52', ('Ordu')), - ('80', ('Osmaniye')), - ('53', ('Rize')), - ('54', ('Sakarya')), - ('55', ('Samsun')), - ('56', ('Siirt')), - ('57', ('Sinop')), - ('58', ('Sivas')), - ('73', ('Şırnak')), - ('59', ('Tekirdağ')), - ('60', ('Tokat')), - ('61', ('Trabzon')), - ('62', ('Tunceli')), - ('63', ('Şanlıurfa')), - ('64', ('Uşak')), - ('65', ('Van')), - ('77', ('Yalova')), - ('66', ('Yozgat')), - ('67', ('Zonguldak')), -) diff --git a/django/contrib/localflavor/uk/__init__.py b/django/contrib/localflavor/uk/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/uk/forms.py b/django/contrib/localflavor/uk/forms.py deleted file mode 100644 index 14624bc15f..0000000000 --- a/django/contrib/localflavor/uk/forms.py +++ /dev/null @@ -1,10 +0,0 @@ -from django.contrib.localflavor.gb import forms - -import warnings -warnings.warn( - 'The "UK" prefix for United Kingdom has been deprecated in favour of the ' - 'GB code. Please use the new GB-prefixed names.', DeprecationWarning) - -UKPostcodeField = forms.GBPostcodeField -UKCountySelect = forms.GBCountySelect -UKNationSelect = forms.GBNationSelect diff --git a/django/contrib/localflavor/uk/uk_regions.py b/django/contrib/localflavor/uk/uk_regions.py deleted file mode 100644 index 5af19967c7..0000000000 --- a/django/contrib/localflavor/uk/uk_regions.py +++ /dev/null @@ -1,12 +0,0 @@ -from django.contrib.localflavor.gb.gb_regions import ( - ENGLAND_REGION_CHOICES, NORTHERN_IRELAND_REGION_CHOICES, - WALES_REGION_CHOICES, SCOTTISH_REGION_CHOICES, GB_NATIONS_CHOICES, - GB_REGION_CHOICES) - -import warnings -warnings.warn( - 'The "UK" prefix for United Kingdom has been deprecated in favour of the ' - 'GB code. Please use the new GB-prefixed names.', DeprecationWarning) - -UK_NATIONS_CHOICES = GB_NATIONS_CHOICES -UK_REGION_CHOICES = GB_REGION_CHOICES diff --git a/django/contrib/localflavor/us/__init__.py b/django/contrib/localflavor/us/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/us/forms.py b/django/contrib/localflavor/us/forms.py deleted file mode 100644 index 437bb7c466..0000000000 --- a/django/contrib/localflavor/us/forms.py +++ /dev/null @@ -1,126 +0,0 @@ -""" -USA-specific Form helpers -""" - -from __future__ import absolute_import, unicode_literals - -import re - -from django.core.validators import EMPTY_VALUES -from django.forms import ValidationError -from django.forms.fields import Field, RegexField, Select, CharField -from django.utils.encoding import smart_text -from django.utils.translation import ugettext_lazy as _ - - -phone_digits_re = re.compile(r'^(?:1-?)?(\d{3})[-\.]?(\d{3})[-\.]?(\d{4})$') -ssn_re = re.compile(r"^(?P\d{3})[-\ ]?(?P\d{2})[-\ ]?(?P\d{4})$") - -class USZipCodeField(RegexField): - default_error_messages = { - 'invalid': _('Enter a zip code in the format XXXXX or XXXXX-XXXX.'), - } - - def __init__(self, max_length=None, min_length=None, *args, **kwargs): - super(USZipCodeField, self).__init__(r'^\d{5}(?:-\d{4})?$', - max_length, min_length, *args, **kwargs) - -class USPhoneNumberField(CharField): - default_error_messages = { - 'invalid': _('Phone numbers must be in XXX-XXX-XXXX format.'), - } - - def clean(self, value): - super(USPhoneNumberField, self).clean(value) - if value in EMPTY_VALUES: - return '' - value = re.sub('(\(|\)|\s+)', '', smart_text(value)) - m = phone_digits_re.search(value) - if m: - return '%s-%s-%s' % (m.group(1), m.group(2), m.group(3)) - raise ValidationError(self.error_messages['invalid']) - -class USSocialSecurityNumberField(Field): - """ - A United States Social Security number. - - Checks the following rules to determine whether the number is valid: - - * Conforms to the XXX-XX-XXXX format. - * No group consists entirely of zeroes. - * The leading group is not "666" (block "666" will never be allocated). - * The number is not in the promotional block 987-65-4320 through - 987-65-4329, which are permanently invalid. - * The number is not one known to be invalid due to otherwise widespread - promotional use or distribution (e.g., the Woolworth's number or the - 1962 promotional number). - """ - default_error_messages = { - 'invalid': _('Enter a valid U.S. Social Security number in XXX-XX-XXXX format.'), - } - - def clean(self, value): - super(USSocialSecurityNumberField, self).clean(value) - if value in EMPTY_VALUES: - return '' - match = re.match(ssn_re, value) - if not match: - raise ValidationError(self.error_messages['invalid']) - area, group, serial = match.groupdict()['area'], match.groupdict()['group'], match.groupdict()['serial'] - - # First pass: no blocks of all zeroes. - if area == '000' or \ - group == '00' or \ - serial == '0000': - raise ValidationError(self.error_messages['invalid']) - - # Second pass: promotional and otherwise permanently invalid numbers. - if area == '666' or \ - (area == '987' and group == '65' and 4320 <= int(serial) <= 4329) or \ - value == '078-05-1120' or \ - value == '219-09-9999': - raise ValidationError(self.error_messages['invalid']) - return '%s-%s-%s' % (area, group, serial) - -class USStateField(Field): - """ - A form field that validates its input is a U.S. state name or abbreviation. - It normalizes the input to the standard two-leter postal service - abbreviation for the given state. - """ - default_error_messages = { - 'invalid': _('Enter a U.S. state or territory.'), - } - - def clean(self, value): - from .us_states import STATES_NORMALIZED - super(USStateField, self).clean(value) - if value in EMPTY_VALUES: - return '' - try: - value = value.strip().lower() - except AttributeError: - pass - else: - try: - return STATES_NORMALIZED[value.strip().lower()] - except KeyError: - pass - raise ValidationError(self.error_messages['invalid']) - -class USStateSelect(Select): - """ - A Select widget that uses a list of U.S. states/territories as its choices. - """ - def __init__(self, attrs=None): - from .us_states import STATE_CHOICES - super(USStateSelect, self).__init__(attrs, choices=STATE_CHOICES) - -class USPSSelect(Select): - """ - A Select widget that uses a list of US Postal Service codes as its - choices. - """ - def __init__(self, attrs=None): - from .us_states import USPS_CHOICES - super(USPSSelect, self).__init__(attrs, choices=USPS_CHOICES) diff --git a/django/contrib/localflavor/us/models.py b/django/contrib/localflavor/us/models.py deleted file mode 100644 index 7cec205ccc..0000000000 --- a/django/contrib/localflavor/us/models.py +++ /dev/null @@ -1,36 +0,0 @@ -from django.utils.translation import ugettext_lazy as _ -from django.db.models.fields import CharField -from django.contrib.localflavor.us.us_states import STATE_CHOICES -from django.contrib.localflavor.us.us_states import USPS_CHOICES - -class USStateField(CharField): - - description = _("U.S. state (two uppercase letters)") - - def __init__(self, *args, **kwargs): - kwargs['choices'] = STATE_CHOICES - kwargs['max_length'] = 2 - super(USStateField, self).__init__(*args, **kwargs) - -class USPostalCodeField(CharField): - - description = _("U.S. postal code (two uppercase letters)") - - def __init__(self, *args, **kwargs): - kwargs['choices'] = USPS_CHOICES - kwargs['max_length'] = 2 - super(USPostalCodeField, self).__init__(*args, **kwargs) - -class PhoneNumberField(CharField): - - description = _("Phone number") - - def __init__(self, *args, **kwargs): - kwargs['max_length'] = 20 - super(PhoneNumberField, self).__init__(*args, **kwargs) - - def formfield(self, **kwargs): - from django.contrib.localflavor.us.forms import USPhoneNumberField - defaults = {'form_class': USPhoneNumberField} - defaults.update(kwargs) - return super(PhoneNumberField, self).formfield(**defaults) diff --git a/django/contrib/localflavor/us/us_states.py b/django/contrib/localflavor/us/us_states.py deleted file mode 100644 index 0da47d57b7..0000000000 --- a/django/contrib/localflavor/us/us_states.py +++ /dev/null @@ -1,326 +0,0 @@ -""" -A mapping of state misspellings/abbreviations to normalized -abbreviations, and alphabetical lists of US states, territories, -military mail regions and non-US states to which the US provides -postal service. - -This exists in this standalone file so that it's only imported into memory -when explicitly needed. -""" - -# The 48 contiguous states, plus the District of Columbia. -CONTIGUOUS_STATES = ( - ('AL', 'Alabama'), - ('AZ', 'Arizona'), - ('AR', 'Arkansas'), - ('CA', 'California'), - ('CO', 'Colorado'), - ('CT', 'Connecticut'), - ('DE', 'Delaware'), - ('DC', 'District of Columbia'), - ('FL', 'Florida'), - ('GA', 'Georgia'), - ('ID', 'Idaho'), - ('IL', 'Illinois'), - ('IN', 'Indiana'), - ('IA', 'Iowa'), - ('KS', 'Kansas'), - ('KY', 'Kentucky'), - ('LA', 'Louisiana'), - ('ME', 'Maine'), - ('MD', 'Maryland'), - ('MA', 'Massachusetts'), - ('MI', 'Michigan'), - ('MN', 'Minnesota'), - ('MS', 'Mississippi'), - ('MO', 'Missouri'), - ('MT', 'Montana'), - ('NE', 'Nebraska'), - ('NV', 'Nevada'), - ('NH', 'New Hampshire'), - ('NJ', 'New Jersey'), - ('NM', 'New Mexico'), - ('NY', 'New York'), - ('NC', 'North Carolina'), - ('ND', 'North Dakota'), - ('OH', 'Ohio'), - ('OK', 'Oklahoma'), - ('OR', 'Oregon'), - ('PA', 'Pennsylvania'), - ('RI', 'Rhode Island'), - ('SC', 'South Carolina'), - ('SD', 'South Dakota'), - ('TN', 'Tennessee'), - ('TX', 'Texas'), - ('UT', 'Utah'), - ('VT', 'Vermont'), - ('VA', 'Virginia'), - ('WA', 'Washington'), - ('WV', 'West Virginia'), - ('WI', 'Wisconsin'), - ('WY', 'Wyoming'), -) - -# All 50 states, plus the District of Columbia. -US_STATES = ( - ('AL', 'Alabama'), - ('AK', 'Alaska'), - ('AZ', 'Arizona'), - ('AR', 'Arkansas'), - ('CA', 'California'), - ('CO', 'Colorado'), - ('CT', 'Connecticut'), - ('DE', 'Delaware'), - ('DC', 'District of Columbia'), - ('FL', 'Florida'), - ('GA', 'Georgia'), - ('HI', 'Hawaii'), - ('ID', 'Idaho'), - ('IL', 'Illinois'), - ('IN', 'Indiana'), - ('IA', 'Iowa'), - ('KS', 'Kansas'), - ('KY', 'Kentucky'), - ('LA', 'Louisiana'), - ('ME', 'Maine'), - ('MD', 'Maryland'), - ('MA', 'Massachusetts'), - ('MI', 'Michigan'), - ('MN', 'Minnesota'), - ('MS', 'Mississippi'), - ('MO', 'Missouri'), - ('MT', 'Montana'), - ('NE', 'Nebraska'), - ('NV', 'Nevada'), - ('NH', 'New Hampshire'), - ('NJ', 'New Jersey'), - ('NM', 'New Mexico'), - ('NY', 'New York'), - ('NC', 'North Carolina'), - ('ND', 'North Dakota'), - ('OH', 'Ohio'), - ('OK', 'Oklahoma'), - ('OR', 'Oregon'), - ('PA', 'Pennsylvania'), - ('RI', 'Rhode Island'), - ('SC', 'South Carolina'), - ('SD', 'South Dakota'), - ('TN', 'Tennessee'), - ('TX', 'Texas'), - ('UT', 'Utah'), - ('VT', 'Vermont'), - ('VA', 'Virginia'), - ('WA', 'Washington'), - ('WV', 'West Virginia'), - ('WI', 'Wisconsin'), - ('WY', 'Wyoming'), -) - -# Non-state territories. -US_TERRITORIES = ( - ('AS', 'American Samoa'), - ('GU', 'Guam'), - ('MP', 'Northern Mariana Islands'), - ('PR', 'Puerto Rico'), - ('VI', 'Virgin Islands'), -) - -# Military postal "states". Note that 'AE' actually encompasses -# Europe, Canada, Africa and the Middle East. -ARMED_FORCES_STATES = ( - ('AA', 'Armed Forces Americas'), - ('AE', 'Armed Forces Europe'), - ('AP', 'Armed Forces Pacific'), -) - -# Non-US locations serviced by USPS (under Compact of Free -# Association). -COFA_STATES = ( - ('FM', 'Federated States of Micronesia'), - ('MH', 'Marshall Islands'), - ('PW', 'Palau'), -) - -# Obsolete abbreviations (no longer US territories/USPS service, or -# code changed). -OBSOLETE_STATES = ( - ('CM', 'Commonwealth of the Northern Mariana Islands'), # Is now 'MP' - ('CZ', 'Panama Canal Zone'), # Reverted to Panama 1979 - ('PI', 'Philippine Islands'), # Philippine independence 1946 - ('TT', 'Trust Territory of the Pacific Islands'), # Became the independent COFA states + Northern Mariana Islands 1979-1994 -) - - -# All US states and territories plus DC and military mail. -STATE_CHOICES = tuple(sorted(US_STATES + US_TERRITORIES + ARMED_FORCES_STATES, key=lambda obj: obj[1])) - -# All US Postal Service locations. -USPS_CHOICES = tuple(sorted(US_STATES + US_TERRITORIES + ARMED_FORCES_STATES + COFA_STATES, key=lambda obj: obj[1])) - -STATES_NORMALIZED = { - 'ak': 'AK', - 'al': 'AL', - 'ala': 'AL', - 'alabama': 'AL', - 'alaska': 'AK', - 'american samao': 'AS', - 'american samoa': 'AS', - 'ar': 'AR', - 'ariz': 'AZ', - 'arizona': 'AZ', - 'ark': 'AR', - 'arkansas': 'AR', - 'as': 'AS', - 'az': 'AZ', - 'ca': 'CA', - 'calf': 'CA', - 'calif': 'CA', - 'california': 'CA', - 'co': 'CO', - 'colo': 'CO', - 'colorado': 'CO', - 'conn': 'CT', - 'connecticut': 'CT', - 'ct': 'CT', - 'dc': 'DC', - 'de': 'DE', - 'del': 'DE', - 'delaware': 'DE', - 'deleware': 'DE', - 'district of columbia': 'DC', - 'fl': 'FL', - 'fla': 'FL', - 'florida': 'FL', - 'ga': 'GA', - 'georgia': 'GA', - 'gu': 'GU', - 'guam': 'GU', - 'hawaii': 'HI', - 'hi': 'HI', - 'ia': 'IA', - 'id': 'ID', - 'idaho': 'ID', - 'il': 'IL', - 'ill': 'IL', - 'illinois': 'IL', - 'in': 'IN', - 'ind': 'IN', - 'indiana': 'IN', - 'iowa': 'IA', - 'kan': 'KS', - 'kans': 'KS', - 'kansas': 'KS', - 'kentucky': 'KY', - 'ks': 'KS', - 'ky': 'KY', - 'la': 'LA', - 'louisiana': 'LA', - 'ma': 'MA', - 'maine': 'ME', - 'marianas islands': 'MP', - 'marianas islands of the pacific': 'MP', - 'marinas islands of the pacific': 'MP', - 'maryland': 'MD', - 'mass': 'MA', - 'massachusetts': 'MA', - 'massachussetts': 'MA', - 'md': 'MD', - 'me': 'ME', - 'mi': 'MI', - 'mich': 'MI', - 'michigan': 'MI', - 'minn': 'MN', - 'minnesota': 'MN', - 'miss': 'MS', - 'mississippi': 'MS', - 'missouri': 'MO', - 'mn': 'MN', - 'mo': 'MO', - 'mont': 'MT', - 'montana': 'MT', - 'mp': 'MP', - 'ms': 'MS', - 'mt': 'MT', - 'n d': 'ND', - 'n dak': 'ND', - 'n h': 'NH', - 'n j': 'NJ', - 'n m': 'NM', - 'n mex': 'NM', - 'nc': 'NC', - 'nd': 'ND', - 'ne': 'NE', - 'neb': 'NE', - 'nebr': 'NE', - 'nebraska': 'NE', - 'nev': 'NV', - 'nevada': 'NV', - 'new hampshire': 'NH', - 'new jersey': 'NJ', - 'new mexico': 'NM', - 'new york': 'NY', - 'nh': 'NH', - 'nj': 'NJ', - 'nm': 'NM', - 'nmex': 'NM', - 'north carolina': 'NC', - 'north dakota': 'ND', - 'northern mariana islands': 'MP', - 'nv': 'NV', - 'ny': 'NY', - 'oh': 'OH', - 'ohio': 'OH', - 'ok': 'OK', - 'okla': 'OK', - 'oklahoma': 'OK', - 'or': 'OR', - 'ore': 'OR', - 'oreg': 'OR', - 'oregon': 'OR', - 'pa': 'PA', - 'penn': 'PA', - 'pennsylvania': 'PA', - 'pr': 'PR', - 'puerto rico': 'PR', - 'rhode island': 'RI', - 'ri': 'RI', - 's dak': 'SD', - 'sc': 'SC', - 'sd': 'SD', - 'sdak': 'SD', - 'south carolina': 'SC', - 'south dakota': 'SD', - 'tenn': 'TN', - 'tennessee': 'TN', - 'territory of hawaii': 'HI', - 'tex': 'TX', - 'texas': 'TX', - 'tn': 'TN', - 'tx': 'TX', - 'us virgin islands': 'VI', - 'usvi': 'VI', - 'ut': 'UT', - 'utah': 'UT', - 'va': 'VA', - 'vermont': 'VT', - 'vi': 'VI', - 'viginia': 'VA', - 'virgin islands': 'VI', - 'virgina': 'VA', - 'virginia': 'VA', - 'vt': 'VT', - 'w va': 'WV', - 'wa': 'WA', - 'wash': 'WA', - 'washington': 'WA', - 'west virginia': 'WV', - 'wi': 'WI', - 'wis': 'WI', - 'wisc': 'WI', - 'wisconsin': 'WI', - 'wv': 'WV', - 'wva': 'WV', - 'wy': 'WY', - 'wyo': 'WY', - 'wyoming': 'WY', -} diff --git a/django/contrib/localflavor/uy/__init__.py b/django/contrib/localflavor/uy/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/uy/forms.py b/django/contrib/localflavor/uy/forms.py deleted file mode 100644 index 658defc0f0..0000000000 --- a/django/contrib/localflavor/uy/forms.py +++ /dev/null @@ -1,61 +0,0 @@ -# -*- coding: utf-8 -*- -""" -UY-specific form helpers. -""" - -from __future__ import absolute_import, unicode_literals - -from django.core.validators import EMPTY_VALUES -from django.forms.fields import Select, RegexField -from django.forms import ValidationError -from django.utils.translation import ugettext_lazy as _ -from django.contrib.localflavor.uy.util import get_validation_digit - - -class UYDepartamentSelect(Select): - """ - A Select widget that uses a list of Uruguayan departaments as its choices. - """ - def __init__(self, attrs=None): - from django.contrib.localflavor.uy.uy_departaments import DEPARTAMENT_CHOICES - super(UYDepartamentSelect, self).__init__(attrs, choices=DEPARTAMENT_CHOICES) - - -class UYCIField(RegexField): - """ - A field that validates Uruguayan 'Cedula de identidad' (CI) numbers. - """ - default_error_messages = { - 'invalid': _("Enter a valid CI number in X.XXX.XXX-X," - "XXXXXXX-X or XXXXXXXX format."), - 'invalid_validation_digit': _("Enter a valid CI number."), - } - - def __init__(self, *args, **kwargs): - super(UYCIField, self).__init__(r'(?P(\d{6,7}|(\d\.)?\d{3}\.\d{3}))-?(?P\d)', - *args, **kwargs) - - def clean(self, value): - """ - Validates format and validation digit. - - The official format is [X.]XXX.XXX-X but usually dots and/or slash are - omitted so, when validating, those characters are ignored if found in - the correct place. The three typically used formats are supported: - [X]XXXXXXX, [X]XXXXXX-X and [X.]XXX.XXX-X. - """ - - value = super(UYCIField, self).clean(value) - if value in EMPTY_VALUES: - return '' - match = self.regex.match(value) - if not match: - raise ValidationError(self.error_messages['invalid']) - - number = int(match.group('num').replace('.', '')) - validation_digit = int(match.group('val')) - - if not validation_digit == get_validation_digit(number): - raise ValidationError(self.error_messages['invalid_validation_digit']) - - return value diff --git a/django/contrib/localflavor/uy/util.py b/django/contrib/localflavor/uy/util.py deleted file mode 100644 index 0c1a8f84be..0000000000 --- a/django/contrib/localflavor/uy/util.py +++ /dev/null @@ -1,12 +0,0 @@ -# -*- coding: utf-8 -*- - -def get_validation_digit(number): - """ Calculates the validation digit for the given number. """ - sum = 0 - dvs = [4, 3, 6, 7, 8, 9, 2] - number = str(number) - - for i in range(0, len(number)): - sum = (int(number[-1 - i]) * dvs[i] + sum) % 10 - - return (10-sum) % 10 diff --git a/django/contrib/localflavor/uy/uy_departaments.py b/django/contrib/localflavor/uy/uy_departaments.py deleted file mode 100644 index 800937c582..0000000000 --- a/django/contrib/localflavor/uy/uy_departaments.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -"""A list of Urguayan departaments as `choices` in a formfield.""" -from __future__ import unicode_literals - -DEPARTAMENT_CHOICES = ( - ('G', 'Artigas'), - ('A', 'Canelones'), - ('E', 'Cerro Largo'), - ('L', 'Colonia'), - ('Q', 'Durazno'), - ('N', 'Flores'), - ('O', 'Florida'), - ('P', 'Lavalleja'), - ('B', 'Maldonado'), - ('S', 'Montevideo'), - ('I', 'Paysandú'), - ('J', 'Río Negro'), - ('F', 'Rivera'), - ('C', 'Rocha'), - ('H', 'Salto'), - ('M', 'San José'), - ('K', 'Soriano'), - ('R', 'Tacuarembó'), - ('D', 'Treinta y Tres'), -) diff --git a/django/contrib/localflavor/za/__init__.py b/django/contrib/localflavor/za/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/localflavor/za/forms.py b/django/contrib/localflavor/za/forms.py deleted file mode 100644 index a818c14428..0000000000 --- a/django/contrib/localflavor/za/forms.py +++ /dev/null @@ -1,61 +0,0 @@ -""" -South Africa-specific Form helpers -""" -from __future__ import unicode_literals - -from django.core.validators import EMPTY_VALUES -from django.forms import ValidationError -from django.forms.fields import CharField, RegexField -from django.utils.checksums import luhn -from django.utils.translation import gettext as _ -import re -from datetime import date - -id_re = re.compile(r'^(?P\d\d)(?P\d\d)(?P
    \d\d)(?P\d{4})(?P\d{3})') - -class ZAIDField(CharField): - """A form field for South African ID numbers -- the checksum is validated - using the Luhn checksum, and uses a simlistic (read: not entirely accurate) - check for the birthdate - """ - default_error_messages = { - 'invalid': _('Enter a valid South African ID number'), - } - - def clean(self, value): - super(ZAIDField, self).clean(value) - - if value in EMPTY_VALUES: - return '' - - # strip spaces and dashes - value = value.strip().replace(' ', '').replace('-', '') - - match = re.match(id_re, value) - - if not match: - raise ValidationError(self.error_messages['invalid']) - - g = match.groupdict() - - try: - # The year 2000 is conveniently a leapyear. - # This algorithm will break in xx00 years which aren't leap years - # There is no way to guess the century of a ZA ID number - d = date(int(g['yy']) + 2000, int(g['mm']), int(g['dd'])) - except ValueError: - raise ValidationError(self.error_messages['invalid']) - - if not luhn(value): - raise ValidationError(self.error_messages['invalid']) - - return value - -class ZAPostCodeField(RegexField): - default_error_messages = { - 'invalid': _('Enter a valid South African postal code'), - } - - def __init__(self, max_length=None, min_length=None, *args, **kwargs): - super(ZAPostCodeField, self).__init__(r'^\d{4}$', - max_length, min_length, *args, **kwargs) diff --git a/django/contrib/localflavor/za/za_provinces.py b/django/contrib/localflavor/za/za_provinces.py deleted file mode 100644 index 0bc6fe14b3..0000000000 --- a/django/contrib/localflavor/za/za_provinces.py +++ /dev/null @@ -1,13 +0,0 @@ -from django.utils.translation import gettext_lazy as _ - -PROVINCE_CHOICES = ( - ('EC', _('Eastern Cape')), - ('FS', _('Free State')), - ('GP', _('Gauteng')), - ('KN', _('KwaZulu-Natal')), - ('LP', _('Limpopo')), - ('MP', _('Mpumalanga')), - ('NC', _('Northern Cape')), - ('NW', _('North West')), - ('WC', _('Western Cape')), -) diff --git a/django/utils/checksums.py b/django/utils/checksums.py index 6bbdccc58c..8617e22609 100644 --- a/django/utils/checksums.py +++ b/django/utils/checksums.py @@ -1,5 +1,5 @@ """ -Common checksum routines (used in multiple localflavor/ cases, for example). +Common checksum routines. """ __all__ = ['luhn',] diff --git a/docs/howto/custom-model-fields.txt b/docs/howto/custom-model-fields.txt index dd57da5d45..e3dae840fc 100644 --- a/docs/howto/custom-model-fields.txt +++ b/docs/howto/custom-model-fields.txt @@ -606,8 +606,7 @@ All of the ``kwargs`` dictionary is passed directly to the form field's for the ``form_class`` argument and then delegate further handling to the parent class. This might require you to write a custom form field (and even a form widget). See the :doc:`forms documentation ` for -information about this, and take a look at the code in -:mod:`django.contrib.localflavor` for some examples of custom widgets. +information about this. Continuing our ongoing example, we can write the :meth:`.formfield` method as:: diff --git a/docs/index.txt b/docs/index.txt index 3d1765f399..d047abafd4 100644 --- a/docs/index.txt +++ b/docs/index.txt @@ -222,7 +222,7 @@ assist you in the development of applications for multiple languages and world regions: * :doc:`Internationalization ` -* :doc:`"Local flavor" ` +* :doc:`"Local flavor" ` Python compatibility ==================== diff --git a/docs/misc/api-stability.txt b/docs/misc/api-stability.txt index 70e6006575..8ae3c716df 100644 --- a/docs/misc/api-stability.txt +++ b/docs/misc/api-stability.txt @@ -149,56 +149,3 @@ Certain APIs are explicitly marked as "internal" in a couple of ways: - Functions, methods, and other objects prefixed by a leading underscore (``_``). This is the standard Python way of indicating that something is private; if any method starts with a single ``_``, it's an internal API. - -.. _misc-api-stability-localflavor: - -Local flavors -------------- - -:mod:`django.contrib.localflavor` contains assorted pieces of code -that are useful for particular countries or cultures. This data is -local in nature, and is subject to change on timelines that will -almost never correlate with Django's own release schedules. For -example, a common change is to split a province into two new -provinces, or to rename an existing province. - -These changes present two competing compatibility issues. Moving -forward, displaying the names of deprecated, renamed and dissolved -provinces in a selection widget is bad from a user interface -perspective. However, maintaining full backwards compatibility -requires that we support historical values that may be stored in a -database -- including values that may no longer be valid. - -Therefore, Django has the following policy with respect to changes in -local flavor: - -* At the time of a Django release, the data and algorithms - contained in :mod:`django.contrib.localflavor` will, to the best - of our ability, reflect the officially gazetted policies of the - appropriate local government authority. If a province has been - added, altered, or removed, that change will be reflected in - Django's localflavor. - -* These changes will *not* be backported to the previous stable - release. Upgrading a minor version of Django should not require - any data migration or audits for UI changes; therefore, if you - want to get the latest province list, you will either need to - upgrade your Django install, or backport the province list you - need. - -* For one release, the affected localflavor module will raise a - ``RuntimeWarning`` when it is imported. - -* The change will be announced in the release notes as a backwards - incompatible change requiring attention. The change will also be - annotated in the documentation for the localflavor module. - -* Where necessary and feasible, a migration script will be provided - to aid the migration process. - -For example, Django 1.2 contains an Indonesian localflavor. It has a -province list that includes "Nanggroe Aceh Darussalam (NAD)" as a -province. The Indonesian government has changed the official name of -the province to "Aceh (ACE)". As a result, Django 1.3 does *not* -contain "Nanggroe Aceh Darussalam (NAD)" in the province list, but -*does* contain "Aceh (ACE)". diff --git a/docs/ref/contrib/gis/model-api.txt b/docs/ref/contrib/gis/model-api.txt index 8c5274e6d3..81b619e338 100644 --- a/docs/ref/contrib/gis/model-api.txt +++ b/docs/ref/contrib/gis/model-api.txt @@ -195,7 +195,7 @@ details. Geography Type ^^^^^^^^^^^^^^ -In PostGIS 1.5, the geography type was introduced -- it provides +In PostGIS 1.5, the geography type was introduced -- it provides native support for spatial features represented with geographic coordinates (e.g., WGS84 longitude/latitude). [#fngeography]_ Unlike the plane used by a geometry type, the geography type uses a spherical @@ -236,13 +236,12 @@ if we had an ``Address`` model with a ``ForeignKey`` to our ``Zipcode`` model:: from django.contrib.gis.db import models - from django.contrib.localflavor.us.models import USStateField class Address(models.Model): num = models.IntegerField() street = models.CharField(max_length=100) city = models.CharField(max_length=100) - state = USStateField() + state = models.CharField(max_length=2) zipcode = models.ForeignKey(Zipcode) objects = models.GeoManager() diff --git a/docs/ref/contrib/index.txt b/docs/ref/contrib/index.txt index d014cf36a3..d042fd96ca 100644 --- a/docs/ref/contrib/index.txt +++ b/docs/ref/contrib/index.txt @@ -31,7 +31,6 @@ those packages have. formtools/index gis/index humanize - localflavor markup messages redirects @@ -122,15 +121,6 @@ A set of Django template filters useful for adding a "human touch" to data. See the :doc:`humanize documentation `. -localflavor -=========== - -A collection of various Django snippets that are useful only for a particular -country or culture. For example, ``django.contrib.localflavor.us.forms`` -contains a ``USZipCodeField`` that you can use to validate U.S. zip codes. - -See the :doc:`localflavor documentation `. - markup ====== diff --git a/docs/ref/contrib/localflavor.txt b/docs/ref/contrib/localflavor.txt deleted file mode 100644 index 7c2e56451d..0000000000 --- a/docs/ref/contrib/localflavor.txt +++ /dev/null @@ -1,151 +0,0 @@ -========================== -The "local flavor" add-ons -========================== - -.. module:: django.contrib.localflavor - :synopsis: A collection of various Django snippets that are useful only for - a particular country or culture. - -Historically, Django has shipped with ``django.contrib.localflavor`` -- -assorted pieces of code that are useful for particular countries or cultures. -Starting with Django 1.5, we've started the process of moving the code to -outside packages (i.e., packages distributed separately from Django), for -easier maintenance and to trim the size of Django's codebase. - -The localflavor packages are named ``django-localflavor-*``, where the asterisk -is an `ISO 3166 country code`_. For example: ``django-localflavor-us`` is the -localflavor package for the U.S.A. - -Most of these ``localflavor`` add-ons are country-specific fields for the -:doc:`forms ` framework -- for example, a -``USStateField`` that knows how to validate U.S. state abbreviations and a -``FISocialSecurityNumber`` that knows how to validate Finnish social security -numbers. - -To use one of these localized components, just import the relevant subpackage. -For example, here's how you can create a form with a field representing a -French telephone number:: - - from django import forms - from django_localflavor_fr.forms import FRPhoneNumberField - - class MyForm(forms.Form): - my_french_phone_no = FRPhoneNumberField() - -For documentation on a given country's localflavor helpers, see its README -file. - -.. _ISO 3166 country code: http://www.iso.org/iso/country_codes.htm - -.. _localflavor-how-to-migrate: - -How to migrate -============== - -If you've used the old ``django.contrib.localflavor`` package, follow these two -easy steps to update your code: - -1. Install the appropriate third-party ``django-localflavor-*`` package(s). - Go to https://github.com/django/ and find the package for your country. - -2. Change your app's import statements to reference the new packages. - - For example, change this:: - - from django.contrib.localflavor.fr.forms import FRPhoneNumberField - - ...to this:: - - from django_localflavor_fr.forms import FRPhoneNumberField - -The code in the new packages is the same (it was copied directly from Django), -so you don't have to worry about backwards compatibility in terms of -functionality. Only the imports have changed. - -.. _localflavor-deprecation-policy: - -Deprecation policy -================== - -In Django 1.5, importing from ``django.contrib.localflavor`` will result in a -``DeprecationWarning``. This means your code will still work, but you should -change it as soon as possible. - -In Django 1.6, importing from ``django.contrib.localflavor`` will no longer -work. - -.. _localflavor-packages: - -Supported countries -=================== - -The following countries have django-localflavor- packages. - -* Argentina: https://github.com/django/django-localflavor-ar -* Australia: https://github.com/django/django-localflavor-au -* Austria: https://github.com/django/django-localflavor-at -* Belgium: https://github.com/django/django-localflavor-be -* Brazil: https://github.com/django/django-localflavor-br -* Canada: https://github.com/django/django-localflavor-ca -* Chile: https://github.com/django/django-localflavor-cl -* China: https://github.com/django/django-localflavor-cn -* Colombia: https://github.com/django/django-localflavor-co -* Croatia: https://github.com/django/django-localflavor-cr -* Czech Republic: https://github.com/django/django-localflavor-cz -* Ecuador: https://github.com/django/django-localflavor-ec -* Finland: https://github.com/django/django-localflavor-fi -* France: https://github.com/django/django-localflavor-fr -* Germany: https://github.com/django/django-localflavor-de -* Hong Kong: https://github.com/django/django-localflavor-hk -* Iceland: https://github.com/django/django-localflavor-is -* India: https://github.com/django/django-localflavor-in -* Indonesia: https://github.com/django/django-localflavor-id -* Ireland: https://github.com/django/django-localflavor-ie -* Israel: https://github.com/django/django-localflavor-il -* Italy: https://github.com/django/django-localflavor-it -* Japan: https://github.com/django/django-localflavor-jp -* Kuwait: https://github.com/django/django-localflavor-kw -* Lithuania: https://github.com/simukis/django-localflavor-lt -* Macedonia: https://github.com/django/django-localflavor-mk -* Mexico: https://github.com/django/django-localflavor-mx -* The Netherlands: https://github.com/django/django-localflavor-nl -* Norway: https://github.com/django/django-localflavor-no -* Peru: https://github.com/django/django-localflavor-pe -* Poland: https://github.com/django/django-localflavor-pl -* Portugal: https://github.com/django/django-localflavor-pt -* Paraguay: https://github.com/django/django-localflavor-py -* Romania: https://github.com/django/django-localflavor-ro -* Russia: https://github.com/django/django-localflavor-ru -* Slovakia: https://github.com/django/django-localflavor-sk -* Slovenia: https://github.com/django/django-localflavor-si -* South Africa: https://github.com/django/django-localflavor-za -* Spain: https://github.com/django/django-localflavor-es -* Sweden: https://github.com/django/django-localflavor-se -* Switzerland: https://github.com/django/django-localflavor-ch -* Turkey: https://github.com/django/django-localflavor-tr -* United Kingdom: https://github.com/django/django-localflavor-gb -* United States of America: https://github.com/django/django-localflavor-us -* Uruguay: https://github.com/django/django-localflavor-uy - -django.contrib.localflavor.generic -================================== - -The ``django.contrib.localflavor.generic`` package, which hasn't been removed from -Django yet, contains useful code that is not specific to one particular country -or culture. Currently, it defines date, datetime and split datetime input -fields based on those from :doc:`forms `, but with non-US -default formats. Here's an example of how to use them:: - - from django import forms - from django.contrib.localflavor import generic - - class MyForm(forms.Form): - my_date_field = generic.forms.DateField() - -Internationalization of localflavors -==================================== - -To activate translations for a ``localflavor`` application, you must include -the application's name (e.g. ``django_localflavor_jp``) in the -:setting:`INSTALLED_APPS` setting, so the internationalization system can find -the catalog, as explained in :ref:`how-django-discovers-translations`. diff --git a/docs/ref/models/fields.txt b/docs/ref/models/fields.txt index 45a70c66e3..68abb4f4d2 100644 --- a/docs/ref/models/fields.txt +++ b/docs/ref/models/fields.txt @@ -12,8 +12,8 @@ This document contains all the gory details about all the `field options`_ and .. seealso:: - If the built-in fields don't do the trick, you can try - :mod:`django.contrib.localflavor`, which contains assorted pieces of code + If the built-in fields don't do the trick, you can try :doc:`localflavor + `, which contains assorted pieces of code that are useful for particular countries or cultures. Also, you can easily :doc:`write your own custom model fields `. diff --git a/docs/topics/db/models.txt b/docs/topics/db/models.txt index c4db0d77a7..dd7714052d 100644 --- a/docs/topics/db/models.txt +++ b/docs/topics/db/models.txt @@ -660,15 +660,13 @@ model. For example, this model has a few custom methods:: - from django.contrib.localflavor.us.models import USStateField - class Person(models.Model): first_name = models.CharField(max_length=50) last_name = models.CharField(max_length=50) birth_date = models.DateField() address = models.CharField(max_length=100) city = models.CharField(max_length=50) - state = USStateField() # Yes, this is America-centric... + state = models.CharField(max_length=2) # yes, this is America-centric def baby_boomer_status(self): "Returns the person's baby-boomer status." diff --git a/docs/topics/index.txt b/docs/topics/index.txt index a69318f05c..f8f60b2953 100644 --- a/docs/topics/index.txt +++ b/docs/topics/index.txt @@ -20,6 +20,7 @@ Introductions to all the key parts of Django you'll need to know: signing email i18n/index + localflavor logging pagination python3 diff --git a/docs/topics/localflavor.txt b/docs/topics/localflavor.txt new file mode 100644 index 0000000000..6c68481108 --- /dev/null +++ b/docs/topics/localflavor.txt @@ -0,0 +1,131 @@ +========================== +The "local flavor" add-ons +========================== + +Historically, Django has shipped with ``django.contrib.localflavor`` -- +assorted pieces of code that are useful for particular countries or cultures. +This code is now distributed separately from Django, for easier maintenance +and to trim the size of Django's codebase. + +The localflavor packages are named ``django-localflavor-*``, where the asterisk +is an `ISO 3166 country code`_. For example: ``django-localflavor-us`` is the +localflavor package for the U.S.A. + +Most of these ``localflavor`` add-ons are country-specific fields for the +:doc:`forms ` framework -- for example, a +``USStateField`` that knows how to validate U.S. state abbreviations and a +``FISocialSecurityNumber`` that knows how to validate Finnish social security +numbers. + +To use one of these localized components, just import the relevant subpackage. +For example, here's how you can create a form with a field representing a +French telephone number:: + + from django import forms + from django_localflavor_fr.forms import FRPhoneNumberField + + class MyForm(forms.Form): + my_french_phone_no = FRPhoneNumberField() + +For documentation on a given country's localflavor helpers, see its README +file. + +.. _ISO 3166 country code: http://www.iso.org/iso/country_codes.htm + +.. _localflavor-packages: + +Supported countries +=================== + +The following countries have django-localflavor- packages. + +* Argentina: https://github.com/django/django-localflavor-ar +* Australia: https://github.com/django/django-localflavor-au +* Austria: https://github.com/django/django-localflavor-at +* Belgium: https://github.com/django/django-localflavor-be +* Brazil: https://github.com/django/django-localflavor-br +* Canada: https://github.com/django/django-localflavor-ca +* Chile: https://github.com/django/django-localflavor-cl +* China: https://github.com/django/django-localflavor-cn +* Colombia: https://github.com/django/django-localflavor-co +* Croatia: https://github.com/django/django-localflavor-cr +* Czech Republic: https://github.com/django/django-localflavor-cz +* Ecuador: https://github.com/django/django-localflavor-ec +* Finland: https://github.com/django/django-localflavor-fi +* France: https://github.com/django/django-localflavor-fr +* Germany: https://github.com/django/django-localflavor-de +* Hong Kong: https://github.com/django/django-localflavor-hk +* Iceland: https://github.com/django/django-localflavor-is +* India: https://github.com/django/django-localflavor-in +* Indonesia: https://github.com/django/django-localflavor-id +* Ireland: https://github.com/django/django-localflavor-ie +* Israel: https://github.com/django/django-localflavor-il +* Italy: https://github.com/django/django-localflavor-it +* Japan: https://github.com/django/django-localflavor-jp +* Kuwait: https://github.com/django/django-localflavor-kw +* Lithuania: https://github.com/simukis/django-localflavor-lt +* Macedonia: https://github.com/django/django-localflavor-mk +* Mexico: https://github.com/django/django-localflavor-mx +* The Netherlands: https://github.com/django/django-localflavor-nl +* Norway: https://github.com/django/django-localflavor-no +* Peru: https://github.com/django/django-localflavor-pe +* Poland: https://github.com/django/django-localflavor-pl +* Portugal: https://github.com/django/django-localflavor-pt +* Paraguay: https://github.com/django/django-localflavor-py +* Romania: https://github.com/django/django-localflavor-ro +* Russia: https://github.com/django/django-localflavor-ru +* Slovakia: https://github.com/django/django-localflavor-sk +* Slovenia: https://github.com/django/django-localflavor-si +* South Africa: https://github.com/django/django-localflavor-za +* Spain: https://github.com/django/django-localflavor-es +* Sweden: https://github.com/django/django-localflavor-se +* Switzerland: https://github.com/django/django-localflavor-ch +* Turkey: https://github.com/django/django-localflavor-tr +* United Kingdom: https://github.com/django/django-localflavor-gb +* United States of America: https://github.com/django/django-localflavor-us +* Uruguay: https://github.com/django/django-localflavor-uy + +Internationalization of localflavors +==================================== + +To activate translations for a ``localflavor`` application, you must include +the application's name (e.g. ``django_localflavor_jp``) in the +:setting:`INSTALLED_APPS` setting, so the internationalization system can find +the catalog, as explained in :ref:`how-django-discovers-translations`. + +.. _localflavor-how-to-migrate: + +How to migrate +============== + +If you've used the old ``django.contrib.localflavor`` package, follow these two +easy steps to update your code: + +1. Install the appropriate third-party ``django-localflavor-*`` package(s). + Go to https://github.com/django/ and find the package for your country. + +2. Change your app's import statements to reference the new packages. + + For example, change this:: + + from django.contrib.localflavor.fr.forms import FRPhoneNumberField + + ...to this:: + + from django_localflavor_fr.forms import FRPhoneNumberField + +The code in the new packages is the same (it was copied directly from Django), +so you don't have to worry about backwards compatibility in terms of +functionality. Only the imports have changed. + +.. _localflavor-deprecation-policy: + +Deprecation policy +================== + +In Django 1.5, importing from ``django.contrib.localflavor`` will result in a +``DeprecationWarning``. This means your code will still work, but you should +change it as soon as possible. + +In Django 1.6, importing from ``django.contrib.localflavor`` will no longer +work. diff --git a/tests/regressiontests/localflavor/__init__.py b/tests/regressiontests/localflavor/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/regressiontests/localflavor/generic/__init__.py b/tests/regressiontests/localflavor/generic/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/regressiontests/localflavor/generic/tests.py b/tests/regressiontests/localflavor/generic/tests.py deleted file mode 100644 index 4db26838fa..0000000000 --- a/tests/regressiontests/localflavor/generic/tests.py +++ /dev/null @@ -1,90 +0,0 @@ -from __future__ import unicode_literals - -import datetime - -from django.contrib.localflavor.generic.forms import DateField, DateTimeField - -from django.test import SimpleTestCase - - -class GenericLocalFlavorTests(SimpleTestCase): - def test_GenericDateField(self): - error_invalid = ['Enter a valid date.'] - valid = { - datetime.date(2006, 10, 25): datetime.date(2006, 10, 25), - datetime.datetime(2006, 10, 25, 14, 30): datetime.date(2006, 10, 25), - datetime.datetime(2006, 10, 25, 14, 30, 59): datetime.date(2006, 10, 25), - datetime.datetime(2006, 10, 25, 14, 30, 59, 200): datetime.date(2006, 10, 25), - '2006-10-25': datetime.date(2006, 10, 25), - '25/10/2006': datetime.date(2006, 10, 25), - '25/10/06': datetime.date(2006, 10, 25), - 'Oct 25 2006': datetime.date(2006, 10, 25), - 'October 25 2006': datetime.date(2006, 10, 25), - 'October 25, 2006': datetime.date(2006, 10, 25), - '25 October 2006': datetime.date(2006, 10, 25), - '25 October, 2006': datetime.date(2006, 10, 25), - } - invalid = { - '2006-4-31': error_invalid, - '200a-10-25': error_invalid, - '10/25/06': error_invalid, - } - self.assertFieldOutput(DateField, valid, invalid, empty_value=None) - - # DateField with optional input_formats parameter - valid = { - datetime.date(2006, 10, 25): datetime.date(2006, 10, 25), - datetime.datetime(2006, 10, 25, 14, 30): datetime.date(2006, 10, 25), - '2006 10 25': datetime.date(2006, 10, 25), - } - invalid = { - '2006-10-25': error_invalid, - '25/10/2006': error_invalid, - '25/10/06': error_invalid, - } - kwargs = {'input_formats':['%Y %m %d'],} - self.assertFieldOutput(DateField, - valid, invalid, field_kwargs=kwargs, empty_value=None - ) - - def test_GenericDateTimeField(self): - error_invalid = ['Enter a valid date/time.'] - valid = { - datetime.date(2006, 10, 25): datetime.datetime(2006, 10, 25, 0, 0), - datetime.datetime(2006, 10, 25, 14, 30): datetime.datetime(2006, 10, 25, 14, 30), - datetime.datetime(2006, 10, 25, 14, 30, 59): datetime.datetime(2006, 10, 25, 14, 30, 59), - datetime.datetime(2006, 10, 25, 14, 30, 59, 200): datetime.datetime(2006, 10, 25, 14, 30, 59, 200), - '2006-10-25 14:30:45': datetime.datetime(2006, 10, 25, 14, 30, 45), - '2006-10-25 14:30:00': datetime.datetime(2006, 10, 25, 14, 30), - '2006-10-25 14:30': datetime.datetime(2006, 10, 25, 14, 30), - '2006-10-25': datetime.datetime(2006, 10, 25, 0, 0), - '25/10/2006 14:30:45': datetime.datetime(2006, 10, 25, 14, 30, 45), - '25/10/2006 14:30:00': datetime.datetime(2006, 10, 25, 14, 30), - '25/10/2006 14:30': datetime.datetime(2006, 10, 25, 14, 30), - '25/10/2006': datetime.datetime(2006, 10, 25, 0, 0), - '25/10/06 14:30:45': datetime.datetime(2006, 10, 25, 14, 30, 45), - '25/10/06 14:30:00': datetime.datetime(2006, 10, 25, 14, 30), - '25/10/06 14:30': datetime.datetime(2006, 10, 25, 14, 30), - '25/10/06': datetime.datetime(2006, 10, 25, 0, 0), - } - invalid = { - 'hello': error_invalid, - '2006-10-25 4:30 p.m.': error_invalid, - } - self.assertFieldOutput(DateTimeField, valid, invalid, empty_value=None) - - # DateTimeField with optional input_formats paramter - valid = { - datetime.date(2006, 10, 25): datetime.datetime(2006, 10, 25, 0, 0), - datetime.datetime(2006, 10, 25, 14, 30): datetime.datetime(2006, 10, 25, 14, 30), - datetime.datetime(2006, 10, 25, 14, 30, 59): datetime.datetime(2006, 10, 25, 14, 30, 59), - datetime.datetime(2006, 10, 25, 14, 30, 59, 200): datetime.datetime(2006, 10, 25, 14, 30, 59, 200), - '2006 10 25 2:30 PM': datetime.datetime(2006, 10, 25, 14, 30), - } - invalid = { - '2006-10-25 14:30:45': error_invalid, - } - kwargs = {'input_formats':['%Y %m %d %I:%M %p'],} - self.assertFieldOutput(DateTimeField, - valid, invalid, field_kwargs=kwargs, empty_value=None - ) diff --git a/tests/regressiontests/localflavor/models.py b/tests/regressiontests/localflavor/models.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/regressiontests/localflavor/tests.py b/tests/regressiontests/localflavor/tests.py deleted file mode 100644 index 52b771c405..0000000000 --- a/tests/regressiontests/localflavor/tests.py +++ /dev/null @@ -1,3 +0,0 @@ -from __future__ import absolute_import - -from .generic.tests import GenericLocalFlavorTests -- cgit v1.3 From ebd25985962bd1466257385abcf7e8fc0df9ca0f Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Mon, 24 Dec 2012 23:14:06 +0100 Subject: Removed django.contrib.markup. --- django/contrib/markup/__init__.py | 0 django/contrib/markup/models.py | 0 django/contrib/markup/templatetags/__init__.py | 0 django/contrib/markup/templatetags/markup.py | 90 ----------------- django/contrib/markup/tests.py | 108 --------------------- .../contributing/writing-code/unit-tests.txt | 10 +- docs/ref/contrib/index.txt | 8 -- docs/ref/contrib/markup.txt | 77 --------------- docs/ref/settings.txt | 14 --- docs/ref/templates/builtins.txt | 10 -- docs/topics/security.txt | 7 -- 11 files changed, 2 insertions(+), 322 deletions(-) delete mode 100644 django/contrib/markup/__init__.py delete mode 100644 django/contrib/markup/models.py delete mode 100644 django/contrib/markup/templatetags/__init__.py delete mode 100644 django/contrib/markup/templatetags/markup.py delete mode 100644 django/contrib/markup/tests.py delete mode 100644 docs/ref/contrib/markup.txt (limited to 'docs') diff --git a/django/contrib/markup/__init__.py b/django/contrib/markup/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/markup/models.py b/django/contrib/markup/models.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/markup/templatetags/__init__.py b/django/contrib/markup/templatetags/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/contrib/markup/templatetags/markup.py b/django/contrib/markup/templatetags/markup.py deleted file mode 100644 index 389c919c07..0000000000 --- a/django/contrib/markup/templatetags/markup.py +++ /dev/null @@ -1,90 +0,0 @@ -""" -Set of "markup" template filters for Django. These filters transform plain text -markup syntaxes to HTML; currently there is support for: - - * Textile, which requires the PyTextile library available at - http://loopcore.com/python-textile/ - - * Markdown, which requires the Python-markdown library from - http://www.freewisdom.org/projects/python-markdown - - * reStructuredText, which requires docutils from http://docutils.sf.net/ -""" - -from django import template -from django.conf import settings -from django.utils.encoding import force_bytes, force_text -from django.utils.safestring import mark_safe - -register = template.Library() - -@register.filter(is_safe=True) -def textile(value): - try: - import textile - except ImportError: - if settings.DEBUG: - raise template.TemplateSyntaxError("Error in 'textile' filter: The Python textile library isn't installed.") - return force_text(value) - else: - return mark_safe(force_text(textile.textile(force_bytes(value), encoding='utf-8', output='utf-8'))) - -@register.filter(is_safe=True) -def markdown(value, arg=''): - """ - Runs Markdown over a given value, optionally using various - extensions python-markdown supports. - - Syntax:: - - {{ value|markdown:"extension1_name,extension2_name..." }} - - To enable safe mode, which strips raw HTML and only returns HTML - generated by actual Markdown syntax, pass "safe" as the first - extension in the list. - - If the version of Markdown in use does not support extensions, - they will be silently ignored. - - """ - import warnings - warnings.warn('The markdown filter has been deprecated', - category=DeprecationWarning) - try: - import markdown - except ImportError: - if settings.DEBUG: - raise template.TemplateSyntaxError("Error in 'markdown' filter: The Python markdown library isn't installed.") - return force_text(value) - else: - markdown_vers = getattr(markdown, "version_info", 0) - if markdown_vers < (2, 1): - if settings.DEBUG: - raise template.TemplateSyntaxError( - "Error in 'markdown' filter: Django does not support versions of the Python markdown library < 2.1.") - return force_text(value) - else: - extensions = [e for e in arg.split(",") if e] - if extensions and extensions[0] == "safe": - extensions = extensions[1:] - return mark_safe(markdown.markdown( - force_text(value), extensions, safe_mode=True, enable_attributes=False)) - else: - return mark_safe(markdown.markdown( - force_text(value), extensions, safe_mode=False)) - -@register.filter(is_safe=True) -def restructuredtext(value): - import warnings - warnings.warn('The restructuredtext filter has been deprecated', - category=DeprecationWarning) - try: - from docutils.core import publish_parts - except ImportError: - if settings.DEBUG: - raise template.TemplateSyntaxError("Error in 'restructuredtext' filter: The Python docutils library isn't installed.") - return force_text(value) - else: - docutils_settings = getattr(settings, "RESTRUCTUREDTEXT_FILTER_SETTINGS", {}) - parts = publish_parts(source=force_bytes(value), writer_name="html4css1", settings_overrides=docutils_settings) - return mark_safe(force_text(parts["fragment"])) diff --git a/django/contrib/markup/tests.py b/django/contrib/markup/tests.py deleted file mode 100644 index 19a3b7e9d0..0000000000 --- a/django/contrib/markup/tests.py +++ /dev/null @@ -1,108 +0,0 @@ -# Quick tests for the markup templatetags (django.contrib.markup) -import re -import warnings - -from django.template import Template, Context -from django import test -from django.utils import unittest -from django.utils.html import escape - -try: - import textile -except ImportError: - textile = None - -try: - import markdown - markdown_version = getattr(markdown, "version_info", 0) -except ImportError: - markdown = None - -try: - import docutils -except ImportError: - docutils = None - -class Templates(test.TestCase): - - textile_content = """Paragraph 1 - -Paragraph 2 with "quotes" and @code@""" - - markdown_content = """Paragraph 1 - -## An h2""" - - rest_content = """Paragraph 1 - -Paragraph 2 with a link_ - -.. _link: http://www.example.com/""" - - def setUp(self): - self.save_warnings_state() - warnings.filterwarnings('ignore', category=DeprecationWarning, module='django.contrib.markup') - - def tearDown(self): - self.restore_warnings_state() - - @unittest.skipUnless(textile, 'textile not installed') - def test_textile(self): - t = Template("{% load markup %}{{ textile_content|textile }}") - rendered = t.render(Context({'textile_content':self.textile_content})).strip() - self.assertEqual(rendered.replace('\t', ''), """

    Paragraph 1

    - -

    Paragraph 2 with “quotes” and code

    """) - - @unittest.skipIf(textile, 'textile is installed') - def test_no_textile(self): - t = Template("{% load markup %}{{ textile_content|textile }}") - rendered = t.render(Context({'textile_content':self.textile_content})).strip() - self.assertEqual(rendered, escape(self.textile_content)) - - @unittest.skipUnless(markdown and markdown_version >= (2,1), 'markdown >= 2.1 not installed') - def test_markdown(self): - t = Template("{% load markup %}{{ markdown_content|markdown }}") - rendered = t.render(Context({'markdown_content':self.markdown_content})).strip() - pattern = re.compile("""

    Paragraph 1\s*

    \s*

    \s*An h2

    """) - self.assertTrue(pattern.match(rendered)) - - @unittest.skipUnless(markdown and markdown_version >= (2,1), 'markdown >= 2.1 not installed') - def test_markdown_attribute_disable(self): - t = Template("{% load markup %}{{ markdown_content|markdown:'safe' }}") - markdown_content = "{@onclick=alert('hi')}some paragraph" - rendered = t.render(Context({'markdown_content':markdown_content})).strip() - self.assertTrue('@' in rendered) - - @unittest.skipUnless(markdown and markdown_version >= (2,1), 'markdown >= 2.1 not installed') - def test_markdown_attribute_enable(self): - t = Template("{% load markup %}{{ markdown_content|markdown }}") - markdown_content = "{@onclick=alert('hi')}some paragraph" - rendered = t.render(Context({'markdown_content':markdown_content})).strip() - self.assertFalse('@' in rendered) - - @unittest.skipIf(markdown, 'markdown is installed') - def test_no_markdown(self): - t = Template("{% load markup %}{{ markdown_content|markdown }}") - rendered = t.render(Context({'markdown_content':self.markdown_content})).strip() - self.assertEqual(rendered, self.markdown_content) - - @unittest.skipUnless(docutils, 'docutils not installed') - def test_docutils(self): - t = Template("{% load markup %}{{ rest_content|restructuredtext }}") - rendered = t.render(Context({'rest_content':self.rest_content})).strip() - # Different versions of docutils return slightly different HTML - try: - # Docutils v0.4 and earlier - self.assertEqual(rendered, """

    Paragraph 1

    -

    Paragraph 2 with a link

    """) - except AssertionError: - # Docutils from SVN (which will become 0.5) - self.assertEqual(rendered, """

    Paragraph 1

    -

    Paragraph 2 with a link

    """) - - @unittest.skipIf(docutils, 'docutils is installed') - def test_no_docutils(self): - t = Template("{% load markup %}{{ rest_content|restructuredtext }}") - rendered = t.render(Context({'rest_content':self.rest_content})).strip() - self.assertEqual(rendered, self.rest_content) diff --git a/docs/internals/contributing/writing-code/unit-tests.txt b/docs/internals/contributing/writing-code/unit-tests.txt index afef554a8c..a03951d141 100644 --- a/docs/internals/contributing/writing-code/unit-tests.txt +++ b/docs/internals/contributing/writing-code/unit-tests.txt @@ -145,9 +145,6 @@ If you want to run the full suite of tests, you'll need to install a number of dependencies: * PyYAML_ -* Markdown_ -* Textile_ -* Docutils_ * setuptools_ * memcached_, plus a :ref:`supported Python binding ` * gettext_ (:ref:`gettext_on_windows`) @@ -160,9 +157,6 @@ Each of these dependencies is optional. If you're missing any of them, the associated tests will be skipped. .. _PyYAML: http://pyyaml.org/wiki/PyYAML -.. _Markdown: http://pypi.python.org/pypi/Markdown/1.7 -.. _Textile: http://pypi.python.org/pypi/textile -.. _docutils: http://pypi.python.org/pypi/docutils/0.4 .. _setuptools: http://pypi.python.org/pypi/setuptools/ .. _memcached: http://memcached.org/ .. _gettext: http://www.gnu.org/software/gettext/manual/gettext.html @@ -200,7 +194,7 @@ multiple modules by using a ``tests`` directory in the normal Python way. For the tests to be found, a ``models.py`` file must exist, even if it's empty. If you have URLs that need to be mapped, put them in ``tests/urls.py``. -To run tests for just one contrib app (e.g. ``markup``), use the same +To run tests for just one contrib app (e.g. ``auth``), use the same method as above:: - ./runtests.py --settings=settings markup + ./runtests.py --settings=settings auth diff --git a/docs/ref/contrib/index.txt b/docs/ref/contrib/index.txt index d042fd96ca..e5cea01ead 100644 --- a/docs/ref/contrib/index.txt +++ b/docs/ref/contrib/index.txt @@ -31,7 +31,6 @@ those packages have. formtools/index gis/index humanize - markup messages redirects sitemaps @@ -121,13 +120,6 @@ A set of Django template filters useful for adding a "human touch" to data. See the :doc:`humanize documentation `. -markup -====== - -A collection of template filters that implement common markup languages - -See the :doc:`markup documentation `. - messages ======== diff --git a/docs/ref/contrib/markup.txt b/docs/ref/contrib/markup.txt deleted file mode 100644 index 9215c64f93..0000000000 --- a/docs/ref/contrib/markup.txt +++ /dev/null @@ -1,77 +0,0 @@ -===================== -django.contrib.markup -===================== - -.. module:: django.contrib.markup - :synopsis: A collection of template filters that implement common markup languages. - -.. deprecated:: 1.5 - This module has been deprecated. - -Django provides template filters that implement the following markup -languages: - -* ``textile`` -- implements `Textile`_ -- requires `PyTextile`_ -* ``markdown`` -- implements `Markdown`_ -- requires `Python-markdown`_ (>=2.1) -* ``restructuredtext`` -- implements `reST (reStructured Text)`_ - -- requires `doc-utils`_ - -In each case, the filter expects formatted markup as a string and -returns a string representing the marked-up text. For example, the -``textile`` filter converts text that is marked-up in Textile format -to HTML. - -To activate these filters, add ``'django.contrib.markup'`` to your -:setting:`INSTALLED_APPS` setting. Once you've done that, use -``{% load markup %}`` in a template, and you'll have access to these filters. -For more documentation, read the source code in -:file:`django/contrib/markup/templatetags/markup.py`. - -.. warning:: - - The output of markup filters is marked "safe" and will not be escaped when - rendered in a template. Always be careful to sanitize your inputs and make - sure you are not leaving yourself vulnerable to cross-site scripting or - other types of attacks. - -.. _Textile: http://en.wikipedia.org/wiki/Textile_%28markup_language%29 -.. _Markdown: http://en.wikipedia.org/wiki/Markdown -.. _reST (reStructured Text): http://en.wikipedia.org/wiki/ReStructuredText -.. _PyTextile: http://loopcore.com/python-textile/ -.. _Python-markdown: http://pypi.python.org/pypi/Markdown -.. _doc-utils: http://docutils.sf.net/ - -reStructured Text ------------------ - -When using the ``restructuredtext`` markup filter you can define a -:setting:`RESTRUCTUREDTEXT_FILTER_SETTINGS` in your django settings to -override the default writer settings. See the `restructuredtext writer -settings`_ for details on what these settings are. - -.. warning:: - - reStructured Text has features that allow raw HTML to be included, and that - allow arbitrary files to be included. These can lead to XSS vulnerabilities - and leaking of private information. It is your responsibility to check the - features of this library and configure appropriately to avoid this. See the - `Deploying Docutils Securely - `_ documentation. - -.. _restructuredtext writer settings: http://docutils.sourceforge.net/docs/user/config.html#html4css1-writer - -Markdown --------- - -The Python Markdown library supports options named "safe_mode" and -"enable_attributes". Both relate to the security of the output. To enable both -options in tandem, the markdown filter supports the "safe" argument:: - - {{ markdown_content_var|markdown:"safe" }} - -.. warning:: - - Versions of the Python-Markdown library prior to 2.1 do not support the - optional disabling of attributes. This is a security flaw. Therefore, - ``django.contrib.markup`` has dropped support for versions of - Python-Markdown < 2.1 in Django 1.5. diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt index 5815062266..bcc2a461c7 100644 --- a/docs/ref/settings.txt +++ b/docs/ref/settings.txt @@ -1502,20 +1502,6 @@ Default: ``()`` (Empty tuple) A tuple of profanities, as strings, that will be forbidden in comments when ``COMMENTS_ALLOW_PROFANITIES`` is ``False``. -.. setting:: RESTRUCTUREDTEXT_FILTER_SETTINGS - -RESTRUCTUREDTEXT_FILTER_SETTINGS --------------------------------- - -Default: ``{}`` - -A dictionary containing settings for the ``restructuredtext`` markup filter from -the :doc:`django.contrib.markup application `. They override -the default writer settings. See the Docutils restructuredtext `writer settings -docs`_ for details. - -.. _writer settings docs: http://docutils.sourceforge.net/docs/user/config.html#html4css1-writer - .. setting:: ROOT_URLCONF ROOT_URLCONF diff --git a/docs/ref/templates/builtins.txt b/docs/ref/templates/builtins.txt index 4bbc839bea..867d1e5cc0 100644 --- a/docs/ref/templates/builtins.txt +++ b/docs/ref/templates/builtins.txt @@ -2356,16 +2356,6 @@ django.contrib.humanize A set of Django template filters useful for adding a "human touch" to data. See :doc:`/ref/contrib/humanize`. -django.contrib.markup -^^^^^^^^^^^^^^^^^^^^^ - -A collection of template filters that implement these common markup languages: - -* Textile -* Markdown -* reST (reStructuredText) - -See the :doc:`markup documentation `. django.contrib.webdesign ^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/docs/topics/security.txt b/docs/topics/security.txt index 9c4c4bbd9e..07b8ebcdd2 100644 --- a/docs/topics/security.txt +++ b/docs/topics/security.txt @@ -48,13 +48,6 @@ escaping. You should also be very careful when storing HTML in the database, especially when that HTML is retrieved and displayed. -Markup library --------------- - -If you use :mod:`django.contrib.markup`, you need to ensure that the filters are -only used on trusted input, or that you have correctly configured them to ensure -they do not allow raw HTML output. See the documentation of that module for more -information. Cross site request forgery (CSRF) protection ============================================ -- cgit v1.3 From 4a6490a4a0d0d7e45b1f549e3f9d97e5e2aeb731 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Mon, 24 Dec 2012 23:20:38 +0100 Subject: Removed HttpRequest.raw_post_data. --- django/http/request.py | 5 ----- docs/ref/request-response.txt | 5 ----- tests/regressiontests/requests/tests.py | 21 ++------------------- 3 files changed, 2 insertions(+), 29 deletions(-) (limited to 'docs') diff --git a/django/http/request.py b/django/http/request.py index 8f74bddb71..a8eb14d154 100644 --- a/django/http/request.py +++ b/django/http/request.py @@ -187,11 +187,6 @@ class HttpRequest(object): self._stream = BytesIO(self._body) return self._body - @property - def raw_post_data(self): - warnings.warn('HttpRequest.raw_post_data has been deprecated. Use HttpRequest.body instead.', DeprecationWarning) - return self.body - def _mark_post_parse_error(self): self._post = QueryDict('') self._files = MultiValueDict() diff --git a/docs/ref/request-response.txt b/docs/ref/request-response.txt index 2775c974d0..9e8eec4433 100644 --- a/docs/ref/request-response.txt +++ b/docs/ref/request-response.txt @@ -34,11 +34,6 @@ All attributes should be considered read-only, unless stated otherwise below. .. attribute:: HttpRequest.body - .. versionchanged:: 1.4 - - Before Django 1.4, ``HttpRequest.body`` was named - ``HttpRequest.raw_post_data``. - The raw HTTP request body as a byte string. This is useful for processing data in different ways than conventional HTML forms: binary images, XML payload etc. For processing conventional form data, use ``HttpRequest.POST``. diff --git a/tests/regressiontests/requests/tests.py b/tests/regressiontests/requests/tests.py index bb7f925e87..799cd9b302 100644 --- a/tests/regressiontests/requests/tests.py +++ b/tests/regressiontests/requests/tests.py @@ -507,20 +507,6 @@ class RequestsTests(unittest.TestCase): self.assertEqual(request.read(13), b'--boundary\r\nC') self.assertEqual(request.POST, {'name': ['value']}) - def test_raw_post_data_returns_body(self): - """ - HttpRequest.raw_post_body should be the same as HttpRequest.body - """ - payload = FakePayload('Hello There!') - request = WSGIRequest({ - 'REQUEST_METHOD': 'POST', - 'CONTENT_LENGTH': len(payload), - 'wsgi.input': payload, - }) - - with warnings.catch_warnings(record=True): - self.assertEqual(request.body, request.raw_post_data) - def test_POST_connection_error(self): """ If wsgi.input.read() raises an exception while trying to read() the @@ -536,8 +522,5 @@ class RequestsTests(unittest.TestCase): 'CONTENT_LENGTH': len(payload), 'wsgi.input': ExplodingBytesIO(payload)}) - with warnings.catch_warnings(record=True) as w: - warnings.simplefilter("always") - with self.assertRaises(UnreadablePostError): - request.raw_post_data - self.assertEqual(len(w), 1) + with self.assertRaises(UnreadablePostError): + request.body -- cgit v1.3 From 641acf76e706dcff0932b0825f1acbde715cc2c4 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Mon, 24 Dec 2012 23:22:33 +0100 Subject: Removed IGNORABLE_404_STARTS/ENDS settings. --- django/middleware/common.py | 14 -------------- docs/howto/error-reporting.txt | 8 -------- docs/ref/settings.txt | 16 ---------------- 3 files changed, 38 deletions(-) (limited to 'docs') diff --git a/django/middleware/common.py b/django/middleware/common.py index ccc9fbfaad..c6e71e0d48 100644 --- a/django/middleware/common.py +++ b/django/middleware/common.py @@ -143,20 +143,6 @@ def _is_ignorable_404(uri): """ Returns True if a 404 at the given URL *shouldn't* notify the site managers. """ - if getattr(settings, 'IGNORABLE_404_STARTS', ()): - import warnings - warnings.warn('The IGNORABLE_404_STARTS setting has been deprecated ' - 'in favor of IGNORABLE_404_URLS.', DeprecationWarning) - for start in settings.IGNORABLE_404_STARTS: - if uri.startswith(start): - return True - if getattr(settings, 'IGNORABLE_404_ENDS', ()): - import warnings - warnings.warn('The IGNORABLE_404_ENDS setting has been deprecated ' - 'in favor of IGNORABLE_404_URLS.', DeprecationWarning) - for end in settings.IGNORABLE_404_ENDS: - if uri.endswith(end): - return True return any(pattern.search(uri) for pattern in settings.IGNORABLE_404_URLS) def _is_internal_request(domain, referer): diff --git a/docs/howto/error-reporting.txt b/docs/howto/error-reporting.txt index 5fbe5eda59..b4ced5a1b6 100644 --- a/docs/howto/error-reporting.txt +++ b/docs/howto/error-reporting.txt @@ -101,14 +101,6 @@ The best way to disable this behavior is to set records are ignored, but you can use them for error reporting by writing a handler and :doc:`configuring logging ` appropriately. -.. seealso:: - - .. versionchanged:: 1.4 - - Previously, two settings were used to control which URLs not to report: - :setting:`IGNORABLE_404_STARTS` and :setting:`IGNORABLE_404_ENDS`. They - were replaced by :setting:`IGNORABLE_404_URLS`. - .. _filtering-error-reports: Filtering error reports diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt index bcc2a461c7..df679e7c1f 100644 --- a/docs/ref/settings.txt +++ b/docs/ref/settings.txt @@ -2244,22 +2244,6 @@ Default: Not defined The site-specific user profile model used by this site. See :ref:`User profiles `. -.. setting:: IGNORABLE_404_ENDS - -IGNORABLE_404_ENDS ------------------- - -.. deprecated:: 1.4 - This setting has been superseded by :setting:`IGNORABLE_404_URLS`. - -.. setting:: IGNORABLE_404_STARTS - -IGNORABLE_404_STARTS --------------------- - -.. deprecated:: 1.4 - This setting has been superseded by :setting:`IGNORABLE_404_URLS`. - .. setting:: URL_VALIDATOR_USER_AGENT URL_VALIDATOR_USER_AGENT -- cgit v1.3 From 5d5e1f5afa4b2c0b0a0ead37741ef7778187a48c Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Mon, 24 Dec 2012 23:24:23 +0100 Subject: Removed support is_safe and needs_autoescape as function attributes. --- django/template/defaultfilters.py | 9 --------- docs/howto/custom-template-tags.txt | 20 -------------------- 2 files changed, 29 deletions(-) (limited to 'docs') diff --git a/django/template/defaultfilters.py b/django/template/defaultfilters.py index dac4e5ddb4..85202b62a4 100644 --- a/django/template/defaultfilters.py +++ b/django/template/defaultfilters.py @@ -49,15 +49,6 @@ def stringfilter(func): # when multiple decorators are applied). _dec._decorated_function = getattr(func, '_decorated_function', func) - for attr in ('is_safe', 'needs_autoescape'): - if hasattr(func, attr): - import warnings - warnings.warn("Setting the %s attribute of a template filter " - "function is deprecated; use @register.filter(%s=%s) " - "instead" % (attr, attr, getattr(func, attr)), - DeprecationWarning) - setattr(_dec, attr, getattr(func, attr)) - return wraps(func)(_dec) diff --git a/docs/howto/custom-template-tags.txt b/docs/howto/custom-template-tags.txt index 70b6288bee..d57730c4fb 100644 --- a/docs/howto/custom-template-tags.txt +++ b/docs/howto/custom-template-tags.txt @@ -328,26 +328,6 @@ Template filter code falls into one of two situations: handle the auto-escaping issues and return a safe string, the ``is_safe`` flag won't change anything either way. -.. versionchanged:: 1.4 - -``is_safe`` and ``needs_autoescape`` used to be attributes of the filter -function; this syntax is deprecated. - -.. code-block:: python - - @register.filter - def myfilter(value): - return value - myfilter.is_safe = True - -.. code-block:: python - - @register.filter - def initial_letter_filter(text, autoescape=None): - # ... - return mark_safe(result) - initial_letter_filter.needs_autoescape = True - .. _filters-timezones: Filters and time zones -- cgit v1.3 From 7ee7599ab389129c539f62b8295fcf1128defa13 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Wed, 26 Dec 2012 21:47:29 +0100 Subject: Removed versionadded/changed annotations dating back to 1.4. --- docs/howto/custom-template-tags.txt | 24 +++--------- docs/howto/deployment/wsgi/index.txt | 2 - docs/howto/error-reporting.txt | 16 +++----- docs/ref/class-based-views/mixins-editing.txt | 5 --- .../ref/class-based-views/mixins-single-object.txt | 4 -- docs/ref/clickjacking.txt | 3 -- docs/ref/contrib/admin/index.txt | 45 ++-------------------- docs/ref/contrib/auth.txt | 5 --- docs/ref/contrib/csrf.txt | 6 --- docs/ref/contrib/flatpages.txt | 14 ++----- docs/ref/contrib/humanize.txt | 4 +- docs/ref/contrib/sitemaps.txt | 16 ++------ docs/ref/contrib/staticfiles.txt | 14 ------- docs/ref/databases.txt | 14 ------- docs/ref/django-admin.txt | 34 +++------------- docs/ref/forms/fields.txt | 2 - docs/ref/forms/widgets.txt | 2 - docs/ref/middleware.txt | 3 -- docs/ref/models/fields.txt | 2 - docs/ref/models/options.txt | 4 -- docs/ref/models/querysets.txt | 22 +++-------- docs/ref/request-response.txt | 9 ----- docs/ref/settings.txt | 31 --------------- docs/ref/signals.txt | 2 - docs/ref/templates/api.txt | 13 +++---- docs/ref/templates/builtins.txt | 19 --------- docs/ref/urlresolvers.txt | 2 - docs/ref/urls.txt | 3 -- docs/ref/utils.txt | 8 ---- docs/ref/validators.txt | 2 - docs/topics/auth/default.txt | 23 ++++------- docs/topics/auth/passwords.txt | 13 +------ docs/topics/cache.txt | 2 - docs/topics/db/queries.txt | 15 ++++---- docs/topics/db/tablespaces.txt | 3 -- docs/topics/db/transactions.txt | 3 -- docs/topics/forms/formsets.txt | 2 - docs/topics/forms/modelforms.txt | 2 - docs/topics/http/decorators.txt | 2 - docs/topics/http/sessions.txt | 5 --- docs/topics/http/urls.txt | 10 ++--- docs/topics/http/views.txt | 2 - docs/topics/i18n/timezones.txt | 2 - docs/topics/i18n/translation.txt | 11 ------ docs/topics/logging.txt | 4 -- docs/topics/pagination.txt | 7 ---- docs/topics/signing.txt | 2 - docs/topics/testing/advanced.txt | 4 -- docs/topics/testing/overview.txt | 28 -------------- 49 files changed, 60 insertions(+), 410 deletions(-) (limited to 'docs') diff --git a/docs/howto/custom-template-tags.txt b/docs/howto/custom-template-tags.txt index d57730c4fb..31fbc9e96c 100644 --- a/docs/howto/custom-template-tags.txt +++ b/docs/howto/custom-template-tags.txt @@ -333,8 +333,6 @@ Template filter code falls into one of two situations: Filters and time zones ~~~~~~~~~~~~~~~~~~~~~~ -.. versionadded:: 1.4 - If you write a custom filter that operates on :class:`~datetime.datetime` objects, you'll usually register it with the ``expects_localtime`` flag set to ``True``: @@ -764,8 +762,6 @@ Or, using decorator syntax: For more information on how the ``takes_context`` option works, see the section on :ref:`inclusion tags`. -.. versionadded:: 1.4 - If you need to rename your tag, you can provide a custom name for it: .. code-block:: python @@ -776,8 +772,6 @@ If you need to rename your tag, you can provide a custom name for it: def some_function(value): return value - 2 -.. versionadded:: 1.4 - ``simple_tag`` functions may accept any number of positional or keyword arguments. For example: @@ -865,16 +859,14 @@ template loader, we'd register the tag like this: # Here, register is a django.template.Library instance, as before register.inclusion_tag('results.html')(show_results) -.. versionchanged:: 1.4 - - Alternatively it is possible to register the inclusion tag using a - :class:`django.template.Template` instance: +Alternatively it is possible to register the inclusion tag using a +:class:`django.template.Template` instance: - .. code-block:: python +.. code-block:: python - from django.template.loader import get_template - t = get_template('results.html') - register.inclusion_tag(t)(show_results) + from django.template.loader import get_template + t = get_template('results.html') + register.inclusion_tag(t)(show_results) As always, decorator syntax works as well, so we could have written: @@ -932,8 +924,6 @@ The ``takes_context`` parameter defaults to ``False``. When it's set to ``True``, the tag is passed the context object, as in this example. That's the only difference between this case and the previous ``inclusion_tag`` example. -.. versionadded:: 1.4 - ``inclusion_tag`` functions may accept any number of positional or keyword arguments. For example: @@ -1046,8 +1036,6 @@ context-updating template tag, you might want to consider using an Assignment tags ~~~~~~~~~~~~~~~ -.. versionadded:: 1.4 - To ease the creation of tags setting a variable in the context, Django provides a helper function, ``assignment_tag``. This function works the same way as :ref:`simple_tag`, except that it diff --git a/docs/howto/deployment/wsgi/index.txt b/docs/howto/deployment/wsgi/index.txt index 769d406b1b..91eda35cd7 100644 --- a/docs/howto/deployment/wsgi/index.txt +++ b/docs/howto/deployment/wsgi/index.txt @@ -28,8 +28,6 @@ callable object which the webserver uses to communicate with your code. This is commonly specified as an object named ``application`` in a Python module accessible to the server. -.. versionchanged:: 1.4 - The :djadmin:`startproject` command creates a :file:`projectname/wsgi.py` that contains such an application callable. diff --git a/docs/howto/error-reporting.txt b/docs/howto/error-reporting.txt index b4ced5a1b6..35add32e4c 100644 --- a/docs/howto/error-reporting.txt +++ b/docs/howto/error-reporting.txt @@ -106,8 +106,6 @@ The best way to disable this behavior is to set Filtering error reports ----------------------- -.. versionadded:: 1.4 - Filtering sensitive information ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -185,15 +183,11 @@ production environment (that is, where :setting:`DEBUG` is set to ``False``): def my_view(request): ... -.. note:: - - .. versionchanged:: 1.4 - - Since version 1.4, all POST parameters are systematically filtered out of - error reports for certain :mod:`django.contrib.auth.views` views ( - ``login``, ``password_reset_confirm``, ``password_change``, and - ``add_view`` and ``user_change_password`` in the ``auth`` admin) to prevent - the leaking of sensitive information such as user passwords. + All POST parameters are systematically filtered out of error reports for + certain :mod:`django.contrib.auth.views` views (``login``, + ``password_reset_confirm``, ``password_change``, and ``add_view`` and + ``user_change_password`` in the ``auth`` admin) to prevent the leaking of + sensitive information such as user passwords. .. _custom-error-reports: diff --git a/docs/ref/class-based-views/mixins-editing.txt b/docs/ref/class-based-views/mixins-editing.txt index 95dd24f442..b8b59b827f 100644 --- a/docs/ref/class-based-views/mixins-editing.txt +++ b/docs/ref/class-based-views/mixins-editing.txt @@ -40,11 +40,6 @@ FormMixin Retrieve initial data for the form. By default, returns a copy of :attr:`~django.views.generic.edit.FormMixin.initial`. - .. versionchanged:: 1.4 - In Django 1.3, this method was returning the - :attr:`~django.views.generic.edit.FormMixin.initial` class variable - itself. - .. method:: get_form_class() Retrieve the form class to instantiate. By default diff --git a/docs/ref/class-based-views/mixins-single-object.txt b/docs/ref/class-based-views/mixins-single-object.txt index 77f52b96c6..e84ba6b8dd 100644 --- a/docs/ref/class-based-views/mixins-single-object.txt +++ b/docs/ref/class-based-views/mixins-single-object.txt @@ -31,15 +31,11 @@ SingleObjectMixin .. attribute:: slug_url_kwarg - .. versionadded:: 1.4 - The name of the URLConf keyword argument that contains the slug. By default, ``slug_url_kwarg`` is ``'slug'``. .. attribute:: pk_url_kwarg - .. versionadded:: 1.4 - The name of the URLConf keyword argument that contains the primary key. By default, ``pk_url_kwarg`` is ``'pk'``. diff --git a/docs/ref/clickjacking.txt b/docs/ref/clickjacking.txt index b70fe9f90d..15e85b43b7 100644 --- a/docs/ref/clickjacking.txt +++ b/docs/ref/clickjacking.txt @@ -10,9 +10,6 @@ against `clickjacking`_. This type of attack occurs when a malicious site tricks a user into clicking on a concealed element of another site which they have loaded in a hidden frame or iframe. -.. versionadded:: 1.4 - The clickjacking middleware and decorators were added. - .. _clickjacking: http://en.wikipedia.org/wiki/Clickjacking An example of clickjacking diff --git a/docs/ref/contrib/admin/index.txt b/docs/ref/contrib/admin/index.txt index 6f79e97a3c..e72b2b79e9 100644 --- a/docs/ref/contrib/admin/index.txt +++ b/docs/ref/contrib/admin/index.txt @@ -180,8 +180,6 @@ subclass:: values defined in :attr:`ModelAdmin.readonly_fields` to be displayed as read-only. - .. versionadded:: 1.4 - To display multiple fields on the same line, wrap those fields in their own tuple. In this example, the ``url`` and ``title`` fields will display on the same line and the ``content`` field will be displayed below them in its @@ -586,8 +584,6 @@ subclass:: class PersonAdmin(UserAdmin): list_filter = ('company__name',) - .. versionadded:: 1.4 - * a class inheriting from :mod:`django.contrib.admin.SimpleListFilter`, which you need to provide the ``title`` and ``parameter_name`` attributes to and override the ``lookups`` and ``queryset`` methods, @@ -673,8 +669,6 @@ subclass:: birthday__lte=date(1999, 12, 31)).exists(): yield ('90s', _('in the nineties')) - .. versionadded:: 1.4 - * a tuple, where the first element is a field name and the second element is a class inheriting from :mod:`django.contrib.admin.FieldListFilter`, for example:: @@ -691,8 +685,6 @@ subclass:: The ``FieldListFilter`` API is considered internal and might be changed. - .. versionadded:: 1.4 - It is possible to specify a custom template for rendering a list filter:: class FilterWithCustomTemplate(SimpleListFilter): @@ -703,8 +695,6 @@ subclass:: .. attribute:: ModelAdmin.list_max_show_all - .. versionadded:: 1.4 - Set ``list_max_show_all`` to control how many items can appear on a "Show all" admin change list page. The admin will display a "Show all" link on the change list only if the total result count is less than or equal to this @@ -738,15 +728,9 @@ subclass:: If this isn't provided, the Django admin will use the model's default ordering. - .. versionadded:: 1.4 - If you need to specify a dynamic order (for example depending on user or language) you can implement a :meth:`~ModelAdmin.get_ordering` method. - .. versionchanged:: 1.4 - - Django honors all elements in the list/tuple; before 1.4, only the first - was respected. .. attribute:: ModelAdmin.paginator @@ -1017,8 +1001,6 @@ templates used by the :class:`ModelAdmin` views: .. method:: ModelAdmin.get_ordering(self, request) - .. versionadded:: 1.4 - The ``get_ordering`` method takes a``request`` as parameter and is expected to return a ``list`` or ``tuple`` for ordering similar to the :attr:`ordering` attribute. For example:: @@ -1033,8 +1015,6 @@ templates used by the :class:`ModelAdmin` views: .. method:: ModelAdmin.save_related(self, request, form, formsets, change) - .. versionadded:: 1.4 - The ``save_related`` method is given the ``HttpRequest``, the parent ``ModelForm`` instance, the list of inline formsets and a boolean value based on whether the parent is being added or changed. Here you can do any @@ -1050,8 +1030,6 @@ templates used by the :class:`ModelAdmin` views: .. method:: ModelAdmin.get_prepopulated_fields(self, request, obj=None) - .. versionadded:: 1.4 - The ``get_prepopulated_fields`` method is given the ``HttpRequest`` and the ``obj`` being edited (or ``None`` on an add form) and is expected to return a ``dictionary``, as described above in the :attr:`ModelAdmin.prepopulated_fields` @@ -1059,8 +1037,6 @@ templates used by the :class:`ModelAdmin` views: .. method:: ModelAdmin.get_list_display(self, request) - .. versionadded:: 1.4 - The ``get_list_display`` method is given the ``HttpRequest`` and is expected to return a ``list`` or ``tuple`` of field names that will be displayed on the changelist view as described above in the @@ -1068,8 +1044,6 @@ templates used by the :class:`ModelAdmin` views: .. method:: ModelAdmin.get_list_display_links(self, request, list_display) - .. versionadded:: 1.4 - The ``get_list_display_links`` method is given the ``HttpRequest`` and the ``list`` or ``tuple`` returned by :meth:`ModelAdmin.get_list_display`. It is expected to return a ``list`` or ``tuple`` of field names on the @@ -1341,10 +1315,6 @@ Other methods Django view for the model instance edition page. See note below. - .. versionchanged:: 1.4 - - The ``form_url`` parameter was added. - .. method:: ModelAdmin.changelist_view(self, request, extra_context=None) Django view for the model instances change list/actions page. See note @@ -1386,12 +1356,10 @@ provided some extra mapping data that would not otherwise be available:: return super(MyModelAdmin, self).change_view(request, object_id, form_url, extra_context=extra_context) -.. versionadded:: 1.4 - -These views now return :class:`~django.template.response.TemplateResponse` +These views return :class:`~django.template.response.TemplateResponse` instances which allow you to easily customize the response data before -rendering. For more details, see the -:doc:`TemplateResponse documentation `. +rendering. For more details, see the :doc:`TemplateResponse documentation +`. .. _modeladmin-media-definitions: @@ -1514,9 +1482,6 @@ adds some of its own (the shared features are actually defined in the - :attr:`~InlineModelAdmin.raw_id_fields` - :meth:`~ModelAdmin.formfield_for_foreignkey` - :meth:`~ModelAdmin.formfield_for_manytomany` - -.. versionadded:: 1.4 - - :meth:`~ModelAdmin.has_add_permission` - :meth:`~ModelAdmin.has_change_permission` - :meth:`~ModelAdmin.has_delete_permission` @@ -2043,8 +2008,6 @@ your URLconf. Specifically, add these four patterns: the URLs starting with ``^admin/`` before the line that includes the admin app itself). -.. versionchanged:: 1.4 - The presence of the ``admin_password_reset`` named URL will cause a "forgotten your password?" link to appear on the default admin log-in page under the password box. @@ -2108,8 +2071,6 @@ if you specifically wanted the admin view from the admin instance named For more details, see the documentation on :ref:`reversing namespaced URLs `. -.. versionadded:: 1.4 - To allow easier reversing of the admin urls in templates, Django provides an ``admin_urlname`` filter which takes an action as argument: diff --git a/docs/ref/contrib/auth.txt b/docs/ref/contrib/auth.txt index 74a69c1f7d..e35a5b3586 100644 --- a/docs/ref/contrib/auth.txt +++ b/docs/ref/contrib/auth.txt @@ -222,11 +222,6 @@ Manager methods .. method:: create_user(username, email=None, password=None) - .. versionchanged:: 1.4 - The ``email`` parameter was made optional. The username - parameter is now checked for emptiness and raises a - :exc:`~exceptions.ValueError` in case of a negative result. - Creates, saves and returns a :class:`~django.contrib.auth.models.User`. The :attr:`~django.contrib.auth.models.User.username` and diff --git a/docs/ref/contrib/csrf.txt b/docs/ref/contrib/csrf.txt index 32d8a705bc..42a41c4bfc 100644 --- a/docs/ref/contrib/csrf.txt +++ b/docs/ref/contrib/csrf.txt @@ -410,8 +410,6 @@ Utilities .. function:: ensure_csrf_cookie(view) - .. versionadded:: 1.4 - This decorator forces a view to send the CSRF cookie. Scenarios @@ -517,8 +515,6 @@ whatever you want. CSRF_COOKIE_PATH ---------------- -.. versionadded:: 1.4 - Default: ``'/'`` The path set on the CSRF cookie. This should either match the URL path of your @@ -531,8 +527,6 @@ its own CSRF cookie. CSRF_COOKIE_SECURE ------------------ -.. versionadded:: 1.4 - Default: ``False`` Whether to use a secure cookie for the CSRF cookie. If this is set to ``True``, diff --git a/docs/ref/contrib/flatpages.txt b/docs/ref/contrib/flatpages.txt index 7ff9165642..c360809dac 100644 --- a/docs/ref/contrib/flatpages.txt +++ b/docs/ref/contrib/flatpages.txt @@ -117,17 +117,9 @@ can do all of the work. :class:`~django.template.RequestContext` in rendering the template. - .. versionchanged:: 1.4 - The middleware will only add a trailing slash and redirect (by looking - at the :setting:`APPEND_SLASH` setting) if the resulting URL refers to - a valid flatpage. Previously requesting a non-existent flatpage - would redirect to the same URL with an apppended slash first and - subsequently raise a 404. - - .. versionchanged:: 1.4 - Redirects by the middleware are permanent (301 status code) instead of - temporary (302) to match behavior of the - :class:`~django.middleware.common.CommonMiddleware`. + The middleware will only add a trailing slash and redirect (by looking + at the :setting:`APPEND_SLASH` setting) if the resulting URL refers to + a valid flatpage. Redirects are permanent (301 status code). If it doesn't find a match, the request continues to be processed as usual. diff --git a/docs/ref/contrib/humanize.txt b/docs/ref/contrib/humanize.txt index 57978288b1..aca6ed990d 100644 --- a/docs/ref/contrib/humanize.txt +++ b/docs/ref/contrib/humanize.txt @@ -100,10 +100,8 @@ Examples (when 'today' is 17 Feb 2007): naturaltime ----------- -.. versionadded:: 1.4 - For datetime values, returns a string representing how many seconds, -minutes or hours ago it was -- falling back to the :tfilter:`timesince` +minutes or hours ago it was -- falling back to the :tfilter:`timesince` format if the value is more than a day old. In case the datetime value is in the future the return value will automatically use an appropriate phrase. diff --git a/docs/ref/contrib/sitemaps.txt b/docs/ref/contrib/sitemaps.txt index ef6c64dc61..42c4b91bd4 100644 --- a/docs/ref/contrib/sitemaps.txt +++ b/docs/ref/contrib/sitemaps.txt @@ -213,8 +213,6 @@ Sitemap class reference .. attribute:: Sitemap.protocol - .. versionadded:: 1.4 - **Optional.** This attribute defines the protocol (``'http'`` or ``'https'``) of the @@ -308,8 +306,6 @@ You should create an index file if one of your sitemaps has more than 50,000 URLs. In this case, Django will automatically paginate the sitemap, and the index will reflect that. -.. versionadded:: 1.4 - If you're not using the vanilla sitemap view -- for example, if it's wrapped with a caching decorator -- you must name your sitemap view and pass ``sitemap_url_name`` to the index view:: @@ -346,12 +342,10 @@ parameter to the ``sitemap`` and ``index`` views via the URLconf:: ) -.. versionchanged:: 1.4 - In addition, these views also return - :class:`~django.template.response.TemplateResponse` - instances which allow you to easily customize the response data before - rendering. For more details, see the - :doc:`TemplateResponse documentation `. +These views return :class:`~django.template.response.TemplateResponse` +instances which allow you to easily customize the response data before +rendering. For more details, see the :doc:`TemplateResponse documentation +`. Context variables ------------------ @@ -378,8 +372,6 @@ sitemap. Each URL exposes attributes as defined in the - ``location`` - ``priority`` -.. versionadded:: 1.4 - The ``item`` attribute has been added for each URL to allow more flexible customization of the templates, such as `Google news sitemaps`_. Assuming Sitemap's :attr:`~Sitemap.items()` would return a list of items with diff --git a/docs/ref/contrib/staticfiles.txt b/docs/ref/contrib/staticfiles.txt index 3a74797145..9c8f29a8de 100644 --- a/docs/ref/contrib/staticfiles.txt +++ b/docs/ref/contrib/staticfiles.txt @@ -82,8 +82,6 @@ Default: ``'django.contrib.staticfiles.storage.StaticFilesStorage'`` The file storage engine to use when collecting static files with the :djadmin:`collectstatic` management command. -.. versionadded:: 1.4 - A ready-to-use instance of the storage backend defined in this setting can be found at ``django.contrib.staticfiles.storage.staticfiles_storage``. @@ -146,8 +144,6 @@ Files are searched by using the :setting:`enabled finders :setting:`STATICFILES_DIRS` and in the ``'static'`` directory of apps specified by the :setting:`INSTALLED_APPS` setting. -.. versionadded:: 1.4 - The :djadmin:`collectstatic` management command calls the :meth:`~django.contrib.staticfiles.storage.StaticFilesStorage.post_process` method of the :setting:`STATICFILES_STORAGE` after each run and passes @@ -176,8 +172,6 @@ Some commonly used options are: .. django-admin-option:: -c .. django-admin-option:: --clear - .. versionadded:: 1.4 - Clear the existing files before trying to copy or link the original file. .. django-admin-option:: -l @@ -187,8 +181,6 @@ Some commonly used options are: .. django-admin-option:: --no-post-process - .. versionadded:: 1.4 - Don't call the :meth:`~django.contrib.staticfiles.storage.StaticFilesStorage.post_process` method of the configured :setting:`STATICFILES_STORAGE` storage backend. @@ -276,8 +268,6 @@ StaticFilesStorage .. method:: post_process(paths, **options) - .. versionadded:: 1.4 - This method is called by the :djadmin:`collectstatic` management command after each run and gets passed the local storages and paths of found files as a dictionary, as well as the command line options. @@ -291,8 +281,6 @@ CachedStaticFilesStorage .. class:: storage.CachedStaticFilesStorage - .. versionadded:: 1.4 - A subclass of the :class:`~django.contrib.staticfiles.storage.StaticFilesStorage` storage backend which caches the files it saves by appending the MD5 hash of the file's content to the filename. For example, the file @@ -370,8 +358,6 @@ static .. templatetag:: staticfiles-static -.. versionadded:: 1.4 - Uses the configured :setting:`STATICFILES_STORAGE` storage to create the full URL for the given relative path, e.g.: diff --git a/docs/ref/databases.txt b/docs/ref/databases.txt index 352c0f4584..771085766e 100644 --- a/docs/ref/databases.txt +++ b/docs/ref/databases.txt @@ -16,8 +16,6 @@ documentation or reference manuals. PostgreSQL notes ================ -.. versionchanged:: 1.4 - Django supports PostgreSQL 8.2 and higher. PostgreSQL 8.2 to 8.2.4 @@ -173,18 +171,6 @@ running ``syncdb``:: 1005, "Can't create table '\\db_name\\.#sql-4a8_ab' (errno: 150)" ) -.. versionchanged:: 1.4 - -In previous versions of Django, fixtures with forward references (i.e. -relations to rows that have not yet been inserted into the database) would fail -to load when using the InnoDB storage engine. This was due to the fact that InnoDB -deviates from the SQL standard by checking foreign key constraints immediately -instead of deferring the check until the transaction is committed. This -problem has been resolved in Django 1.4. Fixture data is now loaded with foreign key -checks turned off; foreign key checks are then re-enabled when the data has -finished loading, at which point the entire table is checked for invalid foreign -key references and an `IntegrityError` is raised if any are found. - .. _storage engines: http://dev.mysql.com/doc/refman/5.5/en/storage-engines.html .. _MyISAM: http://dev.mysql.com/doc/refman/5.5/en/myisam-storage-engine.html .. _InnoDB: http://dev.mysql.com/doc/refman/5.5/en/innodb.html diff --git a/docs/ref/django-admin.txt b/docs/ref/django-admin.txt index 205f349e8b..e67527de23 100644 --- a/docs/ref/django-admin.txt +++ b/docs/ref/django-admin.txt @@ -466,8 +466,6 @@ several lines in language files. .. django-admin-option:: --no-location -.. versionadded:: 1.4 - Use the ``--no-location`` option to not write '``#: filename:line``' comment lines in language files. Note that using this option makes it harder for technically skilled translators to understand each message's context. @@ -482,9 +480,8 @@ supports the FastCGI protocol. See the :doc:`FastCGI deployment documentation ` for details. Requires the Python FastCGI module from `flup`_. -.. versionadded:: 1.4 - Internally, this wraps the WSGI application object specified by the - :setting:`WSGI_APPLICATION` setting. +Internally, this wraps the WSGI application object specified by the +:setting:`WSGI_APPLICATION` setting. .. _flup: http://www.saddi.com/software/flup/ @@ -610,9 +607,8 @@ If you run this script as a user with normal privileges (recommended), you might not have access to start a port on a low port number. Low port numbers are reserved for the superuser (root). -.. versionadded:: 1.4 - This server uses the WSGI application object specified by the - :setting:`WSGI_APPLICATION` setting. +This server uses the WSGI application object specified by the +:setting:`WSGI_APPLICATION` setting. DO NOT USE THIS SERVER IN A PRODUCTION SETTING. It has not gone through security audits or performance tests. (And that's how it's gonna stay. We're in @@ -658,11 +654,8 @@ Example usage:: .. django-admin-option:: --nothreading -.. versionadded:: 1.4 - -Since version 1.4, the development server is multithreaded by default. -Use the ``--nothreading`` option to disable the use of threading in the -development server. +The development server is multithreaded by default. Use the ``--nothreading`` +option to disable the use of threading in the development server. .. django-admin-option:: --ipv6, -6 @@ -856,8 +849,6 @@ startapp [destination] Creates a Django app directory structure for the given app name in the current directory or the given destination. -.. versionchanged:: 1.4 - By default the directory created contains a ``models.py`` file and other app template files. (See the `source`_ for more details.) If only the app name is given, the app directory will be created in the current working @@ -871,7 +862,6 @@ For example:: django-admin.py startapp myapp /Users/jezdez/Code/myapp -.. versionadded:: 1.4 .. django-admin-option:: --template With the ``--template`` option, you can use a custom app template by providing @@ -893,8 +883,6 @@ zip files, you can use a URL like:: django-admin.py startapp --template=https://github.com/githubuser/django-app-template/archive/master.zip myapp -.. versionadded:: 1.4 - When Django copies the app template files, it also renders certain files through the template engine: the files whose extensions match the ``--extension`` option (``py`` by default) and the files whose names are passed @@ -929,8 +917,6 @@ startproject [destination] Creates a Django project directory structure for the given project name in the current directory or the given destination. -.. versionchanged:: 1.4 - By default, the new directory contains ``manage.py`` and a project package (containing a ``settings.py`` and other files). See the `template source`_ for details. @@ -947,8 +933,6 @@ For example:: django-admin.py startproject myproject /Users/jezdez/Code/myproject_repo -.. versionadded:: 1.4 - As with the :djadmin:`startapp` command, the ``--template`` option lets you specify a directory, file path or URL of a custom project template. See the :djadmin:`startapp` documentation for details of supported project template @@ -1044,14 +1028,12 @@ information. The ``--failfast`` option can be used to stop running tests and report the failure immediately after a test fails. -.. versionadded:: 1.4 .. django-admin-option:: --testrunner The ``--testrunner`` option can be used to control the test runner class that is used to execute tests. If this value is provided, it overrides the value provided by the :setting:`TEST_RUNNER` setting. -.. versionadded:: 1.4 .. django-admin-option:: --liveserver The ``--liveserver`` option can be used to override the default address where @@ -1152,8 +1134,6 @@ the user given as parameter. If they both match, the new password will be changed immediately. If you do not supply a user, the command will attempt to change the password whose username matches the current user. -.. versionadded:: 1.4 - Use the ``--database`` option to specify the database to query for the user. If it's not supplied, Django will use the ``default`` database. @@ -1187,8 +1167,6 @@ using the ``--username`` and ``--email`` arguments on the command line. If either of those is not supplied, ``createsuperuser`` will prompt for it when running interactively. -.. versionadded:: 1.4 - Use the ``--database`` option to specify the database into which the superuser object will be saved. diff --git a/docs/ref/forms/fields.txt b/docs/ref/forms/fields.txt index 5d8e902609..28b7e49d2d 100644 --- a/docs/ref/forms/fields.txt +++ b/docs/ref/forms/fields.txt @@ -654,8 +654,6 @@ For each field, we describe the default widget used if you don't specify ``GenericIPAddressField`` ~~~~~~~~~~~~~~~~~~~~~~~~~ -.. versionadded:: 1.4 - .. class:: GenericIPAddressField(**kwargs) A field containing either an IPv4 or an IPv6 address. diff --git a/docs/ref/forms/widgets.txt b/docs/ref/forms/widgets.txt index 0660329eea..d8d9c9b770 100644 --- a/docs/ref/forms/widgets.txt +++ b/docs/ref/forms/widgets.txt @@ -542,8 +542,6 @@ Selector and checkbox widgets ...
- .. versionadded:: 1.4 - For more granular control over the generated markup, you can loop over the radio buttons in the template. Assuming a form ``myform`` with a field ``beatles`` that uses a ``RadioSelect`` as its widget: diff --git a/docs/ref/middleware.txt b/docs/ref/middleware.txt index 41cff346ff..31cc6f24f6 100644 --- a/docs/ref/middleware.txt +++ b/docs/ref/middleware.txt @@ -222,7 +222,4 @@ X-Frame-Options middleware .. class:: XFrameOptionsMiddleware -.. versionadded:: 1.4 - ``XFrameOptionsMiddleware`` was added. - Simple :doc:`clickjacking protection via the X-Frame-Options header `. diff --git a/docs/ref/models/fields.txt b/docs/ref/models/fields.txt index 68abb4f4d2..e9f85e0657 100644 --- a/docs/ref/models/fields.txt +++ b/docs/ref/models/fields.txt @@ -804,8 +804,6 @@ for this field is a :class:`~django.forms.TextInput`. .. class:: GenericIPAddressField([protocol=both, unpack_ipv4=False, **options]) -.. versionadded:: 1.4 - An IPv4 or IPv6 address, in string format (e.g. ``192.0.2.30`` or ``2a02:42fe::4``). The default form widget for this field is a :class:`~django.forms.TextInput`. diff --git a/docs/ref/models/options.txt b/docs/ref/models/options.txt index ac20422915..6fd707fdf2 100644 --- a/docs/ref/models/options.txt +++ b/docs/ref/models/options.txt @@ -209,10 +209,6 @@ Django quotes column and table names behind the scenes. ordering = ['-pub_date', 'author'] - .. versionchanged:: 1.4 - The Django admin honors all elements in the list/tuple; before 1.4, only - the first one was respected. - ``permissions`` --------------- diff --git a/docs/ref/models/querysets.txt b/docs/ref/models/querysets.txt index ca2e64a8c5..a8e946f8a5 100644 --- a/docs/ref/models/querysets.txt +++ b/docs/ref/models/querysets.txt @@ -378,16 +378,12 @@ query spans multiple tables, it's possible to get duplicate results when a :meth:`values()` together, be careful when ordering by fields not in the :meth:`values()` call. -.. versionadded:: 1.4 - -As of Django 1.4, you can pass positional arguments (``*fields``) in order to -specify the names of fields to which the ``DISTINCT`` should apply. This -translates to a ``SELECT DISTINCT ON`` SQL query. - -Here's the difference. For a normal ``distinct()`` call, the database compares -*each* field in each row when determining which rows are distinct. For a -``distinct()`` call with specified field names, the database will only compare -the specified field names. +You can pass positional arguments (``*fields``) in order to specify the names +of fields to which the ``DISTINCT`` should apply. This translates to a +``SELECT DISTINCT ON`` SQL query. Here's the difference. For a normal +``distinct()`` call, the database compares *each* field in each row when +determining which rows are distinct. For a ``distinct()`` call with specified +field names, the database will only compare the specified field names. .. note:: This ability to specify field names is only available in PostgreSQL. @@ -740,8 +736,6 @@ prefetch_related .. method:: prefetch_related(*lookups) -.. versionadded:: 1.4 - Returns a ``QuerySet`` that will automatically retrieve, in a single batch, related objects for each of the specified lookups. @@ -1191,8 +1185,6 @@ select_for_update .. method:: select_for_update(nowait=False) -.. versionadded:: 1.4 - Returns a queryset that will lock rows until the end of the transaction, generating a ``SELECT ... FOR UPDATE`` SQL statement on supported databases. @@ -1368,8 +1360,6 @@ bulk_create .. method:: bulk_create(objs, batch_size=None) -.. versionadded:: 1.4 - This method inserts the provided list of objects into the database in an efficient manner (generally only 1 query, no matter how many objects there are):: diff --git a/docs/ref/request-response.txt b/docs/ref/request-response.txt index 9e8eec4433..ae1da6cb4b 100644 --- a/docs/ref/request-response.txt +++ b/docs/ref/request-response.txt @@ -262,8 +262,6 @@ Methods .. method:: HttpRequest.get_signed_cookie(key, default=RAISE_ERROR, salt='', max_age=None) - .. versionadded:: 1.4 - Returns a cookie value for a signed cookie, or raises a :class:`~django.core.signing.BadSignature` exception if the signature is no longer valid. If you provide the ``default`` argument the exception @@ -473,9 +471,6 @@ In addition, ``QueryDict`` has the following methods: It's guaranteed to return a list of some sort unless the default value was no list. - .. versionchanged:: 1.4 - The ``default`` parameter was added. - .. method:: QueryDict.setlist(key, list_) Sets the given key to ``list_`` (unlike ``__setitem__()``). @@ -500,8 +495,6 @@ In addition, ``QueryDict`` has the following methods: .. method:: QueryDict.dict() - .. versionadded:: 1.4 - Returns ``dict`` representation of ``QueryDict``. For every (key, list) pair in ``QueryDict``, ``dict`` will have (key, item), where item is one element of the list, using same logic as :meth:`QueryDict.__getitem__()`:: @@ -705,8 +698,6 @@ Methods .. method:: HttpResponse.set_signed_cookie(key, value='', salt='', max_age=None, expires=None, path='/', domain=None, secure=None, httponly=True) - .. versionadded:: 1.4 - Like :meth:`~HttpResponse.set_cookie()`, but :doc:`cryptographic signing
` the cookie before setting it. Use in conjunction with :meth:`HttpRequest.get_signed_cookie`. diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt index df679e7c1f..bfe283cc68 100644 --- a/docs/ref/settings.txt +++ b/docs/ref/settings.txt @@ -325,8 +325,6 @@ want. See :doc:`/ref/contrib/csrf`. CSRF_COOKIE_PATH ---------------- -.. versionadded:: 1.4 - Default: ``'/'`` The path set on the CSRF cookie. This should either match the URL path of your @@ -341,8 +339,6 @@ its own CSRF cookie. CSRF_COOKIE_SECURE ------------------ -.. versionadded:: 1.4 - Default: ``False`` Whether to use a secure cookie for the CSRF cookie. If this is set to ``True``, @@ -756,11 +752,6 @@ name includes any of the following: * SIGNATURE * TOKEN -.. versionchanged:: 1.4 - - We changed ``'PASSWORD'`` ``'PASS'``. ``'API'``, ``'TOKEN'`` and ``'KEY'`` - were added. - Note that these are *partial* matches. ``'PASS'`` will also match PASSWORD, just as ``'TOKEN'`` will also match TOKENIZED and so on. @@ -1117,8 +1108,6 @@ Available formats are :setting:`DATE_FORMAT`, :setting:`TIME_FORMAT`, IGNORABLE_404_URLS ------------------ -.. versionadded:: 1.4 - Default: ``()`` List of compiled regular expression objects describing URLs that should be @@ -1457,8 +1446,6 @@ See also :setting:`DECIMAL_SEPARATOR`, :setting:`THOUSAND_SEPARATOR` and PASSWORD_HASHERS ---------------- -.. versionadded:: 1.4 - See :ref:`auth_password_storage`. Default:: @@ -1544,8 +1531,6 @@ randomly-generated ``SECRET_KEY`` to each new project. SECURE_PROXY_SSL_HEADER ----------------------- -.. versionadded:: 1.4 - Default: ``None`` A tuple representing a HTTP header/value combination that signifies a request @@ -1677,9 +1662,6 @@ protected cookie data. .. _HTTPOnly: https://www.owasp.org/index.php/HTTPOnly -.. versionchanged:: 1.4 - The default value of the setting was changed from ``False`` to ``True``. - .. setting:: SESSION_COOKIE_NAME SESSION_COOKIE_NAME @@ -1809,8 +1791,6 @@ See also :setting:`DATE_FORMAT` and :setting:`SHORT_DATE_FORMAT`. SIGNING_BACKEND --------------- -.. versionadded:: 1.4 - Default: 'django.core.signing.TimestampSigner' The backend used for signing cookies and other data. @@ -1901,10 +1881,6 @@ A tuple of callables that are used to populate the context in ``RequestContext`` These callables take a request object as their argument and return a dictionary of items to be merged into the context. -.. versionadded:: 1.4 - The ``django.core.context_processors.tz`` context processor - was added in this release. - .. setting:: TEMPLATE_DEBUG TEMPLATE_DEBUG @@ -2029,9 +2005,6 @@ TIME_ZONE Default: ``'America/Chicago'`` -.. versionchanged:: 1.4 - The meaning of this setting now depends on the value of :setting:`USE_TZ`. - A string representing the time zone for this installation, or ``None``. `See available choices`_. (Note that list of available choices lists more than one on the same line; you'll want to use just @@ -2148,8 +2121,6 @@ See also :setting:`DECIMAL_SEPARATOR`, :setting:`NUMBER_GROUPING` and USE_TZ ------ -.. versionadded:: 1.4 - Default: ``False`` A boolean that specifies if datetimes will be timezone-aware by default or not. @@ -2180,8 +2151,6 @@ which sets this header is in use. WSGI_APPLICATION ---------------- -.. versionadded:: 1.4 - Default: ``None`` The full Python path of the WSGI application object that Django's built-in diff --git a/docs/ref/signals.txt b/docs/ref/signals.txt index c31c90f4e8..b27a4f87cc 100644 --- a/docs/ref/signals.txt +++ b/docs/ref/signals.txt @@ -480,8 +480,6 @@ Signals only sent when :ref:`running tests `. setting_changed --------------- -.. versionadded:: 1.4 - .. data:: django.test.signals.setting_changed :module: diff --git a/docs/ref/templates/api.txt b/docs/ref/templates/api.txt index db57d2de96..7c17f0a758 100644 --- a/docs/ref/templates/api.txt +++ b/docs/ref/templates/api.txt @@ -221,13 +221,12 @@ straight lookups. Here are some things to keep in mind: self.database_record.delete() sensitive_function.alters_data = True -* .. versionadded:: 1.4 - Occasionally you may want to turn off this feature for other reasons, - and tell the template system to leave a variable un-called no matter - what. To do so, set a ``do_not_call_in_templates`` attribute on the - callable with the value ``True``. The template system then will act as - if your variable is not callable (allowing you to access attributes of - the callable, for example). +* Occasionally you may want to turn off this feature for other reasons, + and tell the template system to leave a variable un-called no matter + what. To do so, set a ``do_not_call_in_templates`` attribute on the + callable with the value ``True``. The template system then will act as + if your variable is not callable (allowing you to access attributes of + the callable, for example). .. _invalid-template-variables: diff --git a/docs/ref/templates/builtins.txt b/docs/ref/templates/builtins.txt index 867d1e5cc0..aab53aed0c 100644 --- a/docs/ref/templates/builtins.txt +++ b/docs/ref/templates/builtins.txt @@ -381,10 +381,6 @@ As you can see, the ``if`` tag may take one or several `` {% elif %}`` clauses, as well as an ``{% else %}`` clause that will be displayed if all previous conditions fail. These clauses are optional. -.. versionadded:: 1.4 - -The ``if`` tag now supports ``{% elif %}`` clauses. - Boolean operators ^^^^^^^^^^^^^^^^^ @@ -743,8 +739,6 @@ escaped, because it's not a format character:: This would display as "It is the 4th of September". -.. versionchanged:: 1.4 - .. note:: The format passed can also be one of the predefined ones @@ -1289,10 +1283,6 @@ Z Time zone offset in seconds. The ``-43200`` to ``4320 UTC is always positive. ================ ======================================== ===================== -.. versionadded:: 1.4 - -The ``e`` and ``o`` format specification characters were added in Django 1.4. - For example:: {{ value|date:"D d M Y" }} @@ -2069,8 +2059,6 @@ If ``value`` is ``"my first post"``, the output will be ``"My First Post"``. truncatechars ^^^^^^^^^^^^^ -.. versionadded:: 1.4 - Truncates a string if it is longer than the specified number of characters. Truncated strings will end with a translatable ellipsis sequence ("..."). @@ -2200,11 +2188,6 @@ It also supports domain-only links ending in one of the original top level domains (``.com``, ``.edu``, ``.gov``, ``.int``, ``.mil``, ``.net``, and ``.org``). For example, ``djangoproject.com`` gets converted. -.. versionchanged:: 1.4 - -Until Django 1.4, only the ``.com``, ``.net`` and ``.org`` suffixes were -supported for domain-only links. - Links can have trailing punctuation (periods, commas, close-parens) and leading punctuation (opening parens), and ``urlize`` will still do the right thing. @@ -2334,8 +2317,6 @@ See :ref:`topic-l10n-templates`. tz ^^ -.. versionadded:: 1.4 - This library provides control over time zone conversions in templates. Like ``l10n``, you only need to load the library using ``{% load tz %}``, but you'll usually also set :setting:`USE_TZ` to ``True`` so that conversion diff --git a/docs/ref/urlresolvers.txt b/docs/ref/urlresolvers.txt index 528f172061..87c0605a11 100644 --- a/docs/ref/urlresolvers.txt +++ b/docs/ref/urlresolvers.txt @@ -71,8 +71,6 @@ You can use ``kwargs`` instead of ``args``. For example:: reverse_lazy() -------------- -.. versionadded:: 1.4 - A lazily evaluated version of `reverse()`_. .. function:: reverse_lazy(viewname, [urlconf=None, args=None, kwargs=None, current_app=None]) diff --git a/docs/ref/urls.txt b/docs/ref/urls.txt index 46332cb42c..5a0b04f9fa 100644 --- a/docs/ref/urls.txt +++ b/docs/ref/urls.txt @@ -114,9 +114,6 @@ value should suffice. See the documentation about :ref:`the 403 (HTTP Forbidden) view ` for more information. -.. versionadded:: 1.4 - ``handler403`` is new in Django 1.4. - handler404 ---------- diff --git a/docs/ref/utils.txt b/docs/ref/utils.txt index 4ff31591c8..942cac2650 100644 --- a/docs/ref/utils.txt +++ b/docs/ref/utils.txt @@ -138,8 +138,6 @@ results. Instead do:: ``django.utils.dateparse`` ========================== -.. versionadded:: 1.4 - .. module:: django.utils.dateparse :synopsis: Functions to parse datetime objects. @@ -788,8 +786,6 @@ For a complete discussion on the usage of the following see the .. function:: override(language, deactivate=False) - .. versionadded:: 1.4 - A Python context manager that uses :func:`django.utils.translation.activate` to fetch the translation object for a given language, installing it as the translation object for the @@ -812,8 +808,6 @@ For a complete discussion on the usage of the following see the .. function:: get_language_from_request(request, check_path=False) - .. versionchanged:: 1.4 - Analyzes the request to find what language the user wants the system to show. Only languages listed in settings.LANGUAGES are taken into account. If the user requests a sublanguage where we have a main language, we send out the main @@ -838,8 +832,6 @@ For a complete discussion on the usage of the following see the ``django.utils.timezone`` ========================= -.. versionadded:: 1.4 - .. module:: django.utils.timezone :synopsis: Timezone support. diff --git a/docs/ref/validators.txt b/docs/ref/validators.txt index b68d6f2772..0536b03d64 100644 --- a/docs/ref/validators.txt +++ b/docs/ref/validators.txt @@ -115,7 +115,6 @@ to, or in lieu of custom ``field.clean()`` methods. ``validate_ipv6_address`` ------------------------- -.. versionadded:: 1.4 .. data:: validate_ipv6_address @@ -123,7 +122,6 @@ to, or in lieu of custom ``field.clean()`` methods. ``validate_ipv46_address`` -------------------------- -.. versionadded:: 1.4 .. data:: validate_ipv46_address diff --git a/docs/topics/auth/default.txt b/docs/topics/auth/default.txt index c4736135b0..76fb7d835b 100644 --- a/docs/topics/auth/default.txt +++ b/docs/topics/auth/default.txt @@ -522,12 +522,10 @@ The permission_required decorator As in the :func:`~django.contrib.auth.decorators.login_required` decorator, ``login_url`` defaults to :setting:`settings.LOGIN_URL `. - .. versionchanged:: 1.4 - - Added ``raise_exception`` parameter. If given, the decorator will raise - :exc:`~django.core.exceptions.PermissionDenied`, prompting - :ref:`the 403 (HTTP Forbidden) view` instead of - redirecting to the login page. + If the ``raise_exception`` parameter is given, the decorator will raise + :exc:`~django.core.exceptions.PermissionDenied`, prompting :ref:`the 403 + (HTTP Forbidden) view` instead of redirecting to the + login page. Applying permissions to generic views ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -552,8 +550,6 @@ password management. These make use of the :ref:`stock auth forms Django provides no default template for the authentication views - however the template context is documented for each view below. -.. versionadded:: 1.4 - The built-in views all return a :class:`~django.template.response.TemplateResponse` instance, which allows you to easily customize the response data before rendering. For more details, @@ -747,11 +743,10 @@ patterns. that can be used to reset the password, and sending that link to the user's registered email address. - .. versionchanged:: 1.4 - Users flagged with an unusable password (see - :meth:`~django.contrib.auth.models.User.set_unusable_password()` - will not be able to request a password reset to prevent misuse - when using an external authentication source like LDAP. + Users flagged with an unusable password (see + :meth:`~django.contrib.auth.models.User.set_unusable_password()` aren't + allowed to request a password reset to prevent misuse when using an + external authentication source like LDAP. **URL name:** ``password_reset`` @@ -769,8 +764,6 @@ patterns. the subject of the email with the reset password link. Defaults to :file:`registration/password_reset_subject.txt` if not supplied. - .. versionadded:: 1.4 - * ``password_reset_form``: Form that will be used to get the email of the user to reset the password for. Defaults to :class:`~django.contrib.auth.forms.PasswordResetForm`. diff --git a/docs/topics/auth/passwords.txt b/docs/topics/auth/passwords.txt index e6345aab2e..0f44444416 100644 --- a/docs/topics/auth/passwords.txt +++ b/docs/topics/auth/passwords.txt @@ -13,10 +13,8 @@ work with hashed passwords. How Django stores passwords =========================== -.. versionadded:: 1.4 - Django 1.4 introduces a new flexible password storage system and uses - PBKDF2 by default. Previous versions of Django used SHA1, and other - algorithms couldn't be chosen. +Django provides a flexible password storage system and uses PBKDF2 by default. +Older versions of Django used SHA1, and other algorithms couldn't be chosen. The :attr:`~django.contrib.auth.models.User.password` attribute of a :class:`~django.contrib.auth.models.User` object is a string in this format:: @@ -173,15 +171,12 @@ Manually managing a user's password .. module:: django.contrib.auth.hashers -.. versionadded:: 1.4 The :mod:`django.contrib.auth.hashers` module provides a set of functions to create and validate hashed password. You can use them independently from the ``User`` model. .. function:: check_password(password, encoded) - .. versionadded:: 1.4 - If you'd like to manually authenticate a user by comparing a plain-text password to the hashed password in the database, use the convenience function :func:`django.contrib.auth.hashers.check_password`. It takes two @@ -191,8 +186,6 @@ Manually managing a user's password .. function:: make_password(password[, salt, hashers]) - .. versionadded:: 1.4 - Creates a hashed password in the format used by this application. It takes one mandatory argument: the password in plain-text. Optionally, you can provide a salt and a hashing algorithm to use, if you don't want to use the @@ -206,7 +199,5 @@ Manually managing a user's password .. function:: is_password_usable(encoded_password) - .. versionadded:: 1.4 - Checks if the given string is a hashed password that has a chance of being verified against :func:`django.contrib.auth.hashers.check_password`. diff --git a/docs/topics/cache.txt b/docs/topics/cache.txt index a15cf58370..9b3e41d0d4 100644 --- a/docs/topics/cache.txt +++ b/docs/topics/cache.txt @@ -482,8 +482,6 @@ include the name of the active :term:`language` -- see also :ref:`how-django-discovers-language-preference`). This allows you to easily cache multilingual sites without having to create the cache key yourself. -.. versionchanged:: 1.4 - Cache keys also include the active :term:`language ` when :setting:`USE_L10N` is set to ``True`` and the :ref:`current time zone ` when :setting:`USE_TZ` is set to ``True``. diff --git a/docs/topics/db/queries.txt b/docs/topics/db/queries.txt index 046c23bdcd..de898c8373 100644 --- a/docs/topics/db/queries.txt +++ b/docs/topics/db/queries.txt @@ -412,14 +412,13 @@ translates (roughly) into the following SQL:: .. _`Keyword Arguments`: http://docs.python.org/tutorial/controlflow.html#keyword-arguments -.. versionchanged:: 1.4 - The field specified in a lookup has to be the name of a model field. - There's one exception though, in case of a - :class:`~django.db.models.ForeignKey` you can specify the field - name suffixed with ``_id``. In this case, the value parameter is expected - to contain the raw value of the foreign model's primary key. For example: - - >>> Entry.objects.filter(blog_id__exact=4) +The field specified in a lookup has to be the name of a model field. There's +one exception though, in case of a :class:`~django.db.models.ForeignKey` you +can specify the field name suffixed with ``_id``. In this case, the value +parameter is expected to contain the raw value of the foreign model's primary +key. For example: + + >>> Entry.objects.filter(blog_id__exact=4) If you pass an invalid keyword argument, a lookup function will raise ``TypeError``. diff --git a/docs/topics/db/tablespaces.txt b/docs/topics/db/tablespaces.txt index 7fcd5588e7..8bf1d07bca 100644 --- a/docs/topics/db/tablespaces.txt +++ b/docs/topics/db/tablespaces.txt @@ -68,6 +68,3 @@ PostgreSQL and Oracle support tablespaces. SQLite and MySQL don't. When you use a backend that lacks support for tablespaces, Django ignores all tablespace-related options. - -.. versionchanged:: 1.4 - Since Django 1.4, the PostgreSQL backend supports tablespaces. diff --git a/docs/topics/db/transactions.txt b/docs/topics/db/transactions.txt index e3c2cadf6d..7716c91681 100644 --- a/docs/topics/db/transactions.txt +++ b/docs/topics/db/transactions.txt @@ -238,9 +238,6 @@ with the PostgreSQL 8, Oracle and MySQL (when using the InnoDB storage engine) backends. Other backends provide the savepoint functions, but they're empty operations -- they don't actually do anything. -.. versionchanged:: 1.4 - Savepoint support for the MySQL backend was added in Django 1.4. - Savepoints aren't especially useful if you are using the default ``autocommit`` behavior of Django. However, if you are using ``commit_on_success`` or ``commit_manually``, each open transaction will build diff --git a/docs/topics/forms/formsets.txt b/docs/topics/forms/formsets.txt index 76849c8e23..b5b02581cd 100644 --- a/docs/topics/forms/formsets.txt +++ b/docs/topics/forms/formsets.txt @@ -139,8 +139,6 @@ As we can see, ``formset.errors`` is a list whose entries correspond to the forms in the formset. Validation was performed for each of the two forms, and the expected error message appears for the second item. -.. versionadded:: 1.4 - We can also check if form data differs from the initial data (i.e. the form was sent without any data):: diff --git a/docs/topics/forms/modelforms.txt b/docs/topics/forms/modelforms.txt index 67d539447c..802150d6c3 100644 --- a/docs/topics/forms/modelforms.txt +++ b/docs/topics/forms/modelforms.txt @@ -625,8 +625,6 @@ exclude:: Providing initial values ------------------------ -.. versionadded:: 1.4 - As with regular formsets, it's possible to :ref:`specify initial data ` for forms in the formset by specifying an ``initial`` parameter when instantiating the model formset class returned by diff --git a/docs/topics/http/decorators.txt b/docs/topics/http/decorators.txt index 83d14a0777..25616a44c0 100644 --- a/docs/topics/http/decorators.txt +++ b/docs/topics/http/decorators.txt @@ -39,8 +39,6 @@ a :class:`django.http.HttpResponseNotAllowed` if the conditions are not met. .. function:: require_safe() - .. versionadded:: 1.4 - Decorator to require that a view only accept the GET and HEAD methods. These methods are commonly considered "safe" because they should not have the significance of taking an action other than retrieving the requested diff --git a/docs/topics/http/sessions.txt b/docs/topics/http/sessions.txt index dac146bf3e..1832a55267 100644 --- a/docs/topics/http/sessions.txt +++ b/docs/topics/http/sessions.txt @@ -110,8 +110,6 @@ server has permissions to read and write to this location. Using cookie-based sessions --------------------------- -.. versionadded:: 1.4 - To use cookies-based sessions, set the :setting:`SESSION_ENGINE` setting to ``"django.contrib.sessions.backends.signed_cookies"``. The session data will be stored using Django's tools for :doc:`cryptographic signing
` @@ -558,9 +556,6 @@ consistently by all browsers. However, when it is honored, it can be a useful way to mitigate the risk of client side script accessing the protected cookie data. -.. versionchanged:: 1.4 - The default value of the setting was changed from ``False`` to ``True``. - .. _HTTPOnly: https://www.owasp.org/index.php/HTTPOnly SESSION_COOKIE_NAME diff --git a/docs/topics/http/urls.txt b/docs/topics/http/urls.txt index 00c07da6ea..8a07d46f77 100644 --- a/docs/topics/http/urls.txt +++ b/docs/topics/http/urls.txt @@ -26,10 +26,9 @@ This mapping can be as short or as long as needed. It can reference other mappings. And, because it's pure Python code, it can be constructed dynamically. -.. versionadded:: 1.4 - Django also provides a way to translate URLs according to the active - language. See the :ref:`internationalization documentation - ` for more information. +Django also provides a way to translate URLs according to the active +language. See the :ref:`internationalization documentation +` for more information. .. _how-django-processes-a-request: @@ -246,9 +245,6 @@ The variables are: * ``handler500`` -- See :data:`django.conf.urls.handler500`. * ``handler403`` -- See :data:`django.conf.urls.handler403`. -.. versionadded:: 1.4 - ``handler403`` is new in Django 1.4. - .. _urlpatterns-view-prefix: The view prefix diff --git a/docs/topics/http/views.txt b/docs/topics/http/views.txt index caa2882f37..9ef521c71d 100644 --- a/docs/topics/http/views.txt +++ b/docs/topics/http/views.txt @@ -199,8 +199,6 @@ One thing to note about 500 views: The 403 (HTTP Forbidden) view ----------------------------- -.. versionadded:: 1.4 - In the same vein as the 404 and 500 views, Django has a view to handle 403 Forbidden errors. If a view results in a 403 exception then Django will, by default, call the view ``django.views.defaults.permission_denied``. diff --git a/docs/topics/i18n/timezones.txt b/docs/topics/i18n/timezones.txt index cefc1667ad..14c81e6665 100644 --- a/docs/topics/i18n/timezones.txt +++ b/docs/topics/i18n/timezones.txt @@ -4,8 +4,6 @@ Time zones ========== -.. versionadded:: 1.4 - .. _time-zones-overview: Overview diff --git a/docs/topics/i18n/translation.txt b/docs/topics/i18n/translation.txt index 0b37c25f18..01f168bc10 100644 --- a/docs/topics/i18n/translation.txt +++ b/docs/topics/i18n/translation.txt @@ -287,8 +287,6 @@ will appear in the ``.po`` file as: msgid "May" msgstr "" -.. versionadded:: 1.4 - Contextual markers are also supported by the :ttag:`trans` and :ttag:`blocktrans` template tags. @@ -507,7 +505,6 @@ It's not possible to mix a template variable inside a string within ``{% trans %}``. If your translations require strings with variables (placeholders), use ``{% blocktrans %}`` instead. -.. versionadded:: 1.4 If you'd like to retrieve a translated string without displaying it, you can use the following syntax:: @@ -533,8 +530,6 @@ or should be used as arguments for other template tags or filters:: {% endfor %}

-.. versionadded:: 1.4 - ``{% trans %}`` also supports :ref:`contextual markers` using the ``context`` keyword: @@ -574,8 +569,6 @@ You can use multiple expressions inside a single ``blocktrans`` tag:: .. note:: The previous more verbose format is still supported: ``{% blocktrans with book|title as book_t and author|title as author_t %}`` -.. versionchanged:: 1.4 - If resolving one of the block arguments fails, blocktrans will fall back to the default language by deactivating the currently active language temporarily with the :func:`~django.utils.translation.deactivate_all` @@ -620,8 +613,6 @@ be retrieved (and stored) beforehand:: This is a URL: {{ the_url }} {% endblocktrans %} -.. versionadded:: 1.4 - ``{% blocktrans %}`` also supports :ref:`contextual markers` using the ``context`` keyword: @@ -1410,8 +1401,6 @@ For example, your :setting:`MIDDLEWARE_CLASSES` might look like this:: ``LocaleMiddleware`` tries to determine the user's language preference by following this algorithm: -.. versionchanged:: 1.4 - * First, it looks for the language prefix in the requested URL. This is only performed when you are using the ``i18n_patterns`` function in your root URLconf. See :ref:`url-internationalization` for more information diff --git a/docs/topics/logging.txt b/docs/topics/logging.txt index 652ad397ff..3a5a8cb489 100644 --- a/docs/topics/logging.txt +++ b/docs/topics/logging.txt @@ -504,8 +504,6 @@ logging module. .. class:: CallbackFilter(callback) - .. versionadded:: 1.4 - This filter accepts a callback function (which should accept a single argument, the record to be logged), and calls it for each record that passes through the filter. Handling of that record will not proceed if the callback @@ -542,8 +540,6 @@ logging module. .. class:: RequireDebugFalse() - .. versionadded:: 1.4 - This filter will only pass on records when settings.DEBUG is False. This filter is used as follows in the default :setting:`LOGGING` diff --git a/docs/topics/pagination.txt b/docs/topics/pagination.txt index b504b2a373..17747c22ff 100644 --- a/docs/topics/pagination.txt +++ b/docs/topics/pagination.txt @@ -126,12 +126,6 @@ pages along with any interesting information from the objects themselves:: -.. versionchanged:: 1.4 - Previously, you would need to use - ``{% for contact in contacts.object_list %}``, since the ``Page`` - object was not iterable. - - ``Paginator`` objects ===================== @@ -234,7 +228,6 @@ using :meth:`Paginator.page`. .. class:: Page(object_list, number, paginator) -.. versionadded:: 1.4 A page acts like a sequence of :attr:`Page.object_list` when using ``len()`` or iterating it directly. diff --git a/docs/topics/signing.txt b/docs/topics/signing.txt index 07de97e2f3..0758ce8970 100644 --- a/docs/topics/signing.txt +++ b/docs/topics/signing.txt @@ -5,8 +5,6 @@ Cryptographic signing .. module:: django.core.signing :synopsis: Django's signing framework. -.. versionadded:: 1.4 - The golden rule of Web application security is to never trust data from untrusted sources. Sometimes it can be useful to pass data through an untrusted medium. Cryptographically signed values can be passed through an diff --git a/docs/topics/testing/advanced.txt b/docs/topics/testing/advanced.txt index 0674b2e41b..26dc8ee1ae 100644 --- a/docs/topics/testing/advanced.txt +++ b/docs/topics/testing/advanced.txt @@ -242,8 +242,6 @@ set up, execute and tear down the test suite. write your own test runner, ensure accept and handle the ``**kwargs`` parameter. - .. versionadded:: 1.4 - Your test runner may also define additional command-line options. If you add an ``option_list`` attribute to a subclassed test runner, those options will be added to the list of command-line options that @@ -254,8 +252,6 @@ Attributes .. attribute:: DjangoTestSuiteRunner.option_list - .. versionadded:: 1.4 - This is the tuple of ``optparse`` options which will be fed into the management command's ``OptionParser`` for parsing arguments. See the documentation for Python's ``optparse`` module for more details. diff --git a/docs/topics/testing/overview.txt b/docs/topics/testing/overview.txt index 0548f66481..e51741e549 100644 --- a/docs/topics/testing/overview.txt +++ b/docs/topics/testing/overview.txt @@ -860,8 +860,6 @@ SimpleTestCase .. class:: SimpleTestCase() -.. versionadded:: 1.4 - A very thin subclass of :class:`unittest.TestCase`, it extends it with some basic functionality like: @@ -992,8 +990,6 @@ additions, including: LiveServerTestCase ~~~~~~~~~~~~~~~~~~ -.. versionadded:: 1.4 - .. class:: LiveServerTestCase() ``LiveServerTestCase`` does basically the same as @@ -1346,8 +1342,6 @@ Overriding settings .. method:: TestCase.settings -.. versionadded:: 1.4 - For testing purposes it's often useful to change a setting temporarily and revert to the original value after running the testing code. For this use case Django provides a standard Python context manager (see :pep:`343`) @@ -1459,8 +1453,6 @@ your test suite. .. method:: SimpleTestCase.assertRaisesMessage(expected_exception, expected_message, callable_obj=None, *args, **kwargs) - .. versionadded:: 1.4 - Asserts that execution of callable ``callable_obj`` raised the ``expected_exception`` exception and that such exception has an ``expected_message`` representation. Any other outcome is reported as a @@ -1469,8 +1461,6 @@ your test suite. .. method:: SimpleTestCase.assertFieldOutput(self, fieldclass, valid, invalid, field_args=None, field_kwargs=None, empty_value=u'') - .. versionadded:: 1.4 - Asserts that a form field behaves correctly with various inputs. :param fieldclass: the class of the field to be tested. @@ -1495,8 +1485,6 @@ your test suite. that ``text`` appears in the content of the response. If ``count`` is provided, ``text`` must occur exactly ``count`` times in the response. - .. versionadded:: 1.4 - Set ``html`` to ``True`` to handle ``text`` as HTML. The comparison with the response content will be based on HTML semantics instead of character-by-character equality. Whitespace is ignored in most cases, @@ -1508,8 +1496,6 @@ your test suite. Asserts that a ``Response`` instance produced the given ``status_code`` and that ``text`` does not appears in the content of the response. - .. versionadded:: 1.4 - Set ``html`` to ``True`` to handle ``text`` as HTML. The comparison with the response content will be based on HTML semantics instead of character-by-character equality. Whitespace is ignored in most cases, @@ -1538,8 +1524,6 @@ your test suite. The name is a string such as ``'admin/index.html'``. - .. versionadded:: 1.4 - You can use this as a context manager, like this:: with self.assertTemplateUsed('index.html'): @@ -1552,8 +1536,6 @@ your test suite. Asserts that the template with the given name was *not* used in rendering the response. - .. versionadded:: 1.4 - You can use this as a context manager in the same way as :meth:`~TestCase.assertTemplateUsed`. @@ -1580,12 +1562,6 @@ your test suite. provide an implicit ordering, you can set the ``ordered`` parameter to ``False``, which turns the comparison into a Python set comparison. - .. versionchanged:: 1.4 - The ``ordered`` parameter is new in version 1.4. In earlier versions, - you would need to ensure the queryset is ordered consistently, possibly - via an explicit ``order_by()`` call on the queryset prior to - comparison. - .. versionchanged:: 1.6 The method now checks for undefined order and raises ``ValueError`` if undefined order is spotted. The ordering is seen as undefined if @@ -1612,8 +1588,6 @@ your test suite. .. method:: SimpleTestCase.assertHTMLEqual(html1, html2, msg=None) - .. versionadded:: 1.4 - Asserts that the strings ``html1`` and ``html2`` are equal. The comparison is based on HTML semantics. The comparison takes following things into account: @@ -1643,8 +1617,6 @@ your test suite. .. method:: SimpleTestCase.assertHTMLNotEqual(html1, html2, msg=None) - .. versionadded:: 1.4 - Asserts that the strings ``html1`` and ``html2`` are *not* equal. The comparison is based on HTML semantics. See :meth:`~SimpleTestCase.assertHTMLEqual` for details. -- cgit v1.3 From a04df803a590c5bffd9437d9199bc0107ba0e966 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sat, 29 Dec 2012 18:52:50 -0500 Subject: Removed links to deprecated IGNORABLE_404_STARTS/ENDS settings. refs #19516 and 641acf76e7 --- docs/internals/deprecation.txt | 6 +++--- docs/releases/1.4-alpha-1.txt | 17 +++++++++-------- docs/releases/1.4-beta-1.txt | 17 +++++++++-------- docs/releases/1.4.txt | 17 +++++++++-------- 4 files changed, 30 insertions(+), 27 deletions(-) (limited to 'docs') diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt index 74f544c220..c976f5a880 100644 --- a/docs/internals/deprecation.txt +++ b/docs/internals/deprecation.txt @@ -227,9 +227,9 @@ these changes. be accessible through their GB-prefixed names (GB is the correct ISO 3166 code for United Kingdom). -* The :setting:`IGNORABLE_404_STARTS` and :setting:`IGNORABLE_404_ENDS` - settings have been superseded by :setting:`IGNORABLE_404_URLS` in - the 1.4 release. They will be removed. +* The ``IGNORABLE_404_STARTS`` and ``IGNORABLE_404_ENDS`` settings have been + superseded by :setting:`IGNORABLE_404_URLS` in the 1.4 release. They will be + removed. * The :doc:`form wizard ` has been refactored to use class-based views with pluggable backends in 1.4. diff --git a/docs/releases/1.4-alpha-1.txt b/docs/releases/1.4-alpha-1.txt index fc19e90384..4086cfdecc 100644 --- a/docs/releases/1.4-alpha-1.txt +++ b/docs/releases/1.4-alpha-1.txt @@ -813,11 +813,12 @@ For more details, see the documentation about Until Django 1.3, it was possible to exclude some URLs from Django's :doc:`404 error reporting
` by adding prefixes to -:setting:`IGNORABLE_404_STARTS` and suffixes to :setting:`IGNORABLE_404_ENDS`. +``IGNORABLE_404_STARTS`` and suffixes to ``IGNORABLE_404_ENDS``. In Django 1.4, these two settings are superseded by -:setting:`IGNORABLE_404_URLS`, which is a list of compiled regular expressions. -Django won't send an email for 404 errors on URLs that match any of them. +:setting:`IGNORABLE_404_URLS`, which is a list of compiled regular +expressions. Django won't send an email for 404 errors on URLs that match any +of them. Furthermore, the previous settings had some rather arbitrary default values:: @@ -827,12 +828,12 @@ Furthermore, the previous settings had some rather arbitrary default values:: It's not Django's role to decide if your website has a legacy ``/cgi-bin/`` section or a ``favicon.ico``. As a consequence, the default values of -:setting:`IGNORABLE_404_URLS`, :setting:`IGNORABLE_404_STARTS` and -:setting:`IGNORABLE_404_ENDS` are all now empty. +:setting:`IGNORABLE_404_URLS`, ``IGNORABLE_404_STARTS``, and +``IGNORABLE_404_ENDS`` are all now empty. -If you have customized :setting:`IGNORABLE_404_STARTS` or -:setting:`IGNORABLE_404_ENDS`, or if you want to keep the old default value, -you should add the following lines in your settings file:: +If you have customized ``IGNORABLE_404_STARTS`` or ``IGNORABLE_404_ENDS``, or +if you want to keep the old default value, you should add the following lines +in your settings file:: import re IGNORABLE_404_URLS = ( diff --git a/docs/releases/1.4-beta-1.txt b/docs/releases/1.4-beta-1.txt index 2c84d21b8d..a8732a9e65 100644 --- a/docs/releases/1.4-beta-1.txt +++ b/docs/releases/1.4-beta-1.txt @@ -881,11 +881,12 @@ For more details, see the documentation about Until Django 1.3, it was possible to exclude some URLs from Django's :doc:`404 error reporting` by adding prefixes to -:setting:`IGNORABLE_404_STARTS` and suffixes to :setting:`IGNORABLE_404_ENDS`. +``IGNORABLE_404_STARTS`` and suffixes to ``IGNORABLE_404_ENDS``. In Django 1.4, these two settings are superseded by -:setting:`IGNORABLE_404_URLS`, which is a list of compiled regular expressions. -Django won't send an email for 404 errors on URLs that match any of them. +:setting:`IGNORABLE_404_URLS`, which is a list of compiled regular +expressions. Django won't send an email for 404 errors on URLs that match any +of them. Furthermore, the previous settings had some rather arbitrary default values:: @@ -895,12 +896,12 @@ Furthermore, the previous settings had some rather arbitrary default values:: It's not Django's role to decide if your website has a legacy ``/cgi-bin/`` section or a ``favicon.ico``. As a consequence, the default values of -:setting:`IGNORABLE_404_URLS`, :setting:`IGNORABLE_404_STARTS` and -:setting:`IGNORABLE_404_ENDS` are all now empty. +:setting:`IGNORABLE_404_URLS`, ``IGNORABLE_404_STARTS``, and +``IGNORABLE_404_ENDS`` are all now empty. -If you have customized :setting:`IGNORABLE_404_STARTS` or -:setting:`IGNORABLE_404_ENDS`, or if you want to keep the old default value, -you should add the following lines in your settings file:: +If you have customized ``IGNORABLE_404_STARTS`` or ``IGNORABLE_404_ENDS``, or +if you want to keep the old default value, you should add the following lines +in your settings file:: import re IGNORABLE_404_URLS = ( diff --git a/docs/releases/1.4.txt b/docs/releases/1.4.txt index d700ba8b89..cf53b37f17 100644 --- a/docs/releases/1.4.txt +++ b/docs/releases/1.4.txt @@ -966,11 +966,12 @@ For more details, see the documentation about Until Django 1.3, it was possible to exclude some URLs from Django's :doc:`404 error reporting` by adding prefixes to -:setting:`IGNORABLE_404_STARTS` and suffixes to :setting:`IGNORABLE_404_ENDS`. +``IGNORABLE_404_STARTS`` and suffixes to ``IGNORABLE_404_ENDS``. In Django 1.4, these two settings are superseded by -:setting:`IGNORABLE_404_URLS`, which is a list of compiled regular expressions. -Django won't send an email for 404 errors on URLs that match any of them. +:setting:`IGNORABLE_404_URLS`, which is a list of compiled regular +expressions. Django won't send an email for 404 errors on URLs that match any +of them. Furthermore, the previous settings had some rather arbitrary default values:: @@ -980,12 +981,12 @@ Furthermore, the previous settings had some rather arbitrary default values:: It's not Django's role to decide if your website has a legacy ``/cgi-bin/`` section or a ``favicon.ico``. As a consequence, the default values of -:setting:`IGNORABLE_404_URLS`, :setting:`IGNORABLE_404_STARTS` and -:setting:`IGNORABLE_404_ENDS` are all now empty. +:setting:`IGNORABLE_404_URLS`, ``IGNORABLE_404_STARTS``, and +``IGNORABLE_404_ENDS`` are all now empty. -If you have customized :setting:`IGNORABLE_404_STARTS` or -:setting:`IGNORABLE_404_ENDS`, or if you want to keep the old default value, -you should add the following lines in your settings file:: +If you have customized ``IGNORABLE_404_STARTS`` or ``IGNORABLE_404_ENDS``, or +if you want to keep the old default value, you should add the following lines +in your settings file:: import re IGNORABLE_404_URLS = ( -- cgit v1.3 From acc5396e6d0ac49ae9dc6abc08903b81e6553199 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sun, 30 Dec 2012 15:19:22 +0100 Subject: Fixed #19519 -- Fired request_finished in the WSGI iterable's close(). --- django/core/handlers/wsgi.py | 4 ++-- django/http/response.py | 10 ++++++++- django/test/client.py | 35 +++++++++++++++++++----------- django/test/utils.py | 8 ++++++- docs/ref/request-response.txt | 2 ++ docs/ref/signals.txt | 12 +++++++++++ docs/releases/1.5.txt | 13 +++++++++++ tests/regressiontests/handlers/tests.py | 38 ++++++++++++++++++++++++++++++--- tests/regressiontests/handlers/urls.py | 9 ++++++++ 9 files changed, 111 insertions(+), 20 deletions(-) create mode 100644 tests/regressiontests/handlers/urls.py (limited to 'docs') diff --git a/django/core/handlers/wsgi.py b/django/core/handlers/wsgi.py index 426679ca7b..a9fa094429 100644 --- a/django/core/handlers/wsgi.py +++ b/django/core/handlers/wsgi.py @@ -253,8 +253,8 @@ class WSGIHandler(base.BaseHandler): response = http.HttpResponseBadRequest() else: response = self.get_response(request) - finally: - signals.request_finished.send(sender=self.__class__) + + response._handler_class = self.__class__ try: status_text = STATUS_CODE_TEXT[response.status_code] diff --git a/django/http/response.py b/django/http/response.py index d667ba6eed..48a401adcb 100644 --- a/django/http/response.py +++ b/django/http/response.py @@ -10,6 +10,7 @@ except ImportError: from urlparse import urlparse from django.conf import settings +from django.core import signals from django.core import signing from django.core.exceptions import SuspiciousOperation from django.http.cookie import SimpleCookie @@ -40,6 +41,9 @@ class HttpResponseBase(six.Iterator): self._headers = {} self._charset = settings.DEFAULT_CHARSET self._closable_objects = [] + # This parameter is set by the handler. It's necessary to preserve the + # historical behavior of request_finished. + self._handler_class = None if mimetype: warnings.warn("Using mimetype keyword argument is deprecated, use" " content_type instead", @@ -226,7 +230,11 @@ class HttpResponseBase(six.Iterator): # See http://blog.dscpl.com.au/2012/10/obligations-for-calling-close-on.html def close(self): for closable in self._closable_objects: - closable.close() + try: + closable.close() + except Exception: + pass + signals.request_finished.send(sender=self._handler_class) def write(self, content): raise Exception("This %s instance is not writable" % self.__class__.__name__) diff --git a/django/test/client.py b/django/test/client.py index 015ee1309a..77d4de0524 100644 --- a/django/test/client.py +++ b/django/test/client.py @@ -26,7 +26,6 @@ from django.utils.http import urlencode from django.utils.importlib import import_module from django.utils.itercompat import is_iterable from django.utils import six -from django.db import close_connection from django.test.utils import ContextList __all__ = ('Client', 'RequestFactory', 'encode_file', 'encode_multipart') @@ -72,6 +71,14 @@ class FakePayload(object): self.__len += len(content) +def closing_iterator_wrapper(iterable, close): + try: + for item in iterable: + yield item + finally: + close() + + class ClientHandler(BaseHandler): """ A HTTP Handler that can be used for testing purposes. @@ -92,18 +99,20 @@ class ClientHandler(BaseHandler): self.load_middleware() signals.request_started.send(sender=self.__class__) - try: - request = WSGIRequest(environ) - # sneaky little hack so that we can easily get round - # CsrfViewMiddleware. This makes life easier, and is probably - # required for backwards compatibility with external tests against - # admin views. - request._dont_enforce_csrf_checks = not self.enforce_csrf_checks - response = self.get_response(request) - finally: - signals.request_finished.disconnect(close_connection) - signals.request_finished.send(sender=self.__class__) - signals.request_finished.connect(close_connection) + request = WSGIRequest(environ) + # sneaky little hack so that we can easily get round + # CsrfViewMiddleware. This makes life easier, and is probably + # required for backwards compatibility with external tests against + # admin views. + request._dont_enforce_csrf_checks = not self.enforce_csrf_checks + response = self.get_response(request) + # We're emulating a WSGI server; we must call the close method + # on completion. + if response.streaming: + response.streaming_content = closing_iterator_wrapper( + response.streaming_content, response.close) + else: + response.close() return response diff --git a/django/test/utils.py b/django/test/utils.py index 8114ae0e6a..a1ff826d6e 100644 --- a/django/test/utils.py +++ b/django/test/utils.py @@ -4,6 +4,8 @@ from xml.dom.minidom import parseString, Node from django.conf import settings, UserSettingsHolder from django.core import mail +from django.core.signals import request_finished +from django.db import close_connection from django.test.signals import template_rendered, setting_changed from django.template import Template, loader, TemplateDoesNotExist from django.template.loaders import cached @@ -68,8 +70,10 @@ def setup_test_environment(): """Perform any global pre-test setup. This involves: - Installing the instrumented test renderer - - Set the email backend to the locmem email backend. + - Setting the email backend to the locmem email backend. - Setting the active locale to match the LANGUAGE_CODE setting. + - Disconnecting the request_finished signal to avoid closing + the database connection within tests. """ Template.original_render = Template._render Template._render = instrumented_test_render @@ -81,6 +85,8 @@ def setup_test_environment(): deactivate() + request_finished.disconnect(close_connection) + def teardown_test_environment(): """Perform any global post-test teardown. This involves: diff --git a/docs/ref/request-response.txt b/docs/ref/request-response.txt index ae1da6cb4b..a8e0ef3f51 100644 --- a/docs/ref/request-response.txt +++ b/docs/ref/request-response.txt @@ -790,6 +790,8 @@ types of HTTP responses. Like ``HttpResponse``, these subclasses live in :class:`~django.template.response.SimpleTemplateResponse`, and the ``render`` method must itself return a valid response object. +.. _httpresponse-streaming: + StreamingHttpResponse objects ============================= diff --git a/docs/ref/signals.txt b/docs/ref/signals.txt index b27a4f87cc..f2f1459bf0 100644 --- a/docs/ref/signals.txt +++ b/docs/ref/signals.txt @@ -448,6 +448,18 @@ request_finished Sent when Django finishes processing an HTTP request. +.. note:: + + When a view returns a :ref:`streaming response `, + this signal is sent only after the entire response is consumed by the + client (strictly speaking, by the WSGI gateway). + +.. versionchanged:: 1.5 + + Before Django 1.5, this signal was fired before sending the content to the + client. In order to accomodate streaming responses, it is now fired after + sending the content. + Arguments sent with this signal: ``sender`` diff --git a/docs/releases/1.5.txt b/docs/releases/1.5.txt index a449f4ab12..c5e8c61922 100644 --- a/docs/releases/1.5.txt +++ b/docs/releases/1.5.txt @@ -411,6 +411,19 @@ attribute. Developers wishing to access the raw POST data for these cases, should use the :attr:`request.body ` attribute instead. +:data:`~django.core.signals.request_finished` signal +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Django used to send the :data:`~django.core.signals.request_finished` signal +as soon as the view function returned a response. This interacted badly with +:ref:`streaming responses ` that delay content +generation. + +This signal is now sent after the content is fully consumed by the WSGI +gateway. This might be backwards incompatible if you rely on the signal being +fired before sending the response content to the client. If you do, you should +consider using a middleware instead. + OPTIONS, PUT and DELETE requests in the test client ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/tests/regressiontests/handlers/tests.py b/tests/regressiontests/handlers/tests.py index 9cd5816219..3cab2aca57 100644 --- a/tests/regressiontests/handlers/tests.py +++ b/tests/regressiontests/handlers/tests.py @@ -1,10 +1,11 @@ from django.core.handlers.wsgi import WSGIHandler -from django.test import RequestFactory +from django.core import signals +from django.test import RequestFactory, TestCase from django.test.utils import override_settings from django.utils import six -from django.utils import unittest -class HandlerTests(unittest.TestCase): + +class HandlerTests(TestCase): # Mangle settings so the handler will fail @override_settings(MIDDLEWARE_CLASSES=42) @@ -27,3 +28,34 @@ class HandlerTests(unittest.TestCase): handler = WSGIHandler() response = handler(environ, lambda *a, **k: None) self.assertEqual(response.status_code, 400) + + +class SignalsTests(TestCase): + urls = 'regressiontests.handlers.urls' + + def setUp(self): + self.signals = [] + signals.request_started.connect(self.register_started) + signals.request_finished.connect(self.register_finished) + + def tearDown(self): + signals.request_started.disconnect(self.register_started) + signals.request_finished.disconnect(self.register_finished) + + def register_started(self, **kwargs): + self.signals.append('started') + + def register_finished(self, **kwargs): + self.signals.append('finished') + + def test_request_signals(self): + response = self.client.get('/regular/') + self.assertEqual(self.signals, ['started', 'finished']) + self.assertEqual(response.content, b"regular content") + + def test_request_signals_streaming_response(self): + response = self.client.get('/streaming/') + self.assertEqual(self.signals, ['started']) + # Avoid self.assertContains, because it explicitly calls response.close() + self.assertEqual(b''.join(response.streaming_content), b"streaming content") + self.assertEqual(self.signals, ['started', 'finished']) diff --git a/tests/regressiontests/handlers/urls.py b/tests/regressiontests/handlers/urls.py new file mode 100644 index 0000000000..8570f04696 --- /dev/null +++ b/tests/regressiontests/handlers/urls.py @@ -0,0 +1,9 @@ +from __future__ import unicode_literals + +from django.conf.urls import patterns, url +from django.http import HttpResponse, StreamingHttpResponse + +urlpatterns = patterns('', + url(r'^regular/$', lambda request: HttpResponse(b"regular content")), + url(r'^streaming/$', lambda request: StreamingHttpResponse([b"streaming", b" ", b"content"])), +) -- cgit v1.3 From 9180146d21cf2a31eec994b4adc0e50c7120f17f Mon Sep 17 00:00:00 2001 From: Julien Phalip Date: Mon, 31 Dec 2012 09:34:08 -0800 Subject: Fixed #19453 -- Ensured that the decorated function's arguments are obfuscated in the @sensitive_variables decorator's frame, in case the variables associated with those arguments were meant to be obfuscated from the decorated function's frame. Thanks to vzima for the report. --- django/views/debug.py | 22 ++++--- django/views/decorators/debug.py | 4 +- docs/howto/error-reporting.txt | 14 +++++ tests/regressiontests/views/tests/debug.py | 92 ++++++++++++++++++++++++------ tests/regressiontests/views/views.py | 33 +++++++++++ 5 files changed, 137 insertions(+), 28 deletions(-) (limited to 'docs') diff --git a/django/views/debug.py b/django/views/debug.py index aaa7e40efe..e5f4c70191 100644 --- a/django/views/debug.py +++ b/django/views/debug.py @@ -172,13 +172,12 @@ class SafeExceptionReporterFilter(ExceptionReporterFilter): break current_frame = current_frame.f_back - cleansed = [] + cleansed = {} if self.is_active(request) and sensitive_variables: if sensitive_variables == '__ALL__': # Cleanse all variables for name, value in tb_frame.f_locals.items(): - cleansed.append((name, CLEANSED_SUBSTITUTE)) - return cleansed + cleansed[name] = CLEANSED_SUBSTITUTE else: # Cleanse specified variables for name, value in tb_frame.f_locals.items(): @@ -187,16 +186,25 @@ class SafeExceptionReporterFilter(ExceptionReporterFilter): elif isinstance(value, HttpRequest): # Cleanse the request's POST parameters. value = self.get_request_repr(value) - cleansed.append((name, value)) - return cleansed + cleansed[name] = value else: # Potentially cleanse only the request if it's one of the frame variables. for name, value in tb_frame.f_locals.items(): if isinstance(value, HttpRequest): # Cleanse the request's POST parameters. value = self.get_request_repr(value) - cleansed.append((name, value)) - return cleansed + cleansed[name] = value + + if (tb_frame.f_code.co_name == 'sensitive_variables_wrapper' + and 'sensitive_variables_wrapper' in tb_frame.f_locals): + # For good measure, obfuscate the decorated function's arguments in + # the sensitive_variables decorator's frame, in case the variables + # associated with those arguments were meant to be obfuscated from + # the decorated function's frame. + cleansed['func_args'] = CLEANSED_SUBSTITUTE + cleansed['func_kwargs'] = CLEANSED_SUBSTITUTE + + return cleansed.items() class ExceptionReporter(object): """ diff --git a/django/views/decorators/debug.py b/django/views/decorators/debug.py index 5c222963d3..78ae6b1442 100644 --- a/django/views/decorators/debug.py +++ b/django/views/decorators/debug.py @@ -26,12 +26,12 @@ def sensitive_variables(*variables): """ def decorator(func): @functools.wraps(func) - def sensitive_variables_wrapper(*args, **kwargs): + def sensitive_variables_wrapper(*func_args, **func_kwargs): if variables: sensitive_variables_wrapper.sensitive_variables = variables else: sensitive_variables_wrapper.sensitive_variables = '__ALL__' - return func(*args, **kwargs) + return func(*func_args, **func_kwargs) return sensitive_variables_wrapper return decorator diff --git a/docs/howto/error-reporting.txt b/docs/howto/error-reporting.txt index 35add32e4c..98b3b4e4d8 100644 --- a/docs/howto/error-reporting.txt +++ b/docs/howto/error-reporting.txt @@ -153,6 +153,20 @@ production environment (that is, where :setting:`DEBUG` is set to ``False``): def my_function(): ... + .. admonition:: When using mutiple decorators + + If the variable you want to hide is also a function argument (e.g. + '``user``' in the following example), and if the decorated function has + mutiple decorators, then make sure to place ``@sensible_variables`` at + the top of the decorator chain. This way it will also hide the function + argument as it gets passed through the other decorators:: + + @sensitive_variables('user', 'pw', 'cc') + @some_decorator + @another_decorator + def process_info(user): + ... + .. function:: sensitive_post_parameters(*parameters) If one of your views receives an :class:`~django.http.HttpRequest` object diff --git a/tests/regressiontests/views/tests/debug.py b/tests/regressiontests/views/tests/debug.py index 4fdaad5010..0e36948b98 100644 --- a/tests/regressiontests/views/tests/debug.py +++ b/tests/regressiontests/views/tests/debug.py @@ -7,7 +7,6 @@ import inspect import os import sys -from django.conf import settings from django.core import mail from django.core.files.uploadedfile import SimpleUploadedFile from django.core.urlresolvers import reverse @@ -19,7 +18,8 @@ from django.views.debug import ExceptionReporter from .. import BrokenException, except_args from ..views import (sensitive_view, non_sensitive_view, paranoid_view, - custom_exception_reporter_filter_view, sensitive_method_view) + custom_exception_reporter_filter_view, sensitive_method_view, + sensitive_args_function_caller, sensitive_kwargs_function_caller) @override_settings(DEBUG=True, TEMPLATE_DEBUG=True) @@ -306,17 +306,28 @@ class ExceptionReportTestMixin(object): response = view(request) self.assertEqual(len(mail.outbox), 1) email = mail.outbox[0] + # Frames vars are never shown in plain text email reports. - body = force_text(email.body) - self.assertNotIn('cooked_eggs', body) - self.assertNotIn('scrambled', body) - self.assertNotIn('sauce', body) - self.assertNotIn('worcestershire', body) + body_plain = force_text(email.body) + self.assertNotIn('cooked_eggs', body_plain) + self.assertNotIn('scrambled', body_plain) + self.assertNotIn('sauce', body_plain) + self.assertNotIn('worcestershire', body_plain) + + # Frames vars are shown in html email reports. + body_html = force_text(email.alternatives[0][0]) + self.assertIn('cooked_eggs', body_html) + self.assertIn('scrambled', body_html) + self.assertIn('sauce', body_html) + self.assertIn('worcestershire', body_html) + if check_for_POST_params: for k, v in self.breakfast_data.items(): # All POST parameters are shown. - self.assertIn(k, body) - self.assertIn(v, body) + self.assertIn(k, body_plain) + self.assertIn(v, body_plain) + self.assertIn(k, body_html) + self.assertIn(v, body_html) def verify_safe_email(self, view, check_for_POST_params=True): """ @@ -328,22 +339,35 @@ class ExceptionReportTestMixin(object): response = view(request) self.assertEqual(len(mail.outbox), 1) email = mail.outbox[0] + # Frames vars are never shown in plain text email reports. - body = force_text(email.body) - self.assertNotIn('cooked_eggs', body) - self.assertNotIn('scrambled', body) - self.assertNotIn('sauce', body) - self.assertNotIn('worcestershire', body) + body_plain = force_text(email.body) + self.assertNotIn('cooked_eggs', body_plain) + self.assertNotIn('scrambled', body_plain) + self.assertNotIn('sauce', body_plain) + self.assertNotIn('worcestershire', body_plain) + + # Frames vars are shown in html email reports. + body_html = force_text(email.alternatives[0][0]) + self.assertIn('cooked_eggs', body_html) + self.assertIn('scrambled', body_html) + self.assertIn('sauce', body_html) + self.assertNotIn('worcestershire', body_html) + if check_for_POST_params: for k, v in self.breakfast_data.items(): # All POST parameters' names are shown. - self.assertIn(k, body) + self.assertIn(k, body_plain) # Non-sensitive POST parameters' values are shown. - self.assertIn('baked-beans-value', body) - self.assertIn('hash-brown-value', body) + self.assertIn('baked-beans-value', body_plain) + self.assertIn('hash-brown-value', body_plain) + self.assertIn('baked-beans-value', body_html) + self.assertIn('hash-brown-value', body_html) # Sensitive POST parameters' values are not shown. - self.assertNotIn('sausage-value', body) - self.assertNotIn('bacon-value', body) + self.assertNotIn('sausage-value', body_plain) + self.assertNotIn('bacon-value', body_plain) + self.assertNotIn('sausage-value', body_html) + self.assertNotIn('bacon-value', body_html) def verify_paranoid_email(self, view): """ @@ -445,6 +469,36 @@ class ExceptionReporterFilterTests(TestCase, ExceptionReportTestMixin): self.verify_safe_email(sensitive_method_view, check_for_POST_params=False) + def test_sensitive_function_arguments(self): + """ + Ensure that sensitive variables don't leak in the sensitive_variables + decorator's frame, when those variables are passed as arguments to the + decorated function. + Refs #19453. + """ + with self.settings(DEBUG=True): + self.verify_unsafe_response(sensitive_args_function_caller) + self.verify_unsafe_email(sensitive_args_function_caller) + + with self.settings(DEBUG=False): + self.verify_safe_response(sensitive_args_function_caller, check_for_POST_params=False) + self.verify_safe_email(sensitive_args_function_caller, check_for_POST_params=False) + + def test_sensitive_function_keyword_arguments(self): + """ + Ensure that sensitive variables don't leak in the sensitive_variables + decorator's frame, when those variables are passed as keyword arguments + to the decorated function. + Refs #19453. + """ + with self.settings(DEBUG=True): + self.verify_unsafe_response(sensitive_kwargs_function_caller) + self.verify_unsafe_email(sensitive_kwargs_function_caller) + + with self.settings(DEBUG=False): + self.verify_safe_response(sensitive_kwargs_function_caller, check_for_POST_params=False) + self.verify_safe_email(sensitive_kwargs_function_caller, check_for_POST_params=False) + class AjaxResponseExceptionReporterFilter(TestCase, ExceptionReportTestMixin): """ diff --git a/tests/regressiontests/views/views.py b/tests/regressiontests/views/views.py index ed9d61144a..748f07637f 100644 --- a/tests/regressiontests/views/views.py +++ b/tests/regressiontests/views/views.py @@ -132,6 +132,7 @@ def send_log(request, exc_info): ][0] orig_filters = admin_email_handler.filters admin_email_handler.filters = [] + admin_email_handler.include_html = True logger.error('Internal Server Error: %s', request.path, exc_info=exc_info, extra={ @@ -184,6 +185,38 @@ def paranoid_view(request): send_log(request, exc_info) return technical_500_response(request, *exc_info) +def sensitive_args_function_caller(request): + try: + sensitive_args_function(''.join(['w', 'o', 'r', 'c', 'e', 's', 't', 'e', 'r', 's', 'h', 'i', 'r', 'e'])) + except Exception: + exc_info = sys.exc_info() + send_log(request, exc_info) + return technical_500_response(request, *exc_info) + +@sensitive_variables('sauce') +def sensitive_args_function(sauce): + # Do not just use plain strings for the variables' values in the code + # so that the tests don't return false positives when the function's source + # is displayed in the exception report. + cooked_eggs = ''.join(['s', 'c', 'r', 'a', 'm', 'b', 'l', 'e', 'd']) + raise Exception + +def sensitive_kwargs_function_caller(request): + try: + sensitive_kwargs_function(''.join(['w', 'o', 'r', 'c', 'e', 's', 't', 'e', 'r', 's', 'h', 'i', 'r', 'e'])) + except Exception: + exc_info = sys.exc_info() + send_log(request, exc_info) + return technical_500_response(request, *exc_info) + +@sensitive_variables('sauce') +def sensitive_kwargs_function(sauce=None): + # Do not just use plain strings for the variables' values in the code + # so that the tests don't return false positives when the function's source + # is displayed in the exception report. + cooked_eggs = ''.join(['s', 'c', 'r', 'a', 'm', 'b', 'l', 'e', 'd']) + raise Exception + class UnsafeExceptionReporterFilter(SafeExceptionReporterFilter): """ Ignores all the filtering done by its parent class. -- cgit v1.3 From 08140aec5c565dba1d1a8158ad631889f9aab2e6 Mon Sep 17 00:00:00 2001 From: Daniele Procida Date: Tue, 1 Jan 2013 17:12:15 +0000 Subject: Tiny typo fixed in logging docs --- docs/topics/logging.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/topics/logging.txt b/docs/topics/logging.txt index 3a5a8cb489..db0c0b3d25 100644 --- a/docs/topics/logging.txt +++ b/docs/topics/logging.txt @@ -576,7 +576,7 @@ with ``ERROR`` or ``CRITICAL`` level are sent to :class:`AdminEmailHandler`, as long as the :setting:`DEBUG` setting is set to ``False``. All messages reaching the ``django`` catch-all logger when :setting:`DEBUG` is -`True` are sent ot the console. They are simply discarded (sent to +`True` are sent to the console. They are simply discarded (sent to ``NullHandler``) when :setting:`DEBUG` is `False`. .. versionchanged:: 1.5 -- cgit v1.3 From 0d3f16b12ea92aff208c4bb88d342eb787c92f71 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 1 Jan 2013 18:45:57 -0500 Subject: Fixed #19520 - Corrected some misleading docs about template_name_suffix. Thanks jnns for the report. --- docs/ref/class-based-views/generic-editing.txt | 30 +++++++++++++------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'docs') diff --git a/docs/ref/class-based-views/generic-editing.txt b/docs/ref/class-based-views/generic-editing.txt index 7ce5c1d1be..789dc2f84f 100644 --- a/docs/ref/class-based-views/generic-editing.txt +++ b/docs/ref/class-based-views/generic-editing.txt @@ -97,11 +97,11 @@ CreateView .. attribute:: template_name_suffix - The CreateView page displayed to a GET request uses a - ``template_name_suffix`` of ``'_form.html'``. For - example, changing this attribute to ``'_create_form.html'`` for a view - creating objects for the the example `Author` model would cause the the - default `template_name` to be ``'myapp/author_create_form.html'``. + The ``CreateView`` page displayed to a ``GET`` request uses a + ``template_name_suffix`` of ``'_form'``. For + example, changing this attribute to ``'_create_form'`` for a view + creating objects for the example ``Author`` model would cause the + default ``template_name`` to be ``'myapp/author_create_form.html'``. **Example views.py**:: @@ -139,11 +139,11 @@ UpdateView .. attribute:: template_name_suffix - The UpdateView page displayed to a GET request uses a - ``template_name_suffix`` of ``'_form.html'``. For - example, changing this attribute to ``'_update_form.html'`` for a view - updating objects for the the example `Author` model would cause the the - default `template_name` to be ``'myapp/author_update_form.html'``. + The ``UpdateView`` page displayed to a ``GET`` request uses a + ``template_name_suffix`` of ``'_form'``. For + example, changing this attribute to ``'_update_form'`` for a view + updating objects for the example ``Author`` model would cause the + default ``template_name`` to be ``'myapp/author_update_form.html'``. **Example views.py**:: @@ -180,11 +180,11 @@ DeleteView .. attribute:: template_name_suffix - The DeleteView page displayed to a GET request uses a - ``template_name_suffix`` of ``'_confirm_delete.html'``. For - example, changing this attribute to ``'_check_delete.html'`` for a view - deleting objects for the the example `Author` model would cause the the - default `template_name` to be ``'myapp/author_check_delete.html'``. + The ``DeleteView`` page displayed to a ``GET`` request uses a + ``template_name_suffix`` of ``'_confirm_delete'``. For + example, changing this attribute to ``'_check_delete'`` for a view + deleting objects for the example ``Author`` model would cause the + default ``template_name`` to be ``'myapp/author_check_delete.html'``. **Example views.py**:: -- cgit v1.3 From 695b2089e72a8ffec713b5107496b4332a4e0713 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Wed, 2 Jan 2013 15:33:18 -0500 Subject: Fixed #19549 - Typo in docs/topics/auth/default.txt --- docs/topics/auth/default.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/topics/auth/default.txt b/docs/topics/auth/default.txt index 76fb7d835b..82cabadbec 100644 --- a/docs/topics/auth/default.txt +++ b/docs/topics/auth/default.txt @@ -26,8 +26,8 @@ authentication system. They typically represent the people interacting with your site and are used to enable things like restricting access, registering user profiles, associating content with creators etc. Only one class of user exists in Django's authentication framework, i.e., 'superusers' or admin -'staff' users are is just a user objects with special attributes set, not -different classes of user objects. +'staff' users are just user objects with special attributes set, not different +classes of user objects. The primary attributes of the default user are: -- cgit v1.3 From 3f890f8dc707eac30a72b7f79981d79e17ba0ff4 Mon Sep 17 00:00:00 2001 From: Chris Beaven Date: Thu, 3 Jan 2013 11:32:10 +1300 Subject: Update doc example for overriding change_form.html Slightly reworded another related paragraph for clarity, too. --- docs/ref/contrib/admin/index.txt | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) (limited to 'docs') diff --git a/docs/ref/contrib/admin/index.txt b/docs/ref/contrib/admin/index.txt index e72b2b79e9..ec63cb2dcc 100644 --- a/docs/ref/contrib/admin/index.txt +++ b/docs/ref/contrib/admin/index.txt @@ -1790,31 +1790,32 @@ Because of the modular design of the admin templates, it is usually neither necessary nor advisable to replace an entire template. It is almost always better to override only the section of the template which you need to change. -To continue the example above, we want to add a new link next to the ``History`` -tool for the ``Page`` model. After looking at ``change_form.html`` we determine -that we only need to override the ``object-tools`` block. Therefore here is our -new ``change_form.html`` : +To continue the example above, we want to add a new link next to the +``History`` tool for the ``Page`` model. After looking at ``change_form.html`` +we determine that we only need to override the ``object-tools-items`` block. +Therefore here is our new ``change_form.html`` : .. code-block:: html+django {% extends "admin/change_form.html" %} - {% load i18n %} - {% block object-tools %} - {% if change %}{% if not is_popup %} - - {% endif %}{% endif %} {% endblock %} And that's it! If we placed this file in the ``templates/admin/my_app`` -directory, our link would appear on every model's change form. +directory, our link would appear on the change form for all models within +my_app. Templates which may be overridden per app or model -------------------------------------------------- -- cgit v1.3 From 9b5f64cc6ed5f1e904093fe4e6ff0f681b8e545f Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 1 Jan 2013 08:12:42 -0500 Subject: Fixed #19516 - Fixed remaining broken links. Added -n to sphinx builds to catch issues going forward. --- docs/Makefile | 2 +- docs/faq/usage.txt | 9 +- docs/howto/custom-model-fields.txt | 18 +- docs/howto/custom-template-tags.txt | 6 + .../contributing/writing-code/coding-style.txt | 6 +- docs/internals/deprecation.txt | 20 +-- docs/intro/tutorial01.txt | 4 +- docs/intro/tutorial04.txt | 8 +- docs/make.bat | 2 +- docs/ref/class-based-views/base.txt | 34 ++-- docs/ref/class-based-views/flattened-index.txt | 78 ++++----- docs/ref/class-based-views/generic-date-based.txt | 2 +- docs/ref/class-based-views/generic-display.txt | 40 ++--- docs/ref/class-based-views/generic-editing.txt | 10 +- docs/ref/class-based-views/mixins-date-based.txt | 9 +- docs/ref/class-based-views/mixins-editing.txt | 43 +++-- .../class-based-views/mixins-multiple-object.txt | 22 ++- docs/ref/class-based-views/mixins-simple.txt | 12 +- .../ref/class-based-views/mixins-single-object.txt | 41 +++-- docs/ref/clickjacking.txt | 8 +- docs/ref/contrib/admin/admindocs.txt | 2 +- docs/ref/contrib/admin/index.txt | 26 ++- docs/ref/contrib/comments/custom.txt | 26 +-- docs/ref/contrib/comments/example.txt | 4 +- docs/ref/contrib/comments/moderation.txt | 9 +- docs/ref/contrib/comments/signals.txt | 4 +- docs/ref/contrib/contenttypes.txt | 8 +- docs/ref/contrib/flatpages.txt | 4 +- docs/ref/contrib/formtools/form-preview.txt | 16 +- docs/ref/contrib/formtools/form-wizard.txt | 32 ++-- docs/ref/contrib/formtools/index.txt | 2 + docs/ref/contrib/gis/db-api.txt | 17 +- docs/ref/contrib/gis/feeds.txt | 10 +- docs/ref/contrib/gis/geoquerysets.txt | 4 +- docs/ref/contrib/gis/geos.txt | 14 +- docs/ref/contrib/gis/install/index.txt | 2 +- docs/ref/contrib/gis/tutorial.txt | 14 +- docs/ref/contrib/sitemaps.txt | 29 ++-- docs/ref/contrib/staticfiles.txt | 10 +- docs/ref/contrib/syndication.txt | 2 +- docs/ref/databases.txt | 4 +- docs/ref/django-admin.txt | 2 + docs/ref/exceptions.txt | 15 ++ docs/ref/files/file.txt | 4 +- docs/ref/files/storage.txt | 2 +- docs/ref/forms/api.txt | 41 ++--- docs/ref/forms/widgets.txt | 12 +- docs/ref/middleware.txt | 4 +- docs/ref/models/fields.txt | 93 ++++++---- docs/ref/models/options.txt | 2 +- docs/ref/request-response.txt | 2 +- docs/ref/settings.txt | 2 +- docs/ref/signals.txt | 11 +- docs/ref/template-response.txt | 24 ++- docs/ref/templates/api.txt | 22 ++- docs/ref/templates/builtins.txt | 2 +- docs/ref/urls.txt | 2 - docs/ref/utils.txt | 19 +- docs/ref/validators.txt | 2 +- docs/releases/1.2-beta-1.txt | 2 +- docs/releases/1.2.txt | 10 +- docs/releases/1.3-alpha-1.txt | 2 +- docs/releases/1.3-beta-1.txt | 6 +- docs/releases/1.3.txt | 5 +- docs/releases/1.4-alpha-1.txt | 2 +- docs/releases/1.4-beta-1.txt | 2 +- docs/releases/1.4.txt | 4 +- docs/topics/auth/passwords.txt | 18 +- docs/topics/cache.txt | 8 +- docs/topics/class-based-views/generic-display.txt | 12 +- docs/topics/class-based-views/generic-editing.txt | 81 +++++---- docs/topics/class-based-views/mixins.txt | 192 +++++++++++---------- docs/topics/db/sql.txt | 5 +- docs/topics/db/transactions.txt | 7 +- docs/topics/forms/formsets.txt | 2 + docs/topics/http/file-uploads.txt | 4 +- docs/topics/http/views.txt | 2 + docs/topics/i18n/timezones.txt | 4 +- docs/topics/logging.txt | 12 +- docs/topics/python3.txt | 73 ++++---- docs/topics/serialization.txt | 4 +- docs/topics/settings.txt | 3 +- docs/topics/testing/overview.txt | 8 +- 83 files changed, 729 insertions(+), 613 deletions(-) (limited to 'docs') diff --git a/docs/Makefile b/docs/Makefile index f6293a8e7f..2a8bcd7101 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -10,7 +10,7 @@ BUILDDIR = _build # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . +ALLSPHINXOPTS = -n -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . # the i18n builder cannot share the environment and doctrees with the others I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . diff --git a/docs/faq/usage.txt b/docs/faq/usage.txt index 151454398d..be3839e08f 100644 --- a/docs/faq/usage.txt +++ b/docs/faq/usage.txt @@ -52,10 +52,11 @@ Using a :class:`~django.db.models.FileField` or an #. All that will be stored in your database is a path to the file (relative to :setting:`MEDIA_ROOT`). You'll most likely want to use the - convenience :attr:`~django.core.files.File.url` attribute provided by - Django. For example, if your :class:`~django.db.models.ImageField` is - called ``mug_shot``, you can get the absolute path to your image in a - template with ``{{ object.mug_shot.url }}``. + convenience :attr:`~django.db.models.fields.files.FieldFile.url` attribute + provided by Django. For example, if your + :class:`~django.db.models.ImageField` is called ``mug_shot``, you can get + the absolute path to your image in a template with + ``{{ object.mug_shot.url }}``. How do I make a variable available to all my templates? ------------------------------------------------------- diff --git a/docs/howto/custom-model-fields.txt b/docs/howto/custom-model-fields.txt index e3dae840fc..7b5fe6349e 100644 --- a/docs/howto/custom-model-fields.txt +++ b/docs/howto/custom-model-fields.txt @@ -199,20 +199,20 @@ The :meth:`~django.db.models.Field.__init__` method takes the following parameters: * :attr:`~django.db.models.Field.verbose_name` -* :attr:`~django.db.models.Field.name` +* ``name`` * :attr:`~django.db.models.Field.primary_key` -* :attr:`~django.db.models.Field.max_length` +* :attr:`~django.db.models.CharField.max_length` * :attr:`~django.db.models.Field.unique` * :attr:`~django.db.models.Field.blank` * :attr:`~django.db.models.Field.null` * :attr:`~django.db.models.Field.db_index` -* :attr:`~django.db.models.Field.rel`: Used for related fields (like - :class:`ForeignKey`). For advanced use only. +* ``rel``: Used for related fields (like :class:`ForeignKey`). For advanced + use only. * :attr:`~django.db.models.Field.default` * :attr:`~django.db.models.Field.editable` -* :attr:`~django.db.models.Field.serialize`: If ``False``, the field will - not be serialized when the model is passed to Django's :doc:`serializers - `. Defaults to ``True``. +* ``serialize``: If ``False``, the field will not be serialized when the model + is passed to Django's :doc:`serializers `. Defaults to + ``True``. * :attr:`~django.db.models.Field.unique_for_date` * :attr:`~django.db.models.Field.unique_for_month` * :attr:`~django.db.models.Field.unique_for_year` @@ -222,7 +222,7 @@ parameters: * :attr:`~django.db.models.Field.db_tablespace`: Only for index creation, if the backend supports :doc:`tablespaces `. You can usually ignore this option. -* :attr:`~django.db.models.Field.auto_created`: True if the field was +* ``auto_created``: True if the field was automatically created, as for the `OneToOneField` used by model inheritance. For advanced use only. @@ -443,7 +443,7 @@ Python object type we want to store in the model's attribute. If anything is going wrong during value conversion, you should raise a :exc:`~django.core.exceptions.ValidationError` exception. -**Remember:** If your custom field needs the :meth:`to_python` method to be +**Remember:** If your custom field needs the :meth:`.to_python` method to be called when it is created, you should be using `The SubfieldBase metaclass`_ mentioned earlier. Otherwise :meth:`.to_python` won't be called automatically. diff --git a/docs/howto/custom-template-tags.txt b/docs/howto/custom-template-tags.txt index 31fbc9e96c..0d35654a04 100644 --- a/docs/howto/custom-template-tags.txt +++ b/docs/howto/custom-template-tags.txt @@ -114,6 +114,8 @@ your function. Example: Registering custom filters ~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. method:: django.template.Library.filter + Once you've written your filter definition, you need to register it with your ``Library`` instance, to make it available to Django's template language: @@ -151,6 +153,8 @@ are described in :ref:`filters and auto-escaping ` and Template filters that expect strings ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. method:: django.template.defaultfilters.stringfilter + If you're writing a template filter that only expects a string as the first argument, you should use the decorator ``stringfilter``. This will convert an object to its string value before being passed to your function: @@ -700,6 +704,8 @@ cannot resolve the string passed to it in the current context of the page. Simple tags ~~~~~~~~~~~ +.. method:: django.template.Library.simple_tag + Many template tags take a number of arguments -- strings or template variables -- and return a string after doing some processing based solely on the input arguments and some external information. For example, the diff --git a/docs/internals/contributing/writing-code/coding-style.txt b/docs/internals/contributing/writing-code/coding-style.txt index a699e39bd8..0d84cdac9a 100644 --- a/docs/internals/contributing/writing-code/coding-style.txt +++ b/docs/internals/contributing/writing-code/coding-style.txt @@ -177,9 +177,9 @@ That means that the ability for third parties to import the module at the top level is incompatible with the ability to configure the settings object manually, or makes it very difficult in some circumstances. -Instead of the above code, a level of laziness or indirection must be used, such -as :class:`django.utils.functional.LazyObject`, -:func:`django.utils.functional.lazy` or ``lambda``. +Instead of the above code, a level of laziness or indirection must be used, +such as ``django.utils.functional.LazyObject``, +``django.utils.functional.lazy()`` or ``lambda``. Miscellaneous ------------- diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt index c976f5a880..faa6d1ff02 100644 --- a/docs/internals/deprecation.txt +++ b/docs/internals/deprecation.txt @@ -167,9 +167,8 @@ these changes. * ``django.core.context_processors.PermWrapper`` and ``django.core.context_processors.PermLookupDict`` will be removed in favor of the corresponding - :class:`django.contrib.auth.context_processors.PermWrapper` and - :class:`django.contrib.auth.context_processors.PermLookupDict`, - respectively. + ``django.contrib.auth.context_processors.PermWrapper`` and + ``django.contrib.auth.context_processors.PermLookupDict``, respectively. * The :setting:`MEDIA_URL` or :setting:`STATIC_URL` settings will be required to end with a trailing slash to ensure there is a consistent @@ -218,10 +217,10 @@ these changes. synonym for ``django.views.decorators.csrf.csrf_exempt``, which should be used to replace it. -* The :class:`~django.core.cache.backends.memcached.CacheClass` backend +* The ``django.core.cache.backends.memcached.CacheClass`` backend was split into two in Django 1.3 in order to introduce support for - PyLibMC. The historical :class:`~django.core.cache.backends.memcached.CacheClass` - will be removed in favor of :class:`~django.core.cache.backends.memcached.MemcachedCache`. + PyLibMC. The historical ``CacheClass`` will be removed in favor of + ``django.core.cache.backends.memcached.MemcachedCache``. * The UK-prefixed objects of ``django.contrib.localflavor.uk`` will only be accessible through their GB-prefixed names (GB is the correct @@ -243,8 +242,8 @@ these changes. :setting:`LOGGING` setting should include this filter explicitly if it is desired. -* The builtin truncation functions :func:`django.utils.text.truncate_words` - and :func:`django.utils.text.truncate_html_words` will be removed in +* The builtin truncation functions ``django.utils.text.truncate_words()`` + and ``django.utils.text.truncate_html_words()`` will be removed in favor of the ``django.utils.text.Truncator`` class. * The :class:`~django.contrib.gis.geoip.GeoIP` class was moved to @@ -257,9 +256,8 @@ these changes. :data:`~django.conf.urls.handler500`, are now available through :mod:`django.conf.urls` . -* The functions :func:`~django.core.management.setup_environ` and - :func:`~django.core.management.execute_manager` will be removed from - :mod:`django.core.management`. This also means that the old (pre-1.4) +* The functions ``setup_environ()`` and ``execute_manager()`` will be removed + from :mod:`django.core.management`. This also means that the old (pre-1.4) style of :file:`manage.py` file will no longer work. * Setting the ``is_safe`` and ``needs_autoescape`` flags as attributes of diff --git a/docs/intro/tutorial01.txt b/docs/intro/tutorial01.txt index ab6c8b999f..632f27f2d2 100644 --- a/docs/intro/tutorial01.txt +++ b/docs/intro/tutorial01.txt @@ -369,8 +369,8 @@ its human-readable name. Some :class:`~django.db.models.Field` classes have required elements. :class:`~django.db.models.CharField`, for example, requires that you give it a -:attr:`~django.db.models.Field.max_length`. That's used not only in the database -schema, but in validation, as we'll soon see. +:attr:`~django.db.models.CharField.max_length`. That's used not only in the +database schema, but in validation, as we'll soon see. Finally, note a relationship is defined, using :class:`~django.db.models.ForeignKey`. That tells Django each ``Choice`` is related diff --git a/docs/intro/tutorial04.txt b/docs/intro/tutorial04.txt index 333ef9fbc3..f047067aa7 100644 --- a/docs/intro/tutorial04.txt +++ b/docs/intro/tutorial04.txt @@ -234,12 +234,12 @@ two views abstract the concepts of "display a list of objects" and * Each generic view needs to know what model it will be acting upon. This is provided using the ``model`` parameter. -* The :class:`~django.views.generic.list.DetailView` generic view +* The :class:`~django.views.generic.detail.DetailView` generic view expects the primary key value captured from the URL to be called ``"pk"``, so we've changed ``poll_id`` to ``pk`` for the generic views. -By default, the :class:`~django.views.generic.list.DetailView` generic +By default, the :class:`~django.views.generic.detail.DetailView` generic view uses a template called ``/_detail.html``. In our case, it'll use the template ``"polls/poll_detail.html"``. The ``template_name`` argument is used to tell Django to use a specific @@ -247,7 +247,7 @@ template name instead of the autogenerated default template name. We also specify the ``template_name`` for the ``results`` list view -- this ensures that the results view and the detail view have a different appearance when rendered, even though they're both a -:class:`~django.views.generic.list.DetailView` behind the scenes. +:class:`~django.views.generic.detail.DetailView` behind the scenes. Similarly, the :class:`~django.views.generic.list.ListView` generic view uses a default template called ``/_list.html``; we use ``template_name`` to tell In previous parts of the tutorial, the templates have been provided with a context that contains the ``poll`` and ``latest_poll_list`` -context variables. For DetailView the ``poll`` variable is provided +context variables. For ``DetailView`` the ``poll`` variable is provided automatically -- since we're using a Django model (``Poll``), Django is able to determine an appropriate name for the context variable. However, for ListView, the automatically generated context variable is diff --git a/docs/make.bat b/docs/make.bat index d7f54b2059..65602aa160 100644 --- a/docs/make.bat +++ b/docs/make.bat @@ -6,7 +6,7 @@ if "%SPHINXBUILD%" == "" ( set SPHINXBUILD=sphinx-build ) set BUILDDIR=_build -set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% . +set ALLSPHINXOPTS=-n -d %BUILDDIR%/doctrees %SPHINXOPTS% . if NOT "%PAPER%" == "" ( set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS% diff --git a/docs/ref/class-based-views/base.txt b/docs/ref/class-based-views/base.txt index cc9aa852f1..c070ea707a 100644 --- a/docs/ref/class-based-views/base.txt +++ b/docs/ref/class-based-views/base.txt @@ -49,9 +49,13 @@ View **Attributes** - .. attribute:: http_method_names = ['get', 'post', 'put', 'delete', 'head', 'options', 'trace'] + .. attribute:: http_method_names - The default list of HTTP method names that this view will accept. + The list of HTTP method names that this view will accept. + + Default:: + + ['get', 'post', 'put', 'delete', 'head', 'options', 'trace'] **Methods** @@ -68,12 +72,11 @@ View The default implementation will inspect the HTTP method and attempt to delegate to a method that matches the HTTP method; a ``GET`` will be - delegated to :meth:`~View.get()`, a ``POST`` to :meth:`~View.post()`, - and so on. + delegated to ``get()``, a ``POST`` to ``post()``, and so on. - By default, a ``HEAD`` request will be delegated to :meth:`~View.get()`. + By default, a ``HEAD`` request will be delegated to ``get()``. If you need to handle ``HEAD`` requests in a different way than ``GET``, - you can override the :meth:`~View.head()` method. See + you can override the ``head()`` method. See :ref:`supporting-other-http-methods` for an example. The default implementation also sets ``request``, ``args`` and @@ -111,9 +114,9 @@ TemplateView **Method Flowchart** - 1. :meth:`dispatch()` - 2. :meth:`http_method_not_allowed()` - 3. :meth:`get_context_data()` + 1. :meth:`~django.views.generic.base.View.dispatch()` + 2. :meth:`~django.views.generic.base.View.http_method_not_allowed()` + 3. :meth:`~django.views.generic.base.ContextMixin.get_context_data()` **Example views.py**:: @@ -169,8 +172,8 @@ RedirectView **Method Flowchart** - 1. :meth:`dispatch()` - 2. :meth:`http_method_not_allowed()` + 1. :meth:`~django.views.generic.base.View.dispatch()` + 2. :meth:`~django.views.generic.base.View.http_method_not_allowed()` 3. :meth:`get_redirect_url()` **Example views.py**:: @@ -230,9 +233,8 @@ RedirectView Constructs the target URL for redirection. - The default implementation uses :attr:`~RedirectView.url` as a starting + The default implementation uses :attr:`url` as a starting string, performs expansion of ``%`` parameters in that string, as well - as the appending of query string if requested by - :attr:`~RedirectView.query_string`. Subclasses may implement any - behavior they wish, as long as the method returns a redirect-ready URL - string. + as the appending of query string if requested by :attr:`query_string`. + Subclasses may implement any behavior they wish, as long as the method + returns a redirect-ready URL string. diff --git a/docs/ref/class-based-views/flattened-index.txt b/docs/ref/class-based-views/flattened-index.txt index aa2f51f156..2e75363c58 100644 --- a/docs/ref/class-based-views/flattened-index.txt +++ b/docs/ref/class-based-views/flattened-index.txt @@ -23,7 +23,7 @@ View * :meth:`~django.views.generic.base.View.as_view` * :meth:`~django.views.generic.base.View.dispatch` -* :meth:`~django.views.generic.base.View.head` +* ``head()`` * :meth:`~django.views.generic.base.View.http_method_not_allowed` TemplateView @@ -40,9 +40,9 @@ TemplateView * :meth:`~django.views.generic.base.View.as_view` * :meth:`~django.views.generic.base.View.dispatch` -* :meth:`~django.views.generic.base.TemplateView.get` -* :meth:`~django.views.generic.base.TemplateView.get_context_data` -* :meth:`~django.views.generic.base.View.head` +* ``get()`` +* :meth:`~django.views.generic.base.ContextMixin.get_context_data` +* ``head()`` * :meth:`~django.views.generic.base.View.http_method_not_allowed` * :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response` @@ -60,15 +60,15 @@ RedirectView **Methods** * :meth:`~django.views.generic.base.View.as_view` -* :meth:`~django.views.generic.base.RedirectView.delete` +* ``delete()`` * :meth:`~django.views.generic.base.View.dispatch` -* :meth:`~django.views.generic.base.RedirectView.get` +* ``get()`` * :meth:`~django.views.generic.base.RedirectView.get_redirect_url` -* :meth:`~django.views.generic.base.View.head` +* ``head()`` * :meth:`~django.views.generic.base.View.http_method_not_allowed` -* :meth:`~django.views.generic.base.RedirectView.options` -* :meth:`~django.views.generic.base.RedirectView.post` -* :meth:`~django.views.generic.base.RedirectView.put` +* ``options()`` +* ``post()`` +* ``put()`` Detail Views ------------ @@ -95,10 +95,10 @@ DetailView * :meth:`~django.views.generic.base.View.as_view` * :meth:`~django.views.generic.base.View.dispatch` -* :meth:`~django.views.generic.detail.BaseDetailView.get` +* ``get()`` * :meth:`~django.views.generic.detail.SingleObjectMixin.get_context_data` * :meth:`~django.views.generic.detail.SingleObjectMixin.get_object` -* :meth:`~django.views.generic.base.View.head` +* ``head()`` * :meth:`~django.views.generic.base.View.http_method_not_allowed` * :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response` @@ -130,7 +130,7 @@ ListView * :meth:`~django.views.generic.list.BaseListView.get` * :meth:`~django.views.generic.list.MultipleObjectMixin.get_context_data` * :meth:`~django.views.generic.list.MultipleObjectMixin.get_paginator` -* :meth:`~django.views.generic.base.View.head` +* ``head()`` * :meth:`~django.views.generic.base.View.http_method_not_allowed` * :meth:`~django.views.generic.list.MultipleObjectMixin.paginate_queryset` * :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response` @@ -161,10 +161,10 @@ FormView * :meth:`~django.views.generic.edit.FormMixin.get_context_data` * :meth:`~django.views.generic.edit.FormMixin.get_form` * :meth:`~django.views.generic.edit.FormMixin.get_form_kwargs` -* :meth:`~django.views.generic.base.View.head` +* ``head()`` * :meth:`~django.views.generic.base.View.http_method_not_allowed` -* :meth:`~django.views.generic.edit.ProcessFormView.post` -* :meth:`~django.views.generic.edit.ProcessFormView.put` +* ``post()`` +* ``put()`` * :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response` CreateView @@ -199,10 +199,10 @@ CreateView * :meth:`~django.views.generic.edit.FormMixin.get_form` * :meth:`~django.views.generic.edit.FormMixin.get_form_kwargs` * :meth:`~django.views.generic.detail.SingleObjectMixin.get_object` -* :meth:`~django.views.generic.base.View.head` +* ``head()`` * :meth:`~django.views.generic.base.View.http_method_not_allowed` * :meth:`~django.views.generic.edit.ProcessFormView.post` -* :meth:`~django.views.generic.edit.ProcessFormView.put` +* ``put()`` * :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response` UpdateView @@ -237,10 +237,10 @@ UpdateView * :meth:`~django.views.generic.edit.FormMixin.get_form` * :meth:`~django.views.generic.edit.FormMixin.get_form_kwargs` * :meth:`~django.views.generic.detail.SingleObjectMixin.get_object` -* :meth:`~django.views.generic.base.View.head` +* ``head()`` * :meth:`~django.views.generic.base.View.http_method_not_allowed` * :meth:`~django.views.generic.edit.ProcessFormView.post` -* :meth:`~django.views.generic.edit.ProcessFormView.put` +* ``put()`` * :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response` DeleteView @@ -265,14 +265,14 @@ DeleteView **Methods** * :meth:`~django.views.generic.base.View.as_view` -* :meth:`~django.views.generic.edit.DeletionMixin.delete` +* ``delete()`` * :meth:`~django.views.generic.base.View.dispatch` -* :meth:`~django.views.generic.detail.BaseDetailView.get` +* ``get()`` * :meth:`~django.views.generic.detail.SingleObjectMixin.get_context_data` * :meth:`~django.views.generic.detail.SingleObjectMixin.get_object` -* :meth:`~django.views.generic.base.View.head` +* ``head()`` * :meth:`~django.views.generic.base.View.http_method_not_allowed` -* :meth:`~django.views.generic.edit.DeletionMixin.post` +* ``post()`` * :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response` Date-based views @@ -302,13 +302,13 @@ ArchiveIndexView * :meth:`~django.views.generic.base.View.as_view` * :meth:`~django.views.generic.base.View.dispatch` -* :meth:`~django.views.generic.dates.BaseDateListView.get` +* ``get()`` * :meth:`~django.views.generic.list.MultipleObjectMixin.get_context_data` * :meth:`~django.views.generic.dates.BaseDateListView.get_date_list` * :meth:`~django.views.generic.dates.BaseDateListView.get_dated_items` * :meth:`~django.views.generic.dates.BaseDateListView.get_dated_queryset` * :meth:`~django.views.generic.list.MultipleObjectMixin.get_paginator` -* :meth:`~django.views.generic.base.View.head` +* ``head()`` * :meth:`~django.views.generic.base.View.http_method_not_allowed` * :meth:`~django.views.generic.list.MultipleObjectMixin.paginate_queryset` * :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response` @@ -324,7 +324,7 @@ YearArchiveView * :attr:`~django.views.generic.list.MultipleObjectMixin.context_object_name` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_context_object_name`] * :attr:`~django.views.generic.dates.DateMixin.date_field` [:meth:`~django.views.generic.dates.DateMixin.get_date_field`] * :attr:`~django.views.generic.base.View.http_method_names` -* :attr:`~django.views.generic.dates.BaseYearArchiveView.make_object_list` [:meth:`~django.views.generic.dates.BaseYearArchiveView.get_make_object_list`] +* :attr:`~django.views.generic.dates.YearArchiveView.make_object_list` [:meth:`~django.views.generic.dates.YearArchiveView.get_make_object_list`] * :attr:`~django.views.generic.list.MultipleObjectMixin.model` * :attr:`~django.views.generic.list.MultipleObjectMixin.paginate_by` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_paginate_by`] * :attr:`~django.views.generic.list.MultipleObjectMixin.paginate_orphans` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_paginate_orphans`] @@ -340,13 +340,13 @@ YearArchiveView * :meth:`~django.views.generic.base.View.as_view` * :meth:`~django.views.generic.base.View.dispatch` -* :meth:`~django.views.generic.dates.BaseDateListView.get` +* ``get()`` * :meth:`~django.views.generic.list.MultipleObjectMixin.get_context_data` * :meth:`~django.views.generic.dates.BaseDateListView.get_date_list` * :meth:`~django.views.generic.dates.BaseDateListView.get_dated_items` * :meth:`~django.views.generic.dates.BaseDateListView.get_dated_queryset` * :meth:`~django.views.generic.list.MultipleObjectMixin.get_paginator` -* :meth:`~django.views.generic.base.View.head` +* ``head()`` * :meth:`~django.views.generic.base.View.http_method_not_allowed` * :meth:`~django.views.generic.list.MultipleObjectMixin.paginate_queryset` * :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response` @@ -379,7 +379,7 @@ MonthArchiveView * :meth:`~django.views.generic.base.View.as_view` * :meth:`~django.views.generic.base.View.dispatch` -* :meth:`~django.views.generic.dates.BaseDateListView.get` +* ``get()`` * :meth:`~django.views.generic.list.MultipleObjectMixin.get_context_data` * :meth:`~django.views.generic.dates.BaseDateListView.get_date_list` * :meth:`~django.views.generic.dates.BaseDateListView.get_dated_items` @@ -387,7 +387,7 @@ MonthArchiveView * :meth:`~django.views.generic.dates.MonthMixin.get_next_month` * :meth:`~django.views.generic.list.MultipleObjectMixin.get_paginator` * :meth:`~django.views.generic.dates.MonthMixin.get_previous_month` -* :meth:`~django.views.generic.base.View.head` +* ``head()`` * :meth:`~django.views.generic.base.View.http_method_not_allowed` * :meth:`~django.views.generic.list.MultipleObjectMixin.paginate_queryset` * :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response` @@ -420,13 +420,13 @@ WeekArchiveView * :meth:`~django.views.generic.base.View.as_view` * :meth:`~django.views.generic.base.View.dispatch` -* :meth:`~django.views.generic.dates.BaseDateListView.get` +* ``get()`` * :meth:`~django.views.generic.list.MultipleObjectMixin.get_context_data` * :meth:`~django.views.generic.dates.BaseDateListView.get_date_list` * :meth:`~django.views.generic.dates.BaseDateListView.get_dated_items` * :meth:`~django.views.generic.dates.BaseDateListView.get_dated_queryset` * :meth:`~django.views.generic.list.MultipleObjectMixin.get_paginator` -* :meth:`~django.views.generic.base.View.head` +* ``head()`` * :meth:`~django.views.generic.base.View.http_method_not_allowed` * :meth:`~django.views.generic.list.MultipleObjectMixin.paginate_queryset` * :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response` @@ -461,7 +461,7 @@ DayArchiveView * :meth:`~django.views.generic.base.View.as_view` * :meth:`~django.views.generic.base.View.dispatch` -* :meth:`~django.views.generic.dates.BaseDateListView.get` +* ``get()`` * :meth:`~django.views.generic.list.MultipleObjectMixin.get_context_data` * :meth:`~django.views.generic.dates.BaseDateListView.get_date_list` * :meth:`~django.views.generic.dates.BaseDateListView.get_dated_items` @@ -471,7 +471,7 @@ DayArchiveView * :meth:`~django.views.generic.list.MultipleObjectMixin.get_paginator` * :meth:`~django.views.generic.dates.DayMixin.get_previous_day` * :meth:`~django.views.generic.dates.MonthMixin.get_previous_month` -* :meth:`~django.views.generic.base.View.head` +* ``head()`` * :meth:`~django.views.generic.base.View.http_method_not_allowed` * :meth:`~django.views.generic.list.MultipleObjectMixin.paginate_queryset` * :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response` @@ -506,7 +506,7 @@ TodayArchiveView * :meth:`~django.views.generic.base.View.as_view` * :meth:`~django.views.generic.base.View.dispatch` -* :meth:`~django.views.generic.dates.BaseDateListView.get` +* ``get()`` * :meth:`~django.views.generic.list.MultipleObjectMixin.get_context_data` * :meth:`~django.views.generic.dates.BaseDateListView.get_date_list` * :meth:`~django.views.generic.dates.BaseDateListView.get_dated_items` @@ -516,7 +516,7 @@ TodayArchiveView * :meth:`~django.views.generic.list.MultipleObjectMixin.get_paginator` * :meth:`~django.views.generic.dates.DayMixin.get_previous_day` * :meth:`~django.views.generic.dates.MonthMixin.get_previous_month` -* :meth:`~django.views.generic.base.View.head` +* ``head()`` * :meth:`~django.views.generic.base.View.http_method_not_allowed` * :meth:`~django.views.generic.list.MultipleObjectMixin.paginate_queryset` * :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response` @@ -551,13 +551,13 @@ DateDetailView * :meth:`~django.views.generic.base.View.as_view` * :meth:`~django.views.generic.base.View.dispatch` -* :meth:`~django.views.generic.detail.BaseDetailView.get` +* ``get()`` * :meth:`~django.views.generic.detail.SingleObjectMixin.get_context_data` * :meth:`~django.views.generic.dates.DayMixin.get_next_day` * :meth:`~django.views.generic.dates.MonthMixin.get_next_month` * :meth:`~django.views.generic.detail.SingleObjectMixin.get_object` * :meth:`~django.views.generic.dates.DayMixin.get_previous_day` * :meth:`~django.views.generic.dates.MonthMixin.get_previous_month` -* :meth:`~django.views.generic.base.View.head` +* ``head()`` * :meth:`~django.views.generic.base.View.http_method_not_allowed` * :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response` diff --git a/docs/ref/class-based-views/generic-date-based.txt b/docs/ref/class-based-views/generic-date-based.txt index 0ae0bcdf42..42dbab4dd8 100644 --- a/docs/ref/class-based-views/generic-date-based.txt +++ b/docs/ref/class-based-views/generic-date-based.txt @@ -580,7 +580,7 @@ DateDetailView * :class:`django.views.generic.dates.MonthMixin` * :class:`django.views.generic.dates.DayMixin` * :class:`django.views.generic.dates.DateMixin` - * :class:`django.views.generic.detail.BaseDetailView` + * ``django.views.generic.detail.BaseDetailView`` * :class:`django.views.generic.detail.SingleObjectMixin` * :class:`django.views.generic.base.View` diff --git a/docs/ref/class-based-views/generic-display.txt b/docs/ref/class-based-views/generic-display.txt index 12603ff0df..b827c0005c 100644 --- a/docs/ref/class-based-views/generic-display.txt +++ b/docs/ref/class-based-views/generic-display.txt @@ -19,22 +19,22 @@ DetailView * :class:`django.views.generic.detail.SingleObjectTemplateResponseMixin` * :class:`django.views.generic.base.TemplateResponseMixin` - * :class:`django.views.generic.detail.BaseDetailView` + * ``django.views.generic.detail.BaseDetailView`` * :class:`django.views.generic.detail.SingleObjectMixin` * :class:`django.views.generic.base.View` **Method Flowchart** - 1. :meth:`dispatch()` - 2. :meth:`http_method_not_allowed()` - 3. :meth:`get_template_names()` - 4. :meth:`get_slug_field()` - 5. :meth:`get_queryset()` - 6. :meth:`get_object()` - 7. :meth:`get_context_object_name()` - 8. :meth:`get_context_data()` - 9. :meth:`get()` - 10. :meth:`render_to_response()` + 1. :meth:`~django.views.generic.base.View.dispatch()` + 2. :meth:`~django.views.generic.base.View.http_method_not_allowed()` + 3. :meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names()` + 4. :meth:`~django.views.generic.detail.SingleObjectMixin.get_slug_field()` + 5. :meth:`~django.views.generic.detail.SingleObjectMixin.get_queryset()` + 6. :meth:`~django.views.generic.detail.SingleObjectMixin.get_object()` + 7. :meth:`~django.views.generic.detail.SingleObjectMixin.get_context_object_name()` + 8. :meth:`~django.views.generic.detail.SingleObjectMixin.get_context_data()` + 9. ``get()`` + 10. :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response()` **Example views.py**:: @@ -86,14 +86,14 @@ ListView **Method Flowchart** - 1. :meth:`dispatch()` - 2. :meth:`http_method_not_allowed()` - 3. :meth:`get_template_names()` - 4. :meth:`get_queryset()` - 5. :meth:`get_objects()` - 6. :meth:`get_context_data()` - 7. :meth:`get()` - 8. :meth:`render_to_response()` + 1. :meth:`~django.views.generic.base.View.dispatch()` + 2. :meth:`~django.views.generic.base.View.http_method_not_allowed()` + 3. :meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names()` + 4. :meth:`~django.views.generic.list.MultipleObjectMixin.get_queryset()` + 5. :meth:`~django.views.generic.list.MultipleObjectMixin.get_context_object_name()` + 6. :meth:`~django.views.generic.list.MultipleObjectMixin.get_context_data()` + 7. ``get()`` + 8. :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response()` **Example views.py**:: @@ -140,7 +140,7 @@ ListView .. method:: get(request, *args, **kwargs) - Adds :attr:`object_list` to the context. If + Adds ``object_list`` to the context. If :attr:`~django.views.generic.list.MultipleObjectMixin.allow_empty` is True then display an empty list. If :attr:`~django.views.generic.list.MultipleObjectMixin.allow_empty` is diff --git a/docs/ref/class-based-views/generic-editing.txt b/docs/ref/class-based-views/generic-editing.txt index 789dc2f84f..f3679287ad 100644 --- a/docs/ref/class-based-views/generic-editing.txt +++ b/docs/ref/class-based-views/generic-editing.txt @@ -38,7 +38,7 @@ FormView * :class:`django.views.generic.edit.FormView` * :class:`django.views.generic.base.TemplateResponseMixin` - * :class:`django.views.generic.edit.BaseFormView` + * ``django.views.generic.edit.BaseFormView`` * :class:`django.views.generic.edit.FormMixin` * :class:`django.views.generic.edit.ProcessFormView` * :class:`django.views.generic.base.View` @@ -86,7 +86,7 @@ CreateView * :class:`django.views.generic.edit.CreateView` * :class:`django.views.generic.detail.SingleObjectTemplateResponseMixin` * :class:`django.views.generic.base.TemplateResponseMixin` - * :class:`django.views.generic.edit.BaseCreateView` + * ``django.views.generic.edit.BaseCreateView`` * :class:`django.views.generic.edit.ModelFormMixin` * :class:`django.views.generic.edit.FormMixin` * :class:`django.views.generic.detail.SingleObjectMixin` @@ -128,7 +128,7 @@ UpdateView * :class:`django.views.generic.edit.UpdateView` * :class:`django.views.generic.detail.SingleObjectTemplateResponseMixin` * :class:`django.views.generic.base.TemplateResponseMixin` - * :class:`django.views.generic.edit.BaseUpdateView` + * ``django.views.generic.edit.BaseUpdateView`` * :class:`django.views.generic.edit.ModelFormMixin` * :class:`django.views.generic.edit.FormMixin` * :class:`django.views.generic.detail.SingleObjectMixin` @@ -170,9 +170,9 @@ DeleteView * :class:`django.views.generic.edit.DeleteView` * :class:`django.views.generic.detail.SingleObjectTemplateResponseMixin` * :class:`django.views.generic.base.TemplateResponseMixin` - * :class:`django.views.generic.edit.BaseDeleteView` + * ``django.views.generic.edit.BaseDeleteView`` * :class:`django.views.generic.edit.DeletionMixin` - * :class:`django.views.generic.detail.BaseDetailView` + * ``django.views.generic.detail.BaseDetailView`` * :class:`django.views.generic.detail.SingleObjectMixin` * :class:`django.views.generic.base.View` diff --git a/docs/ref/class-based-views/mixins-date-based.txt b/docs/ref/class-based-views/mixins-date-based.txt index 561e525e70..7ff201e5a2 100644 --- a/docs/ref/class-based-views/mixins-date-based.txt +++ b/docs/ref/class-based-views/mixins-date-based.txt @@ -100,7 +100,7 @@ MonthMixin :attr:`~BaseDateListView.allow_empty` and :attr:`~DateMixin.allow_future`. - .. method:: get_prev_month(date) + .. method:: get_previous_month(date) Returns a date object containing the first day of the month before the date provided. This function can also return ``None`` or raise an @@ -152,7 +152,7 @@ DayMixin :attr:`~BaseDateListView.allow_empty` and :attr:`~DateMixin.allow_future`. - .. method:: get_prev_day(date) + .. method:: get_previous_day(date) Returns a date object containing the previous valid day. This function can also return ``None`` or raise an :class:`~django.http.Http404` @@ -287,8 +287,9 @@ BaseDateListView available. If this is ``True`` and no objects are available, the view will display an empty page instead of raising a 404. - This is identical to :attr:`MultipleObjectMixin.allow_empty`, except - for the default value, which is ``False``. + This is identical to + :attr:`django.views.generic.list.MultipleObjectMixin.allow_empty`, + except for the default value, which is ``False``. .. attribute:: date_list_period diff --git a/docs/ref/class-based-views/mixins-editing.txt b/docs/ref/class-based-views/mixins-editing.txt index b8b59b827f..bce3c84cb1 100644 --- a/docs/ref/class-based-views/mixins-editing.txt +++ b/docs/ref/class-based-views/mixins-editing.txt @@ -83,9 +83,8 @@ FormMixin .. note:: - Views mixing :class:`FormMixin` must provide an implementation of - :meth:`~django.views.generic.FormMixin.form_valid` and - :meth:`~django.views.generic.FormMixin.form_invalid`. + Views mixing ``FormMixin`` must provide an implementation of + :meth:`form_valid` and :meth:`form_invalid`. ModelFormMixin @@ -93,15 +92,16 @@ ModelFormMixin .. class:: django.views.generic.edit.ModelFormMixin - A form mixin that works on ModelForms, rather than a standalone form. + A form mixin that works on ``ModelForms``, rather than a standalone form. Since this is a subclass of :class:`~django.views.generic.detail.SingleObjectMixin`, instances of this - mixin have access to the :attr:`~SingleObjectMixin.model` and - :attr:`~SingleObjectMixin.queryset` attributes, describing the type of - object that the ModelForm is manipulating. The view also provides - ``self.object``, the instance being manipulated. If the instance is being - created, ``self.object`` will be ``None``. + mixin have access to the + :attr:`~django.views.generic.detail.SingleObjectMixin.model` and + :attr:`~django.views.generic.detail.SingleObjectMixin.queryset` attributes, + describing the type of object that the ``ModelForm`` is manipulating. The + view also provides ``self.object``, the instance being manipulated. If the + instance is being created, ``self.object`` will be ``None``. **Mixins** @@ -110,6 +110,12 @@ ModelFormMixin **Methods and Attributes** + .. attribute:: model + + A model class. Can be explicitly provided, otherwise will be determined + by examining ``self.object`` or + :attr:`~django.views.generic.detail.SingleObjectMixin.queryset`. + .. attribute:: success_url The URL to redirect to when the form is successfully processed. @@ -122,22 +128,25 @@ ModelFormMixin .. method:: get_form_class() Retrieve the form class to instantiate. If - :attr:`FormMixin.form_class` is provided, that class will be used. - Otherwise, a ModelForm will be instantiated using the model associated - with the :attr:`~SingleObjectMixin.queryset`, or with the - :attr:`~SingleObjectMixin.model`, depending on which attribute is - provided. + :attr:`~django.views.generic.edit.FormMixin.form_class` is provided, + that class will be used. Otherwise, a ``ModelForm`` will be + instantiated using the model associated with the + :attr:`~django.views.generic.detail.SingleObjectMixin.queryset`, or + with the :attr:`~django.views.generic.detail.SingleObjectMixin.model`, + depending on which attribute is provided. .. method:: get_form_kwargs() Add the current instance (``self.object``) to the standard - :meth:`FormMixin.get_form_kwargs`. + :meth:`~django.views.generic.edit.FormMixin.get_form_kwargs`. .. method:: get_success_url() Determine the URL to redirect to when the form is successfully - validated. Returns :attr:`ModelFormMixin.success_url` if it is provided; - otherwise, attempts to use the ``get_absolute_url()`` of the object. + validated. Returns + :attr:`django.views.generic.edit.ModelFormMixin.success_url` if it is + provided; otherwise, attempts to use the ``get_absolute_url()`` of the + object. .. method:: form_valid(form) diff --git a/docs/ref/class-based-views/mixins-multiple-object.txt b/docs/ref/class-based-views/mixins-multiple-object.txt index c85c962bce..b28bd11a71 100644 --- a/docs/ref/class-based-views/mixins-multiple-object.txt +++ b/docs/ref/class-based-views/mixins-multiple-object.txt @@ -61,14 +61,13 @@ MultipleObjectMixin .. attribute:: queryset A ``QuerySet`` that represents the objects. If provided, the value of - :attr:`MultipleObjectMixin.queryset` supersedes the value provided for - :attr:`MultipleObjectMixin.model`. + ``queryset`` supersedes the value provided for :attr:`model`. .. attribute:: paginate_by An integer specifying how many objects should be displayed per page. If this is given, the view will paginate objects with - :attr:`MultipleObjectMixin.paginate_by` objects per page. The view will + ``paginate_by`` objects per page. The view will expect either a ``page`` query string parameter (via ``request.GET``) or a ``page`` variable specified in the URLconf. @@ -77,10 +76,9 @@ MultipleObjectMixin .. versionadded:: 1.6 An integer specifying the number of "overflow" objects the last page - can contain. This extends the :attr:`MultipleObjectMixin.paginate_by` - limit on the last page by up to - :attr:`MultipleObjectMixin.paginate_orphans`, in order to keep the last - page from having a very small number of objects. + can contain. This extends the :attr:`paginate_by` limit on the last + page by up to ``paginate_orphans``, in order to keep the last page from + having a very small number of objects. .. attribute:: page_kwarg @@ -97,7 +95,7 @@ MultipleObjectMixin :class:`django.core.paginator.Paginator` is used. If the custom paginator class doesn't have the same constructor interface as :class:`django.core.paginator.Paginator`, you will also need to - provide an implementation for :meth:`MultipleObjectMixin.get_paginator`. + provide an implementation for :meth:`get_paginator`. .. attribute:: context_object_name @@ -122,20 +120,20 @@ MultipleObjectMixin Returns the number of items to paginate by, or ``None`` for no pagination. By default this simply returns the value of - :attr:`MultipleObjectMixin.paginate_by`. + :attr:`paginate_by`. .. method:: get_paginator(queryset, per_page, orphans=0, allow_empty_first_page=True) Returns an instance of the paginator to use for this view. By default, instantiates an instance of :attr:`paginator_class`. - .. method:: get_paginate_by() + .. method:: get_paginate_orphans() .. versionadded:: 1.6 An integer specifying the number of "overflow" objects the last page can contain. By default this simply returns the value of - :attr:`MultipleObjectMixin.paginate_orphans`. + :attr:`paginate_orphans`. .. method:: get_allow_empty() @@ -149,7 +147,7 @@ MultipleObjectMixin Return the context variable name that will be used to contain the list of data that this view is manipulating. If ``object_list`` is a queryset of Django objects and - :attr:`~MultipleObjectMixin.context_object_name` is not set, + :attr:`context_object_name` is not set, the context name will be the ``object_name`` of the model that the queryset is composed from, with postfix ``'_list'`` appended. For example, the model ``Article`` would have a diff --git a/docs/ref/class-based-views/mixins-simple.txt b/docs/ref/class-based-views/mixins-simple.txt index d2f0df241e..e2e6084e8e 100644 --- a/docs/ref/class-based-views/mixins-simple.txt +++ b/docs/ref/class-based-views/mixins-simple.txt @@ -48,7 +48,7 @@ TemplateResponseMixin .. attribute:: template_name The full name of a template to use as defined by a string. Not defining - a template_name will raise a + a ``template_name`` will raise a :class:`django.core.exceptions.ImproperlyConfigured` exception. .. attribute:: response_class @@ -73,15 +73,13 @@ TemplateResponseMixin If any keyword arguments are provided, they will be passed to the constructor of the response class. - Calls :meth:`~TemplateResponseMixin.get_template_names()` to obtain the - list of template names that will be searched looking for an existent - template. + Calls :meth:`get_template_names()` to obtain the list of template names + that will be searched looking for an existent template. .. method:: get_template_names() Returns a list of template names to search for when rendering the template. - If :attr:`TemplateResponseMixin.template_name` is specified, the - default implementation will return a list containing - :attr:`TemplateResponseMixin.template_name` (if it is specified). + If :attr:`template_name` is specified, the default implementation will + return a list containing :attr:`template_name` (if it is specified). diff --git a/docs/ref/class-based-views/mixins-single-object.txt b/docs/ref/class-based-views/mixins-single-object.txt index e84ba6b8dd..299ac56ac6 100644 --- a/docs/ref/class-based-views/mixins-single-object.txt +++ b/docs/ref/class-based-views/mixins-single-object.txt @@ -21,8 +21,7 @@ SingleObjectMixin .. attribute:: queryset A ``QuerySet`` that represents the objects. If provided, the value of - :attr:`SingleObjectMixin.queryset` supersedes the value provided for - :attr:`SingleObjectMixin.model`. + ``queryset`` supersedes the value provided for :attr:`model`. .. attribute:: slug_field @@ -47,38 +46,38 @@ SingleObjectMixin Returns the single object that this view will display. If ``queryset`` is provided, that queryset will be used as the - source of objects; otherwise, - :meth:`~SingleObjectMixin.get_queryset` will be used. - ``get_object()`` looks for a - :attr:`SingleObjectMixin.pk_url_kwarg` argument in the arguments - to the view; if this argument is found, this method performs a - primary-key based lookup using that value. If this argument is not - found, it looks for a :attr:`SingleObjectMixin.slug_url_kwarg` - argument, and performs a slug lookup using the - :attr:`SingleObjectMixin.slug_field`. + source of objects; otherwise, :meth:`get_queryset` will be used. + ``get_object()`` looks for a :attr:`pk_url_kwarg` argument in the + arguments to the view; if this argument is found, this method performs + a primary-key based lookup using that value. If this argument is not + found, it looks for a :attr:`slug_url_kwarg` argument, and performs a + slug lookup using the :attr:`slug_field`. .. method:: get_queryset() Returns the queryset that will be used to retrieve the object that - this view will display. By default, - :meth:`~SingleObjectMixin.get_queryset` returns the value of the - :attr:`~SingleObjectMixin.queryset` attribute if it is set, otherwise - it constructs a :class:`QuerySet` by calling the `all()` method on the - :attr:`~SingleObjectMixin.model` attribute's default manager. + this view will display. By default, :meth:`get_queryset` returns the + value of the :attr:`queryset` attribute if it is set, otherwise + it constructs a :class:`~django.db.models.query.QuerySet` by calling + the `all()` method on the :attr:`model` attribute's default manager. .. method:: get_context_object_name(obj) Return the context variable name that will be used to contain the - data that this view is manipulating. If - :attr:`~SingleObjectMixin.context_object_name` is not set, the context - name will be constructed from the ``object_name`` of the model that - the queryset is composed from. For example, the model ``Article`` - would have context object named ``'article'``. + data that this view is manipulating. If :attr:`context_object_name` is + not set, the context name will be constructed from the ``object_name`` + of the model that the queryset is composed from. For example, the model + ``Article`` would have context object named ``'article'``. .. method:: get_context_data(**kwargs) Returns context data for displaying the list of objects. + .. method:: get_slug_field() + + Returns the name of a slug field to be used to look up by slug. By + default this simply returns the value of :attr:`slug_field`. + **Context** * ``object``: The object that this view is displaying. If diff --git a/docs/ref/clickjacking.txt b/docs/ref/clickjacking.txt index 15e85b43b7..e3d1bfc87b 100644 --- a/docs/ref/clickjacking.txt +++ b/docs/ref/clickjacking.txt @@ -111,10 +111,10 @@ Browsers that support X-Frame-Options ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Internet Explorer 8+ -* Firefox 3.6.9+ -* Opera 10.5+ -* Safari 4+ -* Chrome 4.1+ +* Firefox 3.6.9+ +* Opera 10.5+ +* Safari 4+ +* Chrome 4.1+ See also ~~~~~~~~ diff --git a/docs/ref/contrib/admin/admindocs.txt b/docs/ref/contrib/admin/admindocs.txt index 4a50856f3d..b3e26eca48 100644 --- a/docs/ref/contrib/admin/admindocs.txt +++ b/docs/ref/contrib/admin/admindocs.txt @@ -24,7 +24,7 @@ the following: * Add :mod:`django.contrib.admindocs` to your :setting:`INSTALLED_APPS`. * Add ``(r'^admin/doc/', include('django.contrib.admindocs.urls'))`` to - your :data:`urlpatterns`. Make sure it's included *before* the + your ``urlpatterns``. Make sure it's included *before* the ``r'^admin/'`` entry, so that requests to ``/admin/doc/`` don't get handled by the latter entry. * Install the docutils Python module (http://docutils.sf.net/). diff --git a/docs/ref/contrib/admin/index.txt b/docs/ref/contrib/admin/index.txt index ec63cb2dcc..04a7824417 100644 --- a/docs/ref/contrib/admin/index.txt +++ b/docs/ref/contrib/admin/index.txt @@ -170,7 +170,7 @@ subclass:: ``fields`` option (for more complex layout needs see the :attr:`~ModelAdmin.fieldsets` option described in the next section). For example, you could define a simpler version of the admin form for the - ``django.contrib.flatpages.FlatPage`` model as follows:: + :class:`django.contrib.flatpages.models.FlatPage` model as follows:: class FlatPageAdmin(admin.ModelAdmin): fields = ('url', 'title', 'content') @@ -212,8 +212,8 @@ subclass:: a dictionary of information about the fieldset, including a list of fields to be displayed in it. - A full example, taken from the :class:`django.contrib.flatpages.FlatPage` - model:: + A full example, taken from the + :class:`django.contrib.flatpages.models.FlatPage` model:: class FlatPageAdmin(admin.ModelAdmin): fieldsets = ( @@ -357,7 +357,7 @@ subclass:: Note that the key in the dictionary is the actual field class, *not* a string. The value is another dictionary; these arguments will be passed to - :meth:`~django.forms.Field.__init__`. See :doc:`/ref/forms/api` for + the form field's ``__init__()`` method. See :doc:`/ref/forms/api` for details. .. warning:: @@ -584,7 +584,7 @@ subclass:: class PersonAdmin(UserAdmin): list_filter = ('company__name',) - * a class inheriting from :mod:`django.contrib.admin.SimpleListFilter`, + * a class inheriting from ``django.contrib.admin.SimpleListFilter``, which you need to provide the ``title`` and ``parameter_name`` attributes to and override the ``lookups`` and ``queryset`` methods, e.g.:: @@ -671,7 +671,7 @@ subclass:: * a tuple, where the first element is a field name and the second element is a class inheriting from - :mod:`django.contrib.admin.FieldListFilter`, for example:: + ``django.contrib.admin.FieldListFilter``, for example:: from django.contrib.admin import BooleanFieldListFilter @@ -943,10 +943,9 @@ templates used by the :class:`ModelAdmin` views: .. attribute:: ModelAdmin.delete_selected_confirmation_template - Path to a custom template, used by the :meth:`delete_selected` - action method for displaying a confirmation page when deleting one - or more objects. See the :doc:`actions - documentation`. + Path to a custom template, used by the ``delete_selected`` action method + for displaying a confirmation page when deleting one or more objects. See + the :doc:`actions documentation`. .. attribute:: ModelAdmin.object_history_template @@ -1108,9 +1107,8 @@ templates used by the :class:`ModelAdmin` views: Since this is usually not what you want, Django provides a convenience wrapper to check permissions and mark the view as non-cacheable. This - wrapper is :meth:`AdminSite.admin_view` (i.e. - ``self.admin_site.admin_view`` inside a ``ModelAdmin`` instance); use it - like so:: + wrapper is ``AdminSite.admin_view()`` (i.e. ``self.admin_site.admin_view`` + inside a ``ModelAdmin`` instance); use it like so:: class MyModelAdmin(admin.ModelAdmin): def get_urls(self): @@ -1130,7 +1128,7 @@ templates used by the :class:`ModelAdmin` views: If the page is cacheable, but you still want the permission check to be performed, you can pass a ``cacheable=True`` argument to - :meth:`AdminSite.admin_view`:: + ``AdminSite.admin_view()``:: (r'^my_view/$', self.admin_site.admin_view(self.my_view, cacheable=True)) diff --git a/docs/ref/contrib/comments/custom.txt b/docs/ref/contrib/comments/custom.txt index 0ef37a9a0b..b4ab65bc2d 100644 --- a/docs/ref/contrib/comments/custom.txt +++ b/docs/ref/contrib/comments/custom.txt @@ -66,15 +66,17 @@ In the ``models.py`` we'll define a ``CommentWithTitle`` model:: class CommentWithTitle(Comment): title = models.CharField(max_length=300) -Most custom comment models will subclass the :class:`Comment` model. However, +Most custom comment models will subclass the +:class:`~django.contrib.comments.models.Comment` model. However, if you want to substantially remove or change the fields available in the -:class:`Comment` model, but don't want to rewrite the templates, you could -try subclassing from :class:`BaseCommentAbstractModel`. +:class:`~django.contrib.comments.models.Comment` model, but don't want to +rewrite the templates, you could try subclassing from +``BaseCommentAbstractModel``. Next, we'll define a custom comment form in ``forms.py``. This is a little more tricky: we have to both create a form and override -:meth:`CommentForm.get_comment_model` and -:meth:`CommentForm.get_comment_create_data` to return deal with our custom title +``CommentForm.get_comment_model()`` and +``CommentForm.get_comment_create_data()`` to return deal with our custom title field:: from django import forms @@ -139,7 +141,7 @@ however. Return the :class:`~django.db.models.Model` class to use for comments. This model should inherit from - :class:`django.contrib.comments.models.BaseCommentAbstractModel`, which + ``django.contrib.comments.models.BaseCommentAbstractModel``, which defines necessary core fields. The default implementation returns @@ -170,33 +172,33 @@ however. attribute when rendering your comment form. The default implementation returns a reverse-resolved URL pointing - to the :func:`post_comment` view. + to the ``post_comment()`` view. .. note:: If you provide a custom comment model and/or form, but you - want to use the default :func:`post_comment` view, you will + want to use the default ``post_comment()`` view, you will need to be aware that it requires the model and form to have certain additional attributes and methods: see the - :func:`post_comment` view documentation for details. + ``django.contrib.comments.views.post_comment()`` view for details. .. function:: get_flag_url() Return the URL for the "flag this comment" view. The default implementation returns a reverse-resolved URL pointing - to the :func:`django.contrib.comments.views.moderation.flag` view. + to the ``django.contrib.comments.views.moderation.flag()`` view. .. function:: get_delete_url() Return the URL for the "delete this comment" view. The default implementation returns a reverse-resolved URL pointing - to the :func:`django.contrib.comments.views.moderation.delete` view. + to the ``django.contrib.comments.views.moderation.delete()`` view. .. function:: get_approve_url() Return the URL for the "approve this comment from moderation" view. The default implementation returns a reverse-resolved URL pointing - to the :func:`django.contrib.comments.views.moderation.approve` view. + to the ``django.contrib.comments.views.moderation.approve()`` view. diff --git a/docs/ref/contrib/comments/example.txt b/docs/ref/contrib/comments/example.txt index 2bff778c2f..4e18e37de0 100644 --- a/docs/ref/contrib/comments/example.txt +++ b/docs/ref/contrib/comments/example.txt @@ -136,7 +136,7 @@ Feeds ===== Suppose you want to export a :doc:`feed ` of the -latest comments, you can use the built-in :class:`LatestCommentFeed`. Just +latest comments, you can use the built-in ``LatestCommentFeed``. Just enable it in your project's ``urls.py``: .. code-block:: python @@ -166,7 +166,7 @@ features (all of which or only certain can be enabled): * Close comments after a particular (user-defined) number of days. * Email new comments to the site-staff. -To enable comment moderation, we subclass the :class:`CommentModerator` and +To enable comment moderation, we subclass the ``CommentModerator`` and register it with the moderation features we want. Let's suppose we want to close comments after 7 days of posting and also send out an email to the site staff. In ``blog/models.py``, we register a comment moderator in the diff --git a/docs/ref/contrib/comments/moderation.txt b/docs/ref/contrib/comments/moderation.txt index c042971d39..a7138dda53 100644 --- a/docs/ref/contrib/comments/moderation.txt +++ b/docs/ref/contrib/comments/moderation.txt @@ -185,15 +185,14 @@ via two methods: be moderated using the options defined in the ``CommentModerator`` subclass. If any of the models are already registered for moderation, the exception - :exc:`AlreadyModerated` will be raised. + ``AlreadyModerated`` will be raised. .. function:: moderator.unregister(model_or_iterable) Takes one argument: a model class or list of model classes, and removes the model or models from the set of models which are being moderated. If any of the models are not currently - being moderated, the exception - :exc:`NotModerated` will be raised. + being moderated, the exception ``NotModerated`` will be raised. Customizing the moderation system @@ -207,8 +206,8 @@ models with an instance of the subclass. .. class:: Moderator - In addition to the :meth:`Moderator.register` and - :meth:`Moderator.unregister` methods detailed above, the following methods + In addition to the :func:`moderator.register` and + :func:`moderator.unregister` methods detailed above, the following methods on :class:`Moderator` can be overridden to achieve customized behavior: .. method:: connect diff --git a/docs/ref/contrib/comments/signals.txt b/docs/ref/contrib/comments/signals.txt index 8274539ed7..ea901b6a95 100644 --- a/docs/ref/contrib/comments/signals.txt +++ b/docs/ref/contrib/comments/signals.txt @@ -81,8 +81,8 @@ Arguments sent with this signal: :meth:`~django.db.models.Model.save` again. ``flag`` - The :class:`~django.contrib.comments.models.CommentFlag` that's been - attached to the comment. + The ``django.contrib.comments.models.CommentFlag`` that's been attached to + the comment. ``created`` ``True`` if this is a new flag; ``False`` if it's a duplicate flag. diff --git a/docs/ref/contrib/contenttypes.txt b/docs/ref/contrib/contenttypes.txt index 8f329aa388..e9cd5e7bc0 100644 --- a/docs/ref/contrib/contenttypes.txt +++ b/docs/ref/contrib/contenttypes.txt @@ -453,7 +453,7 @@ Generic relations in forms and admin ------------------------------------ The :mod:`django.contrib.contenttypes.generic` module provides -:class:`~django.contrib.contenttypes.generic.BaseGenericInlineFormSet`, +``BaseGenericInlineFormSet``, :class:`~django.contrib.contenttypes.generic.GenericTabularInline` and :class:`~django.contrib.contenttypes.generic.GenericStackedInline` (the last two are subclasses of @@ -480,3 +480,9 @@ information. The name of the integer field that represents the ID of the related object. Defaults to ``object_id``. + +.. class:: GenericTabularInline +.. class:: GenericStackedInline + + Subclasses of :class:`GenericInlineModelAdmin` with stacked and tabular + layouts, respectively. diff --git a/docs/ref/contrib/flatpages.txt b/docs/ref/contrib/flatpages.txt index c360809dac..292b304acb 100644 --- a/docs/ref/contrib/flatpages.txt +++ b/docs/ref/contrib/flatpages.txt @@ -186,7 +186,7 @@ Via the Python API If you add or modify flatpages via your own code, you will likely want to check for duplicate flatpage URLs within the same site. The flatpage form used in the admin performs this validation check, and can be imported from - :class:`django.contrib.flatpages.forms.FlatPageForm` and used in your own + ``django.contrib.flatpages.forms.FlatPageForm`` and used in your own views. Flatpage templates @@ -256,7 +256,7 @@ Displaying ``registration_required`` flatpages By default, the :ttag:`get_flatpages` templatetag will only show flatpages that are marked ``registration_required = False``. If you want to display registration-protected flatpages, you need to specify -an authenticated user using a``for`` clause. +an authenticated user using a ``for`` clause. For example: diff --git a/docs/ref/contrib/formtools/form-preview.txt b/docs/ref/contrib/formtools/form-preview.txt index 784213ecba..011e72c2e0 100644 --- a/docs/ref/contrib/formtools/form-preview.txt +++ b/docs/ref/contrib/formtools/form-preview.txt @@ -25,9 +25,8 @@ application takes care of the following workflow: a. If it's valid, displays a preview page. b. If it's not valid, redisplays the form with error messages. 3. When the "confirmation" form is submitted from the preview page, calls - a hook that you define -- a - :meth:`~django.contrib.formtools.preview.FormPreview.done()` method that gets - passed the valid data. + a hook that you define -- a ``done()`` method that gets passed the valid + data. The framework enforces the required preview by passing a shared-secret hash to the preview page via hidden form fields. If somebody tweaks the form parameters @@ -51,8 +50,7 @@ How to use ``FormPreview`` directory to your :setting:`TEMPLATE_DIRS` setting. 2. Create a :class:`~django.contrib.formtools.preview.FormPreview` subclass that - overrides the :meth:`~django.contrib.formtools.preview.FormPreview.done()` - method:: + overrides the ``done()`` method:: from django.contrib.formtools.preview import FormPreview from myapp.models import SomeModel @@ -92,13 +90,15 @@ How to use ``FormPreview`` A :class:`~django.contrib.formtools.preview.FormPreview` class is a simple Python class that represents the preview workflow. :class:`~django.contrib.formtools.preview.FormPreview` classes must subclass -``django.contrib.formtools.preview.FormPreview`` and override the -:meth:`~django.contrib.formtools.preview.FormPreview.done()` method. They can live -anywhere in your codebase. +``django.contrib.formtools.preview.FormPreview`` and override the ``done()`` +method. They can live anywhere in your codebase. ``FormPreview`` templates ========================= +.. attribute:: FormPreview.form_template +.. attribute:: FormPreview.preview_template + By default, the form is rendered via the template :file:`formtools/form.html`, and the preview page is rendered via the template :file:`formtools/preview.html`. These values can be overridden for a particular form preview by setting diff --git a/docs/ref/contrib/formtools/form-wizard.txt b/docs/ref/contrib/formtools/form-wizard.txt index 3edc019d05..9ea65d7e5f 100644 --- a/docs/ref/contrib/formtools/form-wizard.txt +++ b/docs/ref/contrib/formtools/form-wizard.txt @@ -54,7 +54,8 @@ you just have to do these things: 4. Add ``django.contrib.formtools`` to your :setting:`INSTALLED_APPS` list in your settings file. -5. Point your URLconf at your :class:`WizardView` :meth:`~WizardView.as_view` method. +5. Point your URLconf at your :class:`WizardView` :meth:`~WizardView.as_view` + method. Defining ``Form`` classes ------------------------- @@ -89,6 +90,9 @@ the message itself. Here's what the :file:`forms.py` might look like:: Creating a ``WizardView`` subclass ---------------------------------- +.. class:: SessionWizardView +.. class:: CookieWizardView + The next step is to create a :class:`django.contrib.formtools.wizard.views.WizardView` subclass. You can also use the :class:`SessionWizardView` or :class:`CookieWizardView` classes @@ -225,9 +229,11 @@ Here's a full example template: Hooking the wizard into a URLconf --------------------------------- +.. method:: WizardView.as_view + Finally, we need to specify which forms to use in the wizard, and then deploy the new :class:`WizardView` object at a URL in the ``urls.py``. The -wizard's :meth:`as_view` method takes a list of your +wizard's ``as_view()`` method takes a list of your :class:`~django.forms.Form` classes as an argument during instantiation:: from django.conf.urls import patterns @@ -346,9 +352,9 @@ Advanced ``WizardView`` methods used as the form for step ``step``. Returns an :class:`~django.db.models.Model` object which will be passed as - the :attr:`~django.forms.ModelForm.instance` argument when instantiating the - ModelForm for step ``step``. If no instance object was provided while - initializing the form wizard, ``None`` will be returned. + the ``instance`` argument when instantiating the ``ModelForm`` for step + ``step``. If no instance object was provided while initializing the form + wizard, ``None`` will be returned. The default implementation:: @@ -514,10 +520,10 @@ Providing initial data for the forms .. attribute:: WizardView.initial_dict Initial data for a wizard's :class:`~django.forms.Form` objects can be - provided using the optional :attr:`~Wizard.initial_dict` keyword argument. - This argument should be a dictionary mapping the steps to dictionaries - containing the initial data for each step. The dictionary of initial data - will be passed along to the constructor of the step's + provided using the optional :attr:`~WizardView.initial_dict` keyword + argument. This argument should be a dictionary mapping the steps to + dictionaries containing the initial data for each step. The dictionary of + initial data will be passed along to the constructor of the step's :class:`~django.forms.Form`:: >>> from myapp.forms import ContactForm1, ContactForm2 @@ -542,11 +548,13 @@ Providing initial data for the forms Handling files ============== +.. attribute:: WizardView.file_storage + To handle :class:`~django.forms.FileField` within any step form of the wizard, -you have to add a :attr:`file_storage` to your :class:`WizardView` subclass. +you have to add a ``file_storage`` to your :class:`WizardView` subclass. This storage will temporarily store the uploaded files for the wizard. The -:attr:`file_storage` attribute should be a +``file_storage`` attribute should be a :class:`~django.core.files.storage.Storage` subclass. Django provides a built-in storage class (see :ref:`the built-in filesystem @@ -646,6 +654,8 @@ Usage of ``NamedUrlWizardView`` =============================== .. class:: NamedUrlWizardView +.. class:: NamedUrlSessionWizardView +.. class:: NamedUrlCookieWizardView There is a :class:`WizardView` subclass which adds named-urls support to the wizard. By doing this, you can have single urls for every step. You can also diff --git a/docs/ref/contrib/formtools/index.txt b/docs/ref/contrib/formtools/index.txt index f36470654a..e768c0e655 100644 --- a/docs/ref/contrib/formtools/index.txt +++ b/docs/ref/contrib/formtools/index.txt @@ -1,6 +1,8 @@ django.contrib.formtools ======================== +.. module:: django.contrib.formtools + A set of high-level abstractions for Django forms (:mod:`django.forms`). .. toctree:: diff --git a/docs/ref/contrib/gis/db-api.txt b/docs/ref/contrib/gis/db-api.txt index 519f79f0d4..be413c9df8 100644 --- a/docs/ref/contrib/gis/db-api.txt +++ b/docs/ref/contrib/gis/db-api.txt @@ -4,20 +4,23 @@ GeoDjango Database API ====================== -.. module:: django.contrib.gis.db.models - :synopsis: GeoDjango's database API. - .. _spatial-backends: Spatial Backends ================ +.. module:: django.contrib.gis.db.backends + :synopsis: GeoDjango's spatial database backends. + GeoDjango currently provides the following spatial database backends: -* :mod:`django.contrib.gis.db.backends.postgis` -* :mod:`django.contrib.gis.db.backends.mysql` -* :mod:`django.contrib.gis.db.backends.oracle` -* :mod:`django.contrib.gis.db.backends.spatialite` +* ``django.contrib.gis.db.backends.postgis`` +* ``django.contrib.gis.db.backends.mysql`` +* ``django.contrib.gis.db.backends.oracle`` +* ``django.contrib.gis.db.backends.spatialite`` + +.. module:: django.contrib.gis.db.models + :synopsis: GeoDjango's database API. .. _mysql-spatial-limitations: diff --git a/docs/ref/contrib/gis/feeds.txt b/docs/ref/contrib/gis/feeds.txt index 7c3a2d011c..7b1b6ebccf 100644 --- a/docs/ref/contrib/gis/feeds.txt +++ b/docs/ref/contrib/gis/feeds.txt @@ -27,7 +27,7 @@ API Reference .. class:: Feed In addition to methods provided by - the :class:`django.contrib.syndication.feeds.Feed` + the :class:`django.contrib.syndication.views.Feed` base class, GeoDjango's ``Feed`` class provides the following overrides. Note that these overrides may be done in multiple ways:: @@ -71,11 +71,11 @@ API Reference can be a ``GEOSGeometry`` instance, or a tuple that represents a point coordinate or bounding box. For example:: - class ZipcodeFeed(Feed): + class ZipcodeFeed(Feed): - def item_geometry(self, obj): - # Returns the polygon. - return obj.poly + def item_geometry(self, obj): + # Returns the polygon. + return obj.poly ``SyndicationFeed`` Subclasses ------------------------------ diff --git a/docs/ref/contrib/gis/geoquerysets.txt b/docs/ref/contrib/gis/geoquerysets.txt index 69280dc028..66afc3d377 100644 --- a/docs/ref/contrib/gis/geoquerysets.txt +++ b/docs/ref/contrib/gis/geoquerysets.txt @@ -683,7 +683,7 @@ Keyword Argument Description a method name clashes with an existing ``GeoQuerySet`` method -- if you wanted to use the ``area()`` method on model with a ``PolygonField`` - named ``area``, for example. + named ``area``, for example. ===================== ===================================================== Measurement @@ -1043,7 +1043,7 @@ Keyword Argument Description ===================== ===================================================== ``relative`` If set to ``True``, the path data will be implemented in terms of relative moves. Defaults to ``False``, - meaning that absolute moves are used instead. + meaning that absolute moves are used instead. ``precision`` This keyword may be used to specify the number of significant digits for the coordinates in the SVG diff --git a/docs/ref/contrib/gis/geos.txt b/docs/ref/contrib/gis/geos.txt index 7d7c32781c..4d44638488 100644 --- a/docs/ref/contrib/gis/geos.txt +++ b/docs/ref/contrib/gis/geos.txt @@ -142,10 +142,9 @@ Geometry Objects .. class:: GEOSGeometry(geo_input[, srid=None]) - :param geo_input: Geometry input value - :type geo_input: string or buffer + :param geo_input: Geometry input value (string or buffer) :param srid: spatial reference identifier - :type srid: integer + :type srid: int This is the base class for all GEOS geometry objects. It initializes on the given ``geo_input`` argument, and then assumes the proper geometry subclass @@ -800,7 +799,7 @@ Example:: :param string: string that contains spatial data :type string: string :param srid: spatial reference identifier - :type srid: integer + :type srid: int :rtype: a :class:`GEOSGeometry` corresponding to the spatial data in the string Example:: @@ -966,3 +965,10 @@ location (e.g., ``/home/bob/lib/libgeos_c.so``). The setting must be the *full* path to the **C** shared library; in other words you want to use ``libgeos_c.so``, not ``libgeos.so``. + +Exceptions +========== + +.. exception:: GEOSException + +The base GEOS exception, indicates a GEOS-related error. diff --git a/docs/ref/contrib/gis/install/index.txt b/docs/ref/contrib/gis/install/index.txt index 100dc2edd0..35c01c9b7e 100644 --- a/docs/ref/contrib/gis/install/index.txt +++ b/docs/ref/contrib/gis/install/index.txt @@ -530,6 +530,6 @@ Finally, :ref:`install Django ` on your system. .. rubric:: Footnotes .. [#] GeoDjango uses the :func:`~ctypes.util.find_library` routine from - :mod:`ctypes.util` to locate shared libraries. + ``ctypes.util`` to locate shared libraries. .. [#] The ``psycopg2`` Windows installers are packaged and maintained by `Jason Erickson `_. diff --git a/docs/ref/contrib/gis/tutorial.txt b/docs/ref/contrib/gis/tutorial.txt index 5000622ad4..9efa020e61 100644 --- a/docs/ref/contrib/gis/tutorial.txt +++ b/docs/ref/contrib/gis/tutorial.txt @@ -226,7 +226,7 @@ model to represent this data:: class WorldBorder(models.Model): # Regular Django fields corresponding to the attributes in the - # world borders shapefile. + # world borders shapefile. name = models.CharField(max_length=50) area = models.IntegerField() pop2005 = models.IntegerField('Population 2005') @@ -236,13 +236,13 @@ model to represent this data:: un = models.IntegerField('United Nations Code') region = models.IntegerField('Region Code') subregion = models.IntegerField('Sub-Region Code') - lon = models.FloatField() - lat = models.FloatField() + lon = models.FloatField() + lat = models.FloatField() - # GeoDjango-specific: a geometry field (MultiPolygonField), and + # GeoDjango-specific: a geometry field (MultiPolygonField), and # overriding the default manager with a GeoManager instance. - mpoly = models.MultiPolygonField() - objects = models.GeoManager() + mpoly = models.MultiPolygonField() + objects = models.GeoManager() # Returns the string representation of the model. def __unicode__(self): @@ -250,7 +250,7 @@ model to represent this data:: Please note two important things: -1. The ``models`` module is imported from :mod:`django.contrib.gis.db`. +1. The ``models`` module is imported from ``django.contrib.gis.db``. 2. You must override the model's default manager with :class:`~django.contrib.gis.db.models.GeoManager` to perform spatial queries. diff --git a/docs/ref/contrib/sitemaps.txt b/docs/ref/contrib/sitemaps.txt index 42c4b91bd4..1861318b95 100644 --- a/docs/ref/contrib/sitemaps.txt +++ b/docs/ref/contrib/sitemaps.txt @@ -49,6 +49,8 @@ loader can find the default templates.) Initialization ============== +.. function:: views.sitemap(request, sitemaps, section=None, template_name='sitemap.xml', mimetype='application/xml') + To activate sitemap generation on your Django site, add this line to your :doc:`URLconf `:: @@ -240,9 +242,9 @@ The sitemap framework provides a couple convenience classes for common cases: The :class:`django.contrib.sitemaps.GenericSitemap` class allows you to create a sitemap by passing it a dictionary which has to contain at least - a :data:`queryset` entry. This queryset will be used to generate the items - of the sitemap. It may also have a :data:`date_field` entry that - specifies a date field for objects retrieved from the :data:`queryset`. + a ``queryset`` entry. This queryset will be used to generate the items + of the sitemap. It may also have a ``date_field`` entry that + specifies a date field for objects retrieved from the ``queryset``. This will be used for the :attr:`~Sitemap.lastmod` attribute in the generated sitemap. You may also pass :attr:`~Sitemap.priority` and :attr:`~Sitemap.changefreq` keyword arguments to the @@ -281,14 +283,16 @@ Here's an example of a :doc:`URLconf ` using both:: Creating a sitemap index ======================== +.. function:: views.index(request, sitemaps, template_name='sitemap_index.xml', mimetype='application/xml', sitemap_url_name='django.contrib.sitemaps.views.sitemap') + The sitemap framework also has the ability to create a sitemap index that references individual sitemap files, one per each section defined in your -:data:`sitemaps` dictionary. The only differences in usage are: +``sitemaps`` dictionary. The only differences in usage are: * You use two views in your URLconf: :func:`django.contrib.sitemaps.views.index` and :func:`django.contrib.sitemaps.views.sitemap`. * The :func:`django.contrib.sitemaps.views.sitemap` view should take a - :data:`section` keyword argument. + ``section`` keyword argument. Here's what the relevant URLconf lines would look like for the example above:: @@ -299,7 +303,7 @@ Here's what the relevant URLconf lines would look like for the example above:: This will automatically generate a :file:`sitemap.xml` file that references both :file:`sitemap-flatpages.xml` and :file:`sitemap-blog.xml`. The -:class:`~django.contrib.sitemaps.Sitemap` classes and the :data:`sitemaps` +:class:`~django.contrib.sitemaps.Sitemap` classes and the ``sitemaps`` dict don't change at all. You should create an index file if one of your sitemaps has more than 50,000 @@ -350,19 +354,20 @@ rendering. For more details, see the :doc:`TemplateResponse documentation Context variables ------------------ -When customizing the templates for the :func:`~django.contrib.sitemaps.views.index` -and :func:`~django.contrib.sitemaps.views.sitemaps` views, you can rely on the +When customizing the templates for the +:func:`~django.contrib.sitemaps.views.index` and +:func:`~django.contrib.sitemaps.views.sitemap` views, you can rely on the following context variables. Index ----- -The variable :data:`sitemaps` is a list of absolute URLs to each of the sitemaps. +The variable ``sitemaps`` is a list of absolute URLs to each of the sitemaps. Sitemap ------- -The variable :data:`urlset` is a list of URLs that should appear in the +The variable ``urlset`` is a list of URLs that should appear in the sitemap. Each URL exposes attributes as defined in the :class:`~django.contrib.sitemaps.Sitemap` class: @@ -411,14 +416,14 @@ that: :func:`django.contrib.sitemaps.ping_google()`. .. function:: ping_google - :func:`ping_google` takes an optional argument, :data:`sitemap_url`, + :func:`ping_google` takes an optional argument, ``sitemap_url``, which should be the absolute path to your site's sitemap (e.g., :file:`'/sitemap.xml'`). If this argument isn't provided, :func:`ping_google` will attempt to figure out your sitemap by performing a reverse looking in your URLconf. :func:`ping_google` raises the exception - :exc:`django.contrib.sitemaps.SitemapNotFound` if it cannot determine your + ``django.contrib.sitemaps.SitemapNotFound`` if it cannot determine your sitemap URL. .. admonition:: Register with Google first! diff --git a/docs/ref/contrib/staticfiles.txt b/docs/ref/contrib/staticfiles.txt index 9c8f29a8de..a4a60f239b 100644 --- a/docs/ref/contrib/staticfiles.txt +++ b/docs/ref/contrib/staticfiles.txt @@ -33,7 +33,7 @@ STATICFILES_DIRS Default: ``[]`` This setting defines the additional locations the staticfiles app will traverse -if the :class:`FileSystemFinder` finder is enabled, e.g. if you use the +if the ``FileSystemFinder`` finder is enabled, e.g. if you use the :djadmin:`collectstatic` or :djadmin:`findstatic` management command or use the static file serving view. @@ -101,19 +101,19 @@ The list of finder backends that know how to find static files in various locations. The default will find files stored in the :setting:`STATICFILES_DIRS` setting -(using :class:`django.contrib.staticfiles.finders.FileSystemFinder`) and in a +(using ``django.contrib.staticfiles.finders.FileSystemFinder``) and in a ``static`` subdirectory of each app (using -:class:`django.contrib.staticfiles.finders.AppDirectoriesFinder`) +``django.contrib.staticfiles.finders.AppDirectoriesFinder``) One finder is disabled by default: -:class:`django.contrib.staticfiles.finders.DefaultStorageFinder`. If added to +``django.contrib.staticfiles.finders.DefaultStorageFinder``. If added to your :setting:`STATICFILES_FINDERS` setting, it will look for static files in the default file storage as defined by the :setting:`DEFAULT_FILE_STORAGE` setting. .. note:: - When using the :class:`AppDirectoriesFinder` finder, make sure your apps + When using the ``AppDirectoriesFinder`` finder, make sure your apps can be found by staticfiles. Simply add the app to the :setting:`INSTALLED_APPS` setting of your site. diff --git a/docs/ref/contrib/syndication.txt b/docs/ref/contrib/syndication.txt index 2418dba8ef..d0376e3c1b 100644 --- a/docs/ref/contrib/syndication.txt +++ b/docs/ref/contrib/syndication.txt @@ -334,7 +334,7 @@ And the accompanying URLconf:: Feed class reference -------------------- -.. class:: django.contrib.syndication.views.Feed +.. class:: views.Feed This example illustrates all possible attributes and methods for a :class:`~django.contrib.syndication.views.Feed` class:: diff --git a/docs/ref/databases.txt b/docs/ref/databases.txt index 771085766e..e933ee350d 100644 --- a/docs/ref/databases.txt +++ b/docs/ref/databases.txt @@ -259,9 +259,9 @@ recommended solution. Should you decide to use ``utf8_bin`` collation for some of your tables with MySQLdb 1.2.1p2 or 1.2.2, you should still use ``utf8_collation_ci_swedish`` -(the default) collation for the :class:`django.contrib.sessions.models.Session` +(the default) collation for the ``django.contrib.sessions.models.Session`` table (usually called ``django_session``) and the -:class:`django.contrib.admin.models.LogEntry` table (usually called +``django.contrib.admin.models.LogEntry`` table (usually called ``django_admin_log``). Those are the two standard tables that use :class:`~django.db.models.TextField` internally. diff --git a/docs/ref/django-admin.txt b/docs/ref/django-admin.txt index e67527de23..8d612ae6a6 100644 --- a/docs/ref/django-admin.txt +++ b/docs/ref/django-admin.txt @@ -292,6 +292,8 @@ Searches for and loads the contents of the named fixture into the database. The :djadminopt:`--database` option can be used to specify the database onto which the data will be loaded. +.. django-admin-option:: --ignorenonexistent + .. versionadded:: 1.5 The :djadminopt:`--ignorenonexistent` option can be used to ignore fields that diff --git a/docs/ref/exceptions.txt b/docs/ref/exceptions.txt index e91a5dd85e..f123ae2e59 100644 --- a/docs/ref/exceptions.txt +++ b/docs/ref/exceptions.txt @@ -131,6 +131,21 @@ The Django wrappers for database exceptions behave exactly the same as the underlying database exceptions. See :pep:`249`, the Python Database API Specification v2.0, for further information. +.. exception:: models.ProtectedError + +Raised to prevent deletion of referenced objects when using +:attr:`django.db.models.PROTECT`. Subclass of :exc:`IntegrityError`. + +.. currentmodule:: django.http + +Http Exceptions +=============== + +.. exception:: UnreadablePostError + + The :exc:`UnreadablePostError` is raised when a user cancels an upload. + It is available from :mod:`django.http`. + .. currentmodule:: django.db.transaction Transaction Exceptions diff --git a/docs/ref/files/file.txt b/docs/ref/files/file.txt index ada614df45..7562f9b6bf 100644 --- a/docs/ref/files/file.txt +++ b/docs/ref/files/file.txt @@ -14,7 +14,7 @@ The ``File`` Class The :class:`File` is a thin wrapper around Python's built-in file object with some Django-specific additions. Internally, Django uses this class any time it needs to represent a file. - + :class:`File` objects have the following attributes and methods: .. attribute:: name @@ -148,7 +148,7 @@ below) will also have a couple of extra methods: Note that the ``content`` argument must be an instance of either :class:`File` or of a subclass of :class:`File`, such as - :class:`ContentFile`. + :class:`~django.core.files.base.ContentFile`. .. method:: File.delete([save=True]) diff --git a/docs/ref/files/storage.txt b/docs/ref/files/storage.txt index f9bcf9b61e..ff175d122b 100644 --- a/docs/ref/files/storage.txt +++ b/docs/ref/files/storage.txt @@ -38,7 +38,7 @@ The FileSystemStorage Class .. note:: - The :class:`FileSystemStorage.delete` method will not raise + The ``FileSystemStorage.delete()`` method will not raise raise an exception if the given file name does not exist. The Storage Class diff --git a/docs/ref/forms/api.txt b/docs/ref/forms/api.txt index ab1f4b0eea..4aacbf0a0d 100644 --- a/docs/ref/forms/api.txt +++ b/docs/ref/forms/api.txt @@ -2,9 +2,7 @@ The Forms API ============= -.. module:: django.forms.forms - -.. currentmodule:: django.forms +.. module:: django.forms .. admonition:: About this document @@ -380,6 +378,9 @@ a form object, and each rendering method returns a Unicode object. Styling required or erroneous form rows ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. attribute:: Form.error_css_class +.. attribute:: Form.required_css_class + It's pretty common to style form rows and fields that are required or have errors. For example, you might want to present required form rows in bold and highlight errors in red. @@ -587,24 +588,24 @@ lazy developers -- they're not the only way a form object can be displayed. Used to display HTML or access attributes for a single field of a :class:`Form` instance. - The :meth:`__unicode__` and :meth:`__str__` methods of this object displays + The ``__unicode__()`` and ``__str__()`` methods of this object displays the HTML for this field. To retrieve a single ``BoundField``, use dictionary lookup syntax on your form using the field's name as the key:: - >>> form = ContactForm() - >>> print(form['subject']) - + >>> form = ContactForm() + >>> print(form['subject']) + To retrieve all ``BoundField`` objects, iterate the form:: - >>> form = ContactForm() - >>> for boundfield in form: print(boundfield) - - - - + >>> form = ContactForm() + >>> for boundfield in form: print(boundfield) + + + + The field-specific output honors the form object's ``auto_id`` setting:: @@ -635,7 +636,7 @@ For a field's list of errors, access the field's ``errors`` attribute. >>> print(f['subject'].errors) >>> str(f['subject'].errors) - '' + '' .. method:: BoundField.css_classes() @@ -644,17 +645,17 @@ indicate required form fields or fields that contain errors. If you're manually rendering a form, you can access these CSS classes using the ``css_classes`` method:: - >>> f = ContactForm(data) - >>> f['message'].css_classes() - 'required' + >>> f = ContactForm(data) + >>> f['message'].css_classes() + 'required' If you want to provide some additional classes in addition to the error and required classes that may be required, you can provide those classes as an argument:: - >>> f = ContactForm(data) - >>> f['message'].css_classes('foo bar') - 'foo bar required' + >>> f = ContactForm(data) + >>> f['message'].css_classes('foo bar') + 'foo bar required' .. method:: BoundField.value() diff --git a/docs/ref/forms/widgets.txt b/docs/ref/forms/widgets.txt index d8d9c9b770..bc1270094b 100644 --- a/docs/ref/forms/widgets.txt +++ b/docs/ref/forms/widgets.txt @@ -508,9 +508,9 @@ Selector and checkbox widgets .. attribute:: Select.choices - This attribute is optional when the field does not have a - :attr:`~Field.choices` attribute. If it does, it will override anything - you set here when the attribute is updated on the :class:`Field`. + This attribute is optional when the form field does not have a + ``choices`` attribute. If it does, it will override anything you set + here when the attribute is updated on the :class:`Field`. ``NullBooleanSelect`` ~~~~~~~~~~~~~~~~~~~~~ @@ -660,9 +660,9 @@ Composite widgets .. attribute:: MultipleHiddenInput.choices - This attribute is optional when the field does not have a - :attr:`~Field.choices` attribute. If it does, it will override anything - you set here when the attribute is updated on the :class:`Field`. + This attribute is optional when the form field does not have a + ``choices`` attribute. If it does, it will override anything you set + here when the attribute is updated on the :class:`Field`. ``SplitDateTimeWidget`` ~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/ref/middleware.txt b/docs/ref/middleware.txt index 31cc6f24f6..2b053d80ab 100644 --- a/docs/ref/middleware.txt +++ b/docs/ref/middleware.txt @@ -111,7 +111,7 @@ It will NOT compress content if any of the following are true: not to be performed on certain content types. You can apply GZip compression to individual views using the -:func:`~django.views.decorators.http.gzip_page()` decorator. +:func:`~django.views.decorators.gzip.gzip_page()` decorator. Conditional GET middleware -------------------------- @@ -124,7 +124,7 @@ Conditional GET middleware Handles conditional GET operations. If the response has a ``ETag`` or ``Last-Modified`` header, and the request has ``If-None-Match`` or ``If-Modified-Since``, the response is replaced by an -:class:`~django.http.HttpNotModified`. +:class:`~django.http.HttpResponseNotModified`. Also sets the ``Date`` and ``Content-Length`` response-headers. diff --git a/docs/ref/models/fields.txt b/docs/ref/models/fields.txt index e9f85e0657..6498b6c845 100644 --- a/docs/ref/models/fields.txt +++ b/docs/ref/models/fields.txt @@ -113,7 +113,7 @@ define a suitably-named constant for each value:: default=FRESHMAN) def is_upperclass(self): - return self.year_in_school in (self.JUNIOR, self.SENIOR) + return self.year_in_school in (self.JUNIOR, self.SENIOR) Though you can define a choices list outside of a model class and then refer to it, defining the choices and names for each choice inside the @@ -509,8 +509,8 @@ Has one **required** argument: .. attribute:: FileField.upload_to A local filesystem path that will be appended to your :setting:`MEDIA_ROOT` - setting to determine the value of the :attr:`~django.core.files.File.url` - attribute. + setting to determine the value of the + :attr:`~django.db.models.fields.files.FieldFile.url` attribute. This path may contain :func:`~time.strftime` formatting, which will be replaced by the date/time of the file upload (so that uploaded files don't @@ -564,9 +564,9 @@ takes a few steps: 3. All that will be stored in your database is a path to the file (relative to :setting:`MEDIA_ROOT`). You'll most likely want to use the - convenience :attr:`~django.core.files.File.url` function provided by - Django. For example, if your :class:`ImageField` is called ``mug_shot``, - you can get the absolute path to your image in a template with + convenience :attr:`~django.db.models.fields.files.FieldFile.url` attribute + provided by Django. For example, if your :class:`ImageField` is called + ``mug_shot``, you can get the absolute path to your image in a template with ``{{ object.mug_shot.url }}``. For example, say your :setting:`MEDIA_ROOT` is set to ``'/home/media'``, and @@ -589,7 +589,7 @@ topic guide. saved. The uploaded file's relative URL can be obtained using the -:attr:`~django.db.models.FileField.url` attribute. Internally, +:attr:`~django.db.models.fields.files.FieldFile.url` attribute. Internally, this calls the :meth:`~django.core.files.storage.Storage.url` method of the underlying :class:`~django.core.files.storage.Storage` class. @@ -614,9 +614,20 @@ can change the maximum length using the :attr:`~CharField.max_length` argument. FileField and FieldFile ~~~~~~~~~~~~~~~~~~~~~~~ -When you access a :class:`FileField` on a model, you are given an instance -of :class:`FieldFile` as a proxy for accessing the underlying file. This -class has several methods that can be used to interact with file data: +.. currentmodule:: django.db.models.fields.files + +.. class:: FieldFile + +When you access a :class:`~django.db.models.FileField` on a model, you are +given an instance of :class:`FieldFile` as a proxy for accessing the underlying +file. This class has several attributes and methods that can be used to +interact with file data: + +.. attribute:: FieldFile.url + +A read-only property to access the file's relative URL by calling the +:meth:`~django.core.files.storage.Storage.url` method of the underlying +:class:`~django.core.files.storage.Storage` class. .. method:: FieldFile.open(mode='rb') @@ -632,9 +643,9 @@ associated with this instance. This method takes a filename and file contents and passes them to the storage class for the field, then associates the stored file with the model field. -If you want to manually associate file data with :class:`FileField` -instances on your model, the ``save()`` method is used to persist that file -data. +If you want to manually associate file data with +:class:`~django.db.models.FileField` instances on your model, the ``save()`` +method is used to persist that file data. Takes two required arguments: ``name`` which is the name of the file, and ``content`` which is an object containing the file's contents. The @@ -672,6 +683,8 @@ to cleanup orphaned files, you'll need to handle it yourself (for instance, with a custom management command that can be run manually or scheduled to run periodically via e.g. cron). +.. currentmodule:: django.db.models + ``FilePathField`` ----------------- @@ -759,8 +772,7 @@ Inherits all attributes and methods from :class:`FileField`, but also validates that the uploaded object is a valid image. In addition to the special attributes that are available for :class:`FileField`, -an :class:`ImageField` also has :attr:`~django.core.files.File.height` and -:attr:`~django.core.files.File.width` attributes. +an :class:`ImageField` also has ``height`` and ``width`` attributes. To facilitate querying on those attributes, :class:`ImageField` has two extra optional arguments: @@ -1047,26 +1059,36 @@ define the details of how the relation works. user = models.ForeignKey(User, blank=True, null=True, on_delete=models.SET_NULL) - The possible values for :attr:`on_delete` are found in - :mod:`django.db.models`: +The possible values for :attr:`~ForeignKey.on_delete` are found in +:mod:`django.db.models`: - * :attr:`~django.db.models.CASCADE`: Cascade deletes; the default. +* .. attribute:: CASCADE - * :attr:`~django.db.models.PROTECT`: Prevent deletion of the referenced - object by raising :exc:`django.db.models.ProtectedError`, a subclass of - :exc:`django.db.IntegrityError`. + Cascade deletes; the default. - * :attr:`~django.db.models.SET_NULL`: Set the :class:`ForeignKey` null; - this is only possible if :attr:`null` is ``True``. +* .. attribute:: PROTECT - * :attr:`~django.db.models.SET_DEFAULT`: Set the :class:`ForeignKey` to its - default value; a default for the :class:`ForeignKey` must be set. + Prevent deletion of the referenced object by raising + :exc:`~django.db.models.ProtectedError`, a subclass of + :exc:`django.db.IntegrityError`. - * :func:`~django.db.models.SET()`: Set the :class:`ForeignKey` to the value - passed to :func:`~django.db.models.SET()`, or if a callable is passed in, - the result of calling it. In most cases, passing a callable will be - necessary to avoid executing queries at the time your models.py is - imported:: +* .. attribute:: SET_NULL + + Set the :class:`ForeignKey` null; this is only possible if + :attr:`~Field.null` is ``True``. + +* .. attribute:: SET_DEFAULT + + Set the :class:`ForeignKey` to its default value; a default for the + :class:`ForeignKey` must be set. + +* .. function:: SET() + + Set the :class:`ForeignKey` to the value passed to + :func:`~django.db.models.SET()`, or if a callable is passed in, + the result of calling it. In most cases, passing a callable will be + necessary to avoid executing queries at the time your models.py is + imported:: def get_sentinel_user(): return User.objects.get_or_create(username='deleted')[0] @@ -1074,11 +1096,12 @@ define the details of how the relation works. class MyModel(models.Model): user = models.ForeignKey(User, on_delete=models.SET(get_sentinel_user)) - * :attr:`~django.db.models.DO_NOTHING`: Take no action. If your database - backend enforces referential integrity, this will cause an - :exc:`~django.db.IntegrityError` unless you manually add a SQL ``ON - DELETE`` constraint to the database field (perhaps using - :ref:`initial sql`). +* .. attribute:: DO_NOTHING + + Take no action. If your database backend enforces referential + integrity, this will cause an :exc:`~django.db.IntegrityError` unless + you manually add a SQL ``ON DELETE`` constraint to the database field + (perhaps using :ref:`initial sql`). .. _ref-manytomany: diff --git a/docs/ref/models/options.txt b/docs/ref/models/options.txt index 6fd707fdf2..b349197a5b 100644 --- a/docs/ref/models/options.txt +++ b/docs/ref/models/options.txt @@ -100,7 +100,7 @@ Django quotes column and table names behind the scenes. .. attribute:: Options.managed Defaults to ``True``, meaning Django will create the appropriate database - tables in :djadmin:`syncdb` and remove them as part of a :djadmin:`reset` + tables in :djadmin:`syncdb` and remove them as part of a :djadmin:`flush` management command. That is, Django *manages* the database tables' lifecycles. diff --git a/docs/ref/request-response.txt b/docs/ref/request-response.txt index a8e0ef3f51..2b4397a138 100644 --- a/docs/ref/request-response.txt +++ b/docs/ref/request-response.txt @@ -263,7 +263,7 @@ Methods .. method:: HttpRequest.get_signed_cookie(key, default=RAISE_ERROR, salt='', max_age=None) Returns a cookie value for a signed cookie, or raises a - :class:`~django.core.signing.BadSignature` exception if the signature is + ``django.core.signing.BadSignature`` exception if the signature is no longer valid. If you provide the ``default`` argument the exception will be suppressed and that default value will be returned instead. diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt index bfe283cc68..be21f06de7 100644 --- a/docs/ref/settings.txt +++ b/docs/ref/settings.txt @@ -2159,7 +2159,7 @@ startproject ` management command will create a simple ``wsgi.py`` file with an ``application`` callable in it, and point this setting to that ``application``. -If not set, the return value of :func:`django.core.wsgi.get_wsgi_application` +If not set, the return value of ``django.core.wsgi.get_wsgi_application()`` will be used. In this case, the behavior of :djadmin:`runserver` will be identical to previous Django versions. diff --git a/docs/ref/signals.txt b/docs/ref/signals.txt index f2f1459bf0..0995789391 100644 --- a/docs/ref/signals.txt +++ b/docs/ref/signals.txt @@ -436,9 +436,8 @@ Sent when Django begins processing an HTTP request. Arguments sent with this signal: ``sender`` - The handler class -- e.g. - :class:`django.core.handlers.wsgi.WsgiHandler` -- that handled - the request. + The handler class -- e.g. ``django.core.handlers.wsgi.WsgiHandler`` -- that + handled the request. request_finished ---------------- @@ -496,7 +495,7 @@ setting_changed :module: This signal is sent when the value of a setting is changed through the -:meth:`django.test.TestCase.setting` context manager or the +``django.test.TestCase.settings()`` context manager or the :func:`django.test.utils.override_settings` decorator/context manager. It's actually sent twice: when the new value is applied ("setup") and when the @@ -558,8 +557,8 @@ Arguments sent with this signal: ``sender`` The database wrapper class -- i.e. - :class:`django.db.backends.postgresql_psycopg2.DatabaseWrapper` or - :class:`django.db.backends.mysql.DatabaseWrapper`, etc. + ``django.db.backends.postgresql_psycopg2.DatabaseWrapper`` or + ``django.db.backends.mysql.DatabaseWrapper``, etc. ``connection`` The database connection that was opened. This can be used in a diff --git a/docs/ref/template-response.txt b/docs/ref/template-response.txt index d9b7130362..3f5e772737 100644 --- a/docs/ref/template-response.txt +++ b/docs/ref/template-response.txt @@ -121,15 +121,14 @@ Methods used as the response instead of the original response object (and will be passed to the next post rendering callback etc.) -.. method:: SimpleTemplateResponse.render(): +.. method:: SimpleTemplateResponse.render() - Sets :attr:`response.content` to the result obtained by + Sets ``response.content`` to the result obtained by :attr:`SimpleTemplateResponse.rendered_content`, runs all post-rendering callbacks, and returns the resulting response object. - :meth:`~SimpleTemplateResponse.render()` will only have an effect - the first time it is called. On subsequent calls, it will return - the result obtained from the first call. + ``render()`` will only have an effect the first time it is called. On + subsequent calls, it will return the result obtained from the first call. TemplateResponse objects @@ -188,24 +187,23 @@ returned to the client, it must be rendered. The rendering process takes the intermediate representation of template and context, and turns it into the final byte stream that can be served to the client. -There are three circumstances under which a TemplateResponse will be +There are three circumstances under which a ``TemplateResponse`` will be rendered: -* When the TemplateResponse instance is explicitly rendered, using +* When the ``TemplateResponse`` instance is explicitly rendered, using the :meth:`SimpleTemplateResponse.render()` method. * When the content of the response is explicitly set by assigning - :attr:`response.content`. + ``response.content``. * After passing through template response middleware, but before passing through response middleware. -A TemplateResponse can only be rendered once. The first call to -:meth:`SimpleTemplateResponse.render` sets the content of the -response; subsequent rendering calls do not change the response -content. +A ``TemplateResponse`` can only be rendered once. The first call to +:meth:`SimpleTemplateResponse.render` sets the content of the response; +subsequent rendering calls do not change the response content. -However, when :attr:`response.content` is explicitly assigned, the +However, when ``response.content`` is explicitly assigned, the change is always applied. If you want to force the content to be re-rendered, you can re-evaluate the rendered content, and assign the content of the response manually:: diff --git a/docs/ref/templates/api.txt b/docs/ref/templates/api.txt index 7c17f0a758..0162f78eed 100644 --- a/docs/ref/templates/api.txt +++ b/docs/ref/templates/api.txt @@ -557,15 +557,17 @@ Note that these paths should use Unix-style forward slashes, even on Windows. The Python API ~~~~~~~~~~~~~~ -Django has two ways to load templates from files: +.. module:: django.template.loader -.. function:: django.template.loader.get_template(template_name) +``django.template.loader`` has two functions to load templates from files: + +.. function:: get_template(template_name) ``get_template`` returns the compiled template (a ``Template`` object) for the template with the given name. If the template doesn't exist, it raises ``django.template.TemplateDoesNotExist``. -.. function:: django.template.loader.select_template(template_name_list) +.. function:: select_template(template_name_list) ``select_template`` is just like ``get_template``, except it takes a list of template names. Of the list, it returns the first template that exists. @@ -630,11 +632,19 @@ by editing your :setting:`TEMPLATE_LOADERS` setting. :setting:`TEMPLATE_LOADERS` should be a tuple of strings, where each string represents a template loader class. Here are the template loaders that come with Django: +.. currentmodule:: django.template.loaders + ``django.template.loaders.filesystem.Loader`` + +.. class:: filesystem.Loader + Loads templates from the filesystem, according to :setting:`TEMPLATE_DIRS`. This loader is enabled by default. ``django.template.loaders.app_directories.Loader`` + +.. class:: app_directories.Loader + Loads templates from Django apps on the filesystem. For each app in :setting:`INSTALLED_APPS`, the loader looks for a ``templates`` subdirectory. If the directory exists, Django looks for templates in there. @@ -669,12 +679,18 @@ class. Here are the template loaders that come with Django: This loader is enabled by default. ``django.template.loaders.eggs.Loader`` + +.. class:: eggs.Loader + Just like ``app_directories`` above, but it loads templates from Python eggs rather than from the filesystem. This loader is disabled by default. ``django.template.loaders.cached.Loader`` + +.. class:: cached.Loader + By default, the templating system will read and compile your templates every time they need to be rendered. While the Django templating system is quite fast, the overhead from reading and compiling templates can add up. diff --git a/docs/ref/templates/builtins.txt b/docs/ref/templates/builtins.txt index aab53aed0c..cfc57cc551 100644 --- a/docs/ref/templates/builtins.txt +++ b/docs/ref/templates/builtins.txt @@ -377,7 +377,7 @@ block are output:: In the above, if ``athlete_list`` is not empty, the number of athletes will be displayed by the ``{{ athlete_list|length }}`` variable. -As you can see, the ``if`` tag may take one or several `` {% elif %}`` +As you can see, the ``if`` tag may take one or several ``{% elif %}`` clauses, as well as an ``{% else %}`` clause that will be displayed if all previous conditions fail. These clauses are optional. diff --git a/docs/ref/urls.txt b/docs/ref/urls.txt index 5a0b04f9fa..92b41b8fea 100644 --- a/docs/ref/urls.txt +++ b/docs/ref/urls.txt @@ -86,7 +86,6 @@ include() application and instance namespaces. :arg module: URLconf module (or module name) - :type module: Module or string :arg namespace: Instance namespace for the URL entries being included :type namespace: string :arg app_name: Application namespace for the URL entries being included @@ -142,4 +141,3 @@ value should suffice. See the documentation about :ref:`the 500 (HTTP Internal Server Error) view ` for more information. - diff --git a/docs/ref/utils.txt b/docs/ref/utils.txt index 942cac2650..de805173d7 100644 --- a/docs/ref/utils.txt +++ b/docs/ref/utils.txt @@ -190,8 +190,7 @@ The functions defined in this module share the following properties: Like ``decorator_from_middleware``, but returns a function that accepts the arguments to be passed to the middleware_class. For example, the :func:`~django.views.decorators.cache.cache_page` - decorator is created from the - :class:`~django.middleware.cache.CacheMiddleware` like this:: + decorator is created from the ``CacheMiddleware`` like this:: cache_page = decorator_from_middleware_with_args(CacheMiddleware) @@ -282,15 +281,15 @@ The functions defined in this module share the following properties: .. function:: smart_str(s, encoding='utf-8', strings_only=False, errors='strict') Alias of :func:`smart_bytes` on Python 2 and :func:`smart_text` on Python - 3. This function returns a :class:`str` or a lazy string. + 3. This function returns a ``str`` or a lazy string. - For instance, this is suitable for writing to :attr:`sys.stdout` on + For instance, this is suitable for writing to :data:`sys.stdout` on Python 2 and 3. .. function:: force_str(s, encoding='utf-8', strings_only=False, errors='strict') Alias of :func:`force_bytes` on Python 2 and :func:`force_text` on Python - 3. This function always returns a :class:`str`. + 3. This function always returns a ``str``. .. function:: iri_to_uri(iri) @@ -624,12 +623,12 @@ escaping HTML. .. function:: base36_to_int(s) Converts a base 36 string to an integer. On Python 2 the output is - guaranteed to be an :class:`int` and not a :class:`long`. + guaranteed to be an ``int`` and not a ``long``. .. function:: int_to_base36(i) Converts a positive integer to a base 36 string. On Python 2 ``i`` must be - smaller than :attr:`sys.maxint`. + smaller than :data:`sys.maxint`. ``django.utils.safestring`` =========================== @@ -647,12 +646,12 @@ appropriate entities. .. versionadded:: 1.5 - A :class:`bytes` subclass that has been specifically marked as "safe" + A ``bytes`` subclass that has been specifically marked as "safe" (requires no further escaping) for HTML output purposes. .. class:: SafeString - A :class:`str` subclass that has been specifically marked as "safe" + A ``str`` subclass that has been specifically marked as "safe" (requires no further escaping) for HTML output purposes. This is :class:`SafeBytes` on Python 2 and :class:`SafeText` on Python 3. @@ -660,7 +659,7 @@ appropriate entities. .. versionadded:: 1.5 - A :class:`str` (in Python 3) or :class:`unicode` (in Python 2) subclass + A ``str`` (in Python 3) or ``unicode`` (in Python 2) subclass that has been specifically marked as "safe" for HTML output purposes. .. class:: SafeUnicode diff --git a/docs/ref/validators.txt b/docs/ref/validators.txt index 0536b03d64..8da134a42d 100644 --- a/docs/ref/validators.txt +++ b/docs/ref/validators.txt @@ -118,7 +118,7 @@ to, or in lieu of custom ``field.clean()`` methods. .. data:: validate_ipv6_address - Uses :mod:`django.utils.ipv6` to check the validity of an IPv6 address. + Uses ``django.utils.ipv6`` to check the validity of an IPv6 address. ``validate_ipv46_address`` -------------------------- diff --git a/docs/releases/1.2-beta-1.txt b/docs/releases/1.2-beta-1.txt index 3549767379..abb0f3bbb9 100644 --- a/docs/releases/1.2-beta-1.txt +++ b/docs/releases/1.2-beta-1.txt @@ -47,7 +47,7 @@ should be updated to use the new :ref:`class-based runners Syndication feeds ----------------- -The :class:`django.contrib.syndication.feeds.Feed` class is being +The ``django.contrib.syndication.feeds.Feed`` class is being replaced by the :class:`django.contrib.syndication.views.Feed` class. The old ``feeds.Feed`` class is deprecated. The new class has an almost identical API, but allows instances to be used as views. diff --git a/docs/releases/1.2.txt b/docs/releases/1.2.txt index 68cec91587..50c049f5da 100644 --- a/docs/releases/1.2.txt +++ b/docs/releases/1.2.txt @@ -345,10 +345,10 @@ in 1.2 is support for multiple spatial databases. As a result, the following :ref:`spatial database backends ` are now included: -* :mod:`django.contrib.gis.db.backends.postgis` -* :mod:`django.contrib.gis.db.backends.mysql` -* :mod:`django.contrib.gis.db.backends.oracle` -* :mod:`django.contrib.gis.db.backends.spatialite` +* ``django.contrib.gis.db.backends.postgis`` +* ``django.contrib.gis.db.backends.mysql`` +* ``django.contrib.gis.db.backends.oracle`` +* ``django.contrib.gis.db.backends.spatialite`` GeoDjango now supports the rich capabilities added in the `PostGIS 1.5 release `_. @@ -986,7 +986,7 @@ should be updated to use the new :ref:`class-based runners ``Feed`` in ``django.contrib.syndication.feeds`` ------------------------------------------------ -The :class:`django.contrib.syndication.feeds.Feed` class has been +The ``django.contrib.syndication.feeds.Feed`` class has been replaced by the :class:`django.contrib.syndication.views.Feed` class. The old ``feeds.Feed`` class is deprecated, and will be removed in Django 1.4. diff --git a/docs/releases/1.3-alpha-1.txt b/docs/releases/1.3-alpha-1.txt index e2c52a7264..ba8a4fc557 100644 --- a/docs/releases/1.3-alpha-1.txt +++ b/docs/releases/1.3-alpha-1.txt @@ -150,7 +150,7 @@ process has been on adding lots of smaller, long standing feature requests. These include: * Improved tools for accessing and manipulating the current Site via - :func:`django.contrib.sites.models.get_current_site`. + ``django.contrib.sites.models.get_current_site()``. * A :class:`~django.test.client.RequestFactory` for mocking requests in tests. diff --git a/docs/releases/1.3-beta-1.txt b/docs/releases/1.3-beta-1.txt index d064063fce..14897ed3b7 100644 --- a/docs/releases/1.3-beta-1.txt +++ b/docs/releases/1.3-beta-1.txt @@ -140,7 +140,7 @@ attribute. Changes to ``USStateField`` =========================== -The :mod:`django.contrib.localflavor` application contains collections +The ``django.contrib.localflavor`` application contains collections of code relevant to specific countries or cultures. One such is ``USStateField``, which provides a field for storing the two-letter postal abbreviation of a U.S. state. This field has consistently caused problems, @@ -167,13 +167,13 @@ as a pair of changes: independent nations -- the Federated States of Micronesia, the Republic of the Marshall Islands and the Republic of Palau -- which are serviced under treaty by the U.S. postal system. A new form - widget, :class:`django.contrib.localflavor.us.forms.USPSSelect`, is + widget, ``django.contrib.localflavor.us.forms.USPSSelect``, is also available and provides the same set of choices. Additionally, several finer-grained choice tuples are provided which allow mixing and matching of subsets of the U.S. states and territories, and other locations serviced by the U.S. postal -system. Consult the :mod:`django.contrib.localflavor` documentation +system. Consult the ``django.contrib.localflavor`` documentation for more details. The change to `USStateField` is technically backwards-incompatible for diff --git a/docs/releases/1.3.txt b/docs/releases/1.3.txt index 6a056532b9..4c8dd2f81f 100644 --- a/docs/releases/1.3.txt +++ b/docs/releases/1.3.txt @@ -367,9 +367,8 @@ In earlier Django versions, when a model instance containing a file from the backend storage. This opened the door to several data-loss scenarios, including rolled-back transactions and fields on different models referencing the same file. In Django 1.3, when a model is deleted the -:class:`~django.db.models.FileField`'s -:func:`~django.db.models.FileField.delete` method won't be called. If you -need cleanup of orphaned files, you'll need to handle it yourself (for +:class:`~django.db.models.FileField`'s ``delete()`` method won't be called. If +you need cleanup of orphaned files, you'll need to handle it yourself (for instance, with a custom management command that can be run manually or scheduled to run periodically via e.g. cron). diff --git a/docs/releases/1.4-alpha-1.txt b/docs/releases/1.4-alpha-1.txt index 4086cfdecc..09855400eb 100644 --- a/docs/releases/1.4-alpha-1.txt +++ b/docs/releases/1.4-alpha-1.txt @@ -504,7 +504,7 @@ Django 1.4 also includes several smaller improvements worth noting: page. * The ``django.contrib.auth.models.check_password`` function has been moved - to the :mod:`django.contrib.auth.utils` module. Importing it from the old + to the ``django.contrib.auth.utils`` module. Importing it from the old location will still work, but you should update your imports. * The :djadmin:`collectstatic` management command gained a ``--clear`` option diff --git a/docs/releases/1.4-beta-1.txt b/docs/releases/1.4-beta-1.txt index a8732a9e65..8ea63742e3 100644 --- a/docs/releases/1.4-beta-1.txt +++ b/docs/releases/1.4-beta-1.txt @@ -564,7 +564,7 @@ Django 1.4 also includes several smaller improvements worth noting: page. * The ``django.contrib.auth.models.check_password`` function has been moved - to the :mod:`django.contrib.auth.utils` module. Importing it from the old + to the ``django.contrib.auth.utils`` module. Importing it from the old location will still work, but you should update your imports. * The :djadmin:`collectstatic` management command gained a ``--clear`` option diff --git a/docs/releases/1.4.txt b/docs/releases/1.4.txt index cf53b37f17..9459e940b4 100644 --- a/docs/releases/1.4.txt +++ b/docs/releases/1.4.txt @@ -888,10 +888,10 @@ object, Django raises an exception. ``MySQLdb``-specific exceptions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The MySQL backend historically has raised :class:`MySQLdb.OperationalError` +The MySQL backend historically has raised ``MySQLdb.OperationalError`` when a query triggered an exception. We've fixed this bug, and we now raise :exc:`django.db.DatabaseError` instead. If you were testing for -:class:`MySQLdb.OperationalError`, you'll need to update your ``except`` +``MySQLdb.OperationalError``, you'll need to update your ``except`` clauses. Database connection's thread-locality diff --git a/docs/topics/auth/passwords.txt b/docs/topics/auth/passwords.txt index 0f44444416..76284ae72f 100644 --- a/docs/topics/auth/passwords.txt +++ b/docs/topics/auth/passwords.txt @@ -171,18 +171,18 @@ Manually managing a user's password .. module:: django.contrib.auth.hashers - The :mod:`django.contrib.auth.hashers` module provides a set of functions - to create and validate hashed password. You can use them independently - from the ``User`` model. +The :mod:`django.contrib.auth.hashers` module provides a set of functions +to create and validate hashed password. You can use them independently +from the ``User`` model. .. function:: check_password(password, encoded) If you'd like to manually authenticate a user by comparing a plain-text password to the hashed password in the database, use the convenience - function :func:`django.contrib.auth.hashers.check_password`. It takes two - arguments: the plain-text password to check, and the full value of a - user's ``password`` field in the database to check against, and returns - ``True`` if they match, ``False`` otherwise. + function :func:`check_password`. It takes two arguments: the plain-text + password to check, and the full value of a user's ``password`` field in the + database to check against, and returns ``True`` if they match, ``False`` + otherwise. .. function:: make_password(password[, salt, hashers]) @@ -195,9 +195,9 @@ Manually managing a user's password ``'unsalted_md5'`` (only for backward compatibility) and ``'crypt'`` if you have the ``crypt`` library installed. If the password argument is ``None``, an unusable password is returned (a one that will be never - accepted by :func:`django.contrib.auth.hashers.check_password`). + accepted by :func:`check_password`). .. function:: is_password_usable(encoded_password) Checks if the given string is a hashed password that has a chance - of being verified against :func:`django.contrib.auth.hashers.check_password`. + of being verified against :func:`check_password`. diff --git a/docs/topics/cache.txt b/docs/topics/cache.txt index 9b3e41d0d4..208fa3a5e2 100644 --- a/docs/topics/cache.txt +++ b/docs/topics/cache.txt @@ -664,6 +664,8 @@ pickling.) Accessing the cache ------------------- +.. function:: django.core.cache.get_cache(backend, **kwargs) + The cache module, ``django.core.cache``, has a ``cache`` object that's automatically created from the ``'default'`` entry in the :setting:`CACHES` setting:: @@ -676,7 +678,7 @@ If you have multiple caches defined in :setting:`CACHES`, then you can use >>> from django.core.cache import get_cache >>> cache = get_cache('alternate') -If the named key does not exist, :exc:`InvalidCacheBackendError` will be raised. +If the named key does not exist, ``InvalidCacheBackendError`` will be raised. Basic usage @@ -844,7 +846,7 @@ key version to set or get. For example:: 'hello world!' The version of a specific key can be incremented and decremented using -the :func:`incr_version()` and :func:`decr_version()` methods. This +the ``incr_version()`` and ``decr_version()`` methods. This enables specific keys to be bumped to a new version, leaving other keys unaffected. Continuing our previous example:: @@ -879,7 +881,7 @@ parts), you can provide a custom key function. The :setting:`KEY_FUNCTION ` cache setting specifies a dotted-path to a function matching the prototype of -:func:`make_key()` above. If provided, this custom key function will +``make_key()`` above. If provided, this custom key function will be used instead of the default key combining function. Cache key warnings diff --git a/docs/topics/class-based-views/generic-display.txt b/docs/topics/class-based-views/generic-display.txt index 10279c0f63..dac45c8843 100644 --- a/docs/topics/class-based-views/generic-display.txt +++ b/docs/topics/class-based-views/generic-display.txt @@ -257,9 +257,9 @@ Specifying ``model = Publisher`` is really just shorthand for saying ``queryset = Publisher.objects.all()``. However, by using ``queryset`` to define a filtered list of objects you can be more specific about the objects that will be visible in the view (see :doc:`/topics/db/queries` -for more information about :class:`QuerySet` objects, and see the -:doc:`class-based views reference ` for the -complete details). +for more information about :class:`~django.db.models.query.QuerySet` objects, +and see the :doc:`class-based views reference ` +for the complete details). To pick a simple example, we might want to order a list of books by publication date, with the most recent first:: @@ -312,9 +312,9 @@ what if we wanted to write a view that displayed all the books by some arbitrary publisher? Handily, the ``ListView`` has a -:meth:`~django.views.generic.detail.ListView.get_queryset` method we can -override. Previously, it has just been returning the value of the ``queryset`` -attribute, but now we can add more logic. +:meth:`~django.views.generic.list.MultipleObjectMixin.get_queryset` method we +can override. Previously, it has just been returning the value of the +``queryset`` attribute, but now we can add more logic. The key part to making this work is that when class-based views are called, various useful things are stored on ``self``; as well as the request diff --git a/docs/topics/class-based-views/generic-editing.txt b/docs/topics/class-based-views/generic-editing.txt index 7d12184705..2f8b8b0711 100644 --- a/docs/topics/class-based-views/generic-editing.txt +++ b/docs/topics/class-based-views/generic-editing.txt @@ -7,10 +7,10 @@ Form processing generally has 3 paths: * POST with invalid data (typically redisplay form with errors) * POST with valid data (process the data and typically redirect) -Implementing this yourself often results in a lot of repeated -boilerplate code (see :ref:`Using a form in a -view`). To help avoid this, Django provides a -collection of generic class-based views for form processing. +Implementing this yourself often results in a lot of repeated boilerplate code +(see :ref:`Using a form in a view`). To help avoid +this, Django provides a collection of generic class-based views for form +processing. Basic Forms ----------- @@ -28,7 +28,7 @@ Given a simple contact form:: # send email using the self.cleaned_data dictionary pass -The view can be constructed using a FormView:: +The view can be constructed using a ``FormView``:: # views.py from myapp.forms import ContactForm @@ -50,42 +50,46 @@ Notes: * FormView inherits :class:`~django.views.generic.base.TemplateResponseMixin` so :attr:`~django.views.generic.base.TemplateResponseMixin.template_name` - can be used here + can be used here. * The default implementation for - :meth:`~django.views.generic.edit.FormView.form_valid` simply - redirects to the :attr:`success_url` + :meth:`~django.views.generic.edit.FormMixin.form_valid` simply + redirects to the :attr:`~django.views.generic.edit.FormMixin.success_url`. Model Forms ----------- Generic views really shine when working with models. These generic -views will automatically create a :class:`ModelForm`, so long as they -can work out which model class to use: - -* If the :attr:`model` attribute is given, that model class will be used -* If :meth:`get_object()` returns an object, the class of that object - will be used -* If a :attr:`queryset` is given, the model for that queryset will be used - -Model form views provide a :meth:`form_valid()` implementation that -saves the model automatically. You can override this if you have any +views will automatically create a :class:`~django.forms.ModelForm`, so long as +they can work out which model class to use: + +* If the :attr:`~django.views.generic.edit.ModelFormMixin.model` attribute is + given, that model class will be used. +* If :meth:`~django.views.generic.detail.SingleObjectMixin.get_object()` + returns an object, the class of that object will be used. +* If a :attr:`~django.views.generic.detail.SingleObjectMixin.queryset` is + given, the model for that queryset will be used. + +Model form views provide a +:meth:`~django.views.generic.edit.ModelFormMixin.form_valid()` implementation +that saves the model automatically. You can override this if you have any special requirements; see below for examples. -You don't even need to provide a attr:`success_url` for +You don't even need to provide a ``success_url`` for :class:`~django.views.generic.edit.CreateView` or :class:`~django.views.generic.edit.UpdateView` - they will use -:meth:`get_absolute_url()` on the model object if available. +:meth:`~django.db.models.Model.get_absolute_url()` on the model object if available. -If you want to use a custom :class:`ModelForm` (for instance to add -extra validation) simply set +If you want to use a custom :class:`~django.forms.ModelForm` (for instance to +add extra validation) simply set :attr:`~django.views.generic.edit.FormMixin.form_class` on your view. .. note:: When specifying a custom form class, you must still specify the model, - even though the :attr:`form_class` may be a :class:`ModelForm`. + even though the :attr:`~django.views.generic.edit.FormMixin.form_class` may + be a :class:`~django.forms.ModelForm`. -First we need to add :meth:`get_absolute_url()` to our :class:`Author` -class: +First we need to add :meth:`~django.db.models.Model.get_absolute_url()` to our +``Author`` class: .. code-block:: python @@ -137,8 +141,10 @@ Finally, we hook these new views into the URLconf:: .. note:: - These views inherit :class:`~django.views.generic.detail.SingleObjectTemplateResponseMixin` - which uses :attr:`~django.views.generic.detail.SingleObjectTemplateResponseMixin.template_name_prefix` + These views inherit + :class:`~django.views.generic.detail.SingleObjectTemplateResponseMixin` + which uses + :attr:`~django.views.generic.detail.SingleObjectTemplateResponseMixin.template_name_suffix` to construct the :attr:`~django.views.generic.base.TemplateResponseMixin.template_name` based on the model. @@ -149,15 +155,17 @@ Finally, we hook these new views into the URLconf:: * :class:`DeleteView` uses ``myapp/author_confirm_delete.html`` If you wish to have separate templates for :class:`CreateView` and - :class:1UpdateView`, you can set either :attr:`template_name` or - :attr:`template_name_suffix` on your view class. + :class:`UpdateView`, you can set either + :attr:`~django.views.generic.base.TemplateResponseMixin.template_name` or + :attr:`~django.views.generic.detail.SingleObjectTemplateResponseMixin.template_name_suffix` + on your view class. Models and request.user ----------------------- To track the user that created an object using a :class:`CreateView`, -you can use a custom :class:`ModelForm` to do this. First, add the -foreign key relation to the model:: +you can use a custom :class:`~django.forms.ModelForm` to do this. First, add +the foreign key relation to the model:: # models.py from django.contrib.auth import User @@ -169,7 +177,7 @@ foreign key relation to the model:: # ... -Create a custom :class:`ModelForm` in order to exclude the +Create a custom :class:`~django.forms.ModelForm` in order to exclude the ``created_by`` field and prevent the user from editing it: .. code-block:: python @@ -183,8 +191,10 @@ Create a custom :class:`ModelForm` in order to exclude the model = Author exclude = ('created_by',) -In the view, use the custom :attr:`form_class` and override -:meth:`form_valid()` to add the user:: +In the view, use the custom +:attr:`~django.views.generic.edit.FormMixin.form_class` and override +:meth:`~django.views.generic.edit.ModelFormMixin.form_valid()` to add the +user:: # views.py from django.views.generic.edit import CreateView @@ -202,7 +212,8 @@ In the view, use the custom :attr:`form_class` and override Note that you'll need to :ref:`decorate this view` using :func:`~django.contrib.auth.decorators.login_required`, or -alternatively handle unauthorised users in the :meth:`form_valid()`. +alternatively handle unauthorized users in the +:meth:`~django.views.generic.edit.ModelFormMixin.form_valid()`. AJAX example ------------ diff --git a/docs/topics/class-based-views/mixins.txt b/docs/topics/class-based-views/mixins.txt index 923b877cc5..4941ea9755 100644 --- a/docs/topics/class-based-views/mixins.txt +++ b/docs/topics/class-based-views/mixins.txt @@ -32,13 +32,14 @@ Two central mixins are provided that help in providing a consistent interface to working with templates in class-based views. :class:`~django.views.generic.base.TemplateResponseMixin` + Every built in view which returns a :class:`~django.template.response.TemplateResponse` will call the :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response` - method that :class:`TemplateResponseMixin` provides. Most of the time this + method that ``TemplateResponseMixin`` provides. Most of the time this will be called for you (for instance, it is called by the ``get()`` method implemented by both :class:`~django.views.generic.base.TemplateView` and - :class:`~django.views.generic.base.DetailView`); similarly, it's unlikely + :class:`~django.views.generic.detail.DetailView`); similarly, it's unlikely that you'll need to override it, although if you want your response to return something not rendered via a Django template then you'll want to do it. For an example of this, see the :ref:`JSONResponseMixin example @@ -59,10 +60,10 @@ interface to working with templates in class-based views. :class:`~django.views.generic.base.ContextMixin` Every built in view which needs context data, such as for rendering a - template (including :class:`TemplateResponseMixin` above), should call + template (including ``TemplateResponseMixin`` above), should call :meth:`~django.views.generic.base.ContextMixin.get_context_data` passing any data they want to ensure is in there as keyword arguments. - ``get_context_data`` returns a dictionary; in :class:`ContextMixin` it + ``get_context_data`` returns a dictionary; in ``ContextMixin`` it simply returns its keyword arguments, but it is common to override this to add more members to the dictionary. @@ -106,7 +107,7 @@ URLConf, and looks the object up either from the :attr:`~django.views.generic.detail.SingleObjectMixin.model` attribute on the view, or the :attr:`~django.views.generic.detail.SingleObjectMixin.queryset` -attribute if that's provided). :class:`SingleObjectMixin` also overrides +attribute if that's provided). ``SingleObjectMixin`` also overrides :meth:`~django.views.generic.base.ContextMixin.get_context_data`, which is used across all Django's built in class-based views to supply context data for template renders. @@ -115,10 +116,12 @@ To then make a :class:`~django.template.response.TemplateResponse`, :class:`DetailView` uses :class:`~django.views.generic.detail.SingleObjectTemplateResponseMixin`, which extends :class:`~django.views.generic.base.TemplateResponseMixin`, -overriding :meth:`get_template_names()` as discussed above. It actually -provides a fairly sophisticated set of options, but the main one that most -people are going to use is ``/_detail.html``. The -``_detail`` part can be changed by setting +overriding +:meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names()` +as discussed above. It actually provides a fairly sophisticated set of options, +but the main one that most people are going to use is +``/_detail.html``. The ``_detail`` part can be changed +by setting :attr:`~django.views.generic.detail.SingleObjectTemplateResponseMixin.template_name_suffix` on a subclass to something else. (For instance, the :doc:`generic edit views` use ``_form`` for create and update views, and @@ -128,9 +131,10 @@ ListView: working with many Django objects ------------------------------------------ Lists of objects follow roughly the same pattern: we need a (possibly -paginated) list of objects, typically a :class:`QuerySet`, and then we need -to make a :class:`TemplateResponse` with a suitable template using -that list of objects. +paginated) list of objects, typically a +:class:`~django.db.models.query.QuerySet`, and then we need to make a +:class:`~django.template.response.TemplateResponse` with a suitable template +using that list of objects. To get the objects, :class:`~django.views.generic.list.ListView` uses :class:`~django.views.generic.list.MultipleObjectMixin`, which @@ -138,9 +142,9 @@ provides both :meth:`~django.views.generic.list.MultipleObjectMixin.get_queryset` and :meth:`~django.views.generic.list.MultipleObjectMixin.paginate_queryset`. Unlike -with :class:`SingleObjectMixin`, there's no need to key off parts of -the URL to figure out the queryset to work with, so the default just -uses the +with :class:`~django.views.generic.detail.SingleObjectMixin`, there's no need +to key off parts of the URL to figure out the queryset to work with, so the +default just uses the :attr:`~django.views.generic.list.MultipleObjectMixin.queryset` or :attr:`~django.views.generic.list.MultipleObjectMixin.model` attribute on the view class. A common reason to override @@ -148,19 +152,19 @@ on the view class. A common reason to override here would be to dynamically vary the objects, such as depending on the current user or to exclude posts in the future for a blog. -:class:`MultipleObjectMixin` also overrides +:class:`~django.views.generic.list.MultipleObjectMixin` also overrides :meth:`~django.views.generic.base.ContextMixin.get_context_data` to include appropriate context variables for pagination (providing dummies if pagination is disabled). It relies on ``object_list`` being passed in as a keyword argument, which :class:`ListView` arranges for it. -To make a :class:`TemplateResponse`, :class:`ListView` then uses +To make a :class:`~django.template.response.TemplateResponse`, +:class:`ListView` then uses :class:`~django.views.generic.list.MultipleObjectTemplateResponseMixin`; -as with :class:`SingleObjectTemplateResponseMixin` above, this -overrides :meth:`get_template_names()` to provide :meth:`a range of -options -<~django.views.generic.list.MultipleObjectTempalteResponseMixin>`, +as with :class:`~django.views.generic.detail.SingleObjectTemplateResponseMixin` +above, this overrides ``get_template_names()`` to provide :meth:`a range of +options `, with the most commonly-used being ``/_list.html``, with the ``_list`` part again being taken from the @@ -197,13 +201,13 @@ the box. If in doubt, it's often better to back off and base your work on :class:`View` or :class:`TemplateView`, perhaps with - :class:`SimpleObjectMixin` and - :class:`MultipleObjectMixin`. Although you will probably end up - writing more code, it is more likely to be clearly understandable - to someone else coming to it later, and with fewer interactions to - worry about you will save yourself some thinking. (Of course, you - can always dip into Django's implementation of the generic class - based views for inspiration on how to tackle problems.) + :class:`~django.views.generic.detail.SingleObjectMixin` and + :class:`~django.views.generic.list.MultipleObjectMixin`. Although you + will probably end up writing more code, it is more likely to be clearly + understandable to someone else coming to it later, and with fewer + interactions to worry about you will save yourself some thinking. (Of + course, you can always dip into Django's implementation of the generic + class based views for inspiration on how to tackle problems.) .. _method resolution order: http://www.python.org/download/releases/2.3/mro/ @@ -247,9 +251,9 @@ We'll demonstrate this with the publisher modelling we used in the In practice you'd probably want to record the interest in a key-value store rather than in a relational database, so we've left that bit out. The only bit of the view that needs to worry about using -:class:`SingleObjectMixin` is where we want to look up the author -we're interested in, which it just does with a simple call to -``self.get_object()``. Everything else is taken care of for us by the +:class:`~django.views.generic.detail.SingleObjectMixin` is where we want to +look up the author we're interested in, which it just does with a simple call +to ``self.get_object()``. Everything else is taken care of for us by the mixin. We can hook this into our URLs easily enough:: @@ -265,7 +269,8 @@ We can hook this into our URLs easily enough:: Note the ``pk`` named group, which :meth:`~django.views.generic.detail.SingleObjectMixin.get_object` uses to look up the ``Author`` instance. You could also use a slug, or -any of the other features of :class:`SingleObjectMixin`. +any of the other features of +:class:`~django.views.generic.detail.SingleObjectMixin`. Using SingleObjectMixin with ListView ------------------------------------- @@ -277,23 +282,24 @@ example, you might want to paginate through all the books by a particular publisher. One way to do this is to combine :class:`ListView` with -:class:`SingleObjectMixin`, so that the queryset for the paginated -list of books can hang off the publisher found as the single +:class:`~django.views.generic.detail.SingleObjectMixin`, so that the queryset +for the paginated list of books can hang off the publisher found as the single object. In order to do this, we need to have two different querysets: **Publisher queryset for use in get_object** - We'll set that up directly when we call :meth:`get_object()`. + We'll set that up directly when we call ``get_object()``. **Book queryset for use by ListView** - We'll figure that out ourselves in :meth:`get_queryset()` so we - can take into account the Publisher we're looking at. + We'll figure that out ourselves in ``get_queryset()`` so we + can take into account the ``Publisher`` we're looking at. .. note:: - We have to think carefully about :meth:`get_context_data()`. - Since both :class:`SingleObjectMixin` and :class:`ListView` will + We have to think carefully about ``get_context_data()``. + Since both :class:`~django.views.generic.detail.SingleObjectMixin` and + :class:`ListView` will put things in the context data under the value of - :attr:`context_object_name` if it's set, we'll instead explictly + ``context_object_name`` if it's set, we'll instead explictly ensure the Publisher is in the context data. :class:`ListView` will add in the suitable ``page_obj`` and ``paginator`` for us providing we remember to call ``super()``. @@ -316,13 +322,14 @@ Now we can write a new ``PublisherDetail``:: self.object = self.get_object(Publisher.objects.all()) return self.object.book_set.all() -Notice how we set ``self.object`` within :meth:`get_queryset` so we -can use it again later in :meth:`get_context_data`. If you don't set -:attr:`template_name`, the template will default to the normal +Notice how we set ``self.object`` within ``get_queryset()`` so we +can use it again later in ``get_context_data()``. If you don't set +``template_name``, the template will default to the normal :class:`ListView` choice, which in this case would be ``"books/book_list.html"`` because it's a list of books; -:class:`ListView` knows nothing about :class:`SingleObjectMixin`, so -it doesn't have any clue this view is anything to do with a Publisher. +:class:`ListView` knows nothing about +:class:`~django.views.generic.detail.SingleObjectMixin`, so it doesn't have +any clue this view is anything to do with a Publisher. .. highlightlang:: html+django @@ -365,7 +372,7 @@ Generally you can use :class:`~django.views.generic.base.TemplateResponseMixin` and :class:`~django.views.generic.detail.SingleObjectMixin` when you need their functionality. As shown above, with a bit of care you can even -combine :class:`SingleObjectMixin` with +combine ``SingleObjectMixin`` with :class:`~django.views.generic.list.ListView`. However things get increasingly complex as you try to do so, and a good rule of thumb is: @@ -376,48 +383,48 @@ increasingly complex as you try to do so, and a good rule of thumb is: list`, :doc:`editing` and date. For example it's fine to combine :class:`TemplateView` (built in view) with - :class:`MultipleObjectMixin` (generic list), but you're likely to - have problems combining :class:`SingleObjectMixin` (generic - detail) with :class:`MultipleObjectMixin` (generic list). + :class:`~django.views.generic.list.MultipleObjectMixin` (generic list), but + you're likely to have problems combining ``SingleObjectMixin`` (generic + detail) with ``MultipleObjectMixin`` (generic list). To show what happens when you try to get more sophisticated, we show an example that sacrifices readability and maintainability when there is a simpler solution. First, let's look at a naive attempt to combine :class:`~django.views.generic.detail.DetailView` with :class:`~django.views.generic.edit.FormMixin` to enable use to -``POST`` a Django :class:`Form` to the same URL as we're displaying an -object using :class:`DetailView`. +``POST`` a Django :class:`~django.forms.Form` to the same URL as we're +displaying an object using :class:`DetailView`. Using FormMixin with DetailView ------------------------------- Think back to our earlier example of using :class:`View` and -:class:`SingleObjectMixin` together. We were recording a user's -interest in a particular author; say now that we want to let them -leave a message saying why they like them. Again, let's assume we're +:class:`~django.views.generic.detail.SingleObjectMixin` together. We were +recording a user's interest in a particular author; say now that we want to +let them leave a message saying why they like them. Again, let's assume we're not going to store this in a relational database but instead in something more esoteric that we won't worry about here. -At this point it's natural to reach for a :class:`Form` to encapsulate -the information sent from the user's browser to Django. Say also that -we're heavily invested in `REST`_, so we want to use the same URL for +At this point it's natural to reach for a :class:`~django.forms.Form` to +encapsulate the information sent from the user's browser to Django. Say also +that we're heavily invested in `REST`_, so we want to use the same URL for displaying the author as for capturing the message from the user. Let's rewrite our ``AuthorDetailView`` to do that. .. _REST: http://en.wikipedia.org/wiki/Representational_state_transfer We'll keep the ``GET`` handling from :class:`DetailView`, although -we'll have to add a :class:`Form` into the context data so we can +we'll have to add a :class:`~django.forms.Form` into the context data so we can render it in the template. We'll also want to pull in form processing from :class:`~django.views.generic.edit.FormMixin`, and write a bit of code so that on ``POST`` the form gets called appropriately. .. note:: - We use :class:`FormMixin` and implement :meth:`post()` ourselves - rather than try to mix :class:`DetailView` with :class:`FormView` - (which provides a suitable :meth:`post()` already) because both of - the views implement :meth:`get()`, and things would get much more + We use :class:`~django.views.generic.edit.FormMixin` and implement + ``post()`` ourselves rather than try to mix :class:`DetailView` with + :class:`FormView` (which provides a suitable ``post()`` already) because + both of the views implement ``get()``, and things would get much more confusing. .. highlightlang:: python @@ -472,24 +479,24 @@ Our new ``AuthorDetail`` looks like this:: # record the interest using the message in form.cleaned_data return super(AuthorDetail, self).form_valid(form) -:meth:`get_success_url()` is just providing somewhere to redirect to, +``get_success_url()`` is just providing somewhere to redirect to, which gets used in the default implementation of -:meth:`form_valid()`. We have to provide our own :meth:`post()` as -noted earlier, and override :meth:`get_context_data()` to make the -:class:`Form` available in the context data. +``form_valid()``. We have to provide our own ``post()`` as +noted earlier, and override ``get_context_data()`` to make the +:class:`~django.forms.Form` available in the context data. A better solution ----------------- It should be obvious that the number of subtle interactions between -:class:`FormMixin` and :class:`DetailView` is already testing our -ability to manage things. It's unlikely you'd want to write this kind -of class yourself. +:class:`~django.views.generic.edit.FormMixin` and :class:`DetailView` is +already testing our ability to manage things. It's unlikely you'd want to +write this kind of class yourself. -In this case, it would be fairly easy to just write the :meth:`post()` +In this case, it would be fairly easy to just write the ``post()`` method yourself, keeping :class:`DetailView` as the only generic -functionality, although writing :class:`Form` handling code involves a -lot of duplication. +functionality, although writing :class:`~django.forms.Form` handling code +involves a lot of duplication. Alternatively, it would still be easier than the above approach to have a separate view for processing the form, which could use @@ -502,15 +509,15 @@ An alternative better solution What we're really trying to do here is to use two different class based views from the same URL. So why not do just that? We have a very clear division here: ``GET`` requests should get the -:class:`DetailView` (with the :class:`Form` added to the context +:class:`DetailView` (with the :class:`~django.forms.Form` added to the context data), and ``POST`` requests should get the :class:`FormView`. Let's set up those views first. The ``AuthorDisplay`` view is almost the same as :ref:`when we first introduced AuthorDetail`; we have to -write our own :meth:`get_context_data()` to make the +write our own ``get_context_data()`` to make the ``AuthorInterestForm`` available to the template. We'll skip the -:meth:`get_object()` override from before for clarity. +``get_object()`` override from before for clarity. .. code-block:: python @@ -533,9 +540,9 @@ write our own :meth:`get_context_data()` to make the return super(AuthorDisplay, self).get_context_data(**context) Then the ``AuthorInterest`` is a simple :class:`FormView`, but we -have to bring in :class:`SingleObjectMixin` so we can find the author -we're talking about, and we have to remember to set -:attr:`template_name` to ensure that form errors will render the same +have to bring in :class:`~django.views.generic.detail.SingleObjectMixin` so we +can find the author we're talking about, and we have to remember to set +``template_name`` to ensure that form errors will render the same template as ``AuthorDisplay`` is using on ``GET``. .. code-block:: python @@ -568,14 +575,14 @@ template as ``AuthorDisplay`` is using on ``GET``. return super(AuthorInterest, self).form_valid(form) Finally we bring this together in a new ``AuthorDetail`` view. We -already know that calling :meth:`as_view()` on a class-based view -gives us something that behaves exactly like a function based view, so -we can do that at the point we choose between the two subviews. +already know that calling :meth:`~django.views.generic.base.View.as_view()` on +a class-based view gives us something that behaves exactly like a function +based view, so we can do that at the point we choose between the two subviews. -You can of course pass through keyword arguments to :meth:`as_view()` -in the same way you would in your URLconf, such as if you wanted the -``AuthorInterest`` behaviour to also appear at another URL but -using a different template. +You can of course pass through keyword arguments to +:meth:`~django.views.generic.base.View.as_view()` in the same way you +would in your URLconf, such as if you wanted the ``AuthorInterest`` behavior +to also appear at another URL but using a different template. .. code-block:: python @@ -646,8 +653,8 @@ Now we mix this into the base TemplateView:: Equally we could use our mixin with one of the generic views. We can make our own version of :class:`~django.views.generic.detail.DetailView` by mixing -:class:`JSONResponseMixin` with the -:class:`~django.views.generic.detail.BaseDetailView` -- (the +``JSONResponseMixin`` with the +``django.views.generic.detail.BaseDetailView`` -- (the :class:`~django.views.generic.detail.DetailView` before template rendering behavior has been mixed in):: @@ -662,11 +669,12 @@ If you want to be really adventurous, you could even mix a :class:`~django.views.generic.detail.DetailView` subclass that is able to return *both* HTML and JSON content, depending on some property of the HTTP request, such as a query argument or a HTTP header. Just mix -in both the :class:`JSONResponseMixin` and a +in both the ``JSONResponseMixin`` and a :class:`~django.views.generic.detail.SingleObjectTemplateResponseMixin`, -and override the implementation of :func:`render_to_response()` to defer -to the appropriate subclass depending on the type of response that the user -requested:: +and override the implementation of +:func:`~django.views.generic.base.TemplateResponseMixin.render_to_response()` +to defer to the appropriate subclass depending on the type of response that the +user requested:: class HybridDetailView(JSONResponseMixin, SingleObjectTemplateResponseMixin, BaseDetailView): def render_to_response(self, context): @@ -678,5 +686,5 @@ requested:: Because of the way that Python resolves method overloading, the local ``render_to_response()`` implementation will override the versions provided by -:class:`JSONResponseMixin` and +``JSONResponseMixin`` and :class:`~django.views.generic.detail.SingleObjectTemplateResponseMixin`. diff --git a/docs/topics/db/sql.txt b/docs/topics/db/sql.txt index 310dcb5ae6..6cc174a248 100644 --- a/docs/topics/db/sql.txt +++ b/docs/topics/db/sql.txt @@ -24,9 +24,8 @@ return model instances: .. method:: Manager.raw(raw_query, params=None, translations=None) This method method takes a raw SQL query, executes it, and returns a -:class:`~django.db.models.query.RawQuerySet` instance. This -:class:`~django.db.models.query.RawQuerySet` instance can be iterated -over just like an normal QuerySet to provide object instances. +``django.db.models.query.RawQuerySet`` instance. This ``RawQuerySet`` instance +can be iterated over just like an normal QuerySet to provide object instances. This is best illustrated with an example. Suppose you've got the following model:: diff --git a/docs/topics/db/transactions.txt b/docs/topics/db/transactions.txt index 7716c91681..11755ff5c5 100644 --- a/docs/topics/db/transactions.txt +++ b/docs/topics/db/transactions.txt @@ -48,10 +48,9 @@ you use the session middleware after the transaction middleware, session creation will be part of the transaction. The various cache middlewares are an exception: -:class:`~django.middleware.cache.CacheMiddleware`, -:class:`~django.middleware.cache.UpdateCacheMiddleware`, and -:class:`~django.middleware.cache.FetchFromCacheMiddleware` are never affected. -Even when using database caching, Django's cache backend uses its own +``CacheMiddleware``, :class:`~django.middleware.cache.UpdateCacheMiddleware`, +and :class:`~django.middleware.cache.FetchFromCacheMiddleware` are never +affected. Even when using database caching, Django's cache backend uses its own database cursor (which is mapped to its own database connection internally). .. note:: diff --git a/docs/topics/forms/formsets.txt b/docs/topics/forms/formsets.txt index b5b02581cd..ee1c69e031 100644 --- a/docs/topics/forms/formsets.txt +++ b/docs/topics/forms/formsets.txt @@ -3,6 +3,8 @@ Formsets ======== +.. class:: django.forms.formset.BaseFormSet + A formset is a layer of abstraction to working with multiple forms on the same page. It can be best compared to a data grid. Let's say you have the following form:: diff --git a/docs/topics/http/file-uploads.txt b/docs/topics/http/file-uploads.txt index b3a830c25e..53499359e3 100644 --- a/docs/topics/http/file-uploads.txt +++ b/docs/topics/http/file-uploads.txt @@ -227,8 +227,8 @@ field in the model:: ``UploadedFile`` objects ======================== -In addition to those inherited from :class:`File`, all ``UploadedFile`` objects -define the following methods/attributes: +In addition to those inherited from :class:`~django.core.files.File`, all +``UploadedFile`` objects define the following methods/attributes: .. attribute:: UploadedFile.content_type diff --git a/docs/topics/http/views.txt b/docs/topics/http/views.txt index 9ef521c71d..f73ec4f5be 100644 --- a/docs/topics/http/views.txt +++ b/docs/topics/http/views.txt @@ -132,6 +132,8 @@ Customizing error views The 404 (page not found) view ----------------------------- +.. function:: django.views.defaults.page_not_found(request, template_name='404.html') + When you raise an ``Http404`` exception, Django loads a special view devoted to handling 404 errors. By default, it's the view ``django.views.defaults.page_not_found``, which either produces a very simple diff --git a/docs/topics/i18n/timezones.txt b/docs/topics/i18n/timezones.txt index 14c81e6665..22a0edb073 100644 --- a/docs/topics/i18n/timezones.txt +++ b/docs/topics/i18n/timezones.txt @@ -310,7 +310,7 @@ time zone is unset, the default time zone applies. get_current_timezone ~~~~~~~~~~~~~~~~~~~~ -When the :func:`django.core.context_processors.tz` context processor is +When the ``django.core.context_processors.tz`` context processor is enabled -- by default, it is -- each :class:`~django.template.RequestContext` contains a ``TIME_ZONE`` variable that provides the name of the current time zone. @@ -659,7 +659,7 @@ Usage datetime.datetime(2012, 2, 21, 10, 28, 45, tzinfo=) Note that ``localize`` is a pytz extension to the :class:`~datetime.tzinfo` - API. Also, you may want to catch :exc:`~pytz.InvalidTimeError`. The + API. Also, you may want to catch ``pytz.InvalidTimeError``. The documentation of pytz contains `more examples`_. You should review it before attempting to manipulate aware datetimes. diff --git a/docs/topics/logging.txt b/docs/topics/logging.txt index db0c0b3d25..3b68914c1a 100644 --- a/docs/topics/logging.txt +++ b/docs/topics/logging.txt @@ -141,7 +141,7 @@ error log record will be written. Naming loggers -------------- -The call to :meth:`logging.getLogger()` obtains (creating, if +The call to :func:`logging.getLogger()` obtains (creating, if necessary) an instance of a logger. The logger instance is identified by a name. This name is used to identify the logger for configuration purposes. @@ -242,7 +242,7 @@ An example The full documentation for `dictConfig format`_ is the best source of information about logging configuration dictionaries. However, to give you a taste of what is possible, here is an example of a fairly -complex logging setup, configured using :meth:`logging.dictConfig`:: +complex logging setup, configured using :func:`logging.config.dictConfig`:: LOGGING = { 'version': 1, @@ -317,12 +317,12 @@ This logging configuration does the following things: message, plus the time, process, thread and module that generate the log message. -* Defines one filter -- :class:`project.logging.SpecialFilter`, +* Defines one filter -- ``project.logging.SpecialFilter``, using the alias ``special``. If this filter required additional arguments at time of construction, they can be provided as additional keys in the filter configuration dictionary. In this case, the argument ``foo`` will be given a value of ``bar`` when - instantiating the :class:`SpecialFilter`. + instantiating the ``SpecialFilter``. * Defines three handlers: @@ -365,7 +365,7 @@ logger, you can specify your own configuration scheme. The :setting:`LOGGING_CONFIG` setting defines the callable that will be used to configure Django's loggers. By default, it points at -Python's :meth:`logging.dictConfig()` method. However, if you want to +Python's :func:`logging.config.dictConfig()` function. However, if you want to use a different configuration process, you can use any other callable that takes a single argument. The contents of :setting:`LOGGING` will be provided as the value of that argument when logging is configured. @@ -509,7 +509,7 @@ logging module. through the filter. Handling of that record will not proceed if the callback returns False. - For instance, to filter out :class:`~django.http.UnreadablePostError` + For instance, to filter out :exc:`~django.http.UnreadablePostError` (raised when a user cancels an upload) from the admin emails, you would create a filter function:: diff --git a/docs/topics/python3.txt b/docs/topics/python3.txt index e1d78a10e6..b44c180d7f 100644 --- a/docs/topics/python3.txt +++ b/docs/topics/python3.txt @@ -78,8 +78,8 @@ wherever possible and avoid the ``b`` prefixes. String handling --------------- -Python 2's :class:`unicode` type was renamed :class:`str` in Python 3, -:class:`str` was renamed :class:`bytes`, and :class:`basestring` disappeared. +Python 2's :func:`unicode` type was renamed :func:`str` in Python 3, +:func:`str` was renamed ``bytes()``, and :func:`basestring` disappeared. six_ provides :ref:`tools ` to deal with these changes. @@ -131,35 +131,36 @@ and ``SafeText`` respectively. For forwards compatibility, the new names work as of Django 1.4.2. -:meth:`__str__` and :meth:`__unicode__` methods ------------------------------------------------ +:meth:`~object.__str__` and :meth:`~object.__unicode__` methods +--------------------------------------------------------------- -In Python 2, the object model specifies :meth:`__str__` and -:meth:`__unicode__` methods. If these methods exist, they must return -:class:`str` (bytes) and :class:`unicode` (text) respectively. +In Python 2, the object model specifies :meth:`~object.__str__` and +:meth:`~object.__unicode__` methods. If these methods exist, they must return +``str`` (bytes) and ``unicode`` (text) respectively. -The ``print`` statement and the :func:`str` built-in call :meth:`__str__` to -determine the human-readable representation of an object. The :func:`unicode` -built-in calls :meth:`__unicode__` if it exists, and otherwise falls back to -:meth:`__str__` and decodes the result with the system encoding. Conversely, -the :class:`~django.db.models.Model` base class automatically derives -:meth:`__str__` from :meth:`__unicode__` by encoding to UTF-8. +The ``print`` statement and the :func:`str` built-in call +:meth:`~object.__str__` to determine the human-readable representation of an +object. The :func:`unicode` built-in calls :meth:`~object.__unicode__` if it +exists, and otherwise falls back to :meth:`~object.__str__` and decodes the +result with the system encoding. Conversely, the +:class:`~django.db.models.Model` base class automatically derives +:meth:`~object.__str__` from :meth:`~object.__unicode__` by encoding to UTF-8. -In Python 3, there's simply :meth:`__str__`, which must return :class:`str` +In Python 3, there's simply :meth:`~object.__str__`, which must return ``str`` (text). -(It is also possible to define :meth:`__bytes__`, but Django application have +(It is also possible to define ``__bytes__()``, but Django application have little use for that method, because they hardly ever deal with -:class:`bytes`.) +``bytes``.) -Django provides a simple way to define :meth:`__str__` and :meth:`__unicode__` -methods that work on Python 2 and 3: you must define a :meth:`__str__` method -returning text and to apply the +Django provides a simple way to define :meth:`~object.__str__` and +:meth:`~object.__unicode__` methods that work on Python 2 and 3: you must +define a :meth:`~object.__str__` method returning text and to apply the :func:`~django.utils.encoding.python_2_unicode_compatible` decorator. On Python 3, the decorator is a no-op. On Python 2, it defines appropriate -:meth:`__unicode__` and :meth:`__str__` methods (replacing the original -:meth:`__str__` method in the process). Here's an example:: +:meth:`~object.__unicode__` and :meth:`~object.__str__` methods (replacing the +original :meth:`~object.__str__` method in the process). Here's an example:: from __future__ import unicode_literals from django.utils.encoding import python_2_unicode_compatible @@ -173,8 +174,8 @@ This technique is the best match for Django's porting philosophy. For forwards compatibility, this decorator is available as of Django 1.4.2. -Finally, note that :meth:`__repr__` must return a :class:`str` on all versions -of Python. +Finally, note that :meth:`~object.__repr__` must return a ``str`` on all +versions of Python. :class:`dict` and :class:`dict`-like classes -------------------------------------------- @@ -187,19 +188,19 @@ behave likewise in Python 3. six_ provides compatibility functions to work around this change: :func:`~six.iterkeys`, :func:`~six.iteritems`, and :func:`~six.itervalues`. Django's bundled version adds :func:`~django.utils.six.iterlists` for -:class:`~django.utils.datastructures.MultiValueDict` and its subclasses. +``django.utils.datastructures.MultiValueDict`` and its subclasses. :class:`~django.http.HttpRequest` and :class:`~django.http.HttpResponse` objects -------------------------------------------------------------------------------- According to :pep:`3333`: -- headers are always :class:`str` objects, -- input and output streams are always :class:`bytes` objects. +- headers are always ``str`` objects, +- input and output streams are always ``bytes`` objects. Specifically, :attr:`HttpResponse.content ` -contains :class:`bytes`, which may become an issue if you compare it with a -:class:`str` in your tests. The preferred solution is to rely on +contains ``bytes``, which may become an issue if you compare it with a +``str`` in your tests. The preferred solution is to rely on :meth:`~django.test.TestCase.assertContains` and :meth:`~django.test.TestCase.assertNotContains`. These methods accept a response and a unicode string as arguments. @@ -236,11 +237,10 @@ under Python 3, use the :func:`str` builtin:: str('my string') -In Python 3, there aren't any automatic conversions between :class:`str` and -:class:`bytes`, and the :mod:`codecs` module became more strict. -:meth:`str.decode` always returns :class:`bytes`, and :meth:`bytes.decode` -always returns :class:`str`. As a consequence, the following pattern is -sometimes necessary:: +In Python 3, there aren't any automatic conversions between ``str`` and +``bytes``, and the :mod:`codecs` module became more strict. :meth:`str.decode` +always returns ``bytes``, and ``bytes.decode`` always returns ``str``. As a +consequence, the following pattern is sometimes necessary:: value = value.encode('ascii', 'ignore').decode('ascii') @@ -395,11 +395,8 @@ The version of six bundled with Django includes one extra function: .. function:: iterlists(MultiValueDict) - Returns an iterator over the lists of values of a - :class:`~django.utils.datastructures.MultiValueDict`. This replaces - :meth:`~django.utils.datastructures.MultiValueDict.iterlists()` on Python - 2 and :meth:`~django.utils.datastructures.MultiValueDict.lists()` on - Python 3. + Returns an iterator over the lists of values of a ``MultiValueDict``. This + replaces ``iterlists()`` on Python 2 and ``lists()`` on Python 3. .. function:: assertRaisesRegex(testcase, *args, **kwargs) diff --git a/docs/topics/serialization.txt b/docs/topics/serialization.txt index e36c7587d1..2af0584a61 100644 --- a/docs/topics/serialization.txt +++ b/docs/topics/serialization.txt @@ -26,6 +26,8 @@ to (see `Serialization formats`_) and a argument can be any iterator that yields Django model instances, but it'll almost always be a QuerySet). +.. function:: django.core.serializers.get_serializer(format) + You can also use a serializer object directly:: XMLSerializer = serializers.get_serializer("xml") @@ -43,7 +45,7 @@ This is useful if you want to serialize data directly to a file-like object Calling :func:`~django.core.serializers.get_serializer` with an unknown :ref:`format ` will raise a - :class:`~django.core.serializers.SerializerDoesNotExist` exception. + ``django.core.serializers.SerializerDoesNotExist`` exception. Subset of fields ~~~~~~~~~~~~~~~~ diff --git a/docs/topics/settings.txt b/docs/topics/settings.txt index 88fa7b6864..fa26297988 100644 --- a/docs/topics/settings.txt +++ b/docs/topics/settings.txt @@ -32,6 +32,8 @@ Because a settings file is a Python module, the following apply: Designating the settings ======================== +.. envvar:: DJANGO_SETTINGS_MODULE + When you use Django, you have to tell it which settings you're using. Do this by using an environment variable, ``DJANGO_SETTINGS_MODULE``. @@ -260,4 +262,3 @@ It boils down to this: Use exactly one of either ``configure()`` or ``DJANGO_SETTINGS_MODULE``. Not both, and not neither. .. _@login_required: ../authentication/#the-login-required-decorator - diff --git a/docs/topics/testing/overview.txt b/docs/topics/testing/overview.txt index e51741e549..534569efeb 100644 --- a/docs/topics/testing/overview.txt +++ b/docs/topics/testing/overview.txt @@ -28,7 +28,7 @@ module defines tests in class-based approach. backported for Python 2.5 compatibility. To access this library, Django provides the - :mod:`django.utils.unittest` module alias. If you are using Python + ``django.utils.unittest`` module alias. If you are using Python 2.7, or you have installed unittest2 locally, Django will map the alias to the installed version of the unittest library. Otherwise, Django will use its own bundled version of unittest2. @@ -853,7 +853,7 @@ Normal Python unit test classes extend a base class of Hierarchy of Django unit testing classes Regardless of the version of Python you're using, if you've installed -``unittest2``, :mod:`django.utils.unittest` will point to that library. +``unittest2``, ``django.utils.unittest`` will point to that library. SimpleTestCase ~~~~~~~~~~~~~~ @@ -882,7 +882,7 @@ features like: then you should use :class:`~django.test.TransactionTestCase` or :class:`~django.test.TestCase` instead. -``SimpleTestCase`` inherits from :class:`django.utils.unittest.TestCase`. +``SimpleTestCase`` inherits from ``django.utils.unittest.TestCase``. TransactionTestCase ~~~~~~~~~~~~~~~~~~~ @@ -1724,7 +1724,7 @@ test if the database doesn't support a specific named feature. The decorators use a string identifier to describe database features. This string corresponds to attributes of the database connection -features class. See :class:`~django.db.backends.BaseDatabaseFeatures` +features class. See ``django.db.backends.BaseDatabaseFeatures`` class for a full list of database features that can be used as a basis for skipping tests. -- cgit v1.3 From 6248833d9e35926d6ccd4b4d602f7ea89fea0c74 Mon Sep 17 00:00:00 2001 From: mpaolini Date: Sun, 30 Dec 2012 23:59:02 +0100 Subject: Added documentation for the 'db' argument of the post-syncdb signal. --- django/db/models/signals.py | 2 +- docs/ref/signals.txt | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/django/db/models/signals.py b/django/db/models/signals.py index 2ef54a7ca7..09f93d0f77 100644 --- a/django/db/models/signals.py +++ b/django/db/models/signals.py @@ -12,6 +12,6 @@ post_save = Signal(providing_args=["instance", "raw", "created", "using", "updat pre_delete = Signal(providing_args=["instance", "using"], use_caching=True) post_delete = Signal(providing_args=["instance", "using"], use_caching=True) -post_syncdb = Signal(providing_args=["class", "app", "created_models", "verbosity", "interactive"], use_caching=True) +post_syncdb = Signal(providing_args=["class", "app", "created_models", "verbosity", "interactive", "db"], use_caching=True) m2m_changed = Signal(providing_args=["action", "instance", "reverse", "model", "pk_set", "using"], use_caching=True) diff --git a/docs/ref/signals.txt b/docs/ref/signals.txt index 0995789391..ca472bd60e 100644 --- a/docs/ref/signals.txt +++ b/docs/ref/signals.txt @@ -406,6 +406,10 @@ Arguments sent with this signal: For example, the :mod:`django.contrib.auth` app only prompts to create a superuser when ``interactive`` is ``True``. +``db`` + The database alias used for synchronization. Defaults to the ``default`` + database. + For example, ``yourapp/management/__init__.py`` could be written like:: from django.db.models.signals import post_syncdb -- cgit v1.3 From c8eff0dbcb0936aac2748a7a896d08f34b54c50f Mon Sep 17 00:00:00 2001 From: Preston Holmes Date: Fri, 4 Jan 2013 17:42:25 -0800 Subject: Fixed #19562 -- cleaned up password storage docs --- docs/topics/auth/passwords.txt | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) (limited to 'docs') diff --git a/docs/topics/auth/passwords.txt b/docs/topics/auth/passwords.txt index 76284ae72f..3d95b4b387 100644 --- a/docs/topics/auth/passwords.txt +++ b/docs/topics/auth/passwords.txt @@ -14,17 +14,19 @@ How Django stores passwords =========================== Django provides a flexible password storage system and uses PBKDF2 by default. -Older versions of Django used SHA1, and other algorithms couldn't be chosen. The :attr:`~django.contrib.auth.models.User.password` attribute of a :class:`~django.contrib.auth.models.User` object is a string in this format:: - algorithm$hash + $$$ -That's a storage algorithm, and hash, separated by the dollar-sign -character. The algorithm is one of a number of one way hashing or password -storage algorithms Django can use; see below. The hash is the result of the one- -way function. +Those are the components used for storing a User's password, separated by the +dollar-sign character and consist of: the hashing algorithm, the number of +algorithm iterations (work factor), the random salt, and the resulting password +hash. The algorithm is one of a number of one-way hashing or password storage +algorithms Django can use; see below. Iterations describe the number of times +the algorithm is run over the hash. Salt is the random seed used and the hash +is the result of the one-way function. By default, Django uses the PBKDF2_ algorithm with a SHA256 hash, a password stretching mechanism recommended by NIST_. This should be @@ -36,13 +38,14 @@ algorithm, or even use a custom algorithm to match your specific security situation. Again, most users shouldn't need to do this -- if you're not sure, you probably don't. If you do, please read on: -Django chooses the an algorithm by consulting the :setting:`PASSWORD_HASHERS` -setting. This is a list of hashing algorithm classes that this Django -installation supports. The first entry in this list (that is, -``settings.PASSWORD_HASHERS[0]``) will be used to store passwords, and all the -other entries are valid hashers that can be used to check existing passwords. -This means that if you want to use a different algorithm, you'll need to modify -:setting:`PASSWORD_HASHERS` to list your preferred algorithm first in the list. +Django chooses the algorithm to use by consulting the +:setting:`PASSWORD_HASHERS` setting. This is a list of hashing algorithm +classes that this Django installation supports. The first entry in this list +(that is, ``settings.PASSWORD_HASHERS[0]``) will be used to store passwords, +and all the other entries are valid hashers that can be used to check existing +passwords. This means that if you want to use a different algorithm, you'll +need to modify :setting:`PASSWORD_HASHERS` to list your preferred algorithm +first in the list. The default for :setting:`PASSWORD_HASHERS` is:: -- cgit v1.3 From a2396a4c8f2ccd7f91adee6d8c2e9c31f13f0e3f Mon Sep 17 00:00:00 2001 From: Anssi Kääriäinen Date: Wed, 24 Oct 2012 00:04:37 +0300 Subject: Fixed #19173 -- Made EmptyQuerySet a marker class only The guarantee that no queries will be made when accessing results is done by new EmptyWhere class which is used for query.where and having. Thanks to Simon Charette for reviewing and valuable suggestions. --- django/contrib/auth/models.py | 4 +- django/db/models/manager.py | 8 +- django/db/models/query.py | 159 ++++------------------------ django/db/models/sql/query.py | 9 +- django/db/models/sql/where.py | 8 ++ docs/ref/models/querysets.txt | 10 +- docs/releases/1.6.txt | 5 + tests/modeltests/basic/tests.py | 7 ++ tests/modeltests/get_object_or_404/tests.py | 2 +- tests/modeltests/lookup/tests.py | 2 +- tests/regressiontests/queries/tests.py | 59 ++++++----- 11 files changed, 96 insertions(+), 177 deletions(-) (limited to 'docs') diff --git a/django/contrib/auth/models.py b/django/contrib/auth/models.py index 6f20981ca6..1b63833688 100644 --- a/django/contrib/auth/models.py +++ b/django/contrib/auth/models.py @@ -473,8 +473,8 @@ class AnonymousUser(object): is_staff = False is_active = False is_superuser = False - _groups = EmptyManager() - _user_permissions = EmptyManager() + _groups = EmptyManager(Group) + _user_permissions = EmptyManager(Permission) def __init__(self): pass diff --git a/django/db/models/manager.py b/django/db/models/manager.py index 8da8af487c..da6523c89a 100644 --- a/django/db/models/manager.py +++ b/django/db/models/manager.py @@ -1,6 +1,6 @@ import copy from django.db import router -from django.db.models.query import QuerySet, EmptyQuerySet, insert_query, RawQuerySet +from django.db.models.query import QuerySet, insert_query, RawQuerySet from django.db.models import signals from django.db.models.fields import FieldDoesNotExist @@ -113,7 +113,7 @@ class Manager(object): ####################### def get_empty_query_set(self): - return EmptyQuerySet(self.model, using=self._db) + return QuerySet(self.model, using=self._db).none() def get_query_set(self): """Returns a new QuerySet object. Subclasses can override this method @@ -258,5 +258,9 @@ class SwappedManagerDescriptor(object): class EmptyManager(Manager): + def __init__(self, model): + super(EmptyManager, self).__init__() + self.model = model + def get_query_set(self): return self.get_empty_query_set() diff --git a/django/db/models/query.py b/django/db/models/query.py index d1f519aaf8..edc8cc9776 100644 --- a/django/db/models/query.py +++ b/django/db/models/query.py @@ -35,7 +35,6 @@ class QuerySet(object): """ def __init__(self, model=None, query=None, using=None): self.model = model - # EmptyQuerySet instantiates QuerySet with model as None self._db = using self.query = query or sql.Query(self.model) self._result_cache = None @@ -217,7 +216,9 @@ class QuerySet(object): def __and__(self, other): self._merge_sanity_check(other) if isinstance(other, EmptyQuerySet): - return other._clone() + return other + if isinstance(self, EmptyQuerySet): + return self combined = self._clone() combined._merge_known_related_objects(other) combined.query.combine(other.query, sql.AND) @@ -225,9 +226,11 @@ class QuerySet(object): def __or__(self, other): self._merge_sanity_check(other) - combined = self._clone() + if isinstance(self, EmptyQuerySet): + return other if isinstance(other, EmptyQuerySet): - return combined + return self + combined = self._clone() combined._merge_known_related_objects(other) combined.query.combine(other.query, sql.OR) return combined @@ -632,7 +635,9 @@ class QuerySet(object): """ Returns an empty QuerySet. """ - return self._clone(klass=EmptyQuerySet) + clone = self._clone() + clone.query.set_empty() + return clone ################################################################## # PUBLIC METHODS THAT ALTER ATTRIBUTES AND RETURN A NEW QUERYSET # @@ -981,6 +986,18 @@ class QuerySet(object): # empty" result. value_annotation = True +class InstanceCheckMeta(type): + def __instancecheck__(self, instance): + return instance.query.is_empty() + +class EmptyQuerySet(six.with_metaclass(InstanceCheckMeta), object): + """ + Marker class usable for checking if a queryset is empty by .none(): + isinstance(qs.none(), EmptyQuerySet) -> True + """ + + def __init__(self, *args, **kwargs): + raise TypeError("EmptyQuerySet can't be instantiated") class ValuesQuerySet(QuerySet): def __init__(self, *args, **kwargs): @@ -1180,138 +1197,6 @@ class DateQuerySet(QuerySet): return c -class EmptyQuerySet(QuerySet): - def __init__(self, model=None, query=None, using=None): - super(EmptyQuerySet, self).__init__(model, query, using) - self._result_cache = [] - - def __and__(self, other): - return self._clone() - - def __or__(self, other): - return other._clone() - - def count(self): - return 0 - - def delete(self): - pass - - def _clone(self, klass=None, setup=False, **kwargs): - c = super(EmptyQuerySet, self)._clone(klass, setup=setup, **kwargs) - c._result_cache = [] - return c - - def iterator(self): - # This slightly odd construction is because we need an empty generator - # (it raises StopIteration immediately). - yield next(iter([])) - - def all(self): - """ - Always returns EmptyQuerySet. - """ - return self - - def filter(self, *args, **kwargs): - """ - Always returns EmptyQuerySet. - """ - return self - - def exclude(self, *args, **kwargs): - """ - Always returns EmptyQuerySet. - """ - return self - - def complex_filter(self, filter_obj): - """ - Always returns EmptyQuerySet. - """ - return self - - def select_related(self, *fields, **kwargs): - """ - Always returns EmptyQuerySet. - """ - return self - - def annotate(self, *args, **kwargs): - """ - Always returns EmptyQuerySet. - """ - return self - - def order_by(self, *field_names): - """ - Always returns EmptyQuerySet. - """ - return self - - def distinct(self, fields=None): - """ - Always returns EmptyQuerySet. - """ - return self - - def extra(self, select=None, where=None, params=None, tables=None, - order_by=None, select_params=None): - """ - Always returns EmptyQuerySet. - """ - assert self.query.can_filter(), \ - "Cannot change a query once a slice has been taken" - return self - - def reverse(self): - """ - Always returns EmptyQuerySet. - """ - return self - - def defer(self, *fields): - """ - Always returns EmptyQuerySet. - """ - return self - - def only(self, *fields): - """ - Always returns EmptyQuerySet. - """ - return self - - def update(self, **kwargs): - """ - Don't update anything. - """ - return 0 - - def aggregate(self, *args, **kwargs): - """ - Return a dict mapping the aggregate names to None - """ - for arg in args: - kwargs[arg.default_alias] = arg - return dict([(key, None) for key in kwargs]) - - def values(self, *fields): - """ - Always returns EmptyQuerySet. - """ - return self - - def values_list(self, *fields, **kwargs): - """ - Always returns EmptyQuerySet. - """ - return self - - # EmptyQuerySet is always an empty result in where-clauses (and similar - # situations). - value_annotation = False - def get_klass_info(klass, max_depth=0, cur_depth=0, requested=None, only_load=None, from_parent=None): """ diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py index 87104f0d13..f021d571e9 100644 --- a/django/db/models/sql/query.py +++ b/django/db/models/sql/query.py @@ -25,7 +25,7 @@ from django.db.models.sql.constants import (QUERY_TERMS, ORDER_DIR, SINGLE, from django.db.models.sql.datastructures import EmptyResultSet, Empty, MultiJoin from django.db.models.sql.expressions import SQLEvaluator from django.db.models.sql.where import (WhereNode, Constraint, EverythingNode, - ExtraWhere, AND, OR) + ExtraWhere, AND, OR, EmptyWhere) from django.core.exceptions import FieldError __all__ = ['Query', 'RawQuery'] @@ -1511,6 +1511,13 @@ class Query(object): self.add_filter(('%s__isnull' % trimmed_prefix, False), negate=True, can_reuse=can_reuse) + def set_empty(self): + self.where = EmptyWhere() + self.having = EmptyWhere() + + def is_empty(self): + return isinstance(self.where, EmptyWhere) or isinstance(self.having, EmptyWhere) + def set_limits(self, low=None, high=None): """ Adjusts the limits on the rows retrieved. We use low/high to set these, diff --git a/django/db/models/sql/where.py b/django/db/models/sql/where.py index 47f4ffaba9..02847b1f54 100644 --- a/django/db/models/sql/where.py +++ b/django/db/models/sql/where.py @@ -272,6 +272,14 @@ class WhereNode(tree.Node): if hasattr(child[3], 'relabel_aliases'): child[3].relabel_aliases(change_map) +class EmptyWhere(WhereNode): + + def add(self, data, connector): + return + + def as_sql(self, qn=None, connection=None): + raise EmptyResultSet + class EverythingNode(object): """ A node that matches everything. diff --git a/docs/ref/models/querysets.txt b/docs/ref/models/querysets.txt index a8e946f8a5..2bbd895fd4 100644 --- a/docs/ref/models/querysets.txt +++ b/docs/ref/models/querysets.txt @@ -593,15 +593,17 @@ none .. method:: none() -Returns an ``EmptyQuerySet`` — a ``QuerySet`` subclass that always evaluates to -an empty list. This can be used in cases where you know that you should return -an empty result set and your caller is expecting a ``QuerySet`` object (instead -of returning an empty list, for example.) +Calling none() will create a queryset that never returns any objects and no +query will be executed when accessing the results. A qs.none() queryset +is an instance of ``EmptyQuerySet``. Examples:: >>> Entry.objects.none() [] + >>> from django.db.models.query import EmptyQuerySet + >>> isinstance(Entry.objects.none(), EmptyQuerySet) + True all ~~~ diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 1f57913397..e425036839 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -31,6 +31,11 @@ Minor features Backwards incompatible changes in 1.6 ===================================== +* The ``django.db.models.query.EmptyQuerySet`` can't be instantiated any more - + it is only usable as a marker class for checking if + :meth:`~django.db.models.query.QuerySet.none` has been called: + ``isinstance(qs.none(), EmptyQuerySet)`` + .. warning:: In addition to the changes outlined in this section, be sure to review the diff --git a/tests/modeltests/basic/tests.py b/tests/modeltests/basic/tests.py index 1c83b980a7..dba9a686d9 100644 --- a/tests/modeltests/basic/tests.py +++ b/tests/modeltests/basic/tests.py @@ -4,6 +4,7 @@ from datetime import datetime from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned from django.db.models.fields import Field, FieldDoesNotExist +from django.db.models.query import EmptyQuerySet from django.test import TestCase, skipIfDBFeature, skipUnlessDBFeature from django.utils import six from django.utils.translation import ugettext_lazy @@ -639,3 +640,9 @@ class ModelTest(TestCase): Article.objects.bulk_create([Article(headline=lazy, pub_date=datetime.now())]) article = Article.objects.get() self.assertEqual(article.headline, notlazy) + + def test_emptyqs(self): + # Can't be instantiated + with self.assertRaises(TypeError): + EmptyQuerySet() + self.assertTrue(isinstance(Article.objects.none(), EmptyQuerySet)) diff --git a/tests/modeltests/get_object_or_404/tests.py b/tests/modeltests/get_object_or_404/tests.py index 3b234c6cd3..38ebeb4f8c 100644 --- a/tests/modeltests/get_object_or_404/tests.py +++ b/tests/modeltests/get_object_or_404/tests.py @@ -53,7 +53,7 @@ class GetObjectOr404Tests(TestCase): get_object_or_404, Author.objects.all() ) - # Using an EmptyQuerySet raises a Http404 error. + # Using an empty QuerySet raises a Http404 error. self.assertRaises(Http404, get_object_or_404, Article.objects.none(), title__contains="Run" ) diff --git a/tests/modeltests/lookup/tests.py b/tests/modeltests/lookup/tests.py index 98358e3d10..de7105f92d 100644 --- a/tests/modeltests/lookup/tests.py +++ b/tests/modeltests/lookup/tests.py @@ -436,7 +436,7 @@ class LookupTests(TestCase): ]) def test_none(self): - # none() returns an EmptyQuerySet that behaves like any other QuerySet object + # none() returns a QuerySet that behaves like any other QuerySet object self.assertQuerysetEqual(Article.objects.none(), []) self.assertQuerysetEqual( Article.objects.none().filter(headline__startswith='Article'), []) diff --git a/tests/regressiontests/queries/tests.py b/tests/regressiontests/queries/tests.py index e3e515025c..7d01c16255 100644 --- a/tests/regressiontests/queries/tests.py +++ b/tests/regressiontests/queries/tests.py @@ -9,7 +9,7 @@ from django.conf import settings from django.core.exceptions import FieldError from django.db import DatabaseError, connection, connections, DEFAULT_DB_ALIAS from django.db.models import Count, F, Q -from django.db.models.query import ITER_CHUNK_SIZE, EmptyQuerySet +from django.db.models.query import ITER_CHUNK_SIZE from django.db.models.sql.where import WhereNode, EverythingNode, NothingNode from django.db.models.sql.datastructures import EmptyResultSet from django.test import TestCase, skipUnlessDBFeature @@ -663,31 +663,32 @@ class Queries1Tests(BaseQuerysetTest): Item.objects.filter(created__in=[self.time1, self.time2]), ['', ''] ) - def test_ticket7235(self): # An EmptyQuerySet should not raise exceptions if it is filtered. - q = EmptyQuerySet() - self.assertQuerysetEqual(q.all(), []) - self.assertQuerysetEqual(q.filter(x=10), []) - self.assertQuerysetEqual(q.exclude(y=3), []) - self.assertQuerysetEqual(q.complex_filter({'pk': 1}), []) - self.assertQuerysetEqual(q.select_related('spam', 'eggs'), []) - self.assertQuerysetEqual(q.annotate(Count('eggs')), []) - self.assertQuerysetEqual(q.order_by('-pub_date', 'headline'), []) - self.assertQuerysetEqual(q.distinct(), []) - self.assertQuerysetEqual( - q.extra(select={'is_recent': "pub_date > '2006-01-01'"}), - [] - ) - q.query.low_mark = 1 - self.assertRaisesMessage( - AssertionError, - 'Cannot change a query once a slice has been taken', - q.extra, select={'is_recent': "pub_date > '2006-01-01'"} - ) - self.assertQuerysetEqual(q.reverse(), []) - self.assertQuerysetEqual(q.defer('spam', 'eggs'), []) - self.assertQuerysetEqual(q.only('spam', 'eggs'), []) + Eaten.objects.create(meal='m') + q = Eaten.objects.none() + with self.assertNumQueries(0): + self.assertQuerysetEqual(q.all(), []) + self.assertQuerysetEqual(q.filter(meal='m'), []) + self.assertQuerysetEqual(q.exclude(meal='m'), []) + self.assertQuerysetEqual(q.complex_filter({'pk': 1}), []) + self.assertQuerysetEqual(q.select_related('food'), []) + self.assertQuerysetEqual(q.annotate(Count('food')), []) + self.assertQuerysetEqual(q.order_by('meal', 'food'), []) + self.assertQuerysetEqual(q.distinct(), []) + self.assertQuerysetEqual( + q.extra(select={'foo': "1"}), + [] + ) + q.query.low_mark = 1 + self.assertRaisesMessage( + AssertionError, + 'Cannot change a query once a slice has been taken', + q.extra, select={'foo': "1"} + ) + self.assertQuerysetEqual(q.reverse(), []) + self.assertQuerysetEqual(q.defer('meal'), []) + self.assertQuerysetEqual(q.only('meal'), []) def test_ticket7791(self): # There were "issues" when ordering and distinct-ing on fields related @@ -1935,8 +1936,8 @@ class CloneTests(TestCase): class EmptyQuerySetTests(TestCase): def test_emptyqueryset_values(self): - # #14366 -- Calling .values() on an EmptyQuerySet and then cloning that - # should not cause an error" + # #14366 -- Calling .values() on an empty QuerySet and then cloning + # that should not cause an error self.assertQuerysetEqual( Number.objects.none().values('num').order_by('num'), [] ) @@ -1952,9 +1953,9 @@ class EmptyQuerySetTests(TestCase): ) def test_ticket_19151(self): - # #19151 -- Calling .values() or .values_list() on an EmptyQuerySet - # should return EmptyQuerySet and not cause an error. - q = EmptyQuerySet() + # #19151 -- Calling .values() or .values_list() on an empty QuerySet + # should return an empty QuerySet and not cause an error. + q = Author.objects.none() self.assertQuerysetEqual(q.values(), []) self.assertQuerysetEqual(q.values_list(), []) -- cgit v1.3 From a890469d3bffe267aed0260fd267e44e53b14c5e Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Sun, 6 Jan 2013 22:56:13 +0100 Subject: Fixed #19571 -- Updated runserver output in the tutorial --- docs/intro/tutorial01.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/intro/tutorial01.txt b/docs/intro/tutorial01.txt index 632f27f2d2..d24e19ce11 100644 --- a/docs/intro/tutorial01.txt +++ b/docs/intro/tutorial01.txt @@ -130,9 +130,10 @@ you haven't already, and run the command ``python manage.py runserver``. You'll see the following output on the command line:: Validating models... - 0 errors found. - Django version 1.4, using settings 'mysite.settings' + 0 errors found + January 06, 2013 - 15:50:53 + Django version 1.5, using settings 'mysite.settings' Development server is running at http://127.0.0.1:8000/ Quit the server with CONTROL-C. -- cgit v1.3 From c698c55966ed9179828857398d27bf69e64713a2 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Mon, 7 Jan 2013 17:54:30 +0100 Subject: Created special PostgreSQL text indexes when unique is True Refs #19441. --- django/db/backends/postgresql_psycopg2/creation.py | 2 +- docs/ref/models/fields.txt | 3 +++ tests/regressiontests/indexes/models.py | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/django/db/backends/postgresql_psycopg2/creation.py b/django/db/backends/postgresql_psycopg2/creation.py index 90304aa566..88afd5f52f 100644 --- a/django/db/backends/postgresql_psycopg2/creation.py +++ b/django/db/backends/postgresql_psycopg2/creation.py @@ -42,7 +42,7 @@ class DatabaseCreation(BaseDatabaseCreation): def sql_indexes_for_field(self, model, f, style): output = [] - if f.db_index: + if f.db_index or f.unique: qn = self.connection.ops.quote_name db_table = model._meta.db_table tablespace = f.db_tablespace or model._meta.db_tablespace diff --git a/docs/ref/models/fields.txt b/docs/ref/models/fields.txt index 6498b6c845..77b838622b 100644 --- a/docs/ref/models/fields.txt +++ b/docs/ref/models/fields.txt @@ -272,6 +272,9 @@ field, a :exc:`django.db.IntegrityError` will be raised by the model's This option is valid on all field types except :class:`ManyToManyField` and :class:`FileField`. +Note that when ``unique`` is ``True``, you don't need to specify +:attr:`~Field.db_index`, because ``unique`` implies the creation of an index. + ``unique_for_date`` ------------------- diff --git a/tests/regressiontests/indexes/models.py b/tests/regressiontests/indexes/models.py index 4ab74d25bd..e38eb005db 100644 --- a/tests/regressiontests/indexes/models.py +++ b/tests/regressiontests/indexes/models.py @@ -17,4 +17,4 @@ if connection.vendor == 'postgresql': class IndexedArticle(models.Model): headline = models.CharField(max_length=100, db_index=True) body = models.TextField(db_index=True) - slug = models.CharField(max_length=40, unique=True, db_index=True) + slug = models.CharField(max_length=40, unique=True) -- cgit v1.3 From bb7f34d619bfe6b4e067af967ab30635c772def9 Mon Sep 17 00:00:00 2001 From: Carl Meyer Date: Mon, 7 Jan 2013 20:16:46 -0700 Subject: Fixed typo in 1.5 release notes; thanks Jonas Obrist. --- docs/releases/1.5.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/releases/1.5.txt b/docs/releases/1.5.txt index c5e8c61922..a5ce08aed6 100644 --- a/docs/releases/1.5.txt +++ b/docs/releases/1.5.txt @@ -67,7 +67,7 @@ can simply remove that line under Django 1.5 Python compatibility ==================== -Django 1.5 requires Python 2.6.5 or above, though we **highly recommended** +Django 1.5 requires Python 2.6.5 or above, though we **highly recommend** Python 2.7.3 or above. Support for Python 2.5 and below has been dropped. This change should affect only a small number of Django users, as most -- cgit v1.3 From 99315f709e26ea80de8ea3af4e336dbdbe467711 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 8 Jan 2013 15:43:35 -0500 Subject: Fixed #19555 - Removed '2012' from tutorial 1. Thanks rodrigorosa.lg and others for the report. --- docs/intro/tutorial01.txt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'docs') diff --git a/docs/intro/tutorial01.txt b/docs/intro/tutorial01.txt index d24e19ce11..cd07e081fc 100644 --- a/docs/intro/tutorial01.txt +++ b/docs/intro/tutorial01.txt @@ -647,8 +647,10 @@ Save these changes and start a new Python interactive shell by running >>> Poll.objects.filter(question__startswith='What') [] - # Get the poll whose year is 2012. - >>> Poll.objects.get(pub_date__year=2012) + # Get the poll that was published this year. + >>> from django.utils import timezone + >>> current_year = timezone.now().year + >>> Poll.objects.get(pub_date__year=current_year) # Request an ID that doesn't exist, this will raise an exception. @@ -699,8 +701,9 @@ Save these changes and start a new Python interactive shell by running # The API automatically follows relationships as far as you need. # Use double underscores to separate relationships. # This works as many levels deep as you want; there's no limit. - # Find all Choices for any poll whose pub_date is in 2012. - >>> Choice.objects.filter(poll__pub_date__year=2012) + # Find all Choices for any poll whose pub_date is in this year + # (reusing the 'current_year' variable we created above). + >>> Choice.objects.filter(poll__pub_date__year=current_year) [, , ] # Let's delete one of the choices. Use delete() for that. -- cgit v1.3 From 1884868adcc6945afaf7a96e01d35eafb623b847 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 8 Jan 2013 15:58:11 -0500 Subject: Added sphinx substitutions in place of hardcoded version numbers. Refs #19571 --- docs/intro/install.txt | 9 ++++----- docs/intro/tutorial01.txt | 8 +++++--- 2 files changed, 9 insertions(+), 8 deletions(-) (limited to 'docs') diff --git a/docs/intro/install.txt b/docs/intro/install.txt index f9b122e62d..3cbc8d88ab 100644 --- a/docs/intro/install.txt +++ b/docs/intro/install.txt @@ -78,11 +78,13 @@ Verifying --------- To verify that Django can be seen by Python, type ``python`` from your shell. -Then at the Python prompt, try to import Django:: +Then at the Python prompt, try to import Django: + +.. parsed-literal:: >>> import django >>> print(django.get_version()) - 1.5 + |version| You may have another version of Django installed. @@ -90,6 +92,3 @@ That's it! ---------- That's it -- you can now :doc:`move onto the tutorial `. - - - diff --git a/docs/intro/tutorial01.txt b/docs/intro/tutorial01.txt index cd07e081fc..fbbfea800d 100644 --- a/docs/intro/tutorial01.txt +++ b/docs/intro/tutorial01.txt @@ -127,13 +127,15 @@ The development server Let's verify this worked. Change into the outer :file:`mysite` directory, if you haven't already, and run the command ``python manage.py runserver``. You'll -see the following output on the command line:: +see the following output on the command line: + +.. parsed-literal:: Validating models... 0 errors found - January 06, 2013 - 15:50:53 - Django version 1.5, using settings 'mysite.settings' + |today| - 15:50:53 + Django version |version|, using settings 'mysite.settings' Development server is running at http://127.0.0.1:8000/ Quit the server with CONTROL-C. -- cgit v1.3 From 066cf2d70e30d6fae2a53b71b44137afa44ae5fa Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Wed, 9 Jan 2013 18:32:27 -0500 Subject: Fixed #19586 - Removed URL_VALIDATOR_USER_AGENT from setting docs. It was removed in Django 1.5, not deprecated. --- docs/ref/settings.txt | 9 --------- 1 file changed, 9 deletions(-) (limited to 'docs') diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt index be21f06de7..786a92c94d 100644 --- a/docs/ref/settings.txt +++ b/docs/ref/settings.txt @@ -2212,12 +2212,3 @@ Default: Not defined The site-specific user profile model used by this site. See :ref:`User profiles `. - -.. setting:: URL_VALIDATOR_USER_AGENT - -URL_VALIDATOR_USER_AGENT ------------------------- - -.. deprecated:: 1.5 - This value was used as the ``User-Agent`` header when checking if a URL - exists, a feature that was removed due to security and performance issues. -- cgit v1.3 From 227bd3f8dbcedb4d90cf5474bc237ca4bd46d49d Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Wed, 9 Jan 2013 19:03:34 -0500 Subject: Addeded CSS to bold deprecation notices. Thanks Sam Lai for mentioning this on the mailing list. --- docs/_theme/djangodocs/static/djangodocs.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/_theme/djangodocs/static/djangodocs.css b/docs/_theme/djangodocs/static/djangodocs.css index 4efb7e04f3..bab81cd919 100644 --- a/docs/_theme/djangodocs/static/djangodocs.css +++ b/docs/_theme/djangodocs/static/djangodocs.css @@ -115,7 +115,7 @@ div.admonition-behind-the-scenes { padding-left:65px; background:url(docicons-be /*** versoinadded/changes ***/ div.versionadded, div.versionchanged { } -div.versionadded span.title, div.versionchanged span.title { font-weight: bold; } +div.versionadded span.title, div.versionchanged span.title, div.deprecated span.title { font-weight: bold; } /*** p-links ***/ a.headerlink { color: #c60f0f; font-size: 0.8em; padding: 0 4px 0 4px; text-decoration: none; visibility: hidden; } -- cgit v1.3 From 4da5947a876a4ec2cba9de8b0ef1513832328c67 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Thu, 10 Jan 2013 15:16:25 -0500 Subject: Fixed #19588 - Added create_superuser to UserManager docs. Thanks minddust for the report. --- docs/ref/contrib/auth.txt | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'docs') diff --git a/docs/ref/contrib/auth.txt b/docs/ref/contrib/auth.txt index e35a5b3586..f871f1493f 100644 --- a/docs/ref/contrib/auth.txt +++ b/docs/ref/contrib/auth.txt @@ -218,9 +218,10 @@ Manager methods .. class:: models.UserManager The :class:`~django.contrib.auth.models.User` model has a custom manager - that has the following helper methods: + that has the following helper methods (in addition to the methods provided + by :class:`~django.contrib.auth.models.BaseUserManager`): - .. method:: create_user(username, email=None, password=None) + .. method:: create_user(username, email=None, password=None, **extra_fields) Creates, saves and returns a :class:`~django.contrib.auth.models.User`. @@ -235,18 +236,17 @@ Manager methods :meth:`~django.contrib.auth.models.User.set_unusable_password()` will be called. - See :ref:`Creating users ` for example usage. + The ``extra_fields`` keyword arguments are passed through to the + :class:`~django.contrib.auth.models.User`'s ``__init__`` method to + allow setting arbitrary fields on a :ref:`custom User model + `. - .. method:: make_random_password(length=10, allowed_chars='abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789') + See :ref:`Creating users ` for example usage. - Returns a random password with the given length and given string of - allowed characters. (Note that the default value of ``allowed_chars`` - doesn't contain letters that can cause user confusion, including: + .. method:: create_superuser(self, username, email, password, **extra_fields) - * ``i``, ``l``, ``I``, and ``1`` (lowercase letter i, lowercase - letter L, uppercase letter i, and the number one) - * ``o``, ``O``, and ``0`` (uppercase letter o, lowercase letter o, - and zero) + Same as :meth:`create_user`, but sets :attr:`~models.User.is_staff` and + :attr:`~models.User.is_superuser` to ``True``. Anonymous users -- cgit v1.3 From 71d76ec011b393990ba9f5fb63727dbe36c3c440 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Fri, 11 Jan 2013 05:59:17 -0500 Subject: Fixed #10239 - Added docs for modelform_factory Thanks ingenieroariel for the suggestion and slurms for the review. --- django/forms/models.py | 20 +++++++++++++++++ docs/ref/forms/index.txt | 1 + docs/ref/forms/models.txt | 40 ++++++++++++++++++++++++++++++++++ docs/topics/forms/modelforms.txt | 46 ++++++++++++++++++++++++++++++++++------ 4 files changed, 100 insertions(+), 7 deletions(-) create mode 100644 docs/ref/forms/models.txt (limited to 'docs') diff --git a/django/forms/models.py b/django/forms/models.py index 27c246b668..1b6821cd5b 100644 --- a/django/forms/models.py +++ b/django/forms/models.py @@ -141,6 +141,11 @@ def fields_for_model(model, fields=None, exclude=None, widgets=None, formfield_c ``exclude`` is an optional list of field names. If provided, the named fields will be excluded from the returned fields, even if they are listed in the ``fields`` argument. + + ``widgets`` is a dictionary of model field names mapped to a widget + + ``formfield_callback`` is a callable that takes a model field and returns + a form field. """ field_list = [] ignored = [] @@ -371,6 +376,21 @@ class ModelForm(six.with_metaclass(ModelFormMetaclass, BaseModelForm)): def modelform_factory(model, form=ModelForm, fields=None, exclude=None, formfield_callback=None, widgets=None): + """ + Returns a ModelForm containing form fields for the given model. + + ``fields`` is an optional list of field names. If provided, only the named + fields will be included in the returned fields. + + ``exclude`` is an optional list of field names. If provided, the named + fields will be excluded from the returned fields, even if they are listed + in the ``fields`` argument. + + ``widgets`` is a dictionary of model field names mapped to a widget. + + ``formfield_callback`` is a callable that takes a model field and returns + a form field. + """ # Create the inner Meta class. FIXME: ideally, we should be able to # construct a ModelForm without creating and passing in a temporary # inner class. diff --git a/docs/ref/forms/index.txt b/docs/ref/forms/index.txt index 866afed6dc..446fdb82de 100644 --- a/docs/ref/forms/index.txt +++ b/docs/ref/forms/index.txt @@ -9,5 +9,6 @@ Detailed form API reference. For introductory material, see :doc:`/topics/forms/ api fields + models widgets validation diff --git a/docs/ref/forms/models.txt b/docs/ref/forms/models.txt new file mode 100644 index 0000000000..1f4a0d0c3d --- /dev/null +++ b/docs/ref/forms/models.txt @@ -0,0 +1,40 @@ +==================== +Model Form Functions +==================== + +.. module:: django.forms.models + :synopsis: Django's functions for building model forms and formsets. + +.. method:: modelform_factory(model, form=ModelForm, fields=None, exclude=None, formfield_callback=None, widgets=None) + + Returns a :class:`~django.forms.ModelForm` class for the given ``model``. + You can optionally pass a ``form`` argument to use as a starting point for + constructing the ``ModelForm``. + + ``fields`` is an optional list of field names. If provided, only the named + fields will be included in the returned fields. + + ``exclude`` is an optional list of field names. If provided, the named + fields will be excluded from the returned fields, even if they are listed + in the ``fields`` argument. + + ``widgets`` is a dictionary of model field names mapped to a widget. + + ``formfield_callback`` is a callable that takes a model field and returns + a form field. + + See :ref:`modelforms-factory` for example usage. + +.. method:: modelformset_factory(model, form=ModelForm, formfield_callback=None, formset=BaseModelFormSet, extra=1, can_delete=False, can_order=False, max_num=None, fields=None, exclude=None) + + Returns a ``FormSet`` class for the given ``model`` class. + + Arguments ``model``, ``form``, ``fields``, ``exclude``, and + ``formfield_callback`` are all passed through to + :meth:`~django.forms.models.modelform_factory`. + + Arguments ``formset``, ``extra``, ``max_num``, ``can_order``, and + ``can_delete`` are passed through to ``formset_factory``. See + :ref:`formsets` for details. + + See :ref:`model-formsets` for example usage. diff --git a/docs/topics/forms/modelforms.txt b/docs/topics/forms/modelforms.txt index 802150d6c3..9a33d68cf7 100644 --- a/docs/topics/forms/modelforms.txt +++ b/docs/topics/forms/modelforms.txt @@ -544,6 +544,33 @@ for more on how field cleaning and validation work. Also, your model's :ref:`Validating objects ` for more information on the model's ``clean()`` hook. +.. _modelforms-factory: + +ModelForm factory function +-------------------------- + +You can create forms from a given model using the standalone function +:class:`~django.forms.models.modelform_factory`, instead of using a class +definition. This may be more convenient if you do not have many customizations +to make:: + + >>> from django.forms.models import modelform_factory + >>> BookForm = modelform_factory(Book) + +This can also be used to make simple modifications to existing forms, for +example by specifying which fields should be displayed:: + + >>> Form = modelform_factory(Book, form=BookForm, fields=("author",)) + +... or which fields should be excluded:: + + >>> Form = modelform_factory(Book, form=BookForm, exclude=("title",)) + +You can also specify the widgets to be used for a given field:: + + >>> from django.forms import Textarea + >>> Form = modelform_factory(Book, form=BookForm, widgets={"title": Textarea()}) + .. _model-formsets: Model formsets @@ -574,9 +601,10 @@ with the ``Author`` model. It works just like a regular formset:: .. note:: - ``modelformset_factory`` uses ``formset_factory`` to generate formsets. - This means that a model formset is just an extension of a basic formset - that knows how to interact with a particular model. + + :func:`~django.forms.models.modelformset_factory` uses ``formset_factory`` + to generate formsets. This means that a model formset is just an extension + of a basic formset that knows how to interact with a particular model. Changing the queryset --------------------- @@ -628,8 +656,9 @@ Providing initial values As with regular formsets, it's possible to :ref:`specify initial data ` for forms in the formset by specifying an ``initial`` parameter when instantiating the model formset class returned by -``modelformset_factory``. However, with model formsets, the initial values only -apply to extra forms, those that aren't bound to an existing object instance. +:func:`~django.forms.models.modelformset_factory`. However, with model +formsets, the initial values only apply to extra forms, those that aren't bound +to an existing object instance. .. _saving-objects-in-the-formset: @@ -675,7 +704,8 @@ Limiting the number of editable objects --------------------------------------- As with regular formsets, you can use the ``max_num`` and ``extra`` parameters -to ``modelformset_factory`` to limit the number of extra forms displayed. +to :func:`~django.forms.models.modelformset_factory` to limit the number of +extra forms displayed. ``max_num`` does not prevent existing objects from being displayed:: @@ -850,7 +880,9 @@ a particular author, you could do this:: >>> formset = BookFormSet(instance=author) .. note:: - ``inlineformset_factory`` uses ``modelformset_factory`` and marks + + ``inlineformset_factory`` uses + :func:`~django.forms.models.modelformset_factory` and marks ``can_delete=True``. .. seealso:: -- cgit v1.3 From 9f9a7f03d77e2b6002f841be42eccf8ff287f279 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Fri, 11 Jan 2013 07:01:56 -0500 Subject: Fixed #19437 - Clarified pip install instructions in contributing tutorial. --- docs/intro/contributing.txt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'docs') diff --git a/docs/intro/contributing.txt b/docs/intro/contributing.txt index c94038bc56..f9fb451b39 100644 --- a/docs/intro/contributing.txt +++ b/docs/intro/contributing.txt @@ -96,9 +96,10 @@ Download the Django source code repository using the following command:: pip install -e /path/to/your/local/clone/django/ - to link your cloned checkout into a virtual environment. This is a great - option to isolate your development copy of Django from the rest of your - system and avoids potential package conflicts. + (where ``django`` is the directory of your clone that contains + ``setup.py``) to link your cloned checkout into a virtual environment. This + is a great option to isolate your development copy of Django from the rest + of your system and avoids potential package conflicts. __ http://www.virtualenv.org -- cgit v1.3 From eb6c107624930c97390185fdbf7f887c50665808 Mon Sep 17 00:00:00 2001 From: Nick Sandford Date: Fri, 11 Jan 2013 13:57:54 +0800 Subject: Fixed #19360 -- Raised an explicit exception for aggregates on date/time fields in sqlite3 Thanks lsaffre for the report and Chris Medrela for the initial patch. --- django/db/backends/sqlite3/base.py | 13 +++++++++++++ docs/ref/models/querysets.txt | 8 ++++++++ tests/regressiontests/backends/models.py | 11 +++++++++++ tests/regressiontests/backends/tests.py | 18 +++++++++++++++++- 4 files changed, 49 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/django/db/backends/sqlite3/base.py b/django/db/backends/sqlite3/base.py index 1fcc222c80..f4fd1cc379 100644 --- a/django/db/backends/sqlite3/base.py +++ b/django/db/backends/sqlite3/base.py @@ -18,6 +18,8 @@ from django.db.backends.signals import connection_created from django.db.backends.sqlite3.client import DatabaseClient from django.db.backends.sqlite3.creation import DatabaseCreation from django.db.backends.sqlite3.introspection import DatabaseIntrospection +from django.db.models import fields +from django.db.models.sql import aggregates from django.utils.dateparse import parse_date, parse_datetime, parse_time from django.utils.functional import cached_property from django.utils.safestring import SafeBytes @@ -127,6 +129,17 @@ class DatabaseOperations(BaseDatabaseOperations): limit = 999 if len(fields) > 1 else 500 return (limit // len(fields)) if len(fields) > 0 else len(objs) + def check_aggregate_support(self, aggregate): + bad_fields = (fields.DateField, fields.DateTimeField, fields.TimeField) + bad_aggregates = (aggregates.Sum, aggregates.Avg, + aggregates.Variance, aggregates.StdDev) + if (isinstance(aggregate.source, bad_fields) and + isinstance(aggregate, bad_aggregates)): + raise NotImplementedError( + 'You cannot use Sum, Avg, StdDev and Variance aggregations ' + 'on date/time fields in sqlite3 ' + 'since date/time is saved as text.') + def date_extract_sql(self, lookup_type, field_name): # sqlite doesn't support extract, so we fake it with the user-defined # function django_extract that's registered in connect(). Note that diff --git a/docs/ref/models/querysets.txt b/docs/ref/models/querysets.txt index 2bbd895fd4..71049703c9 100644 --- a/docs/ref/models/querysets.txt +++ b/docs/ref/models/querysets.txt @@ -2188,6 +2188,14 @@ Django provides the following aggregation functions in the aggregate functions, see :doc:`the topic guide on aggregation `. +.. warning:: + + SQLite can't handle aggregation on date/time fields out of the box. + This is because there are no native date/time fields in SQLite and Django + currently emulates these features using a text field. Attempts to use + aggregation on date/time fields in SQLite will raise + ``NotImplementedError``. + Avg ~~~ diff --git a/tests/regressiontests/backends/models.py b/tests/regressiontests/backends/models.py index 344cf4c798..a92aa71e17 100644 --- a/tests/regressiontests/backends/models.py +++ b/tests/regressiontests/backends/models.py @@ -75,3 +75,14 @@ class Article(models.Model): def __str__(self): return self.headline + + +@python_2_unicode_compatible +class Item(models.Model): + name = models.CharField(max_length=30) + date = models.DateField() + time = models.TimeField() + last_modified = models.DateTimeField() + + def __str__(self): + return self.name diff --git a/tests/regressiontests/backends/tests.py b/tests/regressiontests/backends/tests.py index 791f4c1daa..b29384739d 100644 --- a/tests/regressiontests/backends/tests.py +++ b/tests/regressiontests/backends/tests.py @@ -12,6 +12,7 @@ from django.db import (backend, connection, connections, DEFAULT_DB_ALIAS, IntegrityError, transaction) from django.db.backends.signals import connection_created from django.db.backends.postgresql_psycopg2 import version as pg_version +from django.db.models import fields, Sum, Avg, Variance, StdDev from django.db.utils import ConnectionHandler, DatabaseError, load_backend from django.test import (TestCase, skipUnlessDBFeature, skipIfDBFeature, TransactionTestCase) @@ -362,6 +363,22 @@ class EscapingChecks(TestCase): self.assertTrue(int(response)) +class SqlliteAggregationTests(TestCase): + """ + #19360: Raise NotImplementedError when aggregating on date/time fields. + """ + @unittest.skipUnless(connection.vendor == 'sqlite', + "No need to check SQLite aggregation semantics") + def test_aggregation(self): + for aggregate in (Sum, Avg, Variance, StdDev): + self.assertRaises(NotImplementedError, + models.Item.objects.all().aggregate, aggregate('time')) + self.assertRaises(NotImplementedError, + models.Item.objects.all().aggregate, aggregate('date')) + self.assertRaises(NotImplementedError, + models.Item.objects.all().aggregate, aggregate('last_modified')) + + class BackendTestCase(TestCase): def create_squares_with_executemany(self, args): @@ -400,7 +417,6 @@ class BackendTestCase(TestCase): self.create_squares_with_executemany(args) self.assertEqual(models.Square.objects.count(), 9) - def test_unicode_fetches(self): #6254: fetchone, fetchmany, fetchall return strings as unicode objects qn = connection.ops.quote_name -- cgit v1.3 From 5362134090adce86c755a6ab48831ba834b70704 Mon Sep 17 00:00:00 2001 From: Vinod Kurup Date: Thu, 10 Jan 2013 16:17:52 -0500 Subject: Fixed code examples in which render() calls were missing `request` parameter. --- docs/topics/http/file-uploads.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/topics/http/file-uploads.txt b/docs/topics/http/file-uploads.txt index 53499359e3..80bd5f3c44 100644 --- a/docs/topics/http/file-uploads.txt +++ b/docs/topics/http/file-uploads.txt @@ -201,7 +201,7 @@ corresponding :class:`~django.db.models.FileField` when calling return HttpResponseRedirect('/success/url/') else: form = ModelFormWithFileField() - return render('upload.html', {'form': form}) + return render(request, 'upload.html', {'form': form}) If you are constructing an object manually, you can simply assign the file object from :attr:`request.FILES ` to the file @@ -221,7 +221,7 @@ field in the model:: return HttpResponseRedirect('/success/url/') else: form = UploadFileForm() - return render('upload.html', {'form': form}) + return render(request, 'upload.html', {'form': form}) ``UploadedFile`` objects -- cgit v1.3 From 1bbd36a36add9b15db43014cf5e7bdb72a86fef1 Mon Sep 17 00:00:00 2001 From: Ramiro Morales Date: Fri, 11 Jan 2013 16:15:17 -0300 Subject: Minor DEBUG setting reference formatting edit. --- docs/ref/settings.txt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'docs') diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt index 786a92c94d..ffe8a0fe77 100644 --- a/docs/ref/settings.txt +++ b/docs/ref/settings.txt @@ -744,13 +744,13 @@ sensitive (or offensive), such as :setting:`SECRET_KEY` or :setting:`PROFANITIES_LIST`. Specifically, it will exclude any setting whose name includes any of the following: - * API - * KEY - * PASS - * PROFANITIES_LIST - * SECRET - * SIGNATURE - * TOKEN +* ``'API'`` +* ``'KEY'`` +* ``'PASS'`` +* ``'PROFANITIES_LIST'`` +* ``'SECRET'`` +* ``'SIGNATURE'`` +* ``'TOKEN'`` Note that these are *partial* matches. ``'PASS'`` will also match PASSWORD, just as ``'TOKEN'`` will also match TOKENIZED and so on. -- cgit v1.3 From 4e2e8f39d19d79a59c2696b2c40cb619a54fa745 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Fri, 11 Jan 2013 20:42:33 +0100 Subject: Fixed #4833 -- Validate email addresses with localhost as domain --- django/core/validators.py | 65 ++++++++++++++++++++++++------------ docs/ref/validators.txt | 2 +- tests/modeltests/validators/tests.py | 2 ++ 3 files changed, 47 insertions(+), 22 deletions(-) (limited to 'docs') diff --git a/django/core/validators.py b/django/core/validators.py index 251b5d8856..cd9dba1ee8 100644 --- a/django/core/validators.py +++ b/django/core/validators.py @@ -78,30 +78,53 @@ def validate_integer(value): raise ValidationError('') -class EmailValidator(RegexValidator): +class EmailValidator(object): + message = _('Enter a valid e-mail address.') + code = 'invalid' + user_regex = re.compile( + r"(^[-!#$%&'*+/=?^_`{}|~0-9A-Z]+(\.[-!#$%&'*+/=?^_`{}|~0-9A-Z]+)*$" # dot-atom + r'|^"([\001-\010\013\014\016-\037!#-\[\]-\177]|\\[\001-\011\013\014\016-\177])*"$)', # quoted-string + re.IGNORECASE) + domain_regex = re.compile( + r'(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+(?:[A-Z]{2,6}\.?|[A-Z0-9-]{2,}\.?$)' # domain + # literal form, ipv4 address (SMTP 4.1.3) + r'|^\[(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}\]$', + re.IGNORECASE) + domain_whitelist = ['localhost'] + + def __init__(self, message=None, code=None, whitelist=None): + if message is not None: + self.message = message + if code is not None: + self.code = code + if whitelist is not None: + self.domain_whitelist = whitelist def __call__(self, value): - try: - super(EmailValidator, self).__call__(value) - except ValidationError as e: - # Trivial case failed. Try for possible IDN domain-part - if value and '@' in value: - parts = value.split('@') - try: - parts[-1] = parts[-1].encode('idna').decode('ascii') - except UnicodeError: - raise e - super(EmailValidator, self).__call__('@'.join(parts)) - else: - raise + value = force_text(value) + + if not value or '@' not in value: + raise ValidationError(self.message, code=self.code) + + user_part, domain_part = value.split('@', 1) + + if not self.user_regex.match(user_part): + raise ValidationError(self.message, code=self.code) + + if (not domain_part in self.domain_whitelist and + not self.domain_regex.match(domain_part)): + # Try for possible IDN domain-part + try: + domain_part = domain_part.encode('idna').decode('ascii') + if not self.domain_regex.match(domain_part): + raise ValidationError(self.message, code=self.code) + else: + return + except UnicodeError: + pass + raise ValidationError(self.message, code=self.code) -email_re = re.compile( - r"(^[-!#$%&'*+/=?^_`{}|~0-9A-Z]+(\.[-!#$%&'*+/=?^_`{}|~0-9A-Z]+)*" # dot-atom - # quoted-string, see also http://tools.ietf.org/html/rfc2822#section-3.2.5 - r'|^"([\001-\010\013\014\016-\037!#-\[\]-\177]|\\[\001-\011\013\014\016-\177])*"' - r')@((?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+(?:[A-Z]{2,6}\.?|[A-Z0-9-]{2,}\.?)$)' # domain - r'|\[(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}\]$', re.IGNORECASE) # literal form, ipv4 address (SMTP 4.1.3) -validate_email = EmailValidator(email_re, _('Enter a valid email address.'), 'invalid') +validate_email = EmailValidator() slug_re = re.compile(r'^[-a-zA-Z0-9_]+$') validate_slug = RegexValidator(slug_re, _("Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens."), 'invalid') diff --git a/docs/ref/validators.txt b/docs/ref/validators.txt index 8da134a42d..92e257ca85 100644 --- a/docs/ref/validators.txt +++ b/docs/ref/validators.txt @@ -96,7 +96,7 @@ to, or in lieu of custom ``field.clean()`` methods. ------------------ .. data:: validate_email - A :class:`RegexValidator` instance that ensures a value looks like an + An ``EmailValidator`` instance that ensures a value looks like an email address. ``validate_slug`` diff --git a/tests/modeltests/validators/tests.py b/tests/modeltests/validators/tests.py index 0174a606df..5b562a87e6 100644 --- a/tests/modeltests/validators/tests.py +++ b/tests/modeltests/validators/tests.py @@ -29,6 +29,8 @@ TEST_DATA = ( (validate_email, 'example@valid-----hyphens.com', None), (validate_email, 'example@valid-with-hyphens.com', None), (validate_email, 'test@domain.with.idn.tld.उदाहरण.परीक्षा', None), + (validate_email, 'email@localhost', None), + (EmailValidator(whitelist=['localdomain']), 'email@localdomain', None), (validate_email, None, ValidationError), (validate_email, '', ValidationError), -- cgit v1.3 From 17f8496fea9b866769b2d2a04326acbe25e9256f Mon Sep 17 00:00:00 2001 From: Stephan Jaekel Date: Sat, 12 Jan 2013 12:20:18 +0100 Subject: Fixed #19024 -- Corrected form wizard docs for get_form_prefix. --- docs/ref/contrib/formtools/form-wizard.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'docs') diff --git a/docs/ref/contrib/formtools/form-wizard.txt b/docs/ref/contrib/formtools/form-wizard.txt index 9ea65d7e5f..8cd5d4ecd3 100644 --- a/docs/ref/contrib/formtools/form-wizard.txt +++ b/docs/ref/contrib/formtools/form-wizard.txt @@ -318,11 +318,11 @@ Advanced ``WizardView`` methods counter as string representing the current step of the wizard. (E.g., the first form is ``'0'`` and the second form is ``'1'``) -.. method:: WizardView.get_form_prefix(step) +.. method:: WizardView.get_form_prefix(step, form) - Given the step, returns a form prefix to use. By default, this simply uses - the step itself. For more, see the :ref:`form prefix documentation - `. + Given the step and the form class which will be called with the returned + form prefix. By default, this simply uses the step itself. + For more, see the :ref:`form prefix documentation `. .. method:: WizardView.get_form_initial(step) -- cgit v1.3 From ba50d3e05bc9a33aef495a5fbca239afe52237b3 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sat, 12 Jan 2013 18:44:53 -0500 Subject: Fixed #14633 - Organized settings reference docs and added a topical index. Thanks Gabriel Hurley for the original idea and adamv for the draft patch. --- docs/ref/contrib/comments/index.txt | 11 +- docs/ref/contrib/comments/settings.txt | 33 - docs/ref/contrib/csrf.txt | 62 +- docs/ref/contrib/messages.txt | 94 +-- docs/ref/contrib/staticfiles.txt | 108 +-- docs/ref/settings.txt | 1208 +++++++++++++++++++++----------- docs/topics/http/sessions.txt | 117 +--- 7 files changed, 843 insertions(+), 790 deletions(-) delete mode 100644 docs/ref/contrib/comments/settings.txt (limited to 'docs') diff --git a/docs/ref/contrib/comments/index.txt b/docs/ref/contrib/comments/index.txt index 8275092d2f..d4e967b4b2 100644 --- a/docs/ref/contrib/comments/index.txt +++ b/docs/ref/contrib/comments/index.txt @@ -34,7 +34,8 @@ To get started using the ``comments`` app, follow these steps: #. Use the `comment template tags`_ below to embed comments in your templates. -You might also want to examine :doc:`/ref/contrib/comments/settings`. +You might also want to examine :ref:`the available settings +`. Comment template tags ===================== @@ -335,6 +336,13 @@ output the CSRF token and cookie. .. _honeypot: http://en.wikipedia.org/wiki/Honeypot_(computing) + +Configuration +============= + +See :ref:`comment settings `. + + More information ================ @@ -342,7 +350,6 @@ More information :maxdepth: 1 models - settings signals custom forms diff --git a/docs/ref/contrib/comments/settings.txt b/docs/ref/contrib/comments/settings.txt deleted file mode 100644 index 1f1aecafd4..0000000000 --- a/docs/ref/contrib/comments/settings.txt +++ /dev/null @@ -1,33 +0,0 @@ -================ -Comment settings -================ - -These settings configure the behavior of the comments framework: - -.. setting:: COMMENTS_HIDE_REMOVED - -COMMENTS_HIDE_REMOVED ---------------------- - -If ``True`` (default), removed comments will be excluded from comment -lists/counts (as taken from template tags). Otherwise, the template author is -responsible for some sort of a "this comment has been removed by the site staff" -message. - -.. setting:: COMMENT_MAX_LENGTH - -COMMENT_MAX_LENGTH ------------------- - -The maximum length of the comment field, in characters. Comments longer than -this will be rejected. Defaults to 3000. - -.. setting:: COMMENTS_APP - -COMMENTS_APP ------------- - -An app which provides :doc:`customization of the comments framework -`. Use the same dotted-string notation -as in :setting:`INSTALLED_APPS`. Your custom :setting:`COMMENTS_APP` -must also be listed in :setting:`INSTALLED_APPS`. diff --git a/docs/ref/contrib/csrf.txt b/docs/ref/contrib/csrf.txt index 42a41c4bfc..3ad16e2f97 100644 --- a/docs/ref/contrib/csrf.txt +++ b/docs/ref/contrib/csrf.txt @@ -488,60 +488,10 @@ developers of other reusable apps that want the same guarantees also use the Settings ======== -A number of settings can be used to control Django's CSRF behavior. +A number of settings can be used to control Django's CSRF behavior: -CSRF_COOKIE_DOMAIN ------------------- - -Default: ``None`` - -The domain to be used when setting the CSRF cookie. This can be useful for -easily allowing cross-subdomain requests to be excluded from the normal cross -site request forgery protection. It should be set to a string such as -``".example.com"`` to allow a POST request from a form on one subdomain to be -accepted by a view served from another subdomain. - -Please note that, with or without use of this setting, this CSRF protection -mechanism is not safe against cross-subdomain attacks -- see `Limitations`_. - -CSRF_COOKIE_NAME ----------------- - -Default: ``'csrftoken'`` - -The name of the cookie to use for the CSRF authentication token. This can be -whatever you want. - -CSRF_COOKIE_PATH ----------------- - -Default: ``'/'`` - -The path set on the CSRF cookie. This should either match the URL path of your -Django installation or be a parent of that path. - -This is useful if you have multiple Django instances running under the same -hostname. They can use different cookie paths, and each instance will only see -its own CSRF cookie. - -CSRF_COOKIE_SECURE ------------------- - -Default: ``False`` - -Whether to use a secure cookie for the CSRF cookie. If this is set to ``True``, -the cookie will be marked as "secure," which means browsers may ensure that the -cookie is only sent under an HTTPS connection. - -CSRF_FAILURE_VIEW ------------------ - -Default: ``'django.views.csrf.csrf_failure'`` - -A dotted path to the view function to be used when an incoming request -is rejected by the CSRF protection. The function should have this signature:: - - def csrf_failure(request, reason="") - -where ``reason`` is a short message (intended for developers or logging, not for -end users) indicating the reason the request was rejected. +* :setting:`CSRF_COOKIE_DOMAIN` +* :setting:`CSRF_COOKIE_NAME` +* :setting:`CSRF_COOKIE_PATH` +* :setting:`CSRF_COOKIE_SECURE` +* :setting:`CSRF_FAILURE_VIEW` diff --git a/docs/ref/contrib/messages.txt b/docs/ref/contrib/messages.txt index 661d7f2103..40f7d41ceb 100644 --- a/docs/ref/contrib/messages.txt +++ b/docs/ref/contrib/messages.txt @@ -78,8 +78,8 @@ Django provides three built-in storage classes: :class:`~django.contrib.messages.storage.fallback.FallbackStorage` is the default storage class. If it isn't suitable to your needs, you can select -another storage class by setting `MESSAGE_STORAGE`_ to its full import path, -for example:: +another storage class by setting setting:`MESSAGE_STORAGE` to its full import +path, for example:: MESSAGE_STORAGE = 'django.contrib.messages.storage.cookie.CookieStorage' @@ -87,6 +87,8 @@ To write your own storage class, subclass the ``BaseStorage`` class in ``django.contrib.messages.storage.base`` and implement the ``_get`` and ``_store`` methods. +.. _message-level: + Message levels -------------- @@ -108,7 +110,7 @@ Constant Purpose ``ERROR`` An action was **not** successful or some other failure occurred =========== ======== -The `MESSAGE_LEVEL`_ setting can be used to change the minimum recorded level +The :setting:`MESSAGE_LEVEL` setting can be used to change the minimum recorded level (or it can be `changed per request`_). Attempts to add messages of a level less than this will be ignored. @@ -136,7 +138,7 @@ Level Constant Tag ============== =========== To change the default tags for a message level (either built-in or custom), -set the `MESSAGE_TAGS`_ setting to a dictionary containing the levels +set the :setting:`MESSAGE_TAGS` setting to a dictionary containing the levels you wish to change. As this extends the default tags, you only need to provide tags for the levels you wish to override:: @@ -168,6 +170,8 @@ used tags (which are usually represented as HTML classes for the message):: messages.warning(request, 'Your account expires in three days.') messages.error(request, 'Document deleted.') +.. _message-displaying: + Displaying messages ------------------- @@ -216,7 +220,7 @@ Level Constant Value ============== ===== If you need to identify the custom levels in your HTML or CSS, you need to -provide a mapping via the `MESSAGE_TAGS`_ setting. +provide a mapping via the :setting:`MESSAGE_TAGS` setting. .. note:: If you are creating a reusable application, it is recommended to use @@ -316,80 +320,10 @@ window/tab will have its own browsing context. Settings ======== -A few :doc:`Django settings ` give you control over message +A few :ref:`settings` give you control over message behavior: -MESSAGE_LEVEL -------------- - -Default: ``messages.INFO`` - -This sets the minimum message that will be saved in the message storage. See -`Message levels`_ above for more details. - -.. admonition:: Important - - If you override ``MESSAGE_LEVEL`` in your settings file and rely on any of - the built-in constants, you must import the constants module directly to - avoid the potential for circular imports, e.g.:: - - from django.contrib.messages import constants as message_constants - MESSAGE_LEVEL = message_constants.DEBUG - - If desired, you may specify the numeric values for the constants directly - according to the values in the above :ref:`constants table - `. - -MESSAGE_STORAGE ---------------- - -Default: ``'django.contrib.messages.storage.fallback.FallbackStorage'`` - -Controls where Django stores message data. Valid values are: - -* ``'django.contrib.messages.storage.fallback.FallbackStorage'`` -* ``'django.contrib.messages.storage.session.SessionStorage'`` -* ``'django.contrib.messages.storage.cookie.CookieStorage'`` - -See `Storage backends`_ for more details. - -MESSAGE_TAGS ------------- - -Default:: - - {messages.DEBUG: 'debug', - messages.INFO: 'info', - messages.SUCCESS: 'success', - messages.WARNING: 'warning', - messages.ERROR: 'error',} - -This sets the mapping of message level to message tag, which is typically -rendered as a CSS class in HTML. If you specify a value, it will extend -the default. This means you only have to specify those values which you need -to override. See `Displaying messages`_ above for more details. - -.. admonition:: Important - - If you override ``MESSAGE_TAGS`` in your settings file and rely on any of - the built-in constants, you must import the ``constants`` module directly to - avoid the potential for circular imports, e.g.:: - - from django.contrib.messages import constants as message_constants - MESSAGE_TAGS = {message_constants.INFO: ''} - - If desired, you may specify the numeric values for the constants directly - according to the values in the above :ref:`constants table - `. - -SESSION_COOKIE_DOMAIN ---------------------- - -Default: ``None`` - -The storage backends that use cookies -- ``CookieStorage`` and -``FallbackStorage`` -- use the value of :setting:`SESSION_COOKIE_DOMAIN` in -setting their cookies. See the :doc:`settings documentation ` -for more information on how this works and why you might need to set it. - -.. _Django settings: ../settings/ +* :setting:`MESSAGE_LEVEL` +* :setting:`MESSAGE_STORAGE` +* :setting:`MESSAGE_TAGS` +* :ref:`SESSION_COOKIE_DOMAIN` diff --git a/docs/ref/contrib/staticfiles.txt b/docs/ref/contrib/staticfiles.txt index a4a60f239b..a7540388bc 100644 --- a/docs/ref/contrib/staticfiles.txt +++ b/docs/ref/contrib/staticfiles.txt @@ -19,106 +19,14 @@ can easily be served in production. Settings ======== -.. highlight:: python - -.. note:: - - The following settings control the behavior of the staticfiles app. - -.. setting:: STATICFILES_DIRS - -STATICFILES_DIRS ----------------- - -Default: ``[]`` - -This setting defines the additional locations the staticfiles app will traverse -if the ``FileSystemFinder`` finder is enabled, e.g. if you use the -:djadmin:`collectstatic` or :djadmin:`findstatic` management command or use the -static file serving view. - -This should be set to a list or tuple of strings that contain full paths to -your additional files directory(ies) e.g.:: - - STATICFILES_DIRS = ( - "/home/special.polls.com/polls/static", - "/home/polls.com/polls/static", - "/opt/webfiles/common", - ) - -Prefixes (optional) -""""""""""""""""""" - -In case you want to refer to files in one of the locations with an additional -namespace, you can **optionally** provide a prefix as ``(prefix, path)`` -tuples, e.g.:: - - STATICFILES_DIRS = ( - # ... - ("downloads", "/opt/webfiles/stats"), - ) - -Example: - -Assuming you have :setting:`STATIC_URL` set ``'/static/'``, the -:djadmin:`collectstatic` management command would collect the "stats" files -in a ``'downloads'`` subdirectory of :setting:`STATIC_ROOT`. - -This would allow you to refer to the local file -``'/opt/webfiles/stats/polls_20101022.tar.gz'`` with -``'/static/downloads/polls_20101022.tar.gz'`` in your templates, e.g.: - -.. code-block:: html+django - - - -.. setting:: STATICFILES_STORAGE - -STATICFILES_STORAGE -------------------- - -Default: ``'django.contrib.staticfiles.storage.StaticFilesStorage'`` - -The file storage engine to use when collecting static files with the -:djadmin:`collectstatic` management command. - -A ready-to-use instance of the storage backend defined in this setting -can be found at ``django.contrib.staticfiles.storage.staticfiles_storage``. - -For an example, see :ref:`staticfiles-from-cdn`. - -.. setting:: STATICFILES_FINDERS - -STATICFILES_FINDERS -------------------- - -Default:: - - ("django.contrib.staticfiles.finders.FileSystemFinder", - "django.contrib.staticfiles.finders.AppDirectoriesFinder") - -The list of finder backends that know how to find static files in -various locations. - -The default will find files stored in the :setting:`STATICFILES_DIRS` setting -(using ``django.contrib.staticfiles.finders.FileSystemFinder``) and in a -``static`` subdirectory of each app (using -``django.contrib.staticfiles.finders.AppDirectoriesFinder``) - -One finder is disabled by default: -``django.contrib.staticfiles.finders.DefaultStorageFinder``. If added to -your :setting:`STATICFILES_FINDERS` setting, it will look for static files in -the default file storage as defined by the :setting:`DEFAULT_FILE_STORAGE` -setting. - -.. note:: - - When using the ``AppDirectoriesFinder`` finder, make sure your apps - can be found by staticfiles. Simply add the app to the - :setting:`INSTALLED_APPS` setting of your site. - -Static file finders are currently considered a private interface, and this -interface is thus undocumented. +See :ref:`staticfiles settings ` for details on the +following settings: + +* :setting:`STATIC_ROOT` +* :setting:`STATIC_URL` +* :setting:`STATICFILES_DIRS` +* :setting:`STATICFILES_STORAGE` +* :setting:`STATICFILES_FINDERS` Management Commands =================== diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt index ffe8a0fe77..110d5dbdc9 100644 --- a/docs/ref/settings.txt +++ b/docs/ref/settings.txt @@ -13,11 +13,12 @@ Settings and :setting:`TEMPLATE_CONTEXT_PROCESSORS`. Make sure you keep the components required by the features of Django you wish to use. -Available settings -================== +Core settings +============= -Here's a full list of all available settings, in alphabetical order, and their -default values. +Here's a list of settings available in Django core and their default values. +Settings provided by contrib apps are listed below, followed by a topical index +of the core settings. .. setting:: ABSOLUTE_URL_OVERRIDES @@ -38,19 +39,6 @@ a model object and return its URL. This is a way of overriding Note that the model name used in this setting should be all lower-case, regardless of the case of the actual model class name. -.. setting:: ADMIN_FOR - -ADMIN_FOR ---------- - -Default: ``()`` (Empty tuple) - -Used for admin-site settings modules, this should be a tuple of settings -modules (in the format ``'foo.bar.baz'``) for which this site is an admin. - -The admin site uses this in its automatically-introspected documentation of -models, views and template tags. - .. setting:: ADMINS ADMINS @@ -99,26 +87,6 @@ The :setting:`APPEND_SLASH` setting is only used if :class:`~django.middleware.common.CommonMiddleware` is installed (see :doc:`/topics/http/middleware`). See also :setting:`PREPEND_WWW`. -.. setting:: AUTHENTICATION_BACKENDS - -AUTHENTICATION_BACKENDS ------------------------ - -Default: ``('django.contrib.auth.backends.ModelBackend',)`` - -A tuple of authentication backend classes (as strings) to use when attempting to -authenticate a user. See the :ref:`authentication backends documentation -` for details. - -.. setting:: AUTH_USER_MODEL - -AUTH_USER_MODEL ---------------- - -Default: 'auth.User' - -The model to use to represent a User. See :ref:`auth-custom-user`. - .. setting:: CACHES CACHES @@ -179,7 +147,8 @@ implementation is equivalent to the function:: You may use any key function you want, as long as it has the same argument signature. -See the :ref:`cache documentation ` for more information. +See the :ref:`cache documentation ` for more +information. .. setting:: CACHES-KEY_PREFIX @@ -293,6 +262,8 @@ The default number of seconds to cache a page when the caching middleware or See :doc:`/topics/cache`. +.. _settings-csrf: + .. setting:: CSRF_COOKIE_DOMAIN CSRF_COOKIE_DOMAIN @@ -304,7 +275,7 @@ The domain to be used when setting the CSRF cookie. This can be useful for easily allowing cross-subdomain requests to be excluded from the normal cross site request forgery protection. It should be set to a string such as ``".example.com"`` to allow a POST request from a form on one subdomain to be -accepted by accepted by a view served from another subdomain. +accepted by a view served from another subdomain. Please note that the presence of this setting does not imply that Django's CSRF protection is safe from cross-subdomain attacks by default - please see the @@ -361,7 +332,6 @@ where ``reason`` is a short message (intended for developers or logging, not for end users) indicating the reason the request was rejected. See :doc:`/ref/contrib/csrf`. - .. setting:: DATABASES DATABASES @@ -765,6 +735,8 @@ when you're debugging, but it'll rapidly consume memory on a production server. .. _django/views/debug.py: https://github.com/django/django/blob/master/django/views/debug.py +.. setting:: DEBUG_PROPAGATE_EXCEPTIONS + DEBUG_PROPAGATE_EXCEPTIONS -------------------------- @@ -1270,54 +1242,6 @@ configuration process will be skipped. .. _dictConfig: http://docs.python.org/library/logging.config.html#configuration-dictionary-schema -.. setting:: LOGIN_REDIRECT_URL - -LOGIN_REDIRECT_URL ------------------- - -Default: ``'/accounts/profile/'`` - -The URL where requests are redirected after login when the -``contrib.auth.login`` view gets no ``next`` parameter. - -This is used by the :func:`~django.contrib.auth.decorators.login_required` -decorator, for example. - -.. versionchanged:: 1.5 - -This setting now also accepts view function names and -:ref:`named URL patterns ` which can be used to reduce -configuration duplication since you no longer have to define the URL in two -places (``settings`` and URLconf). -For backward compatibility reasons the default remains unchanged. - -.. setting:: LOGIN_URL - -LOGIN_URL ---------- - -Default: ``'/accounts/login/'`` - -The URL where requests are redirected for login, especially when using the -:func:`~django.contrib.auth.decorators.login_required` decorator. - -.. versionchanged:: 1.5 - -This setting now also accepts view function names and -:ref:`named URL patterns ` which can be used to reduce -configuration duplication since you no longer have to define the URL in two -places (``settings`` and URLconf). -For backward compatibility reasons the default remains unchanged. - -.. setting:: LOGOUT_URL - -LOGOUT_URL ----------- - -Default: ``'/accounts/logout/'`` - -LOGIN_URL counterpart. - .. setting:: MANAGERS MANAGERS @@ -1355,37 +1279,6 @@ to a non-empty value. Example: ``"http://media.example.com/"`` -MESSAGE_LEVEL -------------- - -Default: `messages.INFO` - -Sets the minimum message level that will be recorded by the messages -framework. See the :doc:`messages documentation ` for -more details. - -MESSAGE_STORAGE ---------------- - -Default: ``'django.contrib.messages.storage.fallback.FallbackStorage'`` - -Controls where Django stores message data. See the -:doc:`messages documentation ` for more details. - -MESSAGE_TAGS ------------- - -Default:: - - {messages.DEBUG: 'debug', - messages.INFO: 'info', - messages.SUCCESS: 'success', - messages.WARNING: 'warning', - messages.ERROR: 'error',} - -Sets the mapping of message levels to message tags. See the -:doc:`messages documentation ` for more details. - .. setting:: MIDDLEWARE_CLASSES MIDDLEWARE_CLASSES @@ -1441,33 +1334,6 @@ format has higher precedence and will be applied instead. See also :setting:`DECIMAL_SEPARATOR`, :setting:`THOUSAND_SEPARATOR` and :setting:`USE_THOUSAND_SEPARATOR`. -.. setting:: PASSWORD_HASHERS - -PASSWORD_HASHERS ----------------- - -See :ref:`auth_password_storage`. - -Default:: - - ('django.contrib.auth.hashers.PBKDF2PasswordHasher', - 'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher', - 'django.contrib.auth.hashers.BCryptPasswordHasher', - 'django.contrib.auth.hashers.SHA1PasswordHasher', - 'django.contrib.auth.hashers.MD5PasswordHasher', - 'django.contrib.auth.hashers.UnsaltedMD5PasswordHasher', - 'django.contrib.auth.hashers.CryptPasswordHasher',) - -.. setting:: PASSWORD_RESET_TIMEOUT_DAYS - -PASSWORD_RESET_TIMEOUT_DAYS ---------------------------- - -Default: ``3`` - -The number of days a password reset link is valid for. Used by the -:mod:`django.contrib.auth` password reset mechanism. - .. setting:: PREPEND_WWW PREPEND_WWW @@ -1479,16 +1345,6 @@ Whether to prepend the "www." subdomain to URLs that don't have it. This is only used if :class:`~django.middleware.common.CommonMiddleware` is installed (see :doc:`/topics/http/middleware`). See also :setting:`APPEND_SLASH`. -.. setting:: PROFANITIES_LIST - -PROFANITIES_LIST ----------------- - -Default: ``()`` (Empty tuple) - -A tuple of profanities, as strings, that will be forbidden in comments when -``COMMENTS_ALLOW_PROFANITIES`` is ``False``. - .. setting:: ROOT_URLCONF ROOT_URLCONF @@ -1623,296 +1479,96 @@ Default: ``'root@localhost'`` The email address that error messages come from, such as those sent to :setting:`ADMINS` and :setting:`MANAGERS`. -.. setting:: SESSION_COOKIE_AGE +.. setting:: SHORT_DATE_FORMAT -SESSION_COOKIE_AGE ------------------- +SHORT_DATE_FORMAT +----------------- -Default: ``1209600`` (2 weeks, in seconds) +Default: ``m/d/Y`` (e.g. ``12/31/2003``) -The age of session cookies, in seconds. See :doc:`/topics/http/sessions`. +An available formatting that can be used for displaying date fields on +templates. Note that if :setting:`USE_L10N` is set to ``True``, then the +corresponding locale-dictated format has higher precedence and will be applied. +See :tfilter:`allowed date format strings `. -.. setting:: SESSION_COOKIE_DOMAIN +See also :setting:`DATE_FORMAT` and :setting:`SHORT_DATETIME_FORMAT`. -SESSION_COOKIE_DOMAIN +.. setting:: SHORT_DATETIME_FORMAT + +SHORT_DATETIME_FORMAT --------------------- -Default: ``None`` +Default: ``m/d/Y P`` (e.g. ``12/31/2003 4 p.m.``) -The domain to use for session cookies. Set this to a string such as -``".example.com"`` for cross-domain cookies, or use ``None`` for a standard -domain cookie. See the :doc:`/topics/http/sessions`. +An available formatting that can be used for displaying datetime fields on +templates. Note that if :setting:`USE_L10N` is set to ``True``, then the +corresponding locale-dictated format has higher precedence and will be applied. +See :tfilter:`allowed date format strings `. -.. setting:: SESSION_COOKIE_HTTPONLY +See also :setting:`DATE_FORMAT` and :setting:`SHORT_DATE_FORMAT`. -SESSION_COOKIE_HTTPONLY ------------------------ +.. setting:: SIGNING_BACKEND -Default: ``True`` +SIGNING_BACKEND +--------------- -Whether to use HTTPOnly flag on the session cookie. If this is set to -``True``, client-side JavaScript will not to be able to access the -session cookie. +Default: 'django.core.signing.TimestampSigner' -HTTPOnly_ is a flag included in a Set-Cookie HTTP response header. It -is not part of the :rfc:`2109` standard for cookies, and it isn't honored -consistently by all browsers. However, when it is honored, it can be a -useful way to mitigate the risk of client side script accessing the -protected cookie data. +The backend used for signing cookies and other data. -.. _HTTPOnly: https://www.owasp.org/index.php/HTTPOnly +See also the :doc:`/topics/signing` documentation. -.. setting:: SESSION_COOKIE_NAME +.. setting:: TEMPLATE_CONTEXT_PROCESSORS -SESSION_COOKIE_NAME -------------------- +TEMPLATE_CONTEXT_PROCESSORS +--------------------------- -Default: ``'sessionid'`` +Default:: -The name of the cookie to use for sessions. This can be whatever you want (but -should be different from :setting:`LANGUAGE_COOKIE_NAME`). -See the :doc:`/topics/http/sessions`. + ("django.contrib.auth.context_processors.auth", + "django.core.context_processors.debug", + "django.core.context_processors.i18n", + "django.core.context_processors.media", + "django.core.context_processors.static", + "django.core.context_processors.tz", + "django.contrib.messages.context_processors.messages") -.. setting:: SESSION_COOKIE_PATH +A tuple of callables that are used to populate the context in ``RequestContext``. +These callables take a request object as their argument and return a dictionary +of items to be merged into the context. -SESSION_COOKIE_PATH -------------------- +.. setting:: TEMPLATE_DEBUG -Default: ``'/'`` +TEMPLATE_DEBUG +-------------- -The path set on the session cookie. This should either match the URL path of your -Django installation or be parent of that path. +Default: ``False`` -This is useful if you have multiple Django instances running under the same -hostname. They can use different cookie paths, and each instance will only see -its own session cookie. +A boolean that turns on/off template debug mode. If this is ``True``, the fancy +error page will display a detailed report for any exception raised during +template rendering. This report contains the relevant snippet of the template, +with the appropriate line highlighted. -.. setting:: SESSION_CACHE_ALIAS +Note that Django only displays fancy error pages if :setting:`DEBUG` is ``True``, so +you'll want to set that to take advantage of this setting. -SESSION_CACHE_ALIAS -------------------- +See also :setting:`DEBUG`. -Default: ``default`` +.. setting:: TEMPLATE_DIRS -If you're using :ref:`cache-based session storage `, -this selects the cache to use. +TEMPLATE_DIRS +------------- -.. setting:: SESSION_COOKIE_SECURE +Default: ``()`` (Empty tuple) -SESSION_COOKIE_SECURE ---------------------- +List of locations of the template source files searched by +:class:`django.template.loaders.filesystem.Loader`, in search order. -Default: ``False`` +Note that these paths should use Unix-style forward slashes, even on Windows. -Whether to use a secure cookie for the session cookie. If this is set to -``True``, the cookie will be marked as "secure," which means browsers may -ensure that the cookie is only sent under an HTTPS connection. -See the :doc:`/topics/http/sessions`. +See :doc:`/topics/templates`. -.. setting:: SESSION_ENGINE - -SESSION_ENGINE --------------- - -Default: ``django.contrib.sessions.backends.db`` - -Controls where Django stores session data. Valid values are: - -* ``'django.contrib.sessions.backends.db'`` -* ``'django.contrib.sessions.backends.file'`` -* ``'django.contrib.sessions.backends.cache'`` -* ``'django.contrib.sessions.backends.cached_db'`` -* ``'django.contrib.sessions.backends.signed_cookies'`` - -See :doc:`/topics/http/sessions`. - -.. setting:: SESSION_EXPIRE_AT_BROWSER_CLOSE - -SESSION_EXPIRE_AT_BROWSER_CLOSE -------------------------------- - -Default: ``False`` - -Whether to expire the session when the user closes his or her browser. -See the :doc:`/topics/http/sessions`. - -.. setting:: SESSION_FILE_PATH - -SESSION_FILE_PATH ------------------ - -Default: ``None`` - -If you're using file-based session storage, this sets the directory in -which Django will store session data. See :doc:`/topics/http/sessions`. When -the default value (``None``) is used, Django will use the standard temporary -directory for the system. - -.. setting:: SESSION_SAVE_EVERY_REQUEST - -SESSION_SAVE_EVERY_REQUEST --------------------------- - -Default: ``False`` - -Whether to save the session data on every request. See -:doc:`/topics/http/sessions`. - -.. setting:: SHORT_DATE_FORMAT - -SHORT_DATE_FORMAT ------------------ - -Default: ``m/d/Y`` (e.g. ``12/31/2003``) - -An available formatting that can be used for displaying date fields on -templates. Note that if :setting:`USE_L10N` is set to ``True``, then the -corresponding locale-dictated format has higher precedence and will be applied. -See :tfilter:`allowed date format strings `. - -See also :setting:`DATE_FORMAT` and :setting:`SHORT_DATETIME_FORMAT`. - -.. setting:: SHORT_DATETIME_FORMAT - -SHORT_DATETIME_FORMAT ---------------------- - -Default: ``m/d/Y P`` (e.g. ``12/31/2003 4 p.m.``) - -An available formatting that can be used for displaying datetime fields on -templates. Note that if :setting:`USE_L10N` is set to ``True``, then the -corresponding locale-dictated format has higher precedence and will be applied. -See :tfilter:`allowed date format strings `. - -See also :setting:`DATE_FORMAT` and :setting:`SHORT_DATE_FORMAT`. - -.. setting:: SIGNING_BACKEND - -SIGNING_BACKEND ---------------- - -Default: 'django.core.signing.TimestampSigner' - -The backend used for signing cookies and other data. - -See also the :doc:`/topics/signing` documentation. - -.. setting:: SITE_ID - -SITE_ID -------- - -Default: Not defined - -The ID, as an integer, of the current site in the ``django_site`` database -table. This is used so that application data can hook into specific site(s) -and a single database can manage content for multiple sites. - -See :doc:`/ref/contrib/sites`. - -.. _site framework docs: ../sites/ - -.. setting:: STATIC_ROOT - -STATIC_ROOT ------------ - -Default: ``''`` (Empty string) - -The absolute path to the directory where :djadmin:`collectstatic` will collect -static files for deployment. - -Example: ``"/var/www/example.com/static/"`` - -If the :doc:`staticfiles` contrib app is enabled -(default) the :djadmin:`collectstatic` management command will collect static -files into this directory. See the howto on :doc:`managing static -files` for more details about usage. - -.. warning:: - - This should be an (initially empty) destination directory for collecting - your static files from their permanent locations into one directory for - ease of deployment; it is **not** a place to store your static files - permanently. You should do that in directories that will be found by - :doc:`staticfiles`'s - :setting:`finders`, which by default, are - ``'static/'`` app sub-directories and any directories you include in - :setting:`STATICFILES_DIRS`). - -See :doc:`staticfiles reference` and -:setting:`STATIC_URL`. - -.. setting:: STATIC_URL - -STATIC_URL ----------- - -Default: ``None`` - -URL to use when referring to static files located in :setting:`STATIC_ROOT`. - -Example: ``"/static/"`` or ``"http://static.example.com/"`` - -If not ``None``, this will be used as the base path for -:ref:`media definitions` and the -:doc:`staticfiles app`. - -It must end in a slash if set to a non-empty value. - -See :setting:`STATIC_ROOT`. - -.. setting:: TEMPLATE_CONTEXT_PROCESSORS - -TEMPLATE_CONTEXT_PROCESSORS ---------------------------- - -Default:: - - ("django.contrib.auth.context_processors.auth", - "django.core.context_processors.debug", - "django.core.context_processors.i18n", - "django.core.context_processors.media", - "django.core.context_processors.static", - "django.core.context_processors.tz", - "django.contrib.messages.context_processors.messages") - -A tuple of callables that are used to populate the context in ``RequestContext``. -These callables take a request object as their argument and return a dictionary -of items to be merged into the context. - -.. setting:: TEMPLATE_DEBUG - -TEMPLATE_DEBUG --------------- - -Default: ``False`` - -A boolean that turns on/off template debug mode. If this is ``True``, the fancy -error page will display a detailed report for any exception raised during -template rendering. This report contains the relevant snippet of the template, -with the appropriate line highlighted. - -Note that Django only displays fancy error pages if :setting:`DEBUG` is ``True``, so -you'll want to set that to take advantage of this setting. - -See also :setting:`DEBUG`. - -.. setting:: TEMPLATE_DIRS - -TEMPLATE_DIRS -------------- - -Default: ``()`` (Empty tuple) - -List of locations of the template source files searched by -:class:`django.template.loaders.filesystem.Loader`, in search order. - -Note that these paths should use Unix-style forward slashes, even on Windows. - -See :doc:`/topics/templates`. - -.. setting:: TEMPLATE_LOADERS +.. setting:: TEMPLATE_LOADERS TEMPLATE_LOADERS ---------------- @@ -2194,8 +1850,41 @@ The default value for the X-Frame-Options header used by :class:`~django.middleware.clickjacking.XFrameOptionsMiddleware`. See the :doc:`clickjacking protection ` documentation. -Deprecated settings -=================== + +Admindocs +========= + +Settings for :mod:`django.contrib.admindocs`. + +.. setting:: ADMIN_FOR + +ADMIN_FOR +--------- + +Default: ``()`` (Empty tuple) + +Used for admin-site settings modules, this should be a tuple of settings +modules (in the format ``'foo.bar.baz'``) for which this site is an admin. + +The admin site uses this in its automatically-introspected documentation of +models, views and template tags. + + +Auth +==== + +Settings for :mod:`django.contrib.auth`. + +.. setting:: AUTHENTICATION_BACKENDS + +AUTHENTICATION_BACKENDS +----------------------- + +Default: ``('django.contrib.auth.backends.ModelBackend',)`` + +A tuple of authentication backend classes (as strings) to use when attempting to +authenticate a user. See the :ref:`authentication backends documentation +` for details. .. setting:: AUTH_PROFILE_MODULE @@ -2212,3 +1901,690 @@ Default: Not defined The site-specific user profile model used by this site. See :ref:`User profiles `. + +.. setting:: AUTH_USER_MODEL + +AUTH_USER_MODEL +--------------- + +Default: 'auth.User' + +The model to use to represent a User. See :ref:`auth-custom-user`. + +.. setting:: LOGIN_REDIRECT_URL + +LOGIN_REDIRECT_URL +------------------ + +Default: ``'/accounts/profile/'`` + +The URL where requests are redirected after login when the +``contrib.auth.login`` view gets no ``next`` parameter. + +This is used by the :func:`~django.contrib.auth.decorators.login_required` +decorator, for example. + +.. versionchanged:: 1.5 + +This setting now also accepts view function names and +:ref:`named URL patterns ` which can be used to reduce +configuration duplication since you no longer have to define the URL in two +places (``settings`` and URLconf). +For backward compatibility reasons the default remains unchanged. + +.. setting:: LOGIN_URL + +LOGIN_URL +--------- + +Default: ``'/accounts/login/'`` + +The URL where requests are redirected for login, especially when using the +:func:`~django.contrib.auth.decorators.login_required` decorator. + +.. versionchanged:: 1.5 + +This setting now also accepts view function names and +:ref:`named URL patterns ` which can be used to reduce +configuration duplication since you no longer have to define the URL in two +places (``settings`` and URLconf). +For backward compatibility reasons the default remains unchanged. + +.. setting:: LOGOUT_URL + +LOGOUT_URL +---------- + +Default: ``'/accounts/logout/'`` + +LOGIN_URL counterpart. + +.. setting:: PASSWORD_RESET_TIMEOUT_DAYS + +PASSWORD_RESET_TIMEOUT_DAYS +--------------------------- + +Default: ``3`` + +The number of days a password reset link is valid for. Used by the +:mod:`django.contrib.auth` password reset mechanism. + +.. setting:: PASSWORD_HASHERS + +PASSWORD_HASHERS +---------------- + +See :ref:`auth_password_storage`. + +Default:: + + ('django.contrib.auth.hashers.PBKDF2PasswordHasher', + 'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher', + 'django.contrib.auth.hashers.BCryptPasswordHasher', + 'django.contrib.auth.hashers.SHA1PasswordHasher', + 'django.contrib.auth.hashers.MD5PasswordHasher', + 'django.contrib.auth.hashers.UnsaltedMD5PasswordHasher', + 'django.contrib.auth.hashers.CryptPasswordHasher',) + + +.. _settings-comments: + +Comments +======== + +Settings for :mod:`django.contrib.comments`. + +.. setting:: COMMENTS_HIDE_REMOVED + +COMMENTS_HIDE_REMOVED +--------------------- + +If ``True`` (default), removed comments will be excluded from comment +lists/counts (as taken from template tags). Otherwise, the template author is +responsible for some sort of a "this comment has been removed by the site staff" +message. + +.. setting:: COMMENT_MAX_LENGTH + +COMMENT_MAX_LENGTH +------------------ + +The maximum length of the comment field, in characters. Comments longer than +this will be rejected. Defaults to 3000. + +.. setting:: COMMENTS_APP + +COMMENTS_APP +------------ + +An app which provides :doc:`customization of the comments framework +`. Use the same dotted-string notation +as in :setting:`INSTALLED_APPS`. Your custom :setting:`COMMENTS_APP` +must also be listed in :setting:`INSTALLED_APPS`. + +.. setting:: PROFANITIES_LIST + +PROFANITIES_LIST +---------------- + +Default: ``()`` (Empty tuple) + +A tuple of profanities, as strings, that will be forbidden in comments when +``COMMENTS_ALLOW_PROFANITIES`` is ``False``. + + +.. _settings-messages: + +Messages +======== + +Settings for :mod:`django.contrib.messages`. + +.. setting:: MESSAGE_LEVEL + +MESSAGE_LEVEL +------------- + +Default: `messages.INFO` + +Sets the minimum message level that will be recorded by the messages +framework. See :ref:`message levels ` for more details. + +.. admonition:: Important + + If you override ``MESSAGE_LEVEL`` in your settings file and rely on any of + the built-in constants, you must import the constants module directly to + avoid the potential for circular imports, e.g.:: + + from django.contrib.messages import constants as message_constants + MESSAGE_LEVEL = message_constants.DEBUG + + If desired, you may specify the numeric values for the constants directly + according to the values in the above :ref:`constants table + `. + +.. setting:: MESSAGE_STORAGE + +MESSAGE_STORAGE +--------------- + +Default: ``'django.contrib.messages.storage.fallback.FallbackStorage'`` + +Controls where Django stores message data. Valid values are: + +* ``'django.contrib.messages.storage.fallback.FallbackStorage'`` +* ``'django.contrib.messages.storage.session.SessionStorage'`` +* ``'django.contrib.messages.storage.cookie.CookieStorage'`` + +See :ref:`message storage backends ` for more details. + +.. setting:: MESSAGE_TAGS + +MESSAGE_TAGS +------------ + +Default:: + + {messages.DEBUG: 'debug', + messages.INFO: 'info', + messages.SUCCESS: 'success', + messages.WARNING: 'warning', + messages.ERROR: 'error',} + +This sets the mapping of message level to message tag, which is typically +rendered as a CSS class in HTML. If you specify a value, it will extend +the default. This means you only have to specify those values which you need +to override. See :ref:`message-displaying` above for more details. + +.. admonition:: Important + + If you override ``MESSAGE_TAGS`` in your settings file and rely on any of + the built-in constants, you must import the ``constants`` module directly to + avoid the potential for circular imports, e.g.:: + + from django.contrib.messages import constants as message_constants + MESSAGE_TAGS = {message_constants.INFO: ''} + + If desired, you may specify the numeric values for the constants directly + according to the values in the above :ref:`constants table + `. + +.. _messages-session_cookie_domain: + +SESSION_COOKIE_DOMAIN +--------------------- + +Default: ``None`` + +The storage backends that use cookies -- ``CookieStorage`` and +``FallbackStorage`` -- use the value of :setting:`SESSION_COOKIE_DOMAIN` in +setting their cookies. + + +.. _settings-sessions: + +Sessions +======== + +Settings for :mod:`django.contrib.sessions`. + +.. setting:: SESSION_CACHE_ALIAS + +SESSION_CACHE_ALIAS +------------------- + +Default: ``default`` + +If you're using :ref:`cache-based session storage `, +this selects the cache to use. + +.. setting:: SESSION_COOKIE_AGE + +SESSION_COOKIE_AGE +------------------ + +Default: ``1209600`` (2 weeks, in seconds) + +The age of session cookies, in seconds. + +.. setting:: SESSION_COOKIE_DOMAIN + +SESSION_COOKIE_DOMAIN +--------------------- + +Default: ``None`` + +The domain to use for session cookies. Set this to a string such as +``".example.com"`` (note the leading dot!) for cross-domain cookies, or use +``None`` for a standard domain cookie. + +.. setting:: SESSION_COOKIE_HTTPONLY + +SESSION_COOKIE_HTTPONLY +----------------------- + +Default: ``True`` + +Whether to use HTTPOnly flag on the session cookie. If this is set to +``True``, client-side JavaScript will not to be able to access the +session cookie. + +HTTPOnly_ is a flag included in a Set-Cookie HTTP response header. It +is not part of the :rfc:`2109` standard for cookies, and it isn't honored +consistently by all browsers. However, when it is honored, it can be a +useful way to mitigate the risk of client side script accessing the +protected cookie data. + +.. _HTTPOnly: https://www.owasp.org/index.php/HTTPOnly + +.. setting:: SESSION_COOKIE_NAME + +SESSION_COOKIE_NAME +------------------- + +Default: ``'sessionid'`` + +The name of the cookie to use for sessions. This can be whatever you want (but +should be different from :setting:`LANGUAGE_COOKIE_NAME`). + +.. setting:: SESSION_COOKIE_PATH + +SESSION_COOKIE_PATH +------------------- + +Default: ``'/'`` + +The path set on the session cookie. This should either match the URL path of your +Django installation or be parent of that path. + +This is useful if you have multiple Django instances running under the same +hostname. They can use different cookie paths, and each instance will only see +its own session cookie. + +.. setting:: SESSION_COOKIE_SECURE + +SESSION_COOKIE_SECURE +--------------------- + +Default: ``False`` + +Whether to use a secure cookie for the session cookie. If this is set to +``True``, the cookie will be marked as "secure," which means browsers may +ensure that the cookie is only sent under an HTTPS connection. + +.. setting:: SESSION_ENGINE + +SESSION_ENGINE +-------------- + +Default: ``django.contrib.sessions.backends.db`` + +Controls where Django stores session data. Valid values are: + +* ``'django.contrib.sessions.backends.db'`` +* ``'django.contrib.sessions.backends.file'`` +* ``'django.contrib.sessions.backends.cache'`` +* ``'django.contrib.sessions.backends.cached_db'`` +* ``'django.contrib.sessions.backends.signed_cookies'`` + +See :ref:`configuring-sessions` for more details. + +.. setting:: SESSION_EXPIRE_AT_BROWSER_CLOSE + +SESSION_EXPIRE_AT_BROWSER_CLOSE +------------------------------- + +Default: ``False`` + +Whether to expire the session when the user closes his or her browser. See +"Browser-length sessions vs. persistent sessions" above. + +.. setting:: SESSION_FILE_PATH + +SESSION_FILE_PATH +----------------- + +Default: ``None`` + +If you're using file-based session storage, this sets the directory in +which Django will store session data. When the default value (``None``) is +used, Django will use the standard temporary directory for the system. + + +.. setting:: SESSION_SAVE_EVERY_REQUEST + +SESSION_SAVE_EVERY_REQUEST +-------------------------- + +Default: ``False`` + +Whether to save the session data on every request. If this is ``False`` +(default), then the session data will only be saved if it has been modified -- +that is, if any of its dictionary values have been assigned or deleted. + + +Sites +===== + +Settings for :mod:`django.contrib.sites`. + +.. setting:: SITE_ID + +SITE_ID +------- + +Default: Not defined + +The ID, as an integer, of the current site in the ``django_site`` database +table. This is used so that application data can hook into specific sites +and a single database can manage content for multiple sites. + + +.. _settings-staticfiles: + +Static files +============ + +Settings for :mod:`django.contrib.staticfiles`. + +.. setting:: STATIC_ROOT + +STATIC_ROOT +----------- + +Default: ``''`` (Empty string) + +The absolute path to the directory where :djadmin:`collectstatic` will collect +static files for deployment. + +Example: ``"/var/www/example.com/static/"`` + +If the :doc:`staticfiles` contrib app is enabled +(default) the :djadmin:`collectstatic` management command will collect static +files into this directory. See the howto on :doc:`managing static +files` for more details about usage. + +.. warning:: + + This should be an (initially empty) destination directory for collecting + your static files from their permanent locations into one directory for + ease of deployment; it is **not** a place to store your static files + permanently. You should do that in directories that will be found by + :doc:`staticfiles`'s + :setting:`finders`, which by default, are + ``'static/'`` app sub-directories and any directories you include in + :setting:`STATICFILES_DIRS`). + +.. setting:: STATIC_URL + +STATIC_URL +---------- + +Default: ``None`` + +URL to use when referring to static files located in :setting:`STATIC_ROOT`. + +Example: ``"/static/"`` or ``"http://static.example.com/"`` + +If not ``None``, this will be used as the base path for +:ref:`media definitions` and the +:doc:`staticfiles app`. + +It must end in a slash if set to a non-empty value. + +.. setting:: STATICFILES_DIRS + +STATICFILES_DIRS +---------------- + +Default: ``[]`` + +This setting defines the additional locations the staticfiles app will traverse +if the ``FileSystemFinder`` finder is enabled, e.g. if you use the +:djadmin:`collectstatic` or :djadmin:`findstatic` management command or use the +static file serving view. + +This should be set to a list or tuple of strings that contain full paths to +your additional files directory(ies) e.g.:: + + STATICFILES_DIRS = ( + "/home/special.polls.com/polls/static", + "/home/polls.com/polls/static", + "/opt/webfiles/common", + ) + +Prefixes (optional) +~~~~~~~~~~~~~~~~~~~ + +In case you want to refer to files in one of the locations with an additional +namespace, you can **optionally** provide a prefix as ``(prefix, path)`` +tuples, e.g.:: + + STATICFILES_DIRS = ( + # ... + ("downloads", "/opt/webfiles/stats"), + ) + +Example: + +Assuming you have :setting:`STATIC_URL` set ``'/static/'``, the +:djadmin:`collectstatic` management command would collect the "stats" files +in a ``'downloads'`` subdirectory of :setting:`STATIC_ROOT`. + +This would allow you to refer to the local file +``'/opt/webfiles/stats/polls_20101022.tar.gz'`` with +``'/static/downloads/polls_20101022.tar.gz'`` in your templates, e.g.: + +.. code-block:: html+django + + + +.. setting:: STATICFILES_STORAGE + +STATICFILES_STORAGE +------------------- + +Default: ``'django.contrib.staticfiles.storage.StaticFilesStorage'`` + +The file storage engine to use when collecting static files with the +:djadmin:`collectstatic` management command. + +A ready-to-use instance of the storage backend defined in this setting +can be found at ``django.contrib.staticfiles.storage.staticfiles_storage``. + +For an example, see :ref:`staticfiles-from-cdn`. + +.. setting:: STATICFILES_FINDERS + +STATICFILES_FINDERS +------------------- + +Default:: + + ("django.contrib.staticfiles.finders.FileSystemFinder", + "django.contrib.staticfiles.finders.AppDirectoriesFinder") + +The list of finder backends that know how to find static files in +various locations. + +The default will find files stored in the :setting:`STATICFILES_DIRS` setting +(using ``django.contrib.staticfiles.finders.FileSystemFinder``) and in a +``static`` subdirectory of each app (using +``django.contrib.staticfiles.finders.AppDirectoriesFinder``) + +One finder is disabled by default: +``django.contrib.staticfiles.finders.DefaultStorageFinder``. If added to +your :setting:`STATICFILES_FINDERS` setting, it will look for static files in +the default file storage as defined by the :setting:`DEFAULT_FILE_STORAGE` +setting. + +.. note:: + + When using the ``AppDirectoriesFinder`` finder, make sure your apps + can be found by staticfiles. Simply add the app to the + :setting:`INSTALLED_APPS` setting of your site. + +Static file finders are currently considered a private interface, and this +interface is thus undocumented. + +Core Settings Topical Index +=========================== + +Cache +----- +* :setting:`CACHES` +* :setting:`CACHE_MIDDLEWARE_ALIAS` +* :setting:`CACHE_MIDDLEWARE_ANONYMOUS_ONLY` +* :setting:`CACHE_MIDDLEWARE_KEY_PREFIX` +* :setting:`CACHE_MIDDLEWARE_SECONDS` + +Database +-------- +* :setting:`DATABASES` +* :setting:`DATABASE_ROUTERS` +* :setting:`DEFAULT_INDEX_TABLESPACE` +* :setting:`DEFAULT_TABLESPACE` +* :setting:`TRANSACTIONS_MANAGED` + +Debugging +--------- +* :setting:`DEBUG` +* :setting:`DEBUG_PROPAGATE_EXCEPTIONS` + +Email +----- +* :setting:`ADMINS` +* :setting:`DEFAULT_CHARSET` +* :setting:`DEFAULT_FROM_EMAIL` +* :setting:`EMAIL_BACKEND` +* :setting:`EMAIL_FILE_PATH` +* :setting:`EMAIL_HOST` +* :setting:`EMAIL_HOST_PASSWORD` +* :setting:`EMAIL_HOST_USER` +* :setting:`EMAIL_PORT` +* :setting:`EMAIL_SUBJECT_PREFIX` +* :setting:`EMAIL_USE_TLS` +* :setting:`MANAGERS` +* :setting:`SEND_BROKEN_LINK_EMAILS` +* :setting:`SERVER_EMAIL` + +Error reporting +--------------- +* :setting:`DEFAULT_EXCEPTION_REPORTER_FILTER` +* :setting:`IGNORABLE_404_URLS` +* :setting:`MANAGERS` +* :setting:`SEND_BROKEN_LINK_EMAILS` + +File uploads +------------ +* :setting:`DEFAULT_FILE_STORAGE` +* :setting:`FILE_CHARSET` +* :setting:`FILE_UPLOAD_HANDLERS` +* :setting:`FILE_UPLOAD_MAX_MEMORY_SIZE` +* :setting:`FILE_UPLOAD_PERMISSIONS` +* :setting:`FILE_UPLOAD_TEMP_DIR` +* :setting:`MEDIA_ROOT` +* :setting:`MEDIA_URL` + +Globalization (i18n/l10n) +------------------------- +* :setting:`DATE_FORMAT` +* :setting:`DATE_INPUT_FORMATS` +* :setting:`DATETIME_FORMAT` +* :setting:`DATETIME_INPUT_FORMATS` +* :setting:`DECIMAL_SEPARATOR` +* :setting:`FIRST_DAY_OF_WEEK` +* :setting:`FORMAT_MODULE_PATH` +* :setting:`LANGUAGE_CODE` +* :setting:`LANGUAGE_COOKIE_NAME` +* :setting:`LANGUAGES` +* :setting:`LOCALE_PATHS` +* :setting:`MONTH_DAY_FORMAT` +* :setting:`NUMBER_GROUPING` +* :setting:`SHORT_DATE_FORMAT` +* :setting:`SHORT_DATETIME_FORMAT` +* :setting:`THOUSAND_SEPARATOR` +* :setting:`TIME_FORMAT` +* :setting:`TIME_INPUT_FORMATS` +* :setting:`TIME_ZONE` +* :setting:`USE_I18N` +* :setting:`USE_L10N` +* :setting:`USE_THOUSAND_SEPARATOR` +* :setting:`USE_TZ` +* :setting:`YEAR_MONTH_FORMAT` + +HTTP +---- +* :setting:`DEFAULT_CHARSET` +* :setting:`DEFAULT_CONTENT_TYPE` +* :setting:`DISALLOWED_USER_AGENTS` +* :setting:`FORCE_SCRIPT_NAME` +* :setting:`INTERNAL_IPS` +* :setting:`MIDDLEWARE_CLASSES` +* :setting:`SECURE_PROXY_SSL_HEADER` +* :setting:`SIGNING_BACKEND` +* :setting:`USE_ETAGS` +* :setting:`USE_X_FORWARDED_HOST` +* :setting:`WSGI_APPLICATION` + +Logging +------- +* :setting:`LOGGING` +* :setting:`LOGGING_CONFIG` + +Models +------ +* :setting:`ABSOLUTE_URL_OVERRIDES` +* :setting:`FIXTURE_DIRS` +* :setting:`INSTALLED_APPS` + +Security +-------- +* Cross Site Request Forgery protection + + * :setting:`CSRF_COOKIE_DOMAIN` + * :setting:`CSRF_COOKIE_NAME` + * :setting:`CSRF_COOKIE_PATH` + * :setting:`CSRF_COOKIE_SECURE` + * :setting:`CSRF_FAILURE_VIEW` + +* :setting:`SECRET_KEY` +* :setting:`X_FRAME_OPTIONS` + +Serialization +------------- +* :setting:`DEFAULT_CHARSET` +* :setting:`SERIALIZATION_MODULES` + +Templates +--------- +* :setting:`ALLOWED_INCLUDE_ROOTS` +* :setting:`TEMPLATE_CONTEXT_PROCESSORS` +* :setting:`TEMPLATE_DEBUG` +* :setting:`TEMPLATE_DIRS` +* :setting:`TEMPLATE_LOADERS` +* :setting:`TEMPLATE_STRING_IF_INVALID` + +Testing +------- +* Database + + * :setting:`TEST_CHARSET` + * :setting:`TEST_COLLATION` + * :setting:`TEST_DEPENDENCIES` + * :setting:`TEST_MIRROR` + * :setting:`TEST_NAME` + * :setting:`TEST_CREATE` + * :setting:`TEST_USER` + * :setting:`TEST_USER_CREATE` + * :setting:`TEST_PASSWD` + * :setting:`TEST_TBLSPACE` + * :setting:`TEST_TBLSPACE_TMP` + +* :setting:`TEST_RUNNER` + +URLs +---- +* :setting:`APPEND_SLASH` +* :setting:`PREPEND_WWW` +* :setting:`ROOT_URLCONF` diff --git a/docs/topics/http/sessions.txt b/docs/topics/http/sessions.txt index 1832a55267..41ae0cafa9 100644 --- a/docs/topics/http/sessions.txt +++ b/docs/topics/http/sessions.txt @@ -28,6 +28,8 @@ If you don't want to use sessions, you might as well remove the ``'django.contrib.sessions'`` from your :setting:`INSTALLED_APPS`. It'll save you a small bit of overhead. +.. _configuring-sessions: + Configuring the session engine ============================== @@ -499,111 +501,20 @@ session data is stored by the users' browsers. Settings ======== -A few :doc:`Django settings ` give you control over session +A few :ref:`Django settings ` give you control over session behavior: -SESSION_ENGINE --------------- - -Default: ``django.contrib.sessions.backends.db`` - -Controls where Django stores session data. Valid values are: - -* ``'django.contrib.sessions.backends.db'`` -* ``'django.contrib.sessions.backends.file'`` -* ``'django.contrib.sessions.backends.cache'`` -* ``'django.contrib.sessions.backends.cached_db'`` -* ``'django.contrib.sessions.backends.signed_cookies'`` - -See `configuring the session engine`_ for more details. - -SESSION_FILE_PATH ------------------ - -Default: ``/tmp/`` - -If you're using file-based session storage, this sets the directory in -which Django will store session data. - -SESSION_COOKIE_AGE ------------------- - -Default: ``1209600`` (2 weeks, in seconds) - -The age of session cookies, in seconds. - -SESSION_COOKIE_DOMAIN ---------------------- - -Default: ``None`` - -The domain to use for session cookies. Set this to a string such as -``".example.com"`` (note the leading dot!) for cross-domain cookies, or use -``None`` for a standard domain cookie. - -SESSION_COOKIE_HTTPONLY ------------------------ - -Default: ``True`` - -Whether to use HTTPOnly flag on the session cookie. If this is set to -``True``, client-side JavaScript will not to be able to access the -session cookie. - -HTTPOnly_ is a flag included in a Set-Cookie HTTP response header. It -is not part of the :rfc:`2109` standard for cookies, and it isn't honored -consistently by all browsers. However, when it is honored, it can be a -useful way to mitigate the risk of client side script accessing the -protected cookie data. - -.. _HTTPOnly: https://www.owasp.org/index.php/HTTPOnly - -SESSION_COOKIE_NAME -------------------- - -Default: ``'sessionid'`` - -The name of the cookie to use for sessions. This can be whatever you want. - -SESSION_COOKIE_PATH -------------------- - -Default: ``'/'`` - -The path set on the session cookie. This should either match the URL path of -your Django installation or be parent of that path. - -This is useful if you have multiple Django instances running under the same -hostname. They can use different cookie paths, and each instance will only see -its own session cookie. - -SESSION_COOKIE_SECURE ---------------------- - -Default: ``False`` - -Whether to use a secure cookie for the session cookie. If this is set to -``True``, the cookie will be marked as "secure," which means browsers may -ensure that the cookie is only sent under an HTTPS connection. - -SESSION_EXPIRE_AT_BROWSER_CLOSE -------------------------------- - -Default: ``False`` - -Whether to expire the session when the user closes his or her browser. See -"Browser-length sessions vs. persistent sessions" above. - -SESSION_SAVE_EVERY_REQUEST --------------------------- - -Default: ``False`` - -Whether to save the session data on every request. If this is ``False`` -(default), then the session data will only be saved if it has been modified -- -that is, if any of its dictionary values have been assigned or deleted. - -.. _Django settings: ../settings/ +* :setting:`SESSION_CACHE_ALIAS` +* :setting:`SESSION_COOKIE_AGE` +* :setting:`SESSION_COOKIE_DOMAIN` +* :setting:`SESSION_COOKIE_HTTPONLY` +* :setting:`SESSION_COOKIE_NAME` +* :setting:`SESSION_COOKIE_PATH` +* :setting:`SESSION_COOKIE_SECURE` +* :setting:`SESSION_ENGINE` +* :setting:`SESSION_EXPIRE_AT_BROWSER_CLOSE` +* :setting:`SESSION_FILE_PATH` +* :setting:`SESSION_SAVE_EVERY_REQUEST` Technical details ================= -- cgit v1.3 From 0ca2d1e20a82d5ff0f86ac14988c5e348f9192c3 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sun, 13 Jan 2013 19:35:59 +0100 Subject: Fixed typo in file storage docs. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thanks Jørgen Abrahamsen. --- docs/ref/files/storage.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/ref/files/storage.txt b/docs/ref/files/storage.txt index ff175d122b..b9742514ea 100644 --- a/docs/ref/files/storage.txt +++ b/docs/ref/files/storage.txt @@ -66,7 +66,7 @@ The Storage Class .. method:: delete(name) Deletes the file referenced by ``name``. If deletion is not supported - on the targest storage system this will raise ``NotImplementedError`` + on the target storage system this will raise ``NotImplementedError`` instead .. method:: exists(name) -- cgit v1.3 From 4720117a31344483119856fb5ed803fe4c35936f Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sun, 13 Jan 2013 15:11:24 -0500 Subject: Added details on minified jQuery and DEBUG mode for contrib.admin. Thanks Daniele Procida. --- docs/ref/contrib/admin/index.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'docs') diff --git a/docs/ref/contrib/admin/index.txt b/docs/ref/contrib/admin/index.txt index 04a7824417..065c9566ea 100644 --- a/docs/ref/contrib/admin/index.txt +++ b/docs/ref/contrib/admin/index.txt @@ -1380,6 +1380,9 @@ The :doc:`staticfiles app ` prepends ``None``) to any media paths. The same rules apply as :ref:`regular media definitions on forms `. +jQuery +~~~~~~ + Django admin Javascript makes use of the `jQuery`_ library. To avoid conflicts with user-supplied scripts or libraries, Django's jQuery is namespaced as ``django.jQuery``. If you want to use jQuery in your own admin @@ -1390,6 +1393,15 @@ If you require the jQuery library to be in the global namespace, for example when using third-party jQuery plugins, or need a newer version of jQuery, you will have to include your own copy of jQuery. +Django provides both uncompressed and 'minified' versions of jQuery, as +``jquery.js`` and ``jquery.min.js`` respectively. + +:class:`ModelAdmin` and :class:`InlineModelAdmin` have a ``media`` property +that returns a list of ``Media`` objects which store paths to the JavaScript +files for the forms and/or formsets. If :setting:`DEBUG` is ``True`` it will +return the uncompressed versions of the various JavaScript files, including +``jquery.js``; if not, it will return the 'minified' versions. + .. _jQuery: http://jquery.com Adding custom validation to the admin -- cgit v1.3 From 43f89e0ad6fa111f3d53dfa71786353e0265bf39 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 15 Jan 2013 06:29:53 -0500 Subject: Fixed #19605 - Removed unused url imports from doc examples. Thanks sergzach for the suggestion. --- docs/intro/overview.txt | 2 +- docs/ref/contrib/admin/index.txt | 6 +++--- docs/ref/contrib/comments/example.txt | 2 +- docs/ref/contrib/sitemaps.txt | 2 +- docs/ref/contrib/syndication.txt | 4 ++-- docs/ref/models/instances.txt | 2 +- docs/topics/class-based-views/generic-display.txt | 2 +- docs/topics/class-based-views/index.txt | 4 ++-- docs/topics/http/urls.txt | 10 +++++----- 9 files changed, 17 insertions(+), 17 deletions(-) (limited to 'docs') diff --git a/docs/intro/overview.txt b/docs/intro/overview.txt index ba49e3ccf2..7cca8bf51b 100644 --- a/docs/intro/overview.txt +++ b/docs/intro/overview.txt @@ -176,7 +176,7 @@ decouple URLs from Python code. Here's what a URLconf might look like for the ``Reporter``/``Article`` example above:: - from django.conf.urls import patterns, url, include + from django.conf.urls import patterns urlpatterns = patterns('', (r'^articles/(\d{4})/$', 'news.views.year_archive'), diff --git a/docs/ref/contrib/admin/index.txt b/docs/ref/contrib/admin/index.txt index 065c9566ea..1dbde2a98c 100644 --- a/docs/ref/contrib/admin/index.txt +++ b/docs/ref/contrib/admin/index.txt @@ -1928,7 +1928,7 @@ In this example, we register the default ``AdminSite`` instance ``django.contrib.admin.site`` at the URL ``/admin/`` :: # urls.py - from django.conf.urls import patterns, url, include + from django.conf.urls import patterns, include from django.contrib import admin admin.autodiscover() @@ -1944,7 +1944,7 @@ In this example, we register the ``AdminSite`` instance ``myproject.admin.admin_site`` at the URL ``/myadmin/`` :: # urls.py - from django.conf.urls import patterns, url, include + from django.conf.urls import patterns, include from myproject.admin import admin_site urlpatterns = patterns('', @@ -1968,7 +1968,7 @@ separate versions of the admin site -- using the ``AdminSite`` instances respectively:: # urls.py - from django.conf.urls import patterns, url, include + from django.conf.urls import patterns, include from myproject.admin import basic_site, advanced_site urlpatterns = patterns('', diff --git a/docs/ref/contrib/comments/example.txt b/docs/ref/contrib/comments/example.txt index 4e18e37de0..e99c10f732 100644 --- a/docs/ref/contrib/comments/example.txt +++ b/docs/ref/contrib/comments/example.txt @@ -141,7 +141,7 @@ enable it in your project's ``urls.py``: .. code-block:: python - from django.conf.urls import patterns, url, include + from django.conf.urls import patterns from django.contrib.comments.feeds import LatestCommentFeed urlpatterns = patterns('', diff --git a/docs/ref/contrib/sitemaps.txt b/docs/ref/contrib/sitemaps.txt index 1861318b95..ded7a84fbc 100644 --- a/docs/ref/contrib/sitemaps.txt +++ b/docs/ref/contrib/sitemaps.txt @@ -256,7 +256,7 @@ Example Here's an example of a :doc:`URLconf ` using both:: - from django.conf.urls import patterns, url, include + from django.conf.urls import patterns from django.contrib.sitemaps import FlatPageSitemap, GenericSitemap from blog.models import Entry diff --git a/docs/ref/contrib/syndication.txt b/docs/ref/contrib/syndication.txt index d0376e3c1b..2955d7dad3 100644 --- a/docs/ref/contrib/syndication.txt +++ b/docs/ref/contrib/syndication.txt @@ -77,7 +77,7 @@ latest five news items:: To connect a URL to this feed, put an instance of the Feed object in your :doc:`URLconf `. For example:: - from django.conf.urls import patterns, url, include + from django.conf.urls import patterns from myproject.feeds import LatestEntriesFeed urlpatterns = patterns('', @@ -321,7 +321,7 @@ Here's a full example:: And the accompanying URLconf:: - from django.conf.urls import patterns, url, include + from django.conf.urls import patterns from myproject.feeds import RssSiteNewsFeed, AtomSiteNewsFeed urlpatterns = patterns('', diff --git a/docs/ref/models/instances.txt b/docs/ref/models/instances.txt index 4479e4b766..92071b8d3f 100644 --- a/docs/ref/models/instances.txt +++ b/docs/ref/models/instances.txt @@ -601,7 +601,7 @@ pattern, it's possible to give a name to a pattern, and then reference the name rather than the view function. A named URL pattern is defined by replacing the pattern tuple by a call to the ``url`` function):: - from django.conf.urls import patterns, url, include + from django.conf.urls import url url(r'^people/(\d+)/$', 'blog_views.generic_detail', name='people_view'), diff --git a/docs/topics/class-based-views/generic-display.txt b/docs/topics/class-based-views/generic-display.txt index dac45c8843..835ca07459 100644 --- a/docs/topics/class-based-views/generic-display.txt +++ b/docs/topics/class-based-views/generic-display.txt @@ -110,7 +110,7 @@ Now we need to define a view:: Finally hook that view into your urls:: # urls.py - from django.conf.urls import patterns, url, include + from django.conf.urls import patterns, url from books.views import PublisherList urlpatterns = patterns('', diff --git a/docs/topics/class-based-views/index.txt b/docs/topics/class-based-views/index.txt index 54d4b0f252..302f473eea 100644 --- a/docs/topics/class-based-views/index.txt +++ b/docs/topics/class-based-views/index.txt @@ -37,7 +37,7 @@ URLconf. If you're only changing a few simple attributes on a class-based view, you can simply pass them into the :meth:`~django.views.generic.base.View.as_view` method call itself:: - from django.conf.urls import patterns, url, include + from django.conf.urls import patterns from django.views.generic import TemplateView urlpatterns = patterns('', @@ -73,7 +73,7 @@ point the URL to the :meth:`~django.views.generic.base.View.as_view` class method instead, which provides a function-like entry to class-based views:: # urls.py - from django.conf.urls import patterns, url, include + from django.conf.urls import patterns from some_app.views import AboutView urlpatterns = patterns('', diff --git a/docs/topics/http/urls.txt b/docs/topics/http/urls.txt index 8a07d46f77..c5eef8bb41 100644 --- a/docs/topics/http/urls.txt +++ b/docs/topics/http/urls.txt @@ -66,7 +66,7 @@ Example Here's a sample URLconf:: - from django.conf.urls import patterns, url, include + from django.conf.urls import patterns urlpatterns = patterns('', (r'^articles/2003/$', 'news.views.special_case_2003'), @@ -255,7 +255,7 @@ code duplication. Here's the example URLconf from the :doc:`Django overview `:: - from django.conf.urls import patterns, url, include + from django.conf.urls import patterns urlpatterns = patterns('', (r'^articles/(\d{4})/$', 'news.views.year_archive'), @@ -270,7 +270,7 @@ each view function. With this in mind, the above example can be written more concisely as:: - from django.conf.urls import patterns, url, include + from django.conf.urls import patterns urlpatterns = patterns('news.views', (r'^articles/(\d{4})/$', 'year_archive'), @@ -291,7 +291,7 @@ Just add multiple ``patterns()`` objects together, like this: Old:: - from django.conf.urls import patterns, url, include + from django.conf.urls import patterns urlpatterns = patterns('', (r'^$', 'myapp.views.app_index'), @@ -301,7 +301,7 @@ Old:: New:: - from django.conf.urls import patterns, url, include + from django.conf.urls import patterns urlpatterns = patterns('myapp.views', (r'^$', 'app_index'), -- cgit v1.3 From c9b577ead6ca9a96e2066fd739b7c340dae5ca3a Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 15 Jan 2013 06:19:49 -0500 Subject: Clarified WizardView.get_form_prefix doc, refs #19024 --- docs/ref/contrib/formtools/form-wizard.txt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'docs') diff --git a/docs/ref/contrib/formtools/form-wizard.txt b/docs/ref/contrib/formtools/form-wizard.txt index 8cd5d4ecd3..ee9114acf9 100644 --- a/docs/ref/contrib/formtools/form-wizard.txt +++ b/docs/ref/contrib/formtools/form-wizard.txt @@ -318,10 +318,15 @@ Advanced ``WizardView`` methods counter as string representing the current step of the wizard. (E.g., the first form is ``'0'`` and the second form is ``'1'``) -.. method:: WizardView.get_form_prefix(step, form) +.. method:: WizardView.get_form_prefix(step=None, form=None) + + Returns the prefix which will be used when calling the form for the given + step. ``step`` contains the step name, ``form`` the form class which will + be called with the returned prefix. + + If no ``step`` is given, it will be determined automatically. By default, + this simply uses the step itself and the ``form`` parameter is not used. - Given the step and the form class which will be called with the returned - form prefix. By default, this simply uses the step itself. For more, see the :ref:`form prefix documentation `. .. method:: WizardView.get_form_initial(step) -- cgit v1.3 From 74d72e21b405956bec9775b90e052e89f03a5e2e Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Tue, 15 Jan 2013 14:36:47 +0100 Subject: Fixed #19614 -- Missing request argument in render call. Thanks Dima Pravdin for the report. --- docs/topics/auth/default.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/topics/auth/default.txt b/docs/topics/auth/default.txt index 82cabadbec..d1463c645b 100644 --- a/docs/topics/auth/default.txt +++ b/docs/topics/auth/default.txt @@ -372,7 +372,7 @@ login page:: def my_view(request): if not request.user.is_authenticated(): - return render('myapp/login_error.html') + return render(request, 'myapp/login_error.html') # ... .. currentmodule:: django.contrib.auth.decorators -- cgit v1.3 From 83d0cc52141dbbd977da836fd7f77e0e735e2110 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Tue, 15 Jan 2013 16:55:13 +0100 Subject: Fixed a typo in the error reporting docs. --- docs/howto/error-reporting.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/howto/error-reporting.txt b/docs/howto/error-reporting.txt index 98b3b4e4d8..742b81b7e2 100644 --- a/docs/howto/error-reporting.txt +++ b/docs/howto/error-reporting.txt @@ -157,7 +157,7 @@ production environment (that is, where :setting:`DEBUG` is set to ``False``): If the variable you want to hide is also a function argument (e.g. '``user``' in the following example), and if the decorated function has - mutiple decorators, then make sure to place ``@sensible_variables`` at + mutiple decorators, then make sure to place ``@sensitive_variables`` at the top of the decorator chain. This way it will also hide the function argument as it gets passed through the other decorators:: -- cgit v1.3 From 50a985b09b439a0d52aad8694d377a3483cb02e1 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Tue, 1 Jan 2013 22:28:48 +0100 Subject: Fixed #19099 -- Split broken link emails out of common middleware. --- django/conf/global_settings.py | 4 +- django/middleware/common.py | 78 ++++++++++++++++++------------- docs/howto/error-reporting.txt | 19 ++++---- docs/internals/deprecation.txt | 7 +++ docs/ref/middleware.txt | 8 ++-- docs/ref/settings.txt | 13 ++++-- docs/releases/1.6.txt | 18 +++++++ tests/regressiontests/middleware/tests.py | 61 ++++++++++++++++++------ 8 files changed, 147 insertions(+), 61 deletions(-) (limited to 'docs') diff --git a/django/conf/global_settings.py b/django/conf/global_settings.py index 4d69c6365f..740c792dcf 100644 --- a/django/conf/global_settings.py +++ b/django/conf/global_settings.py @@ -146,7 +146,7 @@ FILE_CHARSET = 'utf-8' # Email address that error messages come from. SERVER_EMAIL = 'root@localhost' -# Whether to send broken-link emails. +# Whether to send broken-link emails. Deprecated, must be removed in 1.8. SEND_BROKEN_LINK_EMAILS = False # Database connection info. If left empty, will default to the dummy backend. @@ -245,7 +245,7 @@ ALLOWED_INCLUDE_ROOTS = () ADMIN_FOR = () # List of compiled regular expression objects representing URLs that need not -# be reported when SEND_BROKEN_LINK_EMAILS is True. Here are a few examples: +# be reported by BrokenLinkEmailsMiddleware. Here are a few examples: # import re # IGNORABLE_404_URLS = ( # re.compile(r'^/apple-touch-icon.*\.png$'), diff --git a/django/middleware/common.py b/django/middleware/common.py index c6e71e0d48..92f8cb3992 100644 --- a/django/middleware/common.py +++ b/django/middleware/common.py @@ -1,13 +1,14 @@ import hashlib import logging import re +import warnings from django.conf import settings -from django import http from django.core.mail import mail_managers +from django.core import urlresolvers +from django import http from django.utils.http import urlquote from django.utils import six -from django.core import urlresolvers logger = logging.getLogger('django.request') @@ -102,25 +103,15 @@ class CommonMiddleware(object): return http.HttpResponsePermanentRedirect(newurl) def process_response(self, request, response): - "Send broken link emails and calculate the Etag, if needed." - if response.status_code == 404: - if settings.SEND_BROKEN_LINK_EMAILS and not settings.DEBUG: - # If the referrer was from an internal link or a non-search-engine site, - # send a note to the managers. - domain = request.get_host() - referer = request.META.get('HTTP_REFERER', None) - is_internal = _is_internal_request(domain, referer) - path = request.get_full_path() - if referer and not _is_ignorable_404(path) and (is_internal or '?' not in referer): - ua = request.META.get('HTTP_USER_AGENT', '') - ip = request.META.get('REMOTE_ADDR', '') - mail_managers("Broken %slink on %s" % ((is_internal and 'INTERNAL ' or ''), domain), - "Referrer: %s\nRequested URL: %s\nUser agent: %s\nIP address: %s\n" \ - % (referer, request.get_full_path(), ua, ip), - fail_silently=True) - return response - - # Use ETags, if requested. + """ + Calculate the ETag, if needed. + """ + if settings.SEND_BROKEN_LINK_EMAILS: + warnings.warn("SEND_BROKEN_LINK_EMAILS is deprecated. " + "Use BrokenLinkEmailsMiddleware instead.", + PendingDeprecationWarning, stacklevel=2) + BrokenLinkEmailsMiddleware().process_response(request, response) + if settings.USE_ETAGS: if response.has_header('ETag'): etag = response['ETag'] @@ -139,15 +130,38 @@ class CommonMiddleware(object): return response -def _is_ignorable_404(uri): - """ - Returns True if a 404 at the given URL *shouldn't* notify the site managers. - """ - return any(pattern.search(uri) for pattern in settings.IGNORABLE_404_URLS) -def _is_internal_request(domain, referer): - """ - Returns true if the referring URL is the same domain as the current request. - """ - # Different subdomains are treated as different domains. - return referer is not None and re.match("^https?://%s/" % re.escape(domain), referer) +class BrokenLinkEmailsMiddleware(object): + + def process_response(self, request, response): + """ + Send broken link emails for relevant 404 NOT FOUND responses. + """ + if response.status_code == 404 and not settings.DEBUG: + domain = request.get_host() + path = request.get_full_path() + referer = request.META.get('HTTP_REFERER', '') + is_internal = self.is_internal_request(domain, referer) + is_not_search_engine = '?' not in referer + is_ignorable = self.is_ignorable_404(path) + if referer and (is_internal or is_not_search_engine) and not is_ignorable: + ua = request.META.get('HTTP_USER_AGENT', '') + ip = request.META.get('REMOTE_ADDR', '') + mail_managers( + "Broken %slink on %s" % (('INTERNAL ' if is_internal else ''), domain), + "Referrer: %s\nRequested URL: %s\nUser agent: %s\nIP address: %s\n" % (referer, path, ua, ip), + fail_silently=True) + return response + + def is_internal_request(self, domain, referer): + """ + Returns True if the referring URL is the same domain as the current request. + """ + # Different subdomains are treated as different domains. + return re.match("^https?://%s/" % re.escape(domain), referer) + + def is_ignorable_404(self, uri): + """ + Returns True if a 404 at the given URL *shouldn't* notify the site managers. + """ + return any(pattern.search(uri) for pattern in settings.IGNORABLE_404_URLS) diff --git a/docs/howto/error-reporting.txt b/docs/howto/error-reporting.txt index 742b81b7e2..7f3c68c136 100644 --- a/docs/howto/error-reporting.txt +++ b/docs/howto/error-reporting.txt @@ -54,18 +54,24 @@ setting. Django can also be configured to email errors about broken links (404 "page not found" errors). Django sends emails about 404 errors when: -* :setting:`DEBUG` is ``False`` +* :setting:`DEBUG` is ``False``; -* :setting:`SEND_BROKEN_LINK_EMAILS` is ``True`` - -* Your :setting:`MIDDLEWARE_CLASSES` setting includes ``CommonMiddleware`` - (which it does by default). +* Your :setting:`MIDDLEWARE_CLASSES` setting includes + :class:`django.middleware.common.BrokenLinkEmailsMiddleware`. If those conditions are met, Django will email the users listed in the :setting:`MANAGERS` setting whenever your code raises a 404 and the request has a referer. (It doesn't bother to email for 404s that don't have a referer -- those are usually just people typing in broken URLs or broken Web 'bots). +.. note:: + + :class:`~django.middleware.common.BrokenLinkEmailsMiddleware` must appear + before other middleware that intercepts 404 errors, such as + :class:`~django.middleware.locale.LocaleMiddleware` or + :class:`~django.contrib.flatpages.middleware.FlatpageFallbackMiddleware`. + Put it towards the top of your :setting:`MIDDLEWARE_CLASSES` setting. + You can tell Django to stop reporting particular 404s by tweaking the :setting:`IGNORABLE_404_URLS` setting. It should be a tuple of compiled regular expression objects. For example:: @@ -92,9 +98,6 @@ crawlers often request:: (Note that these are regular expressions, so we put a backslash in front of periods to escape them.) -The best way to disable this behavior is to set -:setting:`SEND_BROKEN_LINK_EMAILS` to ``False``. - .. seealso:: 404 errors are logged using the logging framework. By default, these log diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt index faa6d1ff02..63d65d1e4a 100644 --- a/docs/internals/deprecation.txt +++ b/docs/internals/deprecation.txt @@ -308,6 +308,13 @@ these changes. * The ``depth`` keyword argument will be removed from :meth:`~django.db.models.query.QuerySet.select_related`. +1.8 +--- + +* The ``SEND_BROKEN_LINK_EMAILS`` setting will be removed. Add the + :class:`django.middleware.common.BrokenLinkEmailsMiddleware` middleware to + your :setting:`MIDDLEWARE_CLASSES` setting instead. + 2.0 --- diff --git a/docs/ref/middleware.txt b/docs/ref/middleware.txt index 2b053d80ab..1e6e57f720 100644 --- a/docs/ref/middleware.txt +++ b/docs/ref/middleware.txt @@ -61,14 +61,16 @@ Adds a few conveniences for perfectionists: indexer would treat them as separate URLs -- so it's best practice to normalize URLs. -* Sends broken link notification emails to :setting:`MANAGERS` if - :setting:`SEND_BROKEN_LINK_EMAILS` is set to ``True``. - * Handles ETags based on the :setting:`USE_ETAGS` setting. If :setting:`USE_ETAGS` is set to ``True``, Django will calculate an ETag for each request by MD5-hashing the page content, and it'll take care of sending ``Not Modified`` responses, if appropriate. +.. class:: BrokenLinkEmailsMiddleware + +* Sends broken link notification emails to :setting:`MANAGERS` (see + :doc:`/howto/error-reporting`). + View metadata middleware ------------------------ diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt index 110d5dbdc9..d057323c06 100644 --- a/docs/ref/settings.txt +++ b/docs/ref/settings.txt @@ -1090,8 +1090,9 @@ query string, if any). Use this if your site does not provide a commonly requested file such as ``favicon.ico`` or ``robots.txt``, or if it gets hammered by script kiddies. -This is only used if :setting:`SEND_BROKEN_LINK_EMAILS` is set to ``True`` and -``CommonMiddleware`` is installed (see :doc:`/topics/http/middleware`). +This is only used if +:class:`~django.middleware.common.BrokenLinkEmailsMiddleware` is enabled (see +:doc:`/topics/http/middleware`). .. setting:: INSTALLED_APPS @@ -1250,7 +1251,8 @@ MANAGERS Default: ``()`` (Empty tuple) A tuple in the same format as :setting:`ADMINS` that specifies who should get -broken-link notifications when :setting:`SEND_BROKEN_LINK_EMAILS` is ``True``. +broken link notifications when +:class:`~django.middleware.common.BrokenLinkEmailsMiddleware` is enabled. .. setting:: MEDIA_ROOT @@ -1448,6 +1450,11 @@ available in ``request.META``.) SEND_BROKEN_LINK_EMAILS ----------------------- +.. deprecated:: 1.6 + Since :class:`~django.middleware.common.BrokenLinkEmailsMiddleware` + was split from :class:`~django.middleware.common.CommonMiddleware`, + this setting no longer serves a purpose. + Default: ``False`` Whether to send an email to the :setting:`MANAGERS` each time somebody visits diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index e425036839..dcf6f2604a 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -46,3 +46,21 @@ Backwards incompatible changes in 1.6 Features deprecated in 1.6 ========================== + +``SEND_BROKEN_LINK_EMAILS`` setting +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:class:`~django.middleware.common.CommonMiddleware` used to provide basic +reporting of broken links by email when ``SEND_BROKEN_LINK_EMAILS`` is set to +``True``. + +Because of intractable ordering problems between +:class:`~django.middleware.common.CommonMiddleware` and +:class:`~django.middleware.locale.LocaleMiddleware`, this feature was split +out into a new middleware: +:class:`~django.middleware.common.BrokenLinkEmailsMiddleware`. + +If you're relying on this feature, you should add +``'django.middleware.common.BrokenLinkEmailsMiddleware'`` to your +:setting:`MIDDLEWARE_CLASSES` setting and remove ``SEND_BROKEN_LINK_EMAILS`` +from your settings. diff --git a/tests/regressiontests/middleware/tests.py b/tests/regressiontests/middleware/tests.py index e3d8350da6..c6d42a6964 100644 --- a/tests/regressiontests/middleware/tests.py +++ b/tests/regressiontests/middleware/tests.py @@ -1,16 +1,17 @@ # -*- coding: utf-8 -*- import gzip -import re -import random from io import BytesIO +import random +import re +import warnings from django.conf import settings from django.core import mail from django.http import HttpRequest from django.http import HttpResponse, StreamingHttpResponse from django.middleware.clickjacking import XFrameOptionsMiddleware -from django.middleware.common import CommonMiddleware +from django.middleware.common import CommonMiddleware, BrokenLinkEmailsMiddleware from django.middleware.http import ConditionalGetMiddleware from django.middleware.gzip import GZipMiddleware from django.test import TestCase, RequestFactory @@ -232,33 +233,39 @@ class CommonMiddlewareTest(TestCase): self.assertEqual(r['Location'], 'http://www.testserver/middleware/customurlconf/slash/') - # Tests for the 404 error reporting via email + # Legacy tests for the 404 error reporting via email (to be removed in 1.8) @override_settings(IGNORABLE_404_URLS=(re.compile(r'foo'),), - SEND_BROKEN_LINK_EMAILS = True) + SEND_BROKEN_LINK_EMAILS=True) def test_404_error_reporting(self): request = self._get_request('regular_url/that/does/not/exist') request.META['HTTP_REFERER'] = '/another/url/' - response = self.client.get(request.path) - CommonMiddleware().process_response(request, response) + with warnings.catch_warnings(): + warnings.simplefilter("ignore", PendingDeprecationWarning) + response = self.client.get(request.path) + CommonMiddleware().process_response(request, response) self.assertEqual(len(mail.outbox), 1) self.assertIn('Broken', mail.outbox[0].subject) @override_settings(IGNORABLE_404_URLS=(re.compile(r'foo'),), - SEND_BROKEN_LINK_EMAILS = True) + SEND_BROKEN_LINK_EMAILS=True) def test_404_error_reporting_no_referer(self): request = self._get_request('regular_url/that/does/not/exist') - response = self.client.get(request.path) - CommonMiddleware().process_response(request, response) + with warnings.catch_warnings(): + warnings.simplefilter("ignore", PendingDeprecationWarning) + response = self.client.get(request.path) + CommonMiddleware().process_response(request, response) self.assertEqual(len(mail.outbox), 0) @override_settings(IGNORABLE_404_URLS=(re.compile(r'foo'),), - SEND_BROKEN_LINK_EMAILS = True) + SEND_BROKEN_LINK_EMAILS=True) def test_404_error_reporting_ignored_url(self): request = self._get_request('foo_url/that/does/not/exist/either') request.META['HTTP_REFERER'] = '/another/url/' - response = self.client.get(request.path) - CommonMiddleware().process_response(request, response) + with warnings.catch_warnings(): + warnings.simplefilter("ignore", PendingDeprecationWarning) + response = self.client.get(request.path) + CommonMiddleware().process_response(request, response) self.assertEqual(len(mail.outbox), 0) # Other tests @@ -271,6 +278,34 @@ class CommonMiddlewareTest(TestCase): self.assertEqual(response.status_code, 301) +@override_settings(IGNORABLE_404_URLS=(re.compile(r'foo'),)) +class BrokenLinkEmailsMiddlewareTest(TestCase): + + def setUp(self): + self.req = HttpRequest() + self.req.META = { + 'SERVER_NAME': 'testserver', + 'SERVER_PORT': 80, + } + self.req.path = self.req.path_info = 'regular_url/that/does/not/exist' + self.resp = self.client.get(self.req.path) + + def test_404_error_reporting(self): + self.req.META['HTTP_REFERER'] = '/another/url/' + BrokenLinkEmailsMiddleware().process_response(self.req, self.resp) + self.assertEqual(len(mail.outbox), 1) + self.assertIn('Broken', mail.outbox[0].subject) + + def test_404_error_reporting_no_referer(self): + BrokenLinkEmailsMiddleware().process_response(self.req, self.resp) + self.assertEqual(len(mail.outbox), 0) + + def test_404_error_reporting_ignored_url(self): + self.req.path = self.req.path_info = 'foo_url/that/does/not/exist' + BrokenLinkEmailsMiddleware().process_response(self.req, self.resp) + self.assertEqual(len(mail.outbox), 0) + + class ConditionalGetMiddlewareTest(TestCase): urls = 'regressiontests.middleware.cond_get_urls' def setUp(self): -- cgit v1.3 From d406afe12edcedbaf745225713ebf3e36fa776fc Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 15 Jan 2013 15:47:31 -0500 Subject: Fixed #19597 - Added some notes on jQuery in admin. Thanks Daniele Procida. --- docs/ref/contrib/admin/index.txt | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) (limited to 'docs') diff --git a/docs/ref/contrib/admin/index.txt b/docs/ref/contrib/admin/index.txt index 1dbde2a98c..b273255c71 100644 --- a/docs/ref/contrib/admin/index.txt +++ b/docs/ref/contrib/admin/index.txt @@ -1383,15 +1383,18 @@ definitions on forms `. jQuery ~~~~~~ -Django admin Javascript makes use of the `jQuery`_ library. To avoid -conflicts with user-supplied scripts or libraries, Django's jQuery is -namespaced as ``django.jQuery``. If you want to use jQuery in your own admin -JavaScript without including a second copy, you can use the ``django.jQuery`` -object on changelist and add/edit views. - -If you require the jQuery library to be in the global namespace, for example -when using third-party jQuery plugins, or need a newer version of jQuery, you -will have to include your own copy of jQuery. +Django admin Javascript makes use of the `jQuery`_ library. + +To avoid conflicts with user-supplied scripts or libraries, Django's jQuery +(version 1.4.2) is namespaced as ``django.jQuery``. If you want to use jQuery +in your own admin JavaScript without including a second copy, you can use the +``django.jQuery`` object on changelist and add/edit views. + +The :class:`ModelAdmin` class requires jQuery by default, so there is no need +to add jQuery to your ``ModelAdmin``'s list of media resources unless you have +a specifc need. For example, if you require the jQuery library to be in the +global namespace (for example when using third-party jQuery plugins) or if you +need a newer version of jQuery, you will have to include your own copy. Django provides both uncompressed and 'minified' versions of jQuery, as ``jquery.js`` and ``jquery.min.js`` respectively. -- cgit v1.3 From eee865257aaa9005947a7b4994c475c2ad59d698 Mon Sep 17 00:00:00 2001 From: Ramiro Morales Date: Wed, 16 Jan 2013 15:36:22 -0300 Subject: Fixed #17008 -- Added makemessages option to not remove .pot files. Thanks airstrike for the report and initial patch, Julien for an enhanced patch and Jannis for reviewing. --- django/core/management/commands/makemessages.py | 33 ++++++++++++++--------- docs/ref/django-admin.txt | 8 ++++++ tests/regressiontests/i18n/commands/extraction.py | 33 +++++++++++++++++++++++ tests/regressiontests/i18n/tests.py | 2 +- 4 files changed, 63 insertions(+), 13 deletions(-) (limited to 'docs') diff --git a/django/core/management/commands/makemessages.py b/django/core/management/commands/makemessages.py index 606cbe0b85..449d3d7c5a 100644 --- a/django/core/management/commands/makemessages.py +++ b/django/core/management/commands/makemessages.py @@ -126,7 +126,7 @@ def write_pot_file(potfile, msgs, file, work_file, is_templatized): fp.write(msgs) def process_file(file, dirpath, potfile, domain, verbosity, - extensions, wrap, location, stdout=sys.stdout): + extensions, wrap, location, keep_pot, stdout=sys.stdout): """ Extract translatable literals from :param file: for :param domain: creating or updating the :param potfile: POT file. @@ -183,7 +183,7 @@ def process_file(file, dirpath, potfile, domain, verbosity, if status != STATUS_OK: if is_templatized: os.unlink(work_file) - if os.path.exists(potfile): + if not keep_pot and os.path.exists(potfile): os.unlink(potfile) raise CommandError( "errors happened while running xgettext on %s\n%s" % @@ -197,7 +197,7 @@ def process_file(file, dirpath, potfile, domain, verbosity, os.unlink(work_file) def write_po_file(pofile, potfile, domain, locale, verbosity, stdout, - copy_pforms, wrap, location, no_obsolete): + copy_pforms, wrap, location, no_obsolete, keep_pot): """ Creates of updates the :param pofile: PO file for :param domain: and :param locale:. Uses contents of the existing :param potfile:. @@ -208,7 +208,8 @@ def write_po_file(pofile, potfile, domain, locale, verbosity, stdout, (wrap, location, potfile)) if errors: if status != STATUS_OK: - os.unlink(potfile) + if not keep_pot: + os.unlink(potfile) raise CommandError( "errors happened while running msguniq\n%s" % errors) elif verbosity > 0: @@ -221,7 +222,8 @@ def write_po_file(pofile, potfile, domain, locale, verbosity, stdout, (wrap, location, pofile, potfile)) if errors: if status != STATUS_OK: - os.unlink(potfile) + if not keep_pot: + os.unlink(potfile) raise CommandError( "errors happened while running msgmerge\n%s" % errors) elif verbosity > 0: @@ -232,7 +234,8 @@ def write_po_file(pofile, potfile, domain, locale, verbosity, stdout, "#. #-#-#-#-# %s.pot (PACKAGE VERSION) #-#-#-#-#\n" % domain, "") with open(pofile, 'w') as fp: fp.write(msgs) - os.unlink(potfile) + if not keep_pot: + os.unlink(potfile) if no_obsolete: msgs, errors, status = _popen( 'msgattrib %s %s -o "%s" --no-obsolete "%s"' % @@ -246,7 +249,7 @@ def write_po_file(pofile, potfile, domain, locale, verbosity, stdout, def make_messages(locale=None, domain='django', verbosity=1, all=False, extensions=None, symlinks=False, ignore_patterns=None, no_wrap=False, - no_location=False, no_obsolete=False, stdout=sys.stdout): + no_location=False, no_obsolete=False, stdout=sys.stdout, keep_pot=False): """ Uses the ``locale/`` directory from the Django Git tree or an application/project to process all files with translatable literals for @@ -280,10 +283,12 @@ def make_messages(locale=None, domain='django', verbosity=1, all=False, "if you want to enable i18n for your project or application.") if domain not in ('django', 'djangojs'): - raise CommandError("currently makemessages only supports domains 'django' and 'djangojs'") + raise CommandError("currently makemessages only supports domains " + "'django' and 'djangojs'") if (locale is None and not all) or domain is None: - message = "Type '%s help %s' for usage information." % (os.path.basename(sys.argv[0]), sys.argv[1]) + message = "Type '%s help %s' for usage information." % ( + os.path.basename(sys.argv[0]), sys.argv[1]) raise CommandError(message) # We require gettext version 0.15 or newer. @@ -325,11 +330,11 @@ def make_messages(locale=None, domain='django', verbosity=1, all=False, for dirpath, file in find_files(".", ignore_patterns, verbosity, stdout, symlinks=symlinks): process_file(file, dirpath, potfile, domain, verbosity, extensions, - wrap, location, stdout) + wrap, location, keep_pot, stdout) if os.path.exists(potfile): write_po_file(pofile, potfile, domain, locale, verbosity, stdout, - not invoked_for_django, wrap, location, no_obsolete) + not invoked_for_django, wrap, location, no_obsolete, keep_pot) class Command(NoArgsCommand): @@ -355,6 +360,8 @@ class Command(NoArgsCommand): default=False, help="Don't write '#: filename:line' lines"), make_option('--no-obsolete', action='store_true', dest='no_obsolete', default=False, help="Remove obsolete message strings"), + make_option('--keep-pot', action='store_true', dest='keep_pot', + default=False, help="Keep .pot file after making messages. Useful when debugging."), ) help = ("Runs over the entire source tree of the current directory and " "pulls out all strings marked for translation. It creates (or updates) a message " @@ -379,6 +386,7 @@ class Command(NoArgsCommand): no_wrap = options.get('no_wrap') no_location = options.get('no_location') no_obsolete = options.get('no_obsolete') + keep_pot = options.get('keep_pot') if domain == 'djangojs': exts = extensions if extensions else ['js'] else: @@ -390,4 +398,5 @@ class Command(NoArgsCommand): % get_text_list(list(extensions), 'and')) make_messages(locale, domain, verbosity, process_all, extensions, - symlinks, ignore_patterns, no_wrap, no_location, no_obsolete, self.stdout) + symlinks, ignore_patterns, no_wrap, no_location, + no_obsolete, self.stdout, keep_pot) diff --git a/docs/ref/django-admin.txt b/docs/ref/django-admin.txt index 8d612ae6a6..3c73e268e2 100644 --- a/docs/ref/django-admin.txt +++ b/docs/ref/django-admin.txt @@ -472,6 +472,14 @@ Use the ``--no-location`` option to not write '``#: filename:line``' comment lines in language files. Note that using this option makes it harder for technically skilled translators to understand each message's context. +.. django-admin-option:: --keep-pot + +.. versionadded:: 1.6 + +Use the ``--keep-pot`` option to prevent django from deleting the temporary +.pot file it generates before creating the .po file. This is useful for +debugging errors which may prevent the final language files from being created. + runfcgi [options] ----------------- diff --git a/tests/regressiontests/i18n/commands/extraction.py b/tests/regressiontests/i18n/commands/extraction.py index aa5efe1967..bd2b84a952 100644 --- a/tests/regressiontests/i18n/commands/extraction.py +++ b/tests/regressiontests/i18n/commands/extraction.py @@ -293,3 +293,36 @@ class NoLocationExtractorTests(ExtractorTests): with open(self.PO_FILE, 'r') as fp: po_contents = force_text(fp.read()) self.assertTrue('#: templates/test.html:55' in po_contents) + + +class KeepPotFileExtractorTests(ExtractorTests): + + def setUp(self): + self.POT_FILE = self.PO_FILE + 't' + super(KeepPotFileExtractorTests, self).setUp() + + def tearDown(self): + super(KeepPotFileExtractorTests, self).tearDown() + os.chdir(self.test_dir) + try: + os.unlink(self.POT_FILE) + except OSError: + pass + os.chdir(self._cwd) + + def test_keep_pot_disabled_by_default(self): + os.chdir(self.test_dir) + management.call_command('makemessages', locale=LOCALE, verbosity=0) + self.assertFalse(os.path.exists(self.POT_FILE)) + + def test_keep_pot_explicitly_disabled(self): + os.chdir(self.test_dir) + management.call_command('makemessages', locale=LOCALE, verbosity=0, + keep_pot=False) + self.assertFalse(os.path.exists(self.POT_FILE)) + + def test_keep_pot_enabled(self): + os.chdir(self.test_dir) + management.call_command('makemessages', locale=LOCALE, verbosity=0, + keep_pot=True) + self.assertTrue(os.path.exists(self.POT_FILE)) diff --git a/tests/regressiontests/i18n/tests.py b/tests/regressiontests/i18n/tests.py index 44d84f9143..5d789b4acb 100644 --- a/tests/regressiontests/i18n/tests.py +++ b/tests/regressiontests/i18n/tests.py @@ -32,7 +32,7 @@ if can_run_extraction_tests: from .commands.extraction import (ExtractorTests, BasicExtractorTests, JavascriptExtractorTests, IgnoredExtractorTests, SymlinkExtractorTests, CopyPluralFormsExtractorTests, NoWrapExtractorTests, - NoLocationExtractorTests) + NoLocationExtractorTests, KeepPotFileExtractorTests) if can_run_compilation_tests: from .commands.compilation import (PoFileTests, PoFileContentsTests, PercentRenderingTests) -- cgit v1.3 From 6158c79dbef832bc8530107ab2d34f04a04471da Mon Sep 17 00:00:00 2001 From: Craig Blaszczyk Date: Thu, 7 Jun 2012 11:23:25 +0200 Subject: Made (make|compile)messages commands accept multiple locales at once. Thanks Craig Blaszczyk for the initial patch. Refs #17181. --- AUTHORS | 1 + django/core/management/commands/compilemessages.py | 16 +++-- django/core/management/commands/makemessages.py | 6 +- docs/ref/django-admin.txt | 28 ++++++++- tests/regressiontests/i18n/commands/compilation.py | 31 ++++++++++ tests/regressiontests/i18n/commands/extraction.py | 27 ++++++++ .../i18n/commands/locale/hr/LC_MESSAGES/django.po | 71 ++++++++++++++++++++++ tests/regressiontests/i18n/tests.py | 5 +- 8 files changed, 171 insertions(+), 14 deletions(-) create mode 100644 tests/regressiontests/i18n/commands/locale/hr/LC_MESSAGES/django.po (limited to 'docs') diff --git a/AUTHORS b/AUTHORS index 3659d8e0df..16bfa574c9 100644 --- a/AUTHORS +++ b/AUTHORS @@ -98,6 +98,7 @@ answer newbie questions, and generally made Django that much better: Mark Biggers Paul Bissex Simon Blanchard + Craig Blaszczyk David Blewett Matt Boersma Artem Gnilov diff --git a/django/core/management/commands/compilemessages.py b/django/core/management/commands/compilemessages.py index e1d8a33332..684ef3514c 100644 --- a/django/core/management/commands/compilemessages.py +++ b/django/core/management/commands/compilemessages.py @@ -28,10 +28,14 @@ def compile_messages(stderr, locale=None): for basedir in basedirs: if locale: - basedir = os.path.join(basedir, locale, 'LC_MESSAGES') - for dirpath, dirnames, filenames in os.walk(basedir): - for f in filenames: - if f.endswith('.po'): + dirs = [os.path.join(basedir, l, 'LC_MESSAGES') for l in (locale if isinstance(locale, list) else [locale])] + else: + dirs = [basedir] + for ldir in dirs: + for dirpath, dirnames, filenames in os.walk(ldir): + for f in filenames: + if not f.endswith('.po'): + continue stderr.write('processing file %s in %s\n' % (f, dirpath)) fn = os.path.join(dirpath, f) if has_bom(fn): @@ -53,8 +57,8 @@ def compile_messages(stderr, locale=None): class Command(BaseCommand): option_list = BaseCommand.option_list + ( - make_option('--locale', '-l', dest='locale', - help='The locale to process. Default is to process all.'), + make_option('--locale', '-l', dest='locale', action='append', + help='locale(s) to process (e.g. de_AT). Default is to process all. Can be used multiple times, accepts a comma-separated list of locale names.'), ) help = 'Compiles .po files to .mo files for use with builtin gettext support.' diff --git a/django/core/management/commands/makemessages.py b/django/core/management/commands/makemessages.py index 2b2755d8d1..31971a9101 100644 --- a/django/core/management/commands/makemessages.py +++ b/django/core/management/commands/makemessages.py @@ -304,7 +304,7 @@ def make_messages(locale=None, domain='django', verbosity=1, all=False, locales = [] if locale is not None: - locales.append(str(locale)) + locales += locale.split(',') if not isinstance(locale, list) else locale elif all: locale_dirs = filter(os.path.isdir, glob.glob('%s/*' % localedir)) locales = [os.path.basename(l) for l in locale_dirs] @@ -341,8 +341,8 @@ def make_messages(locale=None, domain='django', verbosity=1, all=False, class Command(NoArgsCommand): option_list = NoArgsCommand.option_list + ( - make_option('--locale', '-l', default=None, dest='locale', - help='Creates or updates the message files for the given locale (e.g. pt_BR).'), + make_option('--locale', '-l', default=None, dest='locale', action='append', + help='Creates or updates the message files for the given locale(s) (e.g. pt_BR). Can be used multiple times, accepts a comma-separated list of locale names.'), make_option('--domain', '-d', default='django', dest='domain', help='The domain of the message files (default: "django").'), make_option('--all', '-a', action='store_true', dest='all', diff --git a/docs/ref/django-admin.txt b/docs/ref/django-admin.txt index 3c73e268e2..06ec8e2031 100644 --- a/docs/ref/django-admin.txt +++ b/docs/ref/django-admin.txt @@ -107,12 +107,21 @@ compilemessages Compiles .po files created with ``makemessages`` to .mo files for use with the builtin gettext support. See :doc:`/topics/i18n/index`. -Use the :djadminopt:`--locale` option to specify the locale to process. -If not provided, all locales are processed. +Use the :djadminopt:`--locale` option (or its shorter version ``-l``) to +specify the locale(s) to process. If not provided, all locales are processed. Example usage:: django-admin.py compilemessages --locale=pt_BR + django-admin.py compilemessages --locale=pt_BR --locale=fr + django-admin.py compilemessages -l pt_BR + django-admin.py compilemessages -l pt_BR -l fr + django-admin.py compilemessages --locale=pt_BR,fr + django-admin.py compilemessages -l pt_BR,fr + +.. versionchanged:: 1.6 + +Added the ability to specify multiple locales. createcachetable ---------------- @@ -422,11 +431,24 @@ Separate multiple extensions with commas or use -e or --extension multiple times django-admin.py makemessages --locale=de --extension=html,txt --extension xml -Use the :djadminopt:`--locale` option to specify the locale to process. +Use the :djadminopt:`--locale` option (or its shorter version ``-l``) to +specify the locale(s) to process. Example usage:: django-admin.py makemessages --locale=pt_BR + django-admin.py makemessages --locale=pt_BR --locale=fr + django-admin.py makemessages -l pt_BR + django-admin.py makemessages -l pt_BR -l fr + +You can also use commas to separate multiple locales:: + + django-admin.py makemessages --locale=de,fr,pt_BR + django-admin.py makemessages -l de,fr,pt_BR + +.. versionchanged:: 1.6 + +Added the ability to specify multiple locales. .. django-admin-option:: --domain diff --git a/tests/regressiontests/i18n/commands/compilation.py b/tests/regressiontests/i18n/commands/compilation.py index 492b0d22a3..c15b95eb0e 100644 --- a/tests/regressiontests/i18n/commands/compilation.py +++ b/tests/regressiontests/i18n/commands/compilation.py @@ -68,3 +68,34 @@ class PercentRenderingTests(MessageCompilationTests): t = Template('{% load i18n %}{% trans "Completed 50%% of all the tasks" %}') rendered = t.render(Context({})) self.assertEqual(rendered, 'IT translation of Completed 50%% of all the tasks') + + +@override_settings(LOCALE_PATHS=(os.path.join(test_dir, 'locale'),)) +class MultipleLocaleCompilationTests(MessageCompilationTests): + MO_FILE_HR = None + MO_FILE_FR = None + + def setUp(self): + super(MultipleLocaleCompilationTests, self).setUp() + self.localedir = os.path.join(test_dir, 'locale') + self.MO_FILE_HR = os.path.join(self.localedir, 'hr/LC_MESSAGES/django.mo') + self.MO_FILE_FR = os.path.join(self.localedir, 'fr/LC_MESSAGES/django.mo') + self.addCleanup(self._rmfile, os.path.join(self.localedir, self.MO_FILE_HR)) + self.addCleanup(self._rmfile, os.path.join(self.localedir, self.MO_FILE_FR)) + + def _rmfile(self, filepath): + if os.path.exists(filepath): + os.remove(filepath) + + def test_one_locale(self): + os.chdir(test_dir) + call_command('compilemessages', locale='hr', stderr=StringIO()) + + self.assertTrue(os.path.exists(self.MO_FILE_HR)) + + def test_multiple_locales(self): + os.chdir(test_dir) + call_command('compilemessages', locale=['hr', 'fr'], stderr=StringIO()) + + self.assertTrue(os.path.exists(self.MO_FILE_HR)) + self.assertTrue(os.path.exists(self.MO_FILE_FR)) diff --git a/tests/regressiontests/i18n/commands/extraction.py b/tests/regressiontests/i18n/commands/extraction.py index 575f23cfee..1d6a72d725 100644 --- a/tests/regressiontests/i18n/commands/extraction.py +++ b/tests/regressiontests/i18n/commands/extraction.py @@ -327,3 +327,30 @@ class KeepPotFileExtractorTests(ExtractorTests): management.call_command('makemessages', locale=LOCALE, verbosity=0, keep_pot=True) self.assertTrue(os.path.exists(self.POT_FILE)) + + +class MultipleLocaleExtractionTests(ExtractorTests): + PO_FILE_PT = 'locale/pt/LC_MESSAGES/django.po' + PO_FILE_DE = 'locale/de/LC_MESSAGES/django.po' + LOCALES = ['pt', 'de', 'ch'] + + def tearDown(self): + os.chdir(self.test_dir) + for locale in self.LOCALES: + try: + self._rmrf('locale/%s' % locale) + except OSError: + pass + os.chdir(self._cwd) + + def test_multiple_locales(self): + os.chdir(self.test_dir) + management.call_command('makemessages', locale=['pt','de'], verbosity=0) + self.assertTrue(os.path.exists(self.PO_FILE_PT)) + self.assertTrue(os.path.exists(self.PO_FILE_DE)) + + def test_comma_separated_locales(self): + os.chdir(self.test_dir) + management.call_command('makemessages', locale='pt,de,ch', verbosity=0) + self.assertTrue(os.path.exists(self.PO_FILE_PT)) + self.assertTrue(os.path.exists(self.PO_FILE_DE)) diff --git a/tests/regressiontests/i18n/commands/locale/hr/LC_MESSAGES/django.po b/tests/regressiontests/i18n/commands/locale/hr/LC_MESSAGES/django.po new file mode 100644 index 0000000000..663ca0000f --- /dev/null +++ b/tests/regressiontests/i18n/commands/locale/hr/LC_MESSAGES/django.po @@ -0,0 +1,71 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-12-04 04:59-0600\n" +"PO-Revision-Date: 2013-01-16 22:53-0300\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#. Translators: Django template comment for translators +#: templates/test.html:9 +#, python-format +msgid "I think that 100%% is more that 50%% of anything." +msgstr "" + +#: templates/test.html:10 +#, python-format +msgid "I think that 100%% is more that 50%% of %(obj)s." +msgstr "" + +#: templates/test.html:70 +#, python-format +msgid "Literal with a percent symbol at the end %%" +msgstr "" + +#: templates/test.html:71 +#, python-format +msgid "Literal with a percent %% symbol in the middle" +msgstr "" + +#: templates/test.html:72 +#, python-format +msgid "Completed 50%% of all the tasks" +msgstr "" + +#: templates/test.html:73 +#, python-format +msgctxt "ctx0" +msgid "Completed 99%% of all the tasks" +msgstr "" + +#: templates/test.html:74 +#, python-format +msgid "Shouldn't double escape this sequence: %% (two percent signs)" +msgstr "" + +#: templates/test.html:75 +#, python-format +msgctxt "ctx1" +msgid "Shouldn't double escape this sequence %% either" +msgstr "" + +#: templates/test.html:76 +#, python-format +msgid "Looks like a str fmt spec %%s but shouldn't be interpreted as such" +msgstr "Translation of the above string" + +#: templates/test.html:77 +#, python-format +msgid "Looks like a str fmt spec %% o but shouldn't be interpreted as such" +msgstr "Translation contains %% for the above string" diff --git a/tests/regressiontests/i18n/tests.py b/tests/regressiontests/i18n/tests.py index 5d789b4acb..d9843c228a 100644 --- a/tests/regressiontests/i18n/tests.py +++ b/tests/regressiontests/i18n/tests.py @@ -32,10 +32,11 @@ if can_run_extraction_tests: from .commands.extraction import (ExtractorTests, BasicExtractorTests, JavascriptExtractorTests, IgnoredExtractorTests, SymlinkExtractorTests, CopyPluralFormsExtractorTests, NoWrapExtractorTests, - NoLocationExtractorTests, KeepPotFileExtractorTests) + NoLocationExtractorTests, KeepPotFileExtractorTests, + MultipleLocaleExtractionTests) if can_run_compilation_tests: from .commands.compilation import (PoFileTests, PoFileContentsTests, - PercentRenderingTests) + PercentRenderingTests, MultipleLocaleCompilationTests) from .contenttypes.tests import ContentTypeTests from .forms import I18nForm, SelectDateForm, SelectDateWidget, CompanyForm from .models import Company, TestModel -- cgit v1.3 From 1dd749284325ea8fe747a3728ed92bafef4ff6a0 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Fri, 18 Jan 2013 20:50:12 +0100 Subject: Fixed #19632 -- Bug in code sample. Thanks grossmanandy at bfusa com and Simon Charette. --- docs/topics/auth/default.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/topics/auth/default.txt b/docs/topics/auth/default.txt index d1463c645b..569738569d 100644 --- a/docs/topics/auth/default.txt +++ b/docs/topics/auth/default.txt @@ -466,7 +466,7 @@ checks to make sure the user has an email in the desired domain:: from django.contrib.auth.decorators import user_passes_test def email_check(user): - return '@example.com' in request.user.email + return '@example.com' in user.email @user_passes_test(email_check) def my_view(request): -- cgit v1.3 From 0375244eaeae1e2c09cc58c4c62e8f9e951217d0 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Fri, 18 Jan 2013 18:38:12 -0500 Subject: Fixed #19628 - Noted that app for custom user model must be in INSTALLED_APPS Thanks dpravdin and Jordan Messina. --- docs/topics/auth/customizing.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/topics/auth/customizing.txt b/docs/topics/auth/customizing.txt index 5f48e82e2b..cf031c7b84 100644 --- a/docs/topics/auth/customizing.txt +++ b/docs/topics/auth/customizing.txt @@ -404,8 +404,9 @@ the :setting:`AUTH_USER_MODEL` setting that references a custom model:: AUTH_USER_MODEL = 'myapp.MyUser' -This dotted pair describes the name of the Django app, and the name of the Django -model that you wish to use as your User model. +This dotted pair describes the name of the Django app (which must be in your +:setting:`INSTALLED_APPS`), and the name of the Django model that you wish to +use as your User model. .. admonition:: Warning -- cgit v1.3 From fe54377dae1357a7f102d72614a13f0ef8b2dbdf Mon Sep 17 00:00:00 2001 From: Nick Sandford Date: Sat, 12 Jan 2013 16:37:19 +0800 Subject: Fixed #17813 -- Added a .earliest() method to QuerySet Thanks a lot to everybody participating in developing this feature. The patch was developed by multiple people, at least Trac aliases tonnzor, jimmysong, Fandekasp and slurms. Stylistic changes added by committer. --- django/db/models/manager.py | 3 + django/db/models/query.py | 22 ++-- docs/ref/models/options.txt | 3 +- docs/ref/models/querysets.txt | 21 +++- docs/releases/1.6.txt | 3 + .../modeltests/get_earliest_or_latest/__init__.py | 0 tests/modeltests/get_earliest_or_latest/models.py | 32 ++++++ tests/modeltests/get_earliest_or_latest/tests.py | 123 +++++++++++++++++++++ tests/modeltests/get_latest/__init__.py | 0 tests/modeltests/get_latest/models.py | 34 ------ tests/modeltests/get_latest/tests.py | 58 ---------- 11 files changed, 193 insertions(+), 106 deletions(-) create mode 100644 tests/modeltests/get_earliest_or_latest/__init__.py create mode 100644 tests/modeltests/get_earliest_or_latest/models.py create mode 100644 tests/modeltests/get_earliest_or_latest/tests.py delete mode 100644 tests/modeltests/get_latest/__init__.py delete mode 100644 tests/modeltests/get_latest/models.py delete mode 100644 tests/modeltests/get_latest/tests.py (limited to 'docs') diff --git a/django/db/models/manager.py b/django/db/models/manager.py index da6523c89a..816f6194e3 100644 --- a/django/db/models/manager.py +++ b/django/db/models/manager.py @@ -172,6 +172,9 @@ class Manager(object): def iterator(self, *args, **kwargs): return self.get_query_set().iterator(*args, **kwargs) + def earliest(self, *args, **kwargs): + return self.get_query_set().earliest(*args, **kwargs) + def latest(self, *args, **kwargs): return self.get_query_set().latest(*args, **kwargs) diff --git a/django/db/models/query.py b/django/db/models/query.py index bdb6d48adc..1c9a68a677 100644 --- a/django/db/models/query.py +++ b/django/db/models/query.py @@ -29,6 +29,7 @@ REPR_OUTPUT_SIZE = 20 # Pull into this namespace for backwards compatibility. EmptyResultSet = sql.EmptyResultSet + class QuerySet(object): """ Represents a lazy database lookup for a set of objects. @@ -487,21 +488,28 @@ class QuerySet(object): # Re-raise the IntegrityError with its original traceback. six.reraise(*exc_info) - def latest(self, field_name=None): + def _earliest_or_latest(self, field_name=None, direction="-"): """ - Returns the latest object, according to the model's 'get_latest_by' - option or optional given field_name. + Returns the latest object, according to the model's + 'get_latest_by' option or optional given field_name. """ - latest_by = field_name or self.model._meta.get_latest_by - assert bool(latest_by), "latest() requires either a field_name parameter or 'get_latest_by' in the model" + order_by = field_name or getattr(self.model._meta, 'get_latest_by') + assert bool(order_by), "earliest() and latest() require either a "\ + "field_name parameter or 'get_latest_by' in the model" assert self.query.can_filter(), \ - "Cannot change a query once a slice has been taken." + "Cannot change a query once a slice has been taken." obj = self._clone() obj.query.set_limits(high=1) obj.query.clear_ordering() - obj.query.add_ordering('-%s' % latest_by) + obj.query.add_ordering('%s%s' % (direction, order_by)) return obj.get() + def earliest(self, field_name=None): + return self._earliest_or_latest(field_name=field_name, direction="") + + def latest(self, field_name=None): + return self._earliest_or_latest(field_name=field_name, direction="-") + def in_bulk(self, id_list): """ Returns a dictionary mapping each of the given IDs to the object with diff --git a/docs/ref/models/options.txt b/docs/ref/models/options.txt index b349197a5b..21265d6313 100644 --- a/docs/ref/models/options.txt +++ b/docs/ref/models/options.txt @@ -86,7 +86,8 @@ Django quotes column and table names behind the scenes. The name of an orderable field in the model, typically a :class:`DateField`, :class:`DateTimeField`, or :class:`IntegerField`. This specifies the default field to use in your model :class:`Manager`'s - :meth:`~django.db.models.query.QuerySet.latest` method. + :meth:`~django.db.models.query.QuerySet.latest` and + :meth:`~django.db.models.query.QuerySet.earliest` methods. Example:: diff --git a/docs/ref/models/querysets.txt b/docs/ref/models/querysets.txt index 71049703c9..1f59ecb4f4 100644 --- a/docs/ref/models/querysets.txt +++ b/docs/ref/models/querysets.txt @@ -1477,14 +1477,23 @@ This example returns the latest ``Entry`` in the table, according to the If your model's :ref:`Meta ` specifies :attr:`~django.db.models.Options.get_latest_by`, you can leave off the -``field_name`` argument to ``latest()``. Django will use the field specified -in :attr:`~django.db.models.Options.get_latest_by` by default. +``field_name`` argument to ``earliest()`` or ``latest()``. Django will use the +field specified in :attr:`~django.db.models.Options.get_latest_by` by default. -Like :meth:`get()`, ``latest()`` raises -:exc:`~django.core.exceptions.DoesNotExist` if there is no object with the given -parameters. +Like :meth:`get()`, ``earliest()`` and ``latest()`` raise +:exc:`~django.core.exceptions.DoesNotExist` if there is no object with the +given parameters. + +Note that ``earliest()`` and ``latest()`` exist purely for convenience and +readability. + +earliest +~~~~~~~~ + +.. method:: earliest(field_name=None) -Note ``latest()`` exists purely for convenience and readability. +Works otherwise like :meth:`~django.db.models.query.QuerySet.latest` except +the direction is changed. aggregate ~~~~~~~~~ diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index dcf6f2604a..89d7bb3c05 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -28,6 +28,9 @@ Minor features undefined if the given ``QuerySet`` isn't ordered and there are more than one ordered values to compare against. +* Added :meth:`~django.db.models.query.QuerySet.earliest` for symmetry with + :meth:`~django.db.models.query.QuerySet.latest`. + Backwards incompatible changes in 1.6 ===================================== diff --git a/tests/modeltests/get_earliest_or_latest/__init__.py b/tests/modeltests/get_earliest_or_latest/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/modeltests/get_earliest_or_latest/models.py b/tests/modeltests/get_earliest_or_latest/models.py new file mode 100644 index 0000000000..2453eaaccd --- /dev/null +++ b/tests/modeltests/get_earliest_or_latest/models.py @@ -0,0 +1,32 @@ +""" +8. get_latest_by + +Models can have a ``get_latest_by`` attribute, which should be set to the name +of a ``DateField`` or ``DateTimeField``. If ``get_latest_by`` exists, the +model's manager will get a ``latest()`` method, which will return the latest +object in the database according to that field. "Latest" means "having the date +farthest into the future." +""" + +from django.db import models + + +class Article(models.Model): + headline = models.CharField(max_length=100) + pub_date = models.DateField() + expire_date = models.DateField() + class Meta: + get_latest_by = 'pub_date' + + def __unicode__(self): + return self.headline + + +class Person(models.Model): + name = models.CharField(max_length=30) + birthday = models.DateField() + + # Note that this model doesn't have "get_latest_by" set. + + def __unicode__(self): + return self.name diff --git a/tests/modeltests/get_earliest_or_latest/tests.py b/tests/modeltests/get_earliest_or_latest/tests.py new file mode 100644 index 0000000000..6317a0974c --- /dev/null +++ b/tests/modeltests/get_earliest_or_latest/tests.py @@ -0,0 +1,123 @@ +from __future__ import absolute_import + +from datetime import datetime + +from django.test import TestCase + +from .models import Article, Person + + +class EarliestOrLatestTests(TestCase): + """Tests for the earliest() and latest() objects methods""" + + def tearDown(self): + """Makes sure Article has a get_latest_by""" + if not Article._meta.get_latest_by: + Article._meta.get_latest_by = 'pub_date' + + def test_earliest(self): + # Because no Articles exist yet, earliest() raises ArticleDoesNotExist. + self.assertRaises(Article.DoesNotExist, Article.objects.earliest) + + a1 = Article.objects.create( + headline="Article 1", pub_date=datetime(2005, 7, 26), + expire_date=datetime(2005, 9, 1) + ) + a2 = Article.objects.create( + headline="Article 2", pub_date=datetime(2005, 7, 27), + expire_date=datetime(2005, 7, 28) + ) + a3 = Article.objects.create( + headline="Article 3", pub_date=datetime(2005, 7, 28), + expire_date=datetime(2005, 8, 27) + ) + a4 = Article.objects.create( + headline="Article 4", pub_date=datetime(2005, 7, 28), + expire_date=datetime(2005, 7, 30) + ) + + # Get the earliest Article. + self.assertEqual(Article.objects.earliest(), a1) + # Get the earliest Article that matches certain filters. + self.assertEqual( + Article.objects.filter(pub_date__gt=datetime(2005, 7, 26)).earliest(), + a2 + ) + + # Pass a custom field name to earliest() to change the field that's used + # to determine the earliest object. + self.assertEqual(Article.objects.earliest('expire_date'), a2) + self.assertEqual(Article.objects.filter( + pub_date__gt=datetime(2005, 7, 26)).earliest('expire_date'), a2) + + # Ensure that earliest() overrides any other ordering specified on the + # query. Refs #11283. + self.assertEqual(Article.objects.order_by('id').earliest(), a1) + + # Ensure that error is raised if the user forgot to add a get_latest_by + # in the Model.Meta + Article.objects.model._meta.get_latest_by = None + self.assertRaisesMessage( + AssertionError, + "earliest() and latest() require either a field_name parameter or " + "'get_latest_by' in the model", + lambda: Article.objects.earliest(), + ) + + def test_latest(self): + # Because no Articles exist yet, latest() raises ArticleDoesNotExist. + self.assertRaises(Article.DoesNotExist, Article.objects.latest) + + a1 = Article.objects.create( + headline="Article 1", pub_date=datetime(2005, 7, 26), + expire_date=datetime(2005, 9, 1) + ) + a2 = Article.objects.create( + headline="Article 2", pub_date=datetime(2005, 7, 27), + expire_date=datetime(2005, 7, 28) + ) + a3 = Article.objects.create( + headline="Article 3", pub_date=datetime(2005, 7, 27), + expire_date=datetime(2005, 8, 27) + ) + a4 = Article.objects.create( + headline="Article 4", pub_date=datetime(2005, 7, 28), + expire_date=datetime(2005, 7, 30) + ) + + # Get the latest Article. + self.assertEqual(Article.objects.latest(), a4) + # Get the latest Article that matches certain filters. + self.assertEqual( + Article.objects.filter(pub_date__lt=datetime(2005, 7, 27)).latest(), + a1 + ) + + # Pass a custom field name to latest() to change the field that's used + # to determine the latest object. + self.assertEqual(Article.objects.latest('expire_date'), a1) + self.assertEqual( + Article.objects.filter(pub_date__gt=datetime(2005, 7, 26)).latest('expire_date'), + a3, + ) + + # Ensure that latest() overrides any other ordering specified on the query. Refs #11283. + self.assertEqual(Article.objects.order_by('id').latest(), a4) + + # Ensure that error is raised if the user forgot to add a get_latest_by + # in the Model.Meta + Article.objects.model._meta.get_latest_by = None + self.assertRaisesMessage( + AssertionError, + "earliest() and latest() require either a field_name parameter or " + "'get_latest_by' in the model", + lambda: Article.objects.latest(), + ) + + def test_latest_manual(self): + # You can still use latest() with a model that doesn't have + # "get_latest_by" set -- just pass in the field name manually. + p1 = Person.objects.create(name="Ralph", birthday=datetime(1950, 1, 1)) + p2 = Person.objects.create(name="Stephanie", birthday=datetime(1960, 2, 3)) + self.assertRaises(AssertionError, Person.objects.latest) + self.assertEqual(Person.objects.latest("birthday"), p2) diff --git a/tests/modeltests/get_latest/__init__.py b/tests/modeltests/get_latest/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/modeltests/get_latest/models.py b/tests/modeltests/get_latest/models.py deleted file mode 100644 index fe594dd802..0000000000 --- a/tests/modeltests/get_latest/models.py +++ /dev/null @@ -1,34 +0,0 @@ -""" -8. get_latest_by - -Models can have a ``get_latest_by`` attribute, which should be set to the name -of a ``DateField`` or ``DateTimeField``. If ``get_latest_by`` exists, the -model's manager will get a ``latest()`` method, which will return the latest -object in the database according to that field. "Latest" means "having the date -farthest into the future." -""" - -from django.db import models -from django.utils.encoding import python_2_unicode_compatible - - -@python_2_unicode_compatible -class Article(models.Model): - headline = models.CharField(max_length=100) - pub_date = models.DateField() - expire_date = models.DateField() - class Meta: - get_latest_by = 'pub_date' - - def __str__(self): - return self.headline - -@python_2_unicode_compatible -class Person(models.Model): - name = models.CharField(max_length=30) - birthday = models.DateField() - - # Note that this model doesn't have "get_latest_by" set. - - def __str__(self): - return self.name diff --git a/tests/modeltests/get_latest/tests.py b/tests/modeltests/get_latest/tests.py deleted file mode 100644 index 948af6045a..0000000000 --- a/tests/modeltests/get_latest/tests.py +++ /dev/null @@ -1,58 +0,0 @@ -from __future__ import absolute_import - -from datetime import datetime - -from django.test import TestCase - -from .models import Article, Person - - -class LatestTests(TestCase): - def test_latest(self): - # Because no Articles exist yet, latest() raises ArticleDoesNotExist. - self.assertRaises(Article.DoesNotExist, Article.objects.latest) - - a1 = Article.objects.create( - headline="Article 1", pub_date=datetime(2005, 7, 26), - expire_date=datetime(2005, 9, 1) - ) - a2 = Article.objects.create( - headline="Article 2", pub_date=datetime(2005, 7, 27), - expire_date=datetime(2005, 7, 28) - ) - a3 = Article.objects.create( - headline="Article 3", pub_date=datetime(2005, 7, 27), - expire_date=datetime(2005, 8, 27) - ) - a4 = Article.objects.create( - headline="Article 4", pub_date=datetime(2005, 7, 28), - expire_date=datetime(2005, 7, 30) - ) - - # Get the latest Article. - self.assertEqual(Article.objects.latest(), a4) - # Get the latest Article that matches certain filters. - self.assertEqual( - Article.objects.filter(pub_date__lt=datetime(2005, 7, 27)).latest(), - a1 - ) - - # Pass a custom field name to latest() to change the field that's used - # to determine the latest object. - self.assertEqual(Article.objects.latest('expire_date'), a1) - self.assertEqual( - Article.objects.filter(pub_date__gt=datetime(2005, 7, 26)).latest('expire_date'), - a3, - ) - - # Ensure that latest() overrides any other ordering specified on the query. Refs #11283. - self.assertEqual(Article.objects.order_by('id').latest(), a4) - - def test_latest_manual(self): - # You can still use latest() with a model that doesn't have - # "get_latest_by" set -- just pass in the field name manually. - p1 = Person.objects.create(name="Ralph", birthday=datetime(1950, 1, 1)) - p2 = Person.objects.create(name="Stephanie", birthday=datetime(1960, 2, 3)) - self.assertRaises(AssertionError, Person.objects.latest) - - self.assertEqual(Person.objects.latest("birthday"), p2) -- cgit v1.3 From f96c86b02943009d4c2e01d8e4457db040723a25 Mon Sep 17 00:00:00 2001 From: Anssi Kääriäinen Date: Sun, 20 Jan 2013 06:45:00 +0200 Subject: Added missing versionadded 1.6 to docs of earliest() Refs #17813 --- docs/ref/models/querysets.txt | 2 ++ 1 file changed, 2 insertions(+) (limited to 'docs') diff --git a/docs/ref/models/querysets.txt b/docs/ref/models/querysets.txt index 1f59ecb4f4..171c2d3dcd 100644 --- a/docs/ref/models/querysets.txt +++ b/docs/ref/models/querysets.txt @@ -1492,6 +1492,8 @@ earliest .. method:: earliest(field_name=None) +.. versionadded:: 1.6 + Works otherwise like :meth:`~django.db.models.query.QuerySet.latest` except the direction is changed. -- cgit v1.3 From 5b2d9bacd2512bcdf371c05b0b43bc713dcca080 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 22 Jan 2013 06:46:22 -0500 Subject: Fixed #19640 - Added inlineformset_factory to reference docs. Thanks wim@ for the suggestion. --- docs/ref/contrib/admin/index.txt | 4 ++-- docs/ref/forms/models.txt | 17 ++++++++++++++--- docs/topics/forms/modelforms.txt | 9 ++++++--- 3 files changed, 22 insertions(+), 8 deletions(-) (limited to 'docs') diff --git a/docs/ref/contrib/admin/index.txt b/docs/ref/contrib/admin/index.txt index b273255c71..ee04d77d32 100644 --- a/docs/ref/contrib/admin/index.txt +++ b/docs/ref/contrib/admin/index.txt @@ -1520,8 +1520,8 @@ The ``InlineModelAdmin`` class adds: .. attribute:: InlineModelAdmin.form The value for ``form`` defaults to ``ModelForm``. This is what is passed - through to ``inlineformset_factory`` when creating the formset for this - inline. + through to :func:`~django.forms.models.inlineformset_factory` when + creating the formset for this inline. .. attribute:: InlineModelAdmin.extra diff --git a/docs/ref/forms/models.txt b/docs/ref/forms/models.txt index 1f4a0d0c3d..c388f402e6 100644 --- a/docs/ref/forms/models.txt +++ b/docs/ref/forms/models.txt @@ -5,7 +5,7 @@ Model Form Functions .. module:: django.forms.models :synopsis: Django's functions for building model forms and formsets. -.. method:: modelform_factory(model, form=ModelForm, fields=None, exclude=None, formfield_callback=None, widgets=None) +.. function:: modelform_factory(model, form=ModelForm, fields=None, exclude=None, formfield_callback=None, widgets=None) Returns a :class:`~django.forms.ModelForm` class for the given ``model``. You can optionally pass a ``form`` argument to use as a starting point for @@ -25,16 +25,27 @@ Model Form Functions See :ref:`modelforms-factory` for example usage. -.. method:: modelformset_factory(model, form=ModelForm, formfield_callback=None, formset=BaseModelFormSet, extra=1, can_delete=False, can_order=False, max_num=None, fields=None, exclude=None) +.. function:: modelformset_factory(model, form=ModelForm, formfield_callback=None, formset=BaseModelFormSet, extra=1, can_delete=False, can_order=False, max_num=None, fields=None, exclude=None) Returns a ``FormSet`` class for the given ``model`` class. Arguments ``model``, ``form``, ``fields``, ``exclude``, and ``formfield_callback`` are all passed through to - :meth:`~django.forms.models.modelform_factory`. + :func:`~django.forms.models.modelform_factory`. Arguments ``formset``, ``extra``, ``max_num``, ``can_order``, and ``can_delete`` are passed through to ``formset_factory``. See :ref:`formsets` for details. See :ref:`model-formsets` for example usage. + +.. function:: inlineformset_factory(parent_model, model, form=ModelForm, formset=BaseInlineFormSet, fk_name=None, fields=None, exclude=None, extra=3, can_order=False, can_delete=True, max_num=None, formfield_callback=None) + + Returns an ``InlineFormSet`` using :func:`modelformset_factory` with + defaults of ``formset=BaseInlineFormSet``, ``can_delete=True``, and + ``extra=3``. + + If your model has more than one :class:`~django.db.models.ForeignKey` to + the ``parent_model``, you must specify a ``fk_name``. + + See :ref:`inline-formsets` for example usage. diff --git a/docs/topics/forms/modelforms.txt b/docs/topics/forms/modelforms.txt index 9a33d68cf7..c091e715bb 100644 --- a/docs/topics/forms/modelforms.txt +++ b/docs/topics/forms/modelforms.txt @@ -550,7 +550,7 @@ ModelForm factory function -------------------------- You can create forms from a given model using the standalone function -:class:`~django.forms.models.modelform_factory`, instead of using a class +:func:`~django.forms.models.modelform_factory`, instead of using a class definition. This may be more convenient if you do not have many customizations to make:: @@ -857,6 +857,8 @@ primary key that isn't called ``id``, make sure it gets rendered.) .. highlight:: python +.. _inline-formsets: + Inline formsets =============== @@ -881,7 +883,7 @@ a particular author, you could do this:: .. note:: - ``inlineformset_factory`` uses + :func:`~django.forms.models.inlineformset_factory` uses :func:`~django.forms.models.modelformset_factory` and marks ``can_delete=True``. @@ -901,7 +903,8 @@ the following model:: to_friend = models.ForeignKey(Friend) length_in_months = models.IntegerField() -To resolve this, you can use ``fk_name`` to ``inlineformset_factory``:: +To resolve this, you can use ``fk_name`` to +:func:`~django.forms.models.inlineformset_factory`:: >>> FriendshipFormSet = inlineformset_factory(Friend, Friendship, fk_name="from_friend") -- cgit v1.3 From 214fb700b9e0fb7268a2c8b87595b1b9fb090867 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 22 Jan 2013 16:13:57 -0500 Subject: Fixed #19477 - Documented generic_inlineformset_factory Thanks epicserve for the suggestion. --- django/contrib/contenttypes/generic.py | 2 +- docs/ref/contrib/contenttypes.txt | 31 +++++++++++++++++++++++-------- 2 files changed, 24 insertions(+), 9 deletions(-) (limited to 'docs') diff --git a/django/contrib/contenttypes/generic.py b/django/contrib/contenttypes/generic.py index be7a5e5a22..cda4d46fe8 100644 --- a/django/contrib/contenttypes/generic.py +++ b/django/contrib/contenttypes/generic.py @@ -429,7 +429,7 @@ def generic_inlineformset_factory(model, form=ModelForm, max_num=None, formfield_callback=None): """ - Returns an ``GenericInlineFormSet`` for the given kwargs. + Returns a ``GenericInlineFormSet`` for the given kwargs. You must provide ``ct_field`` and ``object_id`` if they different from the defaults ``content_type`` and ``object_id`` respectively. diff --git a/docs/ref/contrib/contenttypes.txt b/docs/ref/contrib/contenttypes.txt index e9cd5e7bc0..282e350a64 100644 --- a/docs/ref/contrib/contenttypes.txt +++ b/docs/ref/contrib/contenttypes.txt @@ -452,14 +452,18 @@ need to calculate them without using the aggregation API. Generic relations in forms and admin ------------------------------------ -The :mod:`django.contrib.contenttypes.generic` module provides -``BaseGenericInlineFormSet``, -:class:`~django.contrib.contenttypes.generic.GenericTabularInline` -and :class:`~django.contrib.contenttypes.generic.GenericStackedInline` -(the last two are subclasses of -:class:`~django.contrib.contenttypes.generic.GenericInlineModelAdmin`). -This enables the use of generic relations in forms and the admin. See the -:doc:`model formset ` and +The :mod:`django.contrib.contenttypes.generic` module provides: + +* ``BaseGenericInlineFormSet`` +* :class:`~django.contrib.contenttypes.generic.GenericTabularInline` + and :class:`~django.contrib.contenttypes.generic.GenericStackedInline` + (subclasses of + :class:`~django.contrib.contenttypes.generic.GenericInlineModelAdmin`) +* A formset factory, :func:`generic_inlineformset_factory`, for use with + :class:`GenericForeignKey` + +These classes and functions enable the use of generic relations in forms +and the admin. See the :doc:`model formset ` and :ref:`admin ` documentation for more information. @@ -486,3 +490,14 @@ information. Subclasses of :class:`GenericInlineModelAdmin` with stacked and tabular layouts, respectively. + +.. function:: generic_inlineformset_factory(model, form=ModelForm, formset=BaseGenericInlineFormSet, ct_field="content_type", fk_field="object_id", fields=None, exclude=None, extra=3, can_order=False, can_delete=True, max_num=None, formfield_callback=None) + + Returns a ``GenericInlineFormSet`` using + :func:`~django.forms.models.modelformset_factory`. + + You must provide ``ct_field`` and ``object_id`` if they different from the + defaults, ``content_type`` and ``object_id`` respectively. Other parameters + are similar to those documented in + :func:`~django.forms.models.modelformset_factory` and + :func:`~django.forms.models.inlineformset_factory`. -- cgit v1.3 From 0db86273ae1c31ee9881fe63f210cb2120fde18a Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 22 Jan 2013 16:15:52 -0500 Subject: Fixed #19633 - Discouraged use of gunicorn's Django integration. --- docs/howto/deployment/wsgi/gunicorn.txt | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'docs') diff --git a/docs/howto/deployment/wsgi/gunicorn.txt b/docs/howto/deployment/wsgi/gunicorn.txt index c4483291a3..14c80af0a0 100644 --- a/docs/howto/deployment/wsgi/gunicorn.txt +++ b/docs/howto/deployment/wsgi/gunicorn.txt @@ -48,6 +48,12 @@ ensure that is to run this command from the same directory as your Using Gunicorn's Django integration =================================== +.. note:: + + If you are using Django 1.4 or newer, it’s highly recommended to simply run + your application with the WSGI interface using the ``gunicorn`` command + as described above. + To use Gunicorn's built-in Django integration, first add ``"gunicorn"`` to :setting:`INSTALLED_APPS`. Then run ``python manage.py run_gunicorn``. -- cgit v1.3 From 0de2645c00c2330060c9889c71afd3a528ed7a3a Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Wed, 23 Jan 2013 04:42:34 -0500 Subject: Fixed #19610 - Added enctype note to forms topics doc. Thanks will@ for the suggestion. --- docs/ref/forms/api.txt | 2 ++ docs/topics/forms/index.txt | 8 ++++++++ 2 files changed, 10 insertions(+) (limited to 'docs') diff --git a/docs/ref/forms/api.txt b/docs/ref/forms/api.txt index 4aacbf0a0d..d1f877ff65 100644 --- a/docs/ref/forms/api.txt +++ b/docs/ref/forms/api.txt @@ -716,6 +716,8 @@ form data *and* file data:: Testing for multipart forms ~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. method:: Form.is_multipart + If you're writing reusable views or templates, you may not know ahead of time whether your form is a multipart form or not. The ``is_multipart()`` method tells you whether the form requires multipart encoding for submission:: diff --git a/docs/topics/forms/index.txt b/docs/topics/forms/index.txt index 9b5794a8f2..a3c17e1555 100644 --- a/docs/topics/forms/index.txt +++ b/docs/topics/forms/index.txt @@ -197,6 +197,14 @@ context variable ``form``. Here's a simple example template:: The form only outputs its own fields; it is up to you to provide the surrounding ``
`` tags and the submit button. +If your form includes uploaded files, be sure to include +``enctype="multipart/form-data"`` in the ``form`` element. If you wish to write +a generic template that will work whether or not the form has files, you can +use the :meth:`~django.forms.Form.is_multipart` attribute on the form:: + + + .. admonition:: Forms and Cross Site Request Forgery protection Django ships with an easy-to-use :doc:`protection against Cross Site Request -- cgit v1.3 From 71c8539570dec000ad24d1a11fa443812b56f876 Mon Sep 17 00:00:00 2001 From: Justin Bronn Date: Wed, 23 Jan 2013 12:36:48 -0800 Subject: Fixed typo. --- docs/topics/files.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/topics/files.txt b/docs/topics/files.txt index 66e104759a..94685f9bc7 100644 --- a/docs/topics/files.txt +++ b/docs/topics/files.txt @@ -93,7 +93,7 @@ The following approach may be used to close files automatically:: Closing files is especially important when accessing file fields in a loop over a large number of objects:: If files are not manually closed after accessing them, the risk of running out of file descriptors may arise. This -may lead to the following error: +may lead to the following error:: IOError: [Errno 24] Too many open files -- cgit v1.3 From 93e79b45bc5288d1ca0eb5b6eade30d3c7110b24 Mon Sep 17 00:00:00 2001 From: Nick Sandford Date: Wed, 23 Jan 2013 21:11:46 +0100 Subject: Fixed #17416 -- Added widgets argument to inlineformset_factory and modelformset_factory --- django/forms/models.py | 12 +++++++----- docs/ref/forms/models.txt | 16 ++++++++++++---- docs/topics/forms/modelforms.txt | 23 +++++++++++++++++++++++ tests/modeltests/model_formsets/tests.py | 24 ++++++++++++++++++++++++ 4 files changed, 66 insertions(+), 9 deletions(-) (limited to 'docs') diff --git a/django/forms/models.py b/django/forms/models.py index 74886d7ae0..03a14dc9ff 100644 --- a/django/forms/models.py +++ b/django/forms/models.py @@ -682,14 +682,15 @@ class BaseModelFormSet(BaseFormSet): super(BaseModelFormSet, self).add_fields(form, index) def modelformset_factory(model, form=ModelForm, formfield_callback=None, - formset=BaseModelFormSet, - extra=1, can_delete=False, can_order=False, - max_num=None, fields=None, exclude=None): + formset=BaseModelFormSet, extra=1, can_delete=False, + can_order=False, max_num=None, fields=None, + exclude=None, widgets=None): """ Returns a FormSet class for the given Django model class. """ form = modelform_factory(model, form=form, fields=fields, exclude=exclude, - formfield_callback=formfield_callback) + formfield_callback=formfield_callback, + widgets=widgets) FormSet = formset_factory(form, formset, extra=extra, max_num=max_num, can_order=can_order, can_delete=can_delete) FormSet.model = model @@ -827,7 +828,7 @@ def inlineformset_factory(parent_model, model, form=ModelForm, formset=BaseInlineFormSet, fk_name=None, fields=None, exclude=None, extra=3, can_order=False, can_delete=True, max_num=None, - formfield_callback=None): + formfield_callback=None, widgets=None): """ Returns an ``InlineFormSet`` for the given kwargs. @@ -848,6 +849,7 @@ def inlineformset_factory(parent_model, model, form=ModelForm, 'fields': fields, 'exclude': exclude, 'max_num': max_num, + 'widgets': widgets, } FormSet = modelformset_factory(model, **kwargs) FormSet.fk = fk diff --git a/docs/ref/forms/models.txt b/docs/ref/forms/models.txt index c388f402e6..f3382d32c7 100644 --- a/docs/ref/forms/models.txt +++ b/docs/ref/forms/models.txt @@ -25,12 +25,12 @@ Model Form Functions See :ref:`modelforms-factory` for example usage. -.. function:: modelformset_factory(model, form=ModelForm, formfield_callback=None, formset=BaseModelFormSet, extra=1, can_delete=False, can_order=False, max_num=None, fields=None, exclude=None) +.. function:: modelformset_factory(model, form=ModelForm, formfield_callback=None, formset=BaseModelFormSet, extra=1, can_delete=False, can_order=False, max_num=None, fields=None, exclude=None, widgets=None) Returns a ``FormSet`` class for the given ``model`` class. - Arguments ``model``, ``form``, ``fields``, ``exclude``, and - ``formfield_callback`` are all passed through to + Arguments ``model``, ``form``, ``fields``, ``exclude``, + ``formfield_callback`` and ``widgets`` are all passed through to :func:`~django.forms.models.modelform_factory`. Arguments ``formset``, ``extra``, ``max_num``, ``can_order``, and @@ -39,7 +39,11 @@ Model Form Functions See :ref:`model-formsets` for example usage. -.. function:: inlineformset_factory(parent_model, model, form=ModelForm, formset=BaseInlineFormSet, fk_name=None, fields=None, exclude=None, extra=3, can_order=False, can_delete=True, max_num=None, formfield_callback=None) + .. versionchanged:: 1.6 + + The widgets parameter was added. + +.. function:: inlineformset_factory(parent_model, model, form=ModelForm, formset=BaseInlineFormSet, fk_name=None, fields=None, exclude=None, extra=3, can_order=False, can_delete=True, max_num=None, formfield_callback=None, widgets=None) Returns an ``InlineFormSet`` using :func:`modelformset_factory` with defaults of ``formset=BaseInlineFormSet``, ``can_delete=True``, and @@ -49,3 +53,7 @@ Model Form Functions the ``parent_model``, you must specify a ``fk_name``. See :ref:`inline-formsets` for example usage. + + .. versionchanged:: 1.6 + + The widgets parameter was added. diff --git a/docs/topics/forms/modelforms.txt b/docs/topics/forms/modelforms.txt index c091e715bb..d9e00d86cf 100644 --- a/docs/topics/forms/modelforms.txt +++ b/docs/topics/forms/modelforms.txt @@ -650,6 +650,19 @@ exclude:: >>> AuthorFormSet = modelformset_factory(Author, exclude=('birth_date',)) +Specifying widgets to use in the form with ``widgets`` +------------------------------------------------------ + +.. versionadded:: 1.6 + +Using the ``widgets`` parameter, you can specify a dictionary of values to +customize the ``ModelForm``'s widget class for a particular field. This +works the same way as the ``widgets`` dictionary on the inner ``Meta`` +class of a ``ModelForm`` works:: + + >>> AuthorFormSet = modelformset_factory( + ... Author, widgets={'name': Textarea(attrs={'cols': 80, 'rows': 20}) + Providing initial values ------------------------ @@ -930,3 +943,13 @@ of a model. Here's how you can do that:: }) Notice how we pass ``instance`` in both the ``POST`` and ``GET`` cases. + +Specifying widgets to use in the inline form +-------------------------------------------- + +.. versionadded:: 1.6 + +``inlineformset_factory`` uses ``modelformset_factory`` and passes most +of its arguments to ``modelformset_factory``. This means you can use +the ``widgets`` parameter in much the same way as passing it to +``modelformset_factory``. See `Specifying widgets to use in the form with widgets`_ above. diff --git a/tests/modeltests/model_formsets/tests.py b/tests/modeltests/model_formsets/tests.py index e28560b237..a028e65143 100644 --- a/tests/modeltests/model_formsets/tests.py +++ b/tests/modeltests/model_formsets/tests.py @@ -1190,3 +1190,27 @@ class ModelFormsetTest(TestCase): self.assertFalse(formset.is_valid()) self.assertEqual(formset._non_form_errors, ['Please correct the duplicate data for subtitle which must be unique for the month in posted.']) + + +class TestModelFormsetWidgets(TestCase): + def test_modelformset_factory_widgets(self): + widgets = { + 'name': forms.TextInput(attrs={'class': 'poet'}) + } + PoetFormSet = modelformset_factory(Poet, widgets=widgets) + form = PoetFormSet.form() + self.assertHTMLEqual( + "%s" % form['name'], + '' + ) + + def test_inlineformset_factory_widgets(self): + widgets = { + 'title': forms.TextInput(attrs={'class': 'book'}) + } + BookFormSet = inlineformset_factory(Author, Book, widgets=widgets) + form = BookFormSet.form() + self.assertHTMLEqual( + "%s" % form['title'], + '' + ) -- cgit v1.3 From e2252bf9772bdcc699e4cb8ff1eb4672965bda29 Mon Sep 17 00:00:00 2001 From: Florian Apolloner Date: Thu, 24 Jan 2013 11:58:06 +0100 Subject: Fixed a typo. --- docs/ref/utils.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/ref/utils.txt b/docs/ref/utils.txt index de805173d7..20192ed006 100644 --- a/docs/ref/utils.txt +++ b/docs/ref/utils.txt @@ -529,7 +529,7 @@ escaping HTML. .. code-block:: python - format_html(u"%{0} {1} {2}", + format_html(u"{0} {1} {2}", mark_safe(some_html), some_text, some_other_text) This has the advantage that you don't need to apply :func:`escape` to each -- cgit v1.3 From eaa716a4130bb019204669d32389db8b399c0f71 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Thu, 24 Jan 2013 06:53:32 -0500 Subject: Fixed #19639 - Updated contributing to reflect model choices best practices. Thanks charettes. --- .../contributing/writing-code/coding-style.txt | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'docs') diff --git a/docs/internals/contributing/writing-code/coding-style.txt b/docs/internals/contributing/writing-code/coding-style.txt index 0d84cdac9a..21146600b4 100644 --- a/docs/internals/contributing/writing-code/coding-style.txt +++ b/docs/internals/contributing/writing-code/coding-style.txt @@ -136,14 +136,17 @@ Model style * ``def get_absolute_url()`` * Any custom methods -* If ``choices`` is defined for a given model field, define the choices as - a tuple of tuples, with an all-uppercase name, either near the top of - the model module or just above the model class. Example:: - - DIRECTION_CHOICES = ( - ('U', 'Up'), - ('D', 'Down'), - ) +* If ``choices`` is defined for a given model field, define each choice as + a tuple of tuples, with an all-uppercase name as a class attribute on the + model. Example:: + + class MyModel(models.Model): + DIRECTION_UP = 'U' + DIRECTION_DOWN = 'D' + DIRECTION_CHOICES = ( + (DIRECTION_UP, 'Up'), + (DIRECTION_DOWN, 'Down'), + ) Use of ``django.conf.settings`` ------------------------------- -- cgit v1.3 From 1f6b2e7a658594e6ae9507c5f98eb429d19c0c9d Mon Sep 17 00:00:00 2001 From: Ramiro Morales Date: Thu, 24 Jan 2013 21:21:26 -0300 Subject: Fixed #6682 -- Made shell's REPL actually execute $PYTHONSTARTUP and `~/.pythonrc.py`. Also: * Added a ``--no-startup`` option to disable this behavior. Previous logic to try to execute the code in charge of this funcionality was flawed (it only tried to do so if the user asked for ipython/bpython and they weren't found) * Expand ``~`` in PYTHONSTARTUP value. Thanks hekevintran at gmail dot com for the report and initial patch. Refs #3381. --- django/core/management/commands/shell.py | 24 +++++++++++++++--------- docs/ref/django-admin.txt | 12 ++++++++++++ 2 files changed, 27 insertions(+), 9 deletions(-) (limited to 'docs') diff --git a/django/core/management/commands/shell.py b/django/core/management/commands/shell.py index f883fb95d8..851d4e3cfb 100644 --- a/django/core/management/commands/shell.py +++ b/django/core/management/commands/shell.py @@ -9,6 +9,8 @@ class Command(NoArgsCommand): option_list = NoArgsCommand.option_list + ( make_option('--plain', action='store_true', dest='plain', help='Tells Django to use plain Python, not IPython or bpython.'), + make_option('--no-startup', action='store_true', dest='no_startup', + help='When using plain Python, ignore the PYTHONSTARTUP environment variable and ~/.pythonrc.py script.'), make_option('-i', '--interface', action='store', type='choice', choices=shells, dest='interface', help='Specify an interactive interpreter interface. Available options: "ipython" and "bpython"'), @@ -56,6 +58,7 @@ class Command(NoArgsCommand): get_models() use_plain = options.get('plain', False) + no_startup = options.get('no_startup', False) interface = options.get('interface', None) try: @@ -83,13 +86,16 @@ class Command(NoArgsCommand): # We want to honor both $PYTHONSTARTUP and .pythonrc.py, so follow system # conventions and get $PYTHONSTARTUP first then .pythonrc.py. - if not use_plain: - for pythonrc in (os.environ.get("PYTHONSTARTUP"), - os.path.expanduser('~/.pythonrc.py')): - if pythonrc and os.path.isfile(pythonrc): - try: - with open(pythonrc) as handle: - exec(compile(handle.read(), pythonrc, 'exec')) - except NameError: - pass + if not no_startup: + for pythonrc in (os.environ.get("PYTHONSTARTUP"), '~/.pythonrc.py'): + if not pythonrc: + continue + pythonrc = os.path.expanduser(pythonrc) + if not os.path.isfile(pythonrc): + continue + try: + with open(pythonrc) as handle: + exec(compile(handle.read(), pythonrc, 'exec'), imported_objects) + except NameError: + pass code.interact(local=imported_objects) diff --git a/docs/ref/django-admin.txt b/docs/ref/django-admin.txt index 06ec8e2031..8f6664edb7 100644 --- a/docs/ref/django-admin.txt +++ b/docs/ref/django-admin.txt @@ -779,6 +779,18 @@ bpython:: .. _IPython: http://ipython.scipy.org/ .. _bpython: http://bpython-interpreter.org/ +When the "plain" Python interactive interpreter starts (be it because +``--plain`` was specified or because no other interactive interface is +available) it reads the script pointed to by the :envvar:`PYTHONSTARTUP` +environment variable and the ``~/.pythonrc.py`` script. If you don't wish this +behavior you can use the ``--no-startup`` option. e.g.:: + + django-admin.py shell --plain --no-startup + +.. versionadded:: 1.6 + +The ``--no-startup`` option was added in Django 1.6. + sql ------------------------- -- cgit v1.3 From eafc0364764ba12babd76194d8e1f78b876471ec Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Fri, 25 Jan 2013 06:53:40 -0500 Subject: Fixed #19577 - Added HTML escaping to admin examples. Thanks foo@ for the report and Florian Apolloner for the review. --- django/utils/html.py | 4 ++-- docs/ref/contrib/admin/index.txt | 33 +++++++++++++++++++++++++++------ docs/ref/utils.txt | 13 +++++++++++++ 3 files changed, 42 insertions(+), 8 deletions(-) (limited to 'docs') diff --git a/django/utils/html.py b/django/utils/html.py index 25605bea04..ec7b28d330 100644 --- a/django/utils/html.py +++ b/django/utils/html.py @@ -87,8 +87,8 @@ def format_html(format_string, *args, **kwargs): def format_html_join(sep, format_string, args_generator): """ - A wrapper format_html, for the common case of a group of arguments that need - to be formatted using the same format string, and then joined using + A wrapper of format_html, for the common case of a group of arguments that + need to be formatted using the same format string, and then joined using 'sep'. 'sep' is also passed through conditional_escape. 'args_generator' should be an iterator that returns the sequence of 'args' diff --git a/docs/ref/contrib/admin/index.txt b/docs/ref/contrib/admin/index.txt index ee04d77d32..a862d55875 100644 --- a/docs/ref/contrib/admin/index.txt +++ b/docs/ref/contrib/admin/index.txt @@ -449,17 +449,25 @@ subclass:: * If the string given is a method of the model, ``ModelAdmin`` or a callable, Django will HTML-escape the output by default. If you'd rather not escape the output of the method, give the method an - ``allow_tags`` attribute whose value is ``True``. + ``allow_tags`` attribute whose value is ``True``. However, to avoid an + XSS vulnerability, you should use :func:`~django.utils.html.format_html` + to escape user-provided inputs. Here's a full example model:: + from django.utils.html import format_html + class Person(models.Model): first_name = models.CharField(max_length=50) last_name = models.CharField(max_length=50) color_code = models.CharField(max_length=6) def colored_name(self): - return '%s %s' % (self.color_code, self.first_name, self.last_name) + return format_html('{1} {2}', + self.color_code, + self.first_name, + self.last_name) + colored_name.allow_tags = True class PersonAdmin(admin.ModelAdmin): @@ -500,12 +508,17 @@ subclass:: For example:: + from django.utils.html import format_html + class Person(models.Model): first_name = models.CharField(max_length=50) color_code = models.CharField(max_length=6) def colored_first_name(self): - return '%s' % (self.color_code, self.first_name) + return format_html('{1}', + self.color_code, + self.first_name) + colored_first_name.allow_tags = True colored_first_name.admin_order_field = 'first_name' @@ -817,19 +830,27 @@ subclass:: the admin interface to provide feedback on the status of the objects being edited, for example:: + from django.utils.html import format_html_join + from django.utils.safestring import mark_safe + class PersonAdmin(ModelAdmin): readonly_fields = ('address_report',) def address_report(self, instance): - return ", ".join(instance.get_full_address()) or \ - "I can't determine this address." + # assuming get_full_address() returns a list of strings + # for each line of the address and you want to separate each + # line by a linebreak + return format_html_join( + mark_safe('
'), + '{0}', + ((line,) for line in instance.get_full_address()), + ) or "I can't determine this address." # short_description functions like a model field's verbose_name address_report.short_description = "Address" # in this example, we have used HTML tags in the output address_report.allow_tags = True - .. attribute:: ModelAdmin.save_as Set ``save_as`` to enable a "save as" feature on admin change forms. diff --git a/docs/ref/utils.txt b/docs/ref/utils.txt index 20192ed006..e9b29602ac 100644 --- a/docs/ref/utils.txt +++ b/docs/ref/utils.txt @@ -541,6 +541,19 @@ escaping HTML. through :func:`conditional_escape` which (ultimately) calls :func:`~django.utils.encoding.force_text` on the values. +.. function:: format_html_join(sep, format_string, args_generator) + + A wrapper of :func:`format_html`, for the common case of a group of + arguments that need to be formatted using the same format string, and then + joined using ``sep``. ``sep`` is also passed through + :func:`conditional_escape`. + + ``args_generator`` should be an iterator that returns the sequence of + ``args`` that will be passed to :func:`format_html`. For example:: + + format_html_join('\n', "
  • {0} {1}
  • ", ((u.first_name, u.last_name) + for u in users)) + .. function:: strip_tags(value) Removes anything that looks like an html tag from the string, that is -- cgit v1.3 From 2babab0bb351ff7a13fd23795f5e926a9bf95d22 Mon Sep 17 00:00:00 2001 From: Ramiro Morales Date: Fri, 25 Jan 2013 13:23:33 -0300 Subject: Patch by Claude for #16084. --- django/core/management/commands/makemessages.py | 139 ++++++++++++++------- docs/man/django-admin.1 | 3 +- docs/ref/django-admin.txt | 4 +- docs/topics/i18n/translation.txt | 17 +-- tests/regressiontests/i18n/commands/extraction.py | 44 +++++++ .../i18n/commands/project_dir/__init__.py | 3 + .../commands/project_dir/app_no_locale/models.py | 4 + .../commands/project_dir/app_with_locale/models.py | 4 + tests/regressiontests/i18n/tests.py | 2 +- 9 files changed, 152 insertions(+), 68 deletions(-) create mode 100644 tests/regressiontests/i18n/commands/project_dir/__init__.py create mode 100644 tests/regressiontests/i18n/commands/project_dir/app_no_locale/models.py create mode 100644 tests/regressiontests/i18n/commands/project_dir/app_with_locale/models.py (limited to 'docs') diff --git a/django/core/management/commands/makemessages.py b/django/core/management/commands/makemessages.py index 4550605af2..b086e5f2dd 100644 --- a/django/core/management/commands/makemessages.py +++ b/django/core/management/commands/makemessages.py @@ -19,25 +19,28 @@ STATUS_OK = 0 @total_ordering class TranslatableFile(object): - def __init__(self, dirpath, file_name): + def __init__(self, dirpath, file_name, locale_dir): self.file = file_name self.dirpath = dirpath + self.locale_dir = locale_dir def __repr__(self): return "" % os.sep.join([self.dirpath, self.file]) def __eq__(self, other): - return self.dirpath == other.dirpath and self.file == other.file + return self.path == other.path def __lt__(self, other): - if self.dirpath == other.dirpath: - return self.file < other.file - return self.dirpath < other.dirpath + return self.path < other.path - def process(self, command, potfile, domain, keep_pot=False): + @property + def path(self): + return os.path.join(self.dirpath, self.file) + + def process(self, command, domain): """ - Extract translatable literals from self.file for :param domain: - creating or updating the :param potfile: POT file. + Extract translatable literals from self.file for :param domain:, + creating or updating the POT file. Uses the xgettext GNU gettext utility. """ @@ -91,8 +94,6 @@ class TranslatableFile(object): if status != STATUS_OK: if is_templatized: os.unlink(work_file) - if not keep_pot and os.path.exists(potfile): - os.unlink(potfile) raise CommandError( "errors happened while running xgettext on %s\n%s" % (self.file, errors)) @@ -100,11 +101,14 @@ class TranslatableFile(object): # Print warnings command.stdout.write(errors) if msgs: + # Write/append messages to pot file + potfile = os.path.join(self.locale_dir, '%s.pot' % str(domain)) if is_templatized: old = '#: ' + work_file[2:] new = '#: ' + orig_file[2:] msgs = msgs.replace(old, new) write_pot_file(potfile, msgs) + if is_templatized: os.unlink(work_file) @@ -232,21 +236,21 @@ class Command(NoArgsCommand): settings.configure(USE_I18N = True) self.invoked_for_django = False + self.locale_paths = [] + self.default_locale_path = None if os.path.isdir(os.path.join('conf', 'locale')): - localedir = os.path.abspath(os.path.join('conf', 'locale')) + self.locale_paths = [os.path.abspath(os.path.join('conf', 'locale'))] + self.default_locale_path = self.locale_paths[0] self.invoked_for_django = True # Ignoring all contrib apps self.ignore_patterns += ['contrib/*'] - elif os.path.isdir('locale'): - localedir = os.path.abspath('locale') else: - raise CommandError("This script should be run from the Django Git " - "tree or your project or app tree. If you did indeed run it " - "from the Git checkout or your project or application, " - "maybe you are just missing the conf/locale (in the django " - "tree) or locale (for project and application) directory? It " - "is not created automatically, you have to create it by hand " - "if you want to enable i18n for your project or application.") + self.locale_paths.extend(list(settings.LOCALE_PATHS)) + # Allow to run makemessages inside an app dir + if os.path.isdir('locale'): + self.locale_paths.append(os.path.abspath('locale')) + if self.locale_paths: + self.default_locale_path = self.locale_paths[0] # We require gettext version 0.15 or newer. output, errors, status = _popen('xgettext --version') @@ -261,24 +265,25 @@ class Command(NoArgsCommand): "gettext 0.15 or newer. You are using version %s, please " "upgrade your gettext toolset." % match.group()) - potfile = self.build_pot_file(localedir) + try: + potfiles = self.build_potfiles() - # Build po files for each selected locale - locales = [] - if locale is not None: - locales += locale.split(',') if not isinstance(locale, list) else locale - elif process_all: - locale_dirs = filter(os.path.isdir, glob.glob('%s/*' % localedir)) - locales = [os.path.basename(l) for l in locale_dirs] + # Build po files for each selected locale + locales = [] + if locale is not None: + locales = locale.split(',') if not isinstance(locale, list) else locale + elif process_all: + locale_dirs = filter(os.path.isdir, glob.glob('%s/*' % self.default_locale_path)) + locales = [os.path.basename(l) for l in locale_dirs] - try: for locale in locales: if self.verbosity > 0: self.stdout.write("processing locale %s\n" % locale) - self.write_po_file(potfile, locale) + for potfile in potfiles: + self.write_po_file(potfile, locale) finally: - if not self.keep_pot and os.path.exists(potfile): - os.unlink(potfile) + if not self.keep_pot: + self.remove_potfiles() def build_pot_file(self, localedir): file_list = self.find_files(".") @@ -292,9 +297,41 @@ class Command(NoArgsCommand): f.process(self, potfile, self.domain, self.keep_pot) return potfile + def build_potfiles(self): + """Build pot files and apply msguniq to them""" + file_list = self.find_files(".") + self.remove_potfiles() + for f in file_list: + f.process(self, self.domain) + + potfiles = [] + for path in self.locale_paths: + potfile = os.path.join(path, '%s.pot' % str(self.domain)) + if not os.path.exists(potfile): + continue + msgs, errors, status = _popen('msguniq %s %s --to-code=utf-8 "%s"' % + (self.wrap, self.location, potfile)) + if errors: + if status != STATUS_OK: + raise CommandError( + "errors happened while running msguniq\n%s" % errors) + elif self.verbosity > 0: + self.stdout.write(errors) + with open(potfile, 'w') as fp: + fp.write(msgs) + potfiles.append(potfile) + return potfiles + + def remove_potfiles(self): + for path in self.locale_paths: + pot_path = os.path.join(path, '%s.pot' % str(self.domain)) + if os.path.exists(pot_path): + os.unlink(pot_path) + def find_files(self, root): """ - Helper method to get all files in the given root. + Helper function to get all files in the given root. Also check that there + is a matching locale dir for each file. """ def is_ignored(path, ignore_patterns): @@ -315,12 +352,26 @@ class Command(NoArgsCommand): dirnames.remove(dirname) if self.verbosity > 1: self.stdout.write('ignoring directory %s\n' % dirname) + elif dirname == 'locale': + dirnames.remove(dirname) + self.locale_paths.insert(0, os.path.join(os.path.abspath(dirpath), dirname)) for filename in filenames: - if is_ignored(os.path.normpath(os.path.join(dirpath, filename)), self.ignore_patterns): + file_path = os.path.normpath(os.path.join(dirpath, filename)) + if is_ignored(file_path, self.ignore_patterns): if self.verbosity > 1: self.stdout.write('ignoring file %s in %s\n' % (filename, dirpath)) else: - all_files.append(TranslatableFile(dirpath, filename)) + locale_dir = None + for path in self.locale_paths: + if os.path.abspath(dirpath).startswith(os.path.dirname(path)): + locale_dir = path + break + if not locale_dir: + locale_dir = self.default_locale_path + if not locale_dir: + raise CommandError( + "Unable to find a locale path to store translations for file %s" % file_path) + all_files.append(TranslatableFile(dirpath, filename, locale_dir)) return sorted(all_files) def write_po_file(self, potfile, locale): @@ -328,16 +379,8 @@ class Command(NoArgsCommand): Creates or updates the PO file for self.domain and :param locale:. Uses contents of the existing :param potfile:. - Uses mguniq, msgmerge, and msgattrib GNU gettext utilities. + Uses msgmerge, and msgattrib GNU gettext utilities. """ - msgs, errors, status = _popen('msguniq %s %s --to-code=utf-8 "%s"' % - (self.wrap, self.location, potfile)) - if errors: - if status != STATUS_OK: - raise CommandError( - "errors happened while running msguniq\n%s" % errors) - elif self.verbosity > 0: - self.stdout.write(errors) basedir = os.path.join(os.path.dirname(potfile), locale, 'LC_MESSAGES') if not os.path.isdir(basedir): @@ -345,8 +388,6 @@ class Command(NoArgsCommand): pofile = os.path.join(basedir, '%s.po' % str(self.domain)) if os.path.exists(pofile): - with open(potfile, 'w') as fp: - fp.write(msgs) msgs, errors, status = _popen('msgmerge %s %s -q "%s" "%s"' % (self.wrap, self.location, pofile, potfile)) if errors: @@ -355,8 +396,10 @@ class Command(NoArgsCommand): "errors happened while running msgmerge\n%s" % errors) elif self.verbosity > 0: self.stdout.write(errors) - elif not self.invoked_for_django: - msgs = self.copy_plural_forms(msgs, locale) + else: + msgs = open(potfile, 'r').read() + if not self.invoked_for_django: + msgs = self.copy_plural_forms(msgs, locale) msgs = msgs.replace( "#. #-#-#-#-# %s.pot (PACKAGE VERSION) #-#-#-#-#\n" % self.domain, "") with open(pofile, 'w') as fp: diff --git a/docs/man/django-admin.1 b/docs/man/django-admin.1 index 4d937b488b..c9c8d19869 100644 --- a/docs/man/django-admin.1 +++ b/docs/man/django-admin.1 @@ -193,7 +193,8 @@ Ignore files or directories matching this glob-style pattern. Use multiple times to ignore more (makemessages command). .TP .I \-\-no\-default\-ignore -Don't ignore the common private glob-style patterns 'CVS', '.*' and '*~' (makemessages command). +Don't ignore the common private glob-style patterns 'CVS', '.*', '*~' and '*.pyc' +(makemessages command). .TP .I \-\-no\-wrap Don't break long message lines into several lines (makemessages command). diff --git a/docs/ref/django-admin.txt b/docs/ref/django-admin.txt index 8f6664edb7..f7b91bbdab 100644 --- a/docs/ref/django-admin.txt +++ b/docs/ref/django-admin.txt @@ -472,7 +472,7 @@ Example usage:: Use the ``--ignore`` or ``-i`` option to ignore files or directories matching the given :mod:`glob`-style pattern. Use multiple times to ignore more. -These patterns are used by default: ``'CVS'``, ``'.*'``, ``'*~'`` +These patterns are used by default: ``'CVS'``, ``'.*'``, ``'*~'``, ``'*.pyc'`` Example usage:: @@ -499,7 +499,7 @@ for technically skilled translators to understand each message's context. .. versionadded:: 1.6 Use the ``--keep-pot`` option to prevent django from deleting the temporary -.pot file it generates before creating the .po file. This is useful for +.pot files it generates before creating the .po file. This is useful for debugging errors which may prevent the final language files from being created. runfcgi [options] diff --git a/docs/topics/i18n/translation.txt b/docs/topics/i18n/translation.txt index 01f168bc10..8ef51e4052 100644 --- a/docs/topics/i18n/translation.txt +++ b/docs/topics/i18n/translation.txt @@ -1543,24 +1543,9 @@ All message file repositories are structured the same way. They are: * ``$PYTHONPATH/django/conf/locale//LC_MESSAGES/django.(po|mo)`` To create message files, you use the :djadmin:`django-admin.py makemessages ` -tool. You only need to be in the same directory where the ``locale/`` directory -is located. And you use :djadmin:`django-admin.py compilemessages ` +tool. And you use :djadmin:`django-admin.py compilemessages ` to produce the binary ``.mo`` files that are used by ``gettext``. You can also run :djadmin:`django-admin.py compilemessages --settings=path.to.settings ` to make the compiler process all the directories in your :setting:`LOCALE_PATHS` setting. - -Finally, you should give some thought to the structure of your translation -files. If your applications need to be delivered to other users and will be used -in other projects, you might want to use app-specific translations. But using -app-specific translations and project-specific translations could produce weird -problems with :djadmin:`makemessages`: it will traverse all directories below -the current path and so might put message IDs into a unified, common message -file for the current project that are already in application message files. - -The easiest way out is to store applications that are not part of the project -(and so carry their own translations) outside the project tree. That way, -:djadmin:`django-admin.py makemessages `, when ran on a project -level will only extract strings that are connected to your explicit project and -not strings that are distributed independently. diff --git a/tests/regressiontests/i18n/commands/extraction.py b/tests/regressiontests/i18n/commands/extraction.py index ef711ec1bb..8b2941c4d4 100644 --- a/tests/regressiontests/i18n/commands/extraction.py +++ b/tests/regressiontests/i18n/commands/extraction.py @@ -5,10 +5,13 @@ import os import re import shutil +from django.conf import settings from django.core import management from django.test import SimpleTestCase +from django.test.utils import override_settings from django.utils.encoding import force_text from django.utils._os import upath +from django.utils import six from django.utils.six import StringIO @@ -352,3 +355,44 @@ class MultipleLocaleExtractionTests(ExtractorTests): management.call_command('makemessages', locale='pt,de,ch', verbosity=0) self.assertTrue(os.path.exists(self.PO_FILE_PT)) self.assertTrue(os.path.exists(self.PO_FILE_DE)) + + +class CustomLayoutExtractionTests(ExtractorTests): + def setUp(self): + self._cwd = os.getcwd() + self.test_dir = os.path.join(os.path.dirname(upath(__file__)), 'project_dir') + + def test_no_locale_raises(self): + os.chdir(self.test_dir) + with six.assertRaisesRegex(self, management.CommandError, + "Unable to find a locale path to store translations for file"): + management.call_command('makemessages', locale=LOCALE, verbosity=0) + + @override_settings( + LOCALE_PATHS=(os.path.join(os.path.dirname(upath(__file__)), 'project_dir/project_locale'),) + ) + def test_project_locale_paths(self): + """ + Test that: + * translations for app containing locale folder are stored in that folder + * translations outside of that app are in LOCALE_PATHS[0] + """ + os.chdir(self.test_dir) + self.addCleanup(shutil.rmtree, os.path.join(settings.LOCALE_PATHS[0], LOCALE)) + self.addCleanup(shutil.rmtree, os.path.join(self.test_dir, 'app_with_locale/locale', LOCALE)) + + management.call_command('makemessages', locale=LOCALE, verbosity=0) + project_de_locale = os.path.join( + self.test_dir, 'project_locale/de/LC_MESSAGES/django.po',) + app_de_locale = os.path.join( + self.test_dir, 'app_with_locale/locale/de/LC_MESSAGES/django.po',) + self.assertTrue(os.path.exists(project_de_locale)) + self.assertTrue(os.path.exists(app_de_locale)) + + with open(project_de_locale, 'r') as fp: + po_contents = force_text(fp.read()) + self.assertMsgId('This app has no locale directory', po_contents) + self.assertMsgId('This is a project-level string', po_contents) + with open(app_de_locale, 'r') as fp: + po_contents = force_text(fp.read()) + self.assertMsgId('This app has a locale directory', po_contents) diff --git a/tests/regressiontests/i18n/commands/project_dir/__init__.py b/tests/regressiontests/i18n/commands/project_dir/__init__.py new file mode 100644 index 0000000000..9c6768e4ab --- /dev/null +++ b/tests/regressiontests/i18n/commands/project_dir/__init__.py @@ -0,0 +1,3 @@ +from django.utils.translation import ugettext as _ + +string = _("This is a project-level string") diff --git a/tests/regressiontests/i18n/commands/project_dir/app_no_locale/models.py b/tests/regressiontests/i18n/commands/project_dir/app_no_locale/models.py new file mode 100644 index 0000000000..adcb2ef173 --- /dev/null +++ b/tests/regressiontests/i18n/commands/project_dir/app_no_locale/models.py @@ -0,0 +1,4 @@ +from django.utils.translation import ugettext as _ + +string = _("This app has no locale directory") + diff --git a/tests/regressiontests/i18n/commands/project_dir/app_with_locale/models.py b/tests/regressiontests/i18n/commands/project_dir/app_with_locale/models.py new file mode 100644 index 0000000000..44037157a0 --- /dev/null +++ b/tests/regressiontests/i18n/commands/project_dir/app_with_locale/models.py @@ -0,0 +1,4 @@ +from django.utils.translation import ugettext as _ + +string = _("This app has a locale directory") + diff --git a/tests/regressiontests/i18n/tests.py b/tests/regressiontests/i18n/tests.py index d9843c228a..9f6e73dcd2 100644 --- a/tests/regressiontests/i18n/tests.py +++ b/tests/regressiontests/i18n/tests.py @@ -33,7 +33,7 @@ if can_run_extraction_tests: JavascriptExtractorTests, IgnoredExtractorTests, SymlinkExtractorTests, CopyPluralFormsExtractorTests, NoWrapExtractorTests, NoLocationExtractorTests, KeepPotFileExtractorTests, - MultipleLocaleExtractionTests) + MultipleLocaleExtractionTests, CustomLayoutExtractionTests) if can_run_compilation_tests: from .commands.compilation import (PoFileTests, PoFileContentsTests, PercentRenderingTests, MultipleLocaleCompilationTests) -- cgit v1.3 From 5b99d5a330fc412ce56b9e5f9cf0b971654da90c Mon Sep 17 00:00:00 2001 From: Ramiro Morales Date: Fri, 25 Jan 2013 13:50:37 -0300 Subject: Added more shortcuts to i18n docs in index page. --- docs/index.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/index.txt b/docs/index.txt index d047abafd4..73b378de4d 100644 --- a/docs/index.txt +++ b/docs/index.txt @@ -221,8 +221,11 @@ Django offers a robust internationalization and localization framework to assist you in the development of applications for multiple languages and world regions: -* :doc:`Internationalization ` +* :doc:`Overview ` | + :doc:`Internationalization ` | + :ref:`Localization ` * :doc:`"Local flavor" ` +* :doc:`Time zones ` Python compatibility ==================== -- cgit v1.3 From ce27fb198dcce5dad47de83fc81119d3bb6567ce Mon Sep 17 00:00:00 2001 From: Ramiro Morales Date: Fri, 25 Jan 2013 13:58:37 -0300 Subject: Revert "Patch by Claude for #16084." This reverts commit 2babab0bb351ff7a13fd23795f5e926a9bf95d22. --- django/core/management/commands/makemessages.py | 139 +++++++-------------- docs/man/django-admin.1 | 3 +- docs/ref/django-admin.txt | 4 +- docs/topics/i18n/translation.txt | 17 ++- tests/regressiontests/i18n/commands/extraction.py | 44 ------- .../i18n/commands/project_dir/__init__.py | 3 - .../commands/project_dir/app_no_locale/models.py | 4 - .../commands/project_dir/app_with_locale/models.py | 4 - tests/regressiontests/i18n/tests.py | 2 +- 9 files changed, 68 insertions(+), 152 deletions(-) delete mode 100644 tests/regressiontests/i18n/commands/project_dir/__init__.py delete mode 100644 tests/regressiontests/i18n/commands/project_dir/app_no_locale/models.py delete mode 100644 tests/regressiontests/i18n/commands/project_dir/app_with_locale/models.py (limited to 'docs') diff --git a/django/core/management/commands/makemessages.py b/django/core/management/commands/makemessages.py index b086e5f2dd..4550605af2 100644 --- a/django/core/management/commands/makemessages.py +++ b/django/core/management/commands/makemessages.py @@ -19,28 +19,25 @@ STATUS_OK = 0 @total_ordering class TranslatableFile(object): - def __init__(self, dirpath, file_name, locale_dir): + def __init__(self, dirpath, file_name): self.file = file_name self.dirpath = dirpath - self.locale_dir = locale_dir def __repr__(self): return "" % os.sep.join([self.dirpath, self.file]) def __eq__(self, other): - return self.path == other.path + return self.dirpath == other.dirpath and self.file == other.file def __lt__(self, other): - return self.path < other.path + if self.dirpath == other.dirpath: + return self.file < other.file + return self.dirpath < other.dirpath - @property - def path(self): - return os.path.join(self.dirpath, self.file) - - def process(self, command, domain): + def process(self, command, potfile, domain, keep_pot=False): """ - Extract translatable literals from self.file for :param domain:, - creating or updating the POT file. + Extract translatable literals from self.file for :param domain: + creating or updating the :param potfile: POT file. Uses the xgettext GNU gettext utility. """ @@ -94,6 +91,8 @@ class TranslatableFile(object): if status != STATUS_OK: if is_templatized: os.unlink(work_file) + if not keep_pot and os.path.exists(potfile): + os.unlink(potfile) raise CommandError( "errors happened while running xgettext on %s\n%s" % (self.file, errors)) @@ -101,14 +100,11 @@ class TranslatableFile(object): # Print warnings command.stdout.write(errors) if msgs: - # Write/append messages to pot file - potfile = os.path.join(self.locale_dir, '%s.pot' % str(domain)) if is_templatized: old = '#: ' + work_file[2:] new = '#: ' + orig_file[2:] msgs = msgs.replace(old, new) write_pot_file(potfile, msgs) - if is_templatized: os.unlink(work_file) @@ -236,21 +232,21 @@ class Command(NoArgsCommand): settings.configure(USE_I18N = True) self.invoked_for_django = False - self.locale_paths = [] - self.default_locale_path = None if os.path.isdir(os.path.join('conf', 'locale')): - self.locale_paths = [os.path.abspath(os.path.join('conf', 'locale'))] - self.default_locale_path = self.locale_paths[0] + localedir = os.path.abspath(os.path.join('conf', 'locale')) self.invoked_for_django = True # Ignoring all contrib apps self.ignore_patterns += ['contrib/*'] + elif os.path.isdir('locale'): + localedir = os.path.abspath('locale') else: - self.locale_paths.extend(list(settings.LOCALE_PATHS)) - # Allow to run makemessages inside an app dir - if os.path.isdir('locale'): - self.locale_paths.append(os.path.abspath('locale')) - if self.locale_paths: - self.default_locale_path = self.locale_paths[0] + raise CommandError("This script should be run from the Django Git " + "tree or your project or app tree. If you did indeed run it " + "from the Git checkout or your project or application, " + "maybe you are just missing the conf/locale (in the django " + "tree) or locale (for project and application) directory? It " + "is not created automatically, you have to create it by hand " + "if you want to enable i18n for your project or application.") # We require gettext version 0.15 or newer. output, errors, status = _popen('xgettext --version') @@ -265,25 +261,24 @@ class Command(NoArgsCommand): "gettext 0.15 or newer. You are using version %s, please " "upgrade your gettext toolset." % match.group()) - try: - potfiles = self.build_potfiles() + potfile = self.build_pot_file(localedir) - # Build po files for each selected locale - locales = [] - if locale is not None: - locales = locale.split(',') if not isinstance(locale, list) else locale - elif process_all: - locale_dirs = filter(os.path.isdir, glob.glob('%s/*' % self.default_locale_path)) - locales = [os.path.basename(l) for l in locale_dirs] + # Build po files for each selected locale + locales = [] + if locale is not None: + locales += locale.split(',') if not isinstance(locale, list) else locale + elif process_all: + locale_dirs = filter(os.path.isdir, glob.glob('%s/*' % localedir)) + locales = [os.path.basename(l) for l in locale_dirs] + try: for locale in locales: if self.verbosity > 0: self.stdout.write("processing locale %s\n" % locale) - for potfile in potfiles: - self.write_po_file(potfile, locale) + self.write_po_file(potfile, locale) finally: - if not self.keep_pot: - self.remove_potfiles() + if not self.keep_pot and os.path.exists(potfile): + os.unlink(potfile) def build_pot_file(self, localedir): file_list = self.find_files(".") @@ -297,41 +292,9 @@ class Command(NoArgsCommand): f.process(self, potfile, self.domain, self.keep_pot) return potfile - def build_potfiles(self): - """Build pot files and apply msguniq to them""" - file_list = self.find_files(".") - self.remove_potfiles() - for f in file_list: - f.process(self, self.domain) - - potfiles = [] - for path in self.locale_paths: - potfile = os.path.join(path, '%s.pot' % str(self.domain)) - if not os.path.exists(potfile): - continue - msgs, errors, status = _popen('msguniq %s %s --to-code=utf-8 "%s"' % - (self.wrap, self.location, potfile)) - if errors: - if status != STATUS_OK: - raise CommandError( - "errors happened while running msguniq\n%s" % errors) - elif self.verbosity > 0: - self.stdout.write(errors) - with open(potfile, 'w') as fp: - fp.write(msgs) - potfiles.append(potfile) - return potfiles - - def remove_potfiles(self): - for path in self.locale_paths: - pot_path = os.path.join(path, '%s.pot' % str(self.domain)) - if os.path.exists(pot_path): - os.unlink(pot_path) - def find_files(self, root): """ - Helper function to get all files in the given root. Also check that there - is a matching locale dir for each file. + Helper method to get all files in the given root. """ def is_ignored(path, ignore_patterns): @@ -352,26 +315,12 @@ class Command(NoArgsCommand): dirnames.remove(dirname) if self.verbosity > 1: self.stdout.write('ignoring directory %s\n' % dirname) - elif dirname == 'locale': - dirnames.remove(dirname) - self.locale_paths.insert(0, os.path.join(os.path.abspath(dirpath), dirname)) for filename in filenames: - file_path = os.path.normpath(os.path.join(dirpath, filename)) - if is_ignored(file_path, self.ignore_patterns): + if is_ignored(os.path.normpath(os.path.join(dirpath, filename)), self.ignore_patterns): if self.verbosity > 1: self.stdout.write('ignoring file %s in %s\n' % (filename, dirpath)) else: - locale_dir = None - for path in self.locale_paths: - if os.path.abspath(dirpath).startswith(os.path.dirname(path)): - locale_dir = path - break - if not locale_dir: - locale_dir = self.default_locale_path - if not locale_dir: - raise CommandError( - "Unable to find a locale path to store translations for file %s" % file_path) - all_files.append(TranslatableFile(dirpath, filename, locale_dir)) + all_files.append(TranslatableFile(dirpath, filename)) return sorted(all_files) def write_po_file(self, potfile, locale): @@ -379,8 +328,16 @@ class Command(NoArgsCommand): Creates or updates the PO file for self.domain and :param locale:. Uses contents of the existing :param potfile:. - Uses msgmerge, and msgattrib GNU gettext utilities. + Uses mguniq, msgmerge, and msgattrib GNU gettext utilities. """ + msgs, errors, status = _popen('msguniq %s %s --to-code=utf-8 "%s"' % + (self.wrap, self.location, potfile)) + if errors: + if status != STATUS_OK: + raise CommandError( + "errors happened while running msguniq\n%s" % errors) + elif self.verbosity > 0: + self.stdout.write(errors) basedir = os.path.join(os.path.dirname(potfile), locale, 'LC_MESSAGES') if not os.path.isdir(basedir): @@ -388,6 +345,8 @@ class Command(NoArgsCommand): pofile = os.path.join(basedir, '%s.po' % str(self.domain)) if os.path.exists(pofile): + with open(potfile, 'w') as fp: + fp.write(msgs) msgs, errors, status = _popen('msgmerge %s %s -q "%s" "%s"' % (self.wrap, self.location, pofile, potfile)) if errors: @@ -396,10 +355,8 @@ class Command(NoArgsCommand): "errors happened while running msgmerge\n%s" % errors) elif self.verbosity > 0: self.stdout.write(errors) - else: - msgs = open(potfile, 'r').read() - if not self.invoked_for_django: - msgs = self.copy_plural_forms(msgs, locale) + elif not self.invoked_for_django: + msgs = self.copy_plural_forms(msgs, locale) msgs = msgs.replace( "#. #-#-#-#-# %s.pot (PACKAGE VERSION) #-#-#-#-#\n" % self.domain, "") with open(pofile, 'w') as fp: diff --git a/docs/man/django-admin.1 b/docs/man/django-admin.1 index c9c8d19869..4d937b488b 100644 --- a/docs/man/django-admin.1 +++ b/docs/man/django-admin.1 @@ -193,8 +193,7 @@ Ignore files or directories matching this glob-style pattern. Use multiple times to ignore more (makemessages command). .TP .I \-\-no\-default\-ignore -Don't ignore the common private glob-style patterns 'CVS', '.*', '*~' and '*.pyc' -(makemessages command). +Don't ignore the common private glob-style patterns 'CVS', '.*' and '*~' (makemessages command). .TP .I \-\-no\-wrap Don't break long message lines into several lines (makemessages command). diff --git a/docs/ref/django-admin.txt b/docs/ref/django-admin.txt index f7b91bbdab..8f6664edb7 100644 --- a/docs/ref/django-admin.txt +++ b/docs/ref/django-admin.txt @@ -472,7 +472,7 @@ Example usage:: Use the ``--ignore`` or ``-i`` option to ignore files or directories matching the given :mod:`glob`-style pattern. Use multiple times to ignore more. -These patterns are used by default: ``'CVS'``, ``'.*'``, ``'*~'``, ``'*.pyc'`` +These patterns are used by default: ``'CVS'``, ``'.*'``, ``'*~'`` Example usage:: @@ -499,7 +499,7 @@ for technically skilled translators to understand each message's context. .. versionadded:: 1.6 Use the ``--keep-pot`` option to prevent django from deleting the temporary -.pot files it generates before creating the .po file. This is useful for +.pot file it generates before creating the .po file. This is useful for debugging errors which may prevent the final language files from being created. runfcgi [options] diff --git a/docs/topics/i18n/translation.txt b/docs/topics/i18n/translation.txt index 8ef51e4052..01f168bc10 100644 --- a/docs/topics/i18n/translation.txt +++ b/docs/topics/i18n/translation.txt @@ -1543,9 +1543,24 @@ All message file repositories are structured the same way. They are: * ``$PYTHONPATH/django/conf/locale//LC_MESSAGES/django.(po|mo)`` To create message files, you use the :djadmin:`django-admin.py makemessages ` -tool. And you use :djadmin:`django-admin.py compilemessages ` +tool. You only need to be in the same directory where the ``locale/`` directory +is located. And you use :djadmin:`django-admin.py compilemessages ` to produce the binary ``.mo`` files that are used by ``gettext``. You can also run :djadmin:`django-admin.py compilemessages --settings=path.to.settings ` to make the compiler process all the directories in your :setting:`LOCALE_PATHS` setting. + +Finally, you should give some thought to the structure of your translation +files. If your applications need to be delivered to other users and will be used +in other projects, you might want to use app-specific translations. But using +app-specific translations and project-specific translations could produce weird +problems with :djadmin:`makemessages`: it will traverse all directories below +the current path and so might put message IDs into a unified, common message +file for the current project that are already in application message files. + +The easiest way out is to store applications that are not part of the project +(and so carry their own translations) outside the project tree. That way, +:djadmin:`django-admin.py makemessages `, when ran on a project +level will only extract strings that are connected to your explicit project and +not strings that are distributed independently. diff --git a/tests/regressiontests/i18n/commands/extraction.py b/tests/regressiontests/i18n/commands/extraction.py index 8b2941c4d4..ef711ec1bb 100644 --- a/tests/regressiontests/i18n/commands/extraction.py +++ b/tests/regressiontests/i18n/commands/extraction.py @@ -5,13 +5,10 @@ import os import re import shutil -from django.conf import settings from django.core import management from django.test import SimpleTestCase -from django.test.utils import override_settings from django.utils.encoding import force_text from django.utils._os import upath -from django.utils import six from django.utils.six import StringIO @@ -355,44 +352,3 @@ class MultipleLocaleExtractionTests(ExtractorTests): management.call_command('makemessages', locale='pt,de,ch', verbosity=0) self.assertTrue(os.path.exists(self.PO_FILE_PT)) self.assertTrue(os.path.exists(self.PO_FILE_DE)) - - -class CustomLayoutExtractionTests(ExtractorTests): - def setUp(self): - self._cwd = os.getcwd() - self.test_dir = os.path.join(os.path.dirname(upath(__file__)), 'project_dir') - - def test_no_locale_raises(self): - os.chdir(self.test_dir) - with six.assertRaisesRegex(self, management.CommandError, - "Unable to find a locale path to store translations for file"): - management.call_command('makemessages', locale=LOCALE, verbosity=0) - - @override_settings( - LOCALE_PATHS=(os.path.join(os.path.dirname(upath(__file__)), 'project_dir/project_locale'),) - ) - def test_project_locale_paths(self): - """ - Test that: - * translations for app containing locale folder are stored in that folder - * translations outside of that app are in LOCALE_PATHS[0] - """ - os.chdir(self.test_dir) - self.addCleanup(shutil.rmtree, os.path.join(settings.LOCALE_PATHS[0], LOCALE)) - self.addCleanup(shutil.rmtree, os.path.join(self.test_dir, 'app_with_locale/locale', LOCALE)) - - management.call_command('makemessages', locale=LOCALE, verbosity=0) - project_de_locale = os.path.join( - self.test_dir, 'project_locale/de/LC_MESSAGES/django.po',) - app_de_locale = os.path.join( - self.test_dir, 'app_with_locale/locale/de/LC_MESSAGES/django.po',) - self.assertTrue(os.path.exists(project_de_locale)) - self.assertTrue(os.path.exists(app_de_locale)) - - with open(project_de_locale, 'r') as fp: - po_contents = force_text(fp.read()) - self.assertMsgId('This app has no locale directory', po_contents) - self.assertMsgId('This is a project-level string', po_contents) - with open(app_de_locale, 'r') as fp: - po_contents = force_text(fp.read()) - self.assertMsgId('This app has a locale directory', po_contents) diff --git a/tests/regressiontests/i18n/commands/project_dir/__init__.py b/tests/regressiontests/i18n/commands/project_dir/__init__.py deleted file mode 100644 index 9c6768e4ab..0000000000 --- a/tests/regressiontests/i18n/commands/project_dir/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.utils.translation import ugettext as _ - -string = _("This is a project-level string") diff --git a/tests/regressiontests/i18n/commands/project_dir/app_no_locale/models.py b/tests/regressiontests/i18n/commands/project_dir/app_no_locale/models.py deleted file mode 100644 index adcb2ef173..0000000000 --- a/tests/regressiontests/i18n/commands/project_dir/app_no_locale/models.py +++ /dev/null @@ -1,4 +0,0 @@ -from django.utils.translation import ugettext as _ - -string = _("This app has no locale directory") - diff --git a/tests/regressiontests/i18n/commands/project_dir/app_with_locale/models.py b/tests/regressiontests/i18n/commands/project_dir/app_with_locale/models.py deleted file mode 100644 index 44037157a0..0000000000 --- a/tests/regressiontests/i18n/commands/project_dir/app_with_locale/models.py +++ /dev/null @@ -1,4 +0,0 @@ -from django.utils.translation import ugettext as _ - -string = _("This app has a locale directory") - diff --git a/tests/regressiontests/i18n/tests.py b/tests/regressiontests/i18n/tests.py index 9f6e73dcd2..d9843c228a 100644 --- a/tests/regressiontests/i18n/tests.py +++ b/tests/regressiontests/i18n/tests.py @@ -33,7 +33,7 @@ if can_run_extraction_tests: JavascriptExtractorTests, IgnoredExtractorTests, SymlinkExtractorTests, CopyPluralFormsExtractorTests, NoWrapExtractorTests, NoLocationExtractorTests, KeepPotFileExtractorTests, - MultipleLocaleExtractionTests, CustomLayoutExtractionTests) + MultipleLocaleExtractionTests) if can_run_compilation_tests: from .commands.compilation import (PoFileTests, PoFileContentsTests, PercentRenderingTests, MultipleLocaleCompilationTests) -- cgit v1.3 From ebb504db692cac496f4f45762d1d14644c9fa6fa Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Fri, 25 Jan 2013 20:50:46 +0100 Subject: Moved has_changed logic from widget to form field Refs #16612. Thanks Aymeric Augustin for the suggestion. --- django/contrib/admin/widgets.py | 14 ---- django/contrib/gis/admin/widgets.py | 24 +------ django/contrib/gis/forms/fields.py | 26 +++++++- django/contrib/gis/tests/geoadmin/tests.py | 2 +- django/forms/extras/widgets.py | 8 --- django/forms/fields.py | 77 ++++++++++++++++++++++ django/forms/forms.py | 8 ++- django/forms/models.py | 9 ++- django/forms/widgets.py | 92 -------------------------- docs/releases/1.6.txt | 6 ++ tests/regressiontests/admin_widgets/tests.py | 7 -- tests/regressiontests/forms/tests/extra.py | 21 +++++- tests/regressiontests/forms/tests/fields.py | 90 ++++++++++++++++++++++++++ tests/regressiontests/forms/tests/widgets.py | 97 ---------------------------- 14 files changed, 230 insertions(+), 251 deletions(-) (limited to 'docs') diff --git a/django/contrib/admin/widgets.py b/django/contrib/admin/widgets.py index 1e6277fb87..a3887740d8 100644 --- a/django/contrib/admin/widgets.py +++ b/django/contrib/admin/widgets.py @@ -213,17 +213,6 @@ class ManyToManyRawIdWidget(ForeignKeyRawIdWidget): if value: return value.split(',') - def _has_changed(self, initial, data): - if initial is None: - initial = [] - if data is None: - data = [] - if len(initial) != len(data): - return True - for pk1, pk2 in zip(initial, data): - if force_text(pk1) != force_text(pk2): - return True - return False class RelatedFieldWidgetWrapper(forms.Widget): """ @@ -279,9 +268,6 @@ class RelatedFieldWidgetWrapper(forms.Widget): def value_from_datadict(self, data, files, name): return self.widget.value_from_datadict(data, files, name) - def _has_changed(self, initial, data): - return self.widget._has_changed(initial, data) - def id_for_label(self, id_): return self.widget.id_for_label(id_) diff --git a/django/contrib/gis/admin/widgets.py b/django/contrib/gis/admin/widgets.py index f4379be7f3..a06933660f 100644 --- a/django/contrib/gis/admin/widgets.py +++ b/django/contrib/gis/admin/widgets.py @@ -7,7 +7,7 @@ from django.utils import six from django.utils import translation from django.contrib.gis.gdal import OGRException -from django.contrib.gis.geos import GEOSGeometry, GEOSException, fromstr +from django.contrib.gis.geos import GEOSGeometry, GEOSException # Creating a template context that contains Django settings # values needed by admin map templates. @@ -117,25 +117,3 @@ class OpenLayersWidget(Textarea): raise TypeError map_options[js_name] = value return map_options - - def _has_changed(self, initial, data): - """ Compare geographic value of data with its initial value. """ - - # Ensure we are dealing with a geographic object - if isinstance(initial, six.string_types): - try: - initial = GEOSGeometry(initial) - except (GEOSException, ValueError): - initial = None - - # Only do a geographic comparison if both values are available - if initial and data: - data = fromstr(data) - data.transform(initial.srid) - # If the initial value was not added by the browser, the geometry - # provided may be slightly different, the first time it is saved. - # The comparison is done with a very low tolerance. - return not initial.equals_exact(data, tolerance=0.000001) - else: - # Check for change of state of existence - return bool(initial) != bool(data) diff --git a/django/contrib/gis/forms/fields.py b/django/contrib/gis/forms/fields.py index cefb6830ba..ab2e37f1e1 100644 --- a/django/contrib/gis/forms/fields.py +++ b/django/contrib/gis/forms/fields.py @@ -1,11 +1,13 @@ from __future__ import unicode_literals from django import forms +from django.utils import six from django.utils.translation import ugettext_lazy as _ # While this couples the geographic forms to the GEOS library, # it decouples from database (by not importing SpatialBackend). -from django.contrib.gis.geos import GEOSException, GEOSGeometry +from django.contrib.gis.geos import GEOSException, GEOSGeometry, fromstr + class GeometryField(forms.Field): """ @@ -73,3 +75,25 @@ class GeometryField(forms.Field): raise forms.ValidationError(self.error_messages['transform_error']) return geom + + def _has_changed(self, initial, data): + """ Compare geographic value of data with its initial value. """ + + # Ensure we are dealing with a geographic object + if isinstance(initial, six.string_types): + try: + initial = GEOSGeometry(initial) + except (GEOSException, ValueError): + initial = None + + # Only do a geographic comparison if both values are available + if initial and data: + data = fromstr(data) + data.transform(initial.srid) + # If the initial value was not added by the browser, the geometry + # provided may be slightly different, the first time it is saved. + # The comparison is done with a very low tolerance. + return not initial.equals_exact(data, tolerance=0.000001) + else: + # Check for change of state of existence + return bool(initial) != bool(data) diff --git a/django/contrib/gis/tests/geoadmin/tests.py b/django/contrib/gis/tests/geoadmin/tests.py index 6fadebdb9a..669914bdea 100644 --- a/django/contrib/gis/tests/geoadmin/tests.py +++ b/django/contrib/gis/tests/geoadmin/tests.py @@ -38,7 +38,7 @@ class GeoAdminTest(TestCase): """ Check that changes are accurately noticed by OpenLayersWidget. """ geoadmin = admin.site._registry[City] form = geoadmin.get_changelist_form(None)() - has_changed = form.fields['point'].widget._has_changed + has_changed = form.fields['point']._has_changed initial = Point(13.4197458572965953, 52.5194108501149799, srid=4326) data_same = "SRID=3857;POINT(1493879.2754093995 6894592.019687599)" diff --git a/django/forms/extras/widgets.py b/django/forms/extras/widgets.py index c5ca1424c8..e939a8f665 100644 --- a/django/forms/extras/widgets.py +++ b/django/forms/extras/widgets.py @@ -135,11 +135,3 @@ class SelectDateWidget(Widget): s = Select(choices=choices) select_html = s.render(field % name, val, local_attrs) return select_html - - def _has_changed(self, initial, data): - try: - input_format = get_format('DATE_INPUT_FORMATS')[0] - data = datetime_safe.datetime.strptime(data, input_format).date() - except (TypeError, ValueError): - pass - return super(SelectDateWidget, self)._has_changed(initial, data) diff --git a/django/forms/fields.py b/django/forms/fields.py index 4438812a37..1e9cbcb4d9 100644 --- a/django/forms/fields.py +++ b/django/forms/fields.py @@ -175,6 +175,25 @@ class Field(object): """ return {} + def _has_changed(self, initial, data): + """ + Return True if data differs from initial. + """ + # For purposes of seeing whether something has changed, None is + # the same as an empty string, if the data or inital value we get + # is None, replace it w/ ''. + if data is None: + data_value = '' + else: + data_value = data + if initial is None: + initial_value = '' + else: + initial_value = initial + if force_text(initial_value) != force_text(data_value): + return True + return False + def __deepcopy__(self, memo): result = copy.copy(self) memo[id(self)] = result @@ -348,6 +367,13 @@ class BaseTemporalField(Field): def strptime(self, value, format): raise NotImplementedError('Subclasses must define this method.') + def _has_changed(self, initial, data): + try: + data = self.to_python(data) + except ValidationError: + return True + return self.to_python(initial) != data + class DateField(BaseTemporalField): widget = DateInput input_formats = formats.get_format_lazy('DATE_INPUT_FORMATS') @@ -371,6 +397,7 @@ class DateField(BaseTemporalField): def strptime(self, value, format): return datetime.datetime.strptime(value, format).date() + class TimeField(BaseTemporalField): widget = TimeInput input_formats = formats.get_format_lazy('TIME_INPUT_FORMATS') @@ -529,6 +556,12 @@ class FileField(Field): return initial return data + def _has_changed(self, initial, data): + if data is None: + return False + return True + + class ImageField(FileField): default_error_messages = { 'invalid_image': _("Upload a valid image. The file you uploaded was either not an image or a corrupted image."), @@ -618,6 +651,7 @@ class URLField(CharField): value = urlunsplit(url_fields) return value + class BooleanField(Field): widget = CheckboxInput @@ -636,6 +670,15 @@ class BooleanField(Field): raise ValidationError(self.error_messages['required']) return value + def _has_changed(self, initial, data): + # Sometimes data or initial could be None or '' which should be the + # same thing as False. + if initial == 'False': + # show_hidden_initial may have transformed False to 'False' + initial = False + return bool(initial) != bool(data) + + class NullBooleanField(BooleanField): """ A field whose valid values are None, True and False. Invalid values are @@ -660,6 +703,15 @@ class NullBooleanField(BooleanField): def validate(self, value): pass + def _has_changed(self, initial, data): + # None (unknown) and False (No) are not the same + if initial is not None: + initial = bool(initial) + if data is not None: + data = bool(data) + return initial != data + + class ChoiceField(Field): widget = Select default_error_messages = { @@ -739,6 +791,7 @@ class TypedChoiceField(ChoiceField): def validate(self, value): pass + class MultipleChoiceField(ChoiceField): hidden_widget = MultipleHiddenInput widget = SelectMultiple @@ -765,6 +818,18 @@ class MultipleChoiceField(ChoiceField): if not self.valid_value(val): raise ValidationError(self.error_messages['invalid_choice'] % {'value': val}) + def _has_changed(self, initial, data): + if initial is None: + initial = [] + if data is None: + data = [] + if len(initial) != len(data): + return True + initial_set = set([force_text(value) for value in initial]) + data_set = set([force_text(value) for value in data]) + return data_set != initial_set + + class TypedMultipleChoiceField(MultipleChoiceField): def __init__(self, *args, **kwargs): self.coerce = kwargs.pop('coerce', lambda val: val) @@ -899,6 +964,18 @@ class MultiValueField(Field): """ raise NotImplementedError('Subclasses must implement this method.') + def _has_changed(self, initial, data): + if initial is None: + initial = ['' for x in range(0, len(data))] + else: + if not isinstance(initial, list): + initial = self.widget.decompress(initial) + for field, initial, data in zip(self.fields, initial, data): + if field._has_changed(initial, data): + return True + return False + + class FilePathField(ChoiceField): def __init__(self, path, match=None, recursive=False, allow_files=True, allow_folders=False, required=True, widget=None, label=None, diff --git a/django/forms/forms.py b/django/forms/forms.py index 3299c2becc..f532391296 100644 --- a/django/forms/forms.py +++ b/django/forms/forms.py @@ -341,7 +341,13 @@ class BaseForm(object): hidden_widget = field.hidden_widget() initial_value = hidden_widget.value_from_datadict( self.data, self.files, initial_prefixed_name) - if field.widget._has_changed(initial_value, data_value): + if hasattr(field.widget, '_has_changed'): + warnings.warn("The _has_changed method on widgets is deprecated," + " define it at field level instead.", + PendingDeprecationWarning, stacklevel=2) + if field.widget._has_changed(initial_value, data_value): + self._changed_data.append(name) + elif field._has_changed(initial_value, data_value): self._changed_data.append(name) return self._changed_data changed_data = property(_get_changed_data) diff --git a/django/forms/models.py b/django/forms/models.py index 03a14dc9ff..837da74814 100644 --- a/django/forms/models.py +++ b/django/forms/models.py @@ -858,15 +858,12 @@ def inlineformset_factory(parent_model, model, form=ModelForm, # Fields ##################################################################### -class InlineForeignKeyHiddenInput(HiddenInput): - def _has_changed(self, initial, data): - return False - class InlineForeignKeyField(Field): """ A basic integer field that deals with validating the given value to a given parent instance in an inline. """ + widget = HiddenInput default_error_messages = { 'invalid_choice': _('The inline foreign key did not match the parent instance primary key.'), } @@ -881,7 +878,6 @@ class InlineForeignKeyField(Field): else: kwargs["initial"] = self.parent_instance.pk kwargs["required"] = False - kwargs["widget"] = InlineForeignKeyHiddenInput super(InlineForeignKeyField, self).__init__(*args, **kwargs) def clean(self, value): @@ -899,6 +895,9 @@ class InlineForeignKeyField(Field): raise ValidationError(self.error_messages['invalid_choice']) return self.parent_instance + def _has_changed(self, initial, data): + return False + class ModelChoiceIterator(object): def __init__(self, field): self.field = field diff --git a/django/forms/widgets.py b/django/forms/widgets.py index d6ea56f0c8..303844d44b 100644 --- a/django/forms/widgets.py +++ b/django/forms/widgets.py @@ -208,25 +208,6 @@ class Widget(six.with_metaclass(MediaDefiningClass)): """ return data.get(name, None) - def _has_changed(self, initial, data): - """ - Return True if data differs from initial. - """ - # For purposes of seeing whether something has changed, None is - # the same as an empty string, if the data or inital value we get - # is None, replace it w/ ''. - if data is None: - data_value = '' - else: - data_value = data - if initial is None: - initial_value = '' - else: - initial_value = initial - if force_text(initial_value) != force_text(data_value): - return True - return False - def id_for_label(self, id_): """ Returns the HTML ID attribute of this Widget for use by a
    Lookup' % dict(admin_static_prefix(), m1pk=m1.pk) ) - self.assertEqual(w._has_changed(None, None), False) - self.assertEqual(w._has_changed([], None), False) - self.assertEqual(w._has_changed(None, ['1']), True) - self.assertEqual(w._has_changed([1, 2], ['1', '2']), False) - self.assertEqual(w._has_changed([1, 2], ['1']), True) - self.assertEqual(w._has_changed([1, 2], ['1', '3']), True) - def test_m2m_related_model_not_in_admin(self): # M2M relationship with model not registered with admin site. Raw ID # widget should have no magnifying glass link. See #16542 diff --git a/tests/regressiontests/forms/tests/extra.py b/tests/regressiontests/forms/tests/extra.py index 07acb29741..762b774a93 100644 --- a/tests/regressiontests/forms/tests/extra.py +++ b/tests/regressiontests/forms/tests/extra.py @@ -428,6 +428,23 @@ class FormsExtraTestCase(TestCase, AssertFormErrorsMixin): # If insufficient data is provided, None is substituted self.assertFormErrors(['This field is required.'], f.clean, ['some text',['JP']]) + # test with no initial data + self.assertTrue(f._has_changed(None, ['some text', ['J','P'], ['2007-04-25','6:24:00']])) + + # test when the data is the same as initial + self.assertFalse(f._has_changed('some text,JP,2007-04-25 06:24:00', + ['some text', ['J','P'], ['2007-04-25','6:24:00']])) + + # test when the first widget's data has changed + self.assertTrue(f._has_changed('some text,JP,2007-04-25 06:24:00', + ['other text', ['J','P'], ['2007-04-25','6:24:00']])) + + # test when the last widget's data has changed. this ensures that it is not + # short circuiting while testing the widgets. + self.assertTrue(f._has_changed('some text,JP,2007-04-25 06:24:00', + ['some text', ['J','P'], ['2009-04-25','11:44:00']])) + + class ComplexFieldForm(Form): field1 = ComplexField(widget=w) @@ -725,8 +742,8 @@ class FormsExtraL10NTestCase(TestCase): def test_l10n_date_changed(self): """ - Ensure that SelectDateWidget._has_changed() works correctly with a - localized date format. + Ensure that DateField._has_changed() with SelectDateWidget works + correctly with a localized date format. Refs #17165. """ # With Field.show_hidden_initial=False ----------------------- diff --git a/tests/regressiontests/forms/tests/fields.py b/tests/regressiontests/forms/tests/fields.py index e17d976fcf..7deb345a33 100644 --- a/tests/regressiontests/forms/tests/fields.py +++ b/tests/regressiontests/forms/tests/fields.py @@ -35,6 +35,7 @@ from decimal import Decimal from django.core.files.uploadedfile import SimpleUploadedFile from django.forms import * from django.test import SimpleTestCase +from django.utils import formats from django.utils import six from django.utils._os import upath @@ -362,6 +363,13 @@ class FieldsTests(SimpleTestCase): f = DateField() self.assertRaisesMessage(ValidationError, "'Enter a valid date.'", f.clean, 'a\x00b') + def test_datefield_changed(self): + format = '%d/%m/%Y' + f = DateField(input_formats=[format]) + d = datetime.date(2007, 9, 17) + self.assertFalse(f._has_changed(d, '17/09/2007')) + self.assertFalse(f._has_changed(d.strftime(format), '17/09/2007')) + # TimeField ################################################################### def test_timefield_1(self): @@ -388,6 +396,18 @@ class FieldsTests(SimpleTestCase): self.assertEqual(datetime.time(14, 25, 59), f.clean(' 14:25:59 ')) self.assertRaisesMessage(ValidationError, "'Enter a valid time.'", f.clean, ' ') + def test_timefield_changed(self): + t1 = datetime.time(12, 51, 34, 482548) + t2 = datetime.time(12, 51) + format = '%H:%M' + f = TimeField(input_formats=[format]) + self.assertTrue(f._has_changed(t1, '12:51')) + self.assertFalse(f._has_changed(t2, '12:51')) + + format = '%I:%M %p' + f = TimeField(input_formats=[format]) + self.assertFalse(f._has_changed(t2.strftime(format), '12:51 PM')) + # DateTimeField ############################################################### def test_datetimefield_1(self): @@ -446,6 +466,15 @@ class FieldsTests(SimpleTestCase): def test_datetimefield_5(self): f = DateTimeField(input_formats=['%Y.%m.%d %H:%M:%S.%f']) self.assertEqual(datetime.datetime(2006, 10, 25, 14, 30, 45, 200), f.clean('2006.10.25 14:30:45.0002')) + + def test_datetimefield_changed(self): + format = '%Y %m %d %I:%M %p' + f = DateTimeField(input_formats=[format]) + d = datetime.datetime(2006, 9, 17, 14, 30, 0) + self.assertFalse(f._has_changed(d, '2006 09 17 2:30 PM')) + # Initial value may be a string from a hidden input + self.assertFalse(f._has_changed(d.strftime(format), '2006 09 17 2:30 PM')) + # RegexField ################################################################## def test_regexfield_1(self): @@ -566,6 +595,29 @@ class FieldsTests(SimpleTestCase): self.assertEqual(SimpleUploadedFile, type(f.clean(SimpleUploadedFile('name', b'')))) + def test_filefield_changed(self): + ''' + Test for the behavior of _has_changed for FileField. The value of data will + more than likely come from request.FILES. The value of initial data will + likely be a filename stored in the database. Since its value is of no use to + a FileField it is ignored. + ''' + f = FileField() + + # No file was uploaded and no initial data. + self.assertFalse(f._has_changed('', None)) + + # A file was uploaded and no initial data. + self.assertTrue(f._has_changed('', {'filename': 'resume.txt', 'content': 'My resume'})) + + # A file was not uploaded, but there is initial data + self.assertFalse(f._has_changed('resume.txt', None)) + + # A file was uploaded and there is initial data (file identity is not dealt + # with here) + self.assertTrue(f._has_changed('resume.txt', {'filename': 'resume.txt', 'content': 'My resume'})) + + # URLField ################################################################## def test_urlfield_1(self): @@ -709,6 +761,18 @@ class FieldsTests(SimpleTestCase): def test_boolean_picklable(self): self.assertIsInstance(pickle.loads(pickle.dumps(BooleanField())), BooleanField) + def test_booleanfield_changed(self): + f = BooleanField() + self.assertFalse(f._has_changed(None, None)) + self.assertFalse(f._has_changed(None, '')) + self.assertFalse(f._has_changed('', None)) + self.assertFalse(f._has_changed('', '')) + self.assertTrue(f._has_changed(False, 'on')) + self.assertFalse(f._has_changed(True, 'on')) + self.assertTrue(f._has_changed(True, '')) + # Initial value may have mutated to a string due to show_hidden_initial (#19537) + self.assertTrue(f._has_changed('False', 'on')) + # ChoiceField ################################################################# def test_choicefield_1(self): @@ -825,6 +889,16 @@ class FieldsTests(SimpleTestCase): self.assertEqual(False, f.cleaned_data['nullbool1']) self.assertEqual(None, f.cleaned_data['nullbool2']) + def test_nullbooleanfield_changed(self): + f = NullBooleanField() + self.assertTrue(f._has_changed(False, None)) + self.assertTrue(f._has_changed(None, False)) + self.assertFalse(f._has_changed(None, None)) + self.assertFalse(f._has_changed(False, False)) + self.assertTrue(f._has_changed(True, False)) + self.assertTrue(f._has_changed(True, None)) + self.assertTrue(f._has_changed(True, False)) + # MultipleChoiceField ######################################################### def test_multiplechoicefield_1(self): @@ -866,6 +940,16 @@ class FieldsTests(SimpleTestCase): self.assertRaisesMessage(ValidationError, "'Select a valid choice. 6 is not one of the available choices.'", f.clean, ['6']) self.assertRaisesMessage(ValidationError, "'Select a valid choice. 6 is not one of the available choices.'", f.clean, ['1','6']) + def test_multiplechoicefield_changed(self): + f = MultipleChoiceField(choices=[('1', 'One'), ('2', 'Two'), ('3', 'Three')]) + self.assertFalse(f._has_changed(None, None)) + self.assertFalse(f._has_changed([], None)) + self.assertTrue(f._has_changed(None, ['1'])) + self.assertFalse(f._has_changed([1, 2], ['1', '2'])) + self.assertFalse(f._has_changed([2, 1], ['1', '2'])) + self.assertTrue(f._has_changed([1, 2], ['1'])) + self.assertTrue(f._has_changed([1, 2], ['1', '3'])) + # TypedMultipleChoiceField ############################################################ # TypedMultipleChoiceField is just like MultipleChoiceField, except that coerced types # will be returned: @@ -1048,3 +1132,9 @@ class FieldsTests(SimpleTestCase): self.assertRaisesMessage(ValidationError, "'Enter a valid time.'", f.clean, ['2006-01-10', '']) self.assertRaisesMessage(ValidationError, "'Enter a valid time.'", f.clean, ['2006-01-10']) self.assertRaisesMessage(ValidationError, "'Enter a valid date.'", f.clean, ['', '07:30']) + + def test_splitdatetimefield_changed(self): + f = SplitDateTimeField(input_date_formats=['%d/%m/%Y']) + self.assertTrue(f._has_changed(datetime.datetime(2008, 5, 6, 12, 40, 00), ['2008-05-06', '12:40:00'])) + self.assertFalse(f._has_changed(datetime.datetime(2008, 5, 6, 12, 40, 00), ['06/05/2008', '12:40'])) + self.assertTrue(f._has_changed(datetime.datetime(2008, 5, 6, 12, 40, 00), ['06/05/2008', '12:41'])) diff --git a/tests/regressiontests/forms/tests/widgets.py b/tests/regressiontests/forms/tests/widgets.py index 7a2961358a..6aa56ec8b0 100644 --- a/tests/regressiontests/forms/tests/widgets.py +++ b/tests/regressiontests/forms/tests/widgets.py @@ -148,25 +148,6 @@ class FormsWidgetTestCase(TestCase): self.assertHTMLEqual(w.render('email', 'ŠĐĆŽćžšđ', attrs={'class': 'fun'}), '') - # Test for the behavior of _has_changed for FileInput. The value of data will - # more than likely come from request.FILES. The value of initial data will - # likely be a filename stored in the database. Since its value is of no use to - # a FileInput it is ignored. - w = FileInput() - - # No file was uploaded and no initial data. - self.assertFalse(w._has_changed('', None)) - - # A file was uploaded and no initial data. - self.assertTrue(w._has_changed('', {'filename': 'resume.txt', 'content': 'My resume'})) - - # A file was not uploaded, but there is initial data - self.assertFalse(w._has_changed('resume.txt', None)) - - # A file was uploaded and there is initial data (file identity is not dealt - # with here) - self.assertTrue(w._has_changed('resume.txt', {'filename': 'resume.txt', 'content': 'My resume'})) - def test_textarea(self): w = Textarea() self.assertHTMLEqual(w.render('msg', ''), '') @@ -233,16 +214,6 @@ class FormsWidgetTestCase(TestCase): self.assertIsInstance(value, bool) self.assertTrue(value) - self.assertFalse(w._has_changed(None, None)) - self.assertFalse(w._has_changed(None, '')) - self.assertFalse(w._has_changed('', None)) - self.assertFalse(w._has_changed('', '')) - self.assertTrue(w._has_changed(False, 'on')) - self.assertFalse(w._has_changed(True, 'on')) - self.assertTrue(w._has_changed(True, '')) - # Initial value may have mutated to a string due to show_hidden_initial (#19537) - self.assertTrue(w._has_changed('False', 'on')) - def test_select(self): w = Select() self.assertHTMLEqual(w.render('beatle', 'J', choices=(('J', 'John'), ('P', 'Paul'), ('G', 'George'), ('R', 'Ringo'))), """""") - self.assertTrue(w._has_changed(False, None)) - self.assertTrue(w._has_changed(None, False)) - self.assertFalse(w._has_changed(None, None)) - self.assertFalse(w._has_changed(False, False)) - self.assertTrue(w._has_changed(True, False)) - self.assertTrue(w._has_changed(True, None)) - self.assertTrue(w._has_changed(True, False)) def test_selectmultiple(self): w = SelectMultiple() @@ -535,14 +499,6 @@ class FormsWidgetTestCase(TestCase): # Unicode choices are correctly rendered as HTML self.assertHTMLEqual(w.render('nums', ['ŠĐĆŽćžšđ'], choices=[('ŠĐĆŽćžšđ', 'ŠĐabcĆŽćžšđ'), ('ćžšđ', 'abcćžšđ')]), '') - # Test the usage of _has_changed - self.assertFalse(w._has_changed(None, None)) - self.assertFalse(w._has_changed([], None)) - self.assertTrue(w._has_changed(None, ['1'])) - self.assertFalse(w._has_changed([1, 2], ['1', '2'])) - self.assertTrue(w._has_changed([1, 2], ['1'])) - self.assertTrue(w._has_changed([1, 2], ['1', '3'])) - # Choices can be nested one level in order to create HTML optgroups: w.choices = (('outer1', 'Outer 1'), ('Group "1"', (('inner1', 'Inner 1'), ('inner2', 'Inner 2')))) self.assertHTMLEqual(w.render('nestchoice', None), """ you > me """) - # Test the usage of _has_changed - self.assertFalse(w._has_changed(None, None)) - self.assertFalse(w._has_changed([], None)) - self.assertTrue(w._has_changed(None, ['1'])) - self.assertFalse(w._has_changed([1, 2], ['1', '2'])) - self.assertTrue(w._has_changed([1, 2], ['1'])) - self.assertTrue(w._has_changed([1, 2], ['1', '3'])) - self.assertFalse(w._has_changed([2, 1], ['1', '2'])) - # Unicode choices are correctly rendered as HTML self.assertHTMLEqual(w.render('nums', ['ŠĐĆŽćžšđ'], choices=[('ŠĐĆŽćžšđ', 'ŠĐabcĆŽćžšđ'), ('ćžšđ', 'abcćžšđ')]), '
      \n
    • \n
    • \n
    • \n
    • \n
    • \n
    ') @@ -886,21 +833,6 @@ beatle J R Ringo False""") w = MyMultiWidget(widgets=(TextInput(attrs={'class': 'big'}), TextInput(attrs={'class': 'small'})), attrs={'id': 'bar'}) self.assertHTMLEqual(w.render('name', ['john', 'lennon']), '
    ') - w = MyMultiWidget(widgets=(TextInput(), TextInput())) - - # test with no initial data - self.assertTrue(w._has_changed(None, ['john', 'lennon'])) - - # test when the data is the same as initial - self.assertFalse(w._has_changed('john__lennon', ['john', 'lennon'])) - - # test when the first widget's data has changed - self.assertTrue(w._has_changed('john__lennon', ['alfred', 'lennon'])) - - # test when the last widget's data has changed. this ensures that it is not - # short circuiting while testing the widgets. - self.assertTrue(w._has_changed('john__lennon', ['john', 'denver'])) - def test_splitdatetime(self): w = SplitDateTimeWidget() self.assertHTMLEqual(w.render('date', ''), '') @@ -916,10 +848,6 @@ beatle J R Ringo False""") w = SplitDateTimeWidget(date_format='%d/%m/%Y', time_format='%H:%M') self.assertHTMLEqual(w.render('date', datetime.datetime(2006, 1, 10, 7, 30)), '') - self.assertTrue(w._has_changed(datetime.datetime(2008, 5, 6, 12, 40, 00), ['2008-05-06', '12:40:00'])) - self.assertFalse(w._has_changed(datetime.datetime(2008, 5, 6, 12, 40, 00), ['06/05/2008', '12:40'])) - self.assertTrue(w._has_changed(datetime.datetime(2008, 5, 6, 12, 40, 00), ['06/05/2008', '12:41'])) - def test_datetimeinput(self): w = DateTimeInput() self.assertHTMLEqual(w.render('date', None), '') @@ -934,13 +862,6 @@ beatle J R Ringo False""") # Use 'format' to change the way a value is displayed. w = DateTimeInput(format='%d/%m/%Y %H:%M', attrs={'type': 'datetime'}) self.assertHTMLEqual(w.render('date', d), '') - self.assertFalse(w._has_changed(d, '17/09/2007 12:51')) - - # Make sure a custom format works with _has_changed. The hidden input will use - data = datetime.datetime(2010, 3, 6, 12, 0, 0) - custom_format = '%d.%m.%Y %H:%M' - w = DateTimeInput(format=custom_format) - self.assertFalse(w._has_changed(formats.localize_input(data), data.strftime(custom_format))) def test_dateinput(self): w = DateInput() @@ -957,13 +878,6 @@ beatle J R Ringo False""") # Use 'format' to change the way a value is displayed. w = DateInput(format='%d/%m/%Y', attrs={'type': 'date'}) self.assertHTMLEqual(w.render('date', d), '') - self.assertFalse(w._has_changed(d, '17/09/2007')) - - # Make sure a custom format works with _has_changed. The hidden input will use - data = datetime.date(2010, 3, 6) - custom_format = '%d.%m.%Y' - w = DateInput(format=custom_format) - self.assertFalse(w._has_changed(formats.localize_input(data), data.strftime(custom_format))) def test_timeinput(self): w = TimeInput() @@ -982,13 +896,6 @@ beatle J R Ringo False""") # Use 'format' to change the way a value is displayed. w = TimeInput(format='%H:%M', attrs={'type': 'time'}) self.assertHTMLEqual(w.render('time', t), '') - self.assertFalse(w._has_changed(t, '12:51')) - - # Make sure a custom format works with _has_changed. The hidden input will use - data = datetime.time(13, 0) - custom_format = '%I:%M %p' - w = TimeInput(format=custom_format) - self.assertFalse(w._has_changed(formats.localize_input(data), data.strftime(custom_format))) def test_splithiddendatetime(self): from django.forms.widgets import SplitHiddenDateTimeWidget @@ -1016,10 +923,6 @@ class FormsI18NWidgetsTestCase(TestCase): deactivate() super(FormsI18NWidgetsTestCase, self).tearDown() - def test_splitdatetime(self): - w = SplitDateTimeWidget(date_format='%d/%m/%Y', time_format='%H:%M') - self.assertTrue(w._has_changed(datetime.datetime(2008, 5, 6, 12, 40, 00), ['06.05.2008', '12:41'])) - def test_datetimeinput(self): w = DateTimeInput() d = datetime.datetime(2007, 9, 17, 12, 51, 34, 482548) -- cgit v1.3 From 55416e235d95b6168034236e5b1cdc581d544cc6 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sat, 26 Jan 2013 13:47:11 +0100 Subject: Fixed #19589 -- assertRegexpMatches is deprecated in Python 3.3. --- django/utils/six.py | 6 ++++++ docs/topics/python3.txt | 8 +++++++- tests/modeltests/timezones/tests.py | 2 +- tests/regressiontests/admin_views/tests.py | 2 +- tests/regressiontests/i18n/commands/extraction.py | 3 ++- tests/regressiontests/version/tests.py | 3 ++- 6 files changed, 19 insertions(+), 5 deletions(-) (limited to 'docs') diff --git a/django/utils/six.py b/django/utils/six.py index 73846358a1..b93dc5b164 100644 --- a/django/utils/six.py +++ b/django/utils/six.py @@ -393,9 +393,11 @@ def with_metaclass(meta, base=object): if PY3: _iterlists = "lists" _assertRaisesRegex = "assertRaisesRegex" + _assertRegex = "assertRegex" else: _iterlists = "iterlists" _assertRaisesRegex = "assertRaisesRegexp" + _assertRegex = "assertRegexpMatches" def iterlists(d): @@ -407,5 +409,9 @@ def assertRaisesRegex(self, *args, **kwargs): return getattr(self, _assertRaisesRegex)(*args, **kwargs) +def assertRegex(self, *args, **kwargs): + return getattr(self, _assertRegex)(*args, **kwargs) + + add_move(MovedModule("_dummy_thread", "dummy_thread")) add_move(MovedModule("_thread", "thread")) diff --git a/docs/topics/python3.txt b/docs/topics/python3.txt index b44c180d7f..b1f3fa3277 100644 --- a/docs/topics/python3.txt +++ b/docs/topics/python3.txt @@ -402,7 +402,13 @@ The version of six bundled with Django includes one extra function: This replaces ``testcase.assertRaisesRegexp`` on Python 2, and ``testcase.assertRaisesRegex`` on Python 3. ``assertRaisesRegexp`` still - exists in current Python3 versions, but issues a warning. + exists in current Python 3 versions, but issues a warning. + +.. function:: assertRegex(testcase, *args, **kwargs) + + This replaces ``testcase.assertRegexpMatches`` on Python 2, and + ``testcase.assertRegex`` on Python 3. ``assertRegexpMatches`` still + exists in current Python 3 versions, but issues a warning. In addition to six' defaults moves, Django's version provides ``thread`` as diff --git a/tests/modeltests/timezones/tests.py b/tests/modeltests/timezones/tests.py index 29a490e3fb..4ae6bbd6a8 100644 --- a/tests/modeltests/timezones/tests.py +++ b/tests/modeltests/timezones/tests.py @@ -506,7 +506,7 @@ class SerializationTests(TestCase): def assert_yaml_contains_datetime(self, yaml, dt): # Depending on the yaml dumper, '!timestamp' might be absent - self.assertRegexpMatches(yaml, + six.assertRegex(self, yaml, r"- fields: {dt: !(!timestamp)? '%s'}" % re.escape(dt)) def test_naive_datetime(self): diff --git a/tests/regressiontests/admin_views/tests.py b/tests/regressiontests/admin_views/tests.py index e886078ae5..d7d01e6a92 100644 --- a/tests/regressiontests/admin_views/tests.py +++ b/tests/regressiontests/admin_views/tests.py @@ -1263,7 +1263,7 @@ class AdminViewDeletedObjectsTest(TestCase): """ pattern = re.compile(br"""
  • Plot: World Domination\s*
      \s*
    • Plot details: almost finished""") response = self.client.get('/test_admin/admin/admin_views/villain/%s/delete/' % quote(1)) - self.assertRegexpMatches(response.content, pattern) + six.assertRegex(self, response.content, pattern) def test_cyclic(self): """ diff --git a/tests/regressiontests/i18n/commands/extraction.py b/tests/regressiontests/i18n/commands/extraction.py index ef711ec1bb..ac8d8c1a09 100644 --- a/tests/regressiontests/i18n/commands/extraction.py +++ b/tests/regressiontests/i18n/commands/extraction.py @@ -9,6 +9,7 @@ from django.core import management from django.test import SimpleTestCase from django.utils.encoding import force_text from django.utils._os import upath +from django.utils import six from django.utils.six import StringIO @@ -112,7 +113,7 @@ class BasicExtractorTests(ExtractorTests): self.assertRaises(SyntaxError, management.call_command, 'makemessages', locale=LOCALE, extensions=['tpl'], verbosity=0) with self.assertRaises(SyntaxError) as context_manager: management.call_command('makemessages', locale=LOCALE, extensions=['tpl'], verbosity=0) - self.assertRegexpMatches(str(context_manager.exception), + six.assertRegex(self, str(context_manager.exception), r'Translation blocks must not include other block tags: blocktrans \(file templates[/\\]template_with_error\.tpl, line 3\)' ) # Check that the temporary file was cleaned up diff --git a/tests/regressiontests/version/tests.py b/tests/regressiontests/version/tests.py index 9b849ee4ba..64621a5cb6 100644 --- a/tests/regressiontests/version/tests.py +++ b/tests/regressiontests/version/tests.py @@ -1,6 +1,7 @@ import re from django import get_version +from django.utils import six from django.utils.unittest import TestCase class VersionTests(TestCase): @@ -10,7 +11,7 @@ class VersionTests(TestCase): # This will return a different result when it's run within or outside # of a git clone: 1.4.devYYYYMMDDHHMMSS or 1.4. ver_string = get_version(ver_tuple) - self.assertRegexpMatches(ver_string, r'1\.4(\.dev\d+)?') + six.assertRegex(self, ver_string, r'1\.4(\.dev\d+)?') def test_releases(self): tuples_to_strings = ( -- cgit v1.3 From 14d1d504d5c839869a7f612b7d35fa1adf983f5b Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sun, 27 Jan 2013 06:09:36 -0500 Subject: Fixed two malformed links. --- docs/intro/tutorial03.txt | 2 +- docs/ref/contrib/messages.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/intro/tutorial03.txt b/docs/intro/tutorial03.txt index 3159ee88c2..ac77b7608d 100644 --- a/docs/intro/tutorial03.txt +++ b/docs/intro/tutorial03.txt @@ -277,7 +277,7 @@ you want to change the way the page looks, you'll have to edit this Python code. So let's use Django's template system to separate the design from Python. First, create a directory ``polls`` in your template directory you specified -in setting:`TEMPLATE_DIRS`. Within that, create a file called ``index.html``. +in :setting:`TEMPLATE_DIRS`. Within that, create a file called ``index.html``. Put the following code in that template: .. code-block:: html+django diff --git a/docs/ref/contrib/messages.txt b/docs/ref/contrib/messages.txt index 40f7d41ceb..dd7c8dbd65 100644 --- a/docs/ref/contrib/messages.txt +++ b/docs/ref/contrib/messages.txt @@ -78,7 +78,7 @@ Django provides three built-in storage classes: :class:`~django.contrib.messages.storage.fallback.FallbackStorage` is the default storage class. If it isn't suitable to your needs, you can select -another storage class by setting setting:`MESSAGE_STORAGE` to its full import +another storage class by setting :setting:`MESSAGE_STORAGE` to its full import path, for example:: MESSAGE_STORAGE = 'django.contrib.messages.storage.cookie.CookieStorage' -- cgit v1.3 From 4f16376274a4e52074722c615fccef5fac5f009a Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Mon, 28 Jan 2013 14:12:56 +0100 Subject: Added HTML5 email input type Refs #16630. --- django/forms/fields.py | 7 ++-- django/forms/widgets.py | 6 +++- docs/ref/forms/api.txt | 53 +++++++++++++++-------------- docs/ref/forms/fields.txt | 8 ++--- docs/ref/forms/widgets.txt | 11 +++++- docs/releases/1.6.txt | 7 ++++ docs/topics/forms/index.txt | 2 +- tests/regressiontests/forms/tests/extra.py | 2 +- tests/regressiontests/forms/tests/fields.py | 7 ++++ tests/regressiontests/forms/tests/forms.py | 10 +++--- 10 files changed, 72 insertions(+), 41 deletions(-) (limited to 'docs') diff --git a/django/forms/fields.py b/django/forms/fields.py index d16b501baa..8a3dbfeb49 100644 --- a/django/forms/fields.py +++ b/django/forms/fields.py @@ -18,10 +18,12 @@ from io import BytesIO from django.core import validators from django.core.exceptions import ValidationError from django.forms.util import ErrorList, from_current_timezone, to_current_timezone -from django.forms.widgets import (TextInput, PasswordInput, HiddenInput, +from django.forms.widgets import ( + TextInput, PasswordInput, EmailInput, HiddenInput, MultipleHiddenInput, ClearableFileInput, CheckboxInput, Select, NullBooleanSelect, SelectMultiple, DateInput, DateTimeInput, TimeInput, - SplitDateTimeWidget, SplitHiddenDateTimeWidget, FILE_INPUT_CONTRADICTION) + SplitDateTimeWidget, SplitHiddenDateTimeWidget, FILE_INPUT_CONTRADICTION +) from django.utils import formats from django.utils.encoding import smart_text, force_str, force_text from django.utils.ipv6 import clean_ipv6_address @@ -487,6 +489,7 @@ class RegexField(CharField): regex = property(_get_regex, _set_regex) class EmailField(CharField): + widget = EmailInput default_error_messages = { 'invalid': _('Enter a valid email address.'), } diff --git a/django/forms/widgets.py b/django/forms/widgets.py index 303844d44b..f201e914dd 100644 --- a/django/forms/widgets.py +++ b/django/forms/widgets.py @@ -22,7 +22,7 @@ from django.utils.safestring import mark_safe from django.utils import datetime_safe, formats, six __all__ = ( - 'Media', 'MediaDefiningClass', 'Widget', 'TextInput', 'PasswordInput', + 'Media', 'MediaDefiningClass', 'Widget', 'TextInput', 'EmailInput', 'PasswordInput', 'HiddenInput', 'MultipleHiddenInput', 'ClearableFileInput', 'FileInput', 'DateInput', 'DateTimeInput', 'TimeInput', 'Textarea', 'CheckboxInput', 'Select', 'NullBooleanSelect', 'SelectMultiple', 'RadioSelect', @@ -251,6 +251,10 @@ class TextInput(Input): super(TextInput, self).__init__(attrs) +class EmailInput(TextInput): + input_type = 'email' + + class PasswordInput(TextInput): input_type = 'password' diff --git a/docs/ref/forms/api.txt b/docs/ref/forms/api.txt index d1f877ff65..44e4684c1d 100644 --- a/docs/ref/forms/api.txt +++ b/docs/ref/forms/api.txt @@ -270,7 +270,7 @@ simply ``print`` it:: >>> print(f) - + If the form is bound to data, the HTML output will include that data @@ -287,7 +287,7 @@ include ``checked="checked"`` if appropriate:: >>> print(f) - + This default output is a two-column HTML table, with a ```` for each field. @@ -297,8 +297,9 @@ Notice the following: ```` tags, nor does it include the ```` and ```` tags or an ```` tag. It's your job to do that. -* Each field type has a default HTML representation. ``CharField`` and - ``EmailField`` are represented by an ````. +* Each field type has a default HTML representation. ``CharField`` is + represented by an ```` and ``EmailField`` by an + ````. ``BooleanField`` is represented by an ````. Note these are merely sensible defaults; you can specify which HTML to use for a given field by using widgets, which we'll explain shortly. @@ -335,7 +336,7 @@ a form object, and each rendering method returns a Unicode object. >>> print(f.as_p())

      -

      +

      ``as_ul()`` @@ -350,11 +351,11 @@ a form object, and each rendering method returns a Unicode object. >>> f = ContactForm() >>> f.as_ul() - u'
    • \n
    • \n
    • \n
    • ' + u'
    • \n
    • \n
    • \n
    • ' >>> print(f.as_ul())
    • -
    • +
    • ``as_table()`` @@ -368,11 +369,11 @@ a form object, and each rendering method returns a Unicode object. >>> f = ContactForm() >>> f.as_table() - u'\n\n\n' + u'\n\n\n' >>> print(f.as_table()) - + Styling required or erroneous form rows @@ -431,17 +432,17 @@ tags nor ``id`` attributes:: >>> print(f.as_table()) Subject: Message: - Sender: + Sender: Cc myself: >>> print(f.as_ul())
    • Subject:
    • Message:
    • -
    • Sender:
    • +
    • Sender:
    • Cc myself:
    • >>> print(f.as_p())

      Subject:

      Message:

      -

      Sender:

      +

      Sender:

      Cc myself:

      If ``auto_id`` is set to ``True``, then the form output *will* include @@ -452,17 +453,17 @@ field:: >>> print(f.as_table()) - + >>> print(f.as_ul())
    • -
    • +
    • >>> print(f.as_p())

      -

      +

      If ``auto_id`` is set to a string containing the format character ``'%s'``, @@ -475,17 +476,17 @@ attributes based on the format string. For example, for a format string >>> print(f.as_table()) - + >>> print(f.as_ul())
    • -
    • +
    • >>> print(f.as_p())

      -

      +

      If ``auto_id`` is set to any other true value -- such as a string that doesn't @@ -501,13 +502,13 @@ entirely, using the ``label_suffix`` parameter:: >>> print(f.as_ul())
    • -
    • +
    • >>> f = ContactForm(auto_id='id_for_%s', label_suffix=' ->') >>> print(f.as_ul())
    • -
    • +
    • Note that the label suffix is added only if the last character of the @@ -539,19 +540,19 @@ method you're using:: >>> print(f.as_table()) Subject:
      • This field is required.
      Message: - Sender:
      • Enter a valid email address.
      + Sender:
      • Enter a valid email address.
      Cc myself: >>> print(f.as_ul())
      • This field is required.
      Subject:
    • Message:
    • -
      • Enter a valid email address.
      Sender:
    • +
      • Enter a valid email address.
      Sender:
    • Cc myself:
    • >>> print(f.as_p())

      • This field is required.

      Subject:

      Message:

      • Enter a valid email address.

      -

      Sender:

      +

      Sender:

      Cc myself:

      Customizing the error list format @@ -574,7 +575,7 @@ pass that in at construction time::

      Subject:

      Message:

      Enter a valid email address.
      -

      Sender:

      +

      Sender:

      Cc myself:

      More granular output @@ -604,7 +605,7 @@ To retrieve all ``BoundField`` objects, iterate the form:: >>> for boundfield in form: print(boundfield) - + The field-specific output honors the form object's ``auto_id`` setting:: @@ -756,7 +757,7 @@ fields are ordered first:: >>> print(f.as_ul())
    • Subject:
    • Message:
    • -
    • Sender:
    • +
    • Sender:
    • Cc myself:
    • Priority:
    • diff --git a/docs/ref/forms/fields.txt b/docs/ref/forms/fields.txt index 28b7e49d2d..8bfe77cc20 100644 --- a/docs/ref/forms/fields.txt +++ b/docs/ref/forms/fields.txt @@ -212,17 +212,17 @@ fields. We've specified ``auto_id=False`` to simplify the output:: >>> print(f.as_table()) Subject:
      100 characters max. Message: - Sender:
      A valid email address, please. + Sender:
      A valid email address, please. Cc myself: >>> print(f.as_ul()))
    • Subject: 100 characters max.
    • Message:
    • -
    • Sender: A valid email address, please.
    • +
    • Sender: A valid email address, please.
    • Cc myself:
    • >>> print(f.as_p())

      Subject: 100 characters max.

      Message:

      -

      Sender: A valid email address, please.

      +

      Sender: A valid email address, please.

      Cc myself:

      ``error_messages`` @@ -489,7 +489,7 @@ For each field, we describe the default widget used if you don't specify .. class:: EmailField(**kwargs) - * Default widget: :class:`TextInput` + * Default widget: :class:`EmailInput` * Empty value: ``''`` (an empty string) * Normalizes to: A Unicode object. * Validates that the given value is a valid email address, using a diff --git a/docs/ref/forms/widgets.txt b/docs/ref/forms/widgets.txt index bc1270094b..9105a41b25 100644 --- a/docs/ref/forms/widgets.txt +++ b/docs/ref/forms/widgets.txt @@ -392,7 +392,16 @@ These widgets make use of the HTML elements ``input`` and ``textarea``. .. class:: TextInput - Text input: ```` + Text input: ```` + +``EmailInput`` +~~~~~~~~~~~~~~ + +.. class:: EmailInput + + .. versionadded:: 1.6 + + Text input: ```` ``PasswordInput`` ~~~~~~~~~~~~~~~~~ diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 29ecad3e9f..03341e586b 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -31,6 +31,9 @@ Minor features * Added :meth:`~django.db.models.query.QuerySet.earliest` for symmetry with :meth:`~django.db.models.query.QuerySet.latest`. +* The default widgets for :class:`~django.forms.EmailField` use + the new type attribute available in HTML5 (type='email'). + Backwards incompatible changes in 1.6 ===================================== @@ -39,6 +42,10 @@ Backwards incompatible changes in 1.6 :meth:`~django.db.models.query.QuerySet.none` has been called: ``isinstance(qs.none(), EmptyQuerySet)`` +* If your CSS/Javascript code used to access HTML input widgets by type, you + should review it as ``type='text'`` widgets might be now output as + ``type='email'`` depending on their corresponding field type. + .. warning:: In addition to the changes outlined in this section, be sure to review the diff --git a/docs/topics/forms/index.txt b/docs/topics/forms/index.txt index a3c17e1555..78f51f3fcc 100644 --- a/docs/topics/forms/index.txt +++ b/docs/topics/forms/index.txt @@ -223,7 +223,7 @@ wrapped in a paragraph. Here's the output for our example template::

      -

      +

      diff --git a/tests/regressiontests/forms/tests/extra.py b/tests/regressiontests/forms/tests/extra.py index 762b774a93..b5f36dc981 100644 --- a/tests/regressiontests/forms/tests/extra.py +++ b/tests/regressiontests/forms/tests/extra.py @@ -631,7 +631,7 @@ class FormsExtraTestCase(TestCase, AssertFormErrorsMixin): f = CommentForm(data, auto_id=False, error_class=DivErrorList) self.assertHTMLEqual(f.as_p(), """

      Name:

      Enter a valid email address.
      -

      Email:

      +

      Email:

      This field is required.

      Comment:

      """) diff --git a/tests/regressiontests/forms/tests/fields.py b/tests/regressiontests/forms/tests/fields.py index c533370b68..aa03377d44 100644 --- a/tests/regressiontests/forms/tests/fields.py +++ b/tests/regressiontests/forms/tests/fields.py @@ -53,6 +53,11 @@ def fix_os_paths(x): class FieldsTests(SimpleTestCase): + def assertWidgetRendersTo(self, field, to): + class _Form(Form): + f = field + self.assertHTMLEqual(str(_Form()['f']), to) + def test_field_sets_widget_is_required(self): self.assertTrue(Field(required=True).widget.is_required) self.assertFalse(Field(required=False).widget.is_required) @@ -545,6 +550,7 @@ class FieldsTests(SimpleTestCase): def test_emailfield_1(self): f = EmailField() + self.assertWidgetRendersTo(f, '') self.assertRaisesMessage(ValidationError, "'This field is required.'", f.clean, '') self.assertRaisesMessage(ValidationError, "'This field is required.'", f.clean, None) self.assertEqual('person@example.com', f.clean('person@example.com')) @@ -569,6 +575,7 @@ class FieldsTests(SimpleTestCase): def test_emailfield_min_max_length(self): f = EmailField(min_length=10, max_length=15) + self.assertWidgetRendersTo(f, '') self.assertRaisesMessage(ValidationError, "'Ensure this value has at least 10 characters (it has 9).'", f.clean, 'a@foo.com') self.assertEqual('alf@foo.com', f.clean('alf@foo.com')) self.assertRaisesMessage(ValidationError, "'Ensure this value has at most 15 characters (it has 20).'", f.clean, 'alf123456788@foo.com') diff --git a/tests/regressiontests/forms/tests/forms.py b/tests/regressiontests/forms/tests/forms.py index ade06845f8..f2fa78e229 100644 --- a/tests/regressiontests/forms/tests/forms.py +++ b/tests/regressiontests/forms/tests/forms.py @@ -245,11 +245,11 @@ class FormsTestCase(TestCase): get_spam = BooleanField() f = SignupForm(auto_id=False) - self.assertHTMLEqual(str(f['email']), '') + self.assertHTMLEqual(str(f['email']), '') self.assertHTMLEqual(str(f['get_spam']), '') f = SignupForm({'email': 'test@example.com', 'get_spam': True}, auto_id=False) - self.assertHTMLEqual(str(f['email']), '') + self.assertHTMLEqual(str(f['email']), '') self.assertHTMLEqual(str(f['get_spam']), '') # 'True' or 'true' should be rendered without a value attribute @@ -1739,7 +1739,7 @@ class FormsTestCase(TestCase): -
    • +
      • This field is required.
    • """) self.assertHTMLEqual(p.as_p(), """
      • This field is required.
      @@ -1749,7 +1749,7 @@ class FormsTestCase(TestCase):

      -

      +

      • This field is required.

      """) @@ -1759,7 +1759,7 @@ class FormsTestCase(TestCase): - +
      • This field is required.
      """) def test_label_split_datetime_not_displayed(self): -- cgit v1.3 From f7394d2c32b4b4717066f254adaa513d08ab32a4 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Mon, 28 Jan 2013 14:24:48 +0100 Subject: Added HTML5 url input type Refs #16630. --- django/forms/fields.py | 3 ++- django/forms/widgets.py | 7 ++++++- docs/ref/forms/api.txt | 2 +- docs/ref/forms/fields.txt | 8 ++++---- docs/ref/forms/widgets.txt | 13 +++++++++++-- docs/releases/1.6.txt | 7 ++++--- tests/regressiontests/forms/tests/fields.py | 2 ++ tests/regressiontests/generic_inline_admin/tests.py | 16 ++++++++-------- 8 files changed, 38 insertions(+), 20 deletions(-) (limited to 'docs') diff --git a/django/forms/fields.py b/django/forms/fields.py index 8a3dbfeb49..9fbbce107c 100644 --- a/django/forms/fields.py +++ b/django/forms/fields.py @@ -19,7 +19,7 @@ from django.core import validators from django.core.exceptions import ValidationError from django.forms.util import ErrorList, from_current_timezone, to_current_timezone from django.forms.widgets import ( - TextInput, PasswordInput, EmailInput, HiddenInput, + TextInput, PasswordInput, EmailInput, URLInput, HiddenInput, MultipleHiddenInput, ClearableFileInput, CheckboxInput, Select, NullBooleanSelect, SelectMultiple, DateInput, DateTimeInput, TimeInput, SplitDateTimeWidget, SplitHiddenDateTimeWidget, FILE_INPUT_CONTRADICTION @@ -612,6 +612,7 @@ class ImageField(FileField): return f class URLField(CharField): + widget = URLInput default_error_messages = { 'invalid': _('Enter a valid URL.'), } diff --git a/django/forms/widgets.py b/django/forms/widgets.py index f201e914dd..e906ed5bc6 100644 --- a/django/forms/widgets.py +++ b/django/forms/widgets.py @@ -22,7 +22,8 @@ from django.utils.safestring import mark_safe from django.utils import datetime_safe, formats, six __all__ = ( - 'Media', 'MediaDefiningClass', 'Widget', 'TextInput', 'EmailInput', 'PasswordInput', + 'Media', 'MediaDefiningClass', 'Widget', 'TextInput', + 'EmailInput', 'URLInput', 'PasswordInput', 'HiddenInput', 'MultipleHiddenInput', 'ClearableFileInput', 'FileInput', 'DateInput', 'DateTimeInput', 'TimeInput', 'Textarea', 'CheckboxInput', 'Select', 'NullBooleanSelect', 'SelectMultiple', 'RadioSelect', @@ -255,6 +256,10 @@ class EmailInput(TextInput): input_type = 'email' +class URLInput(TextInput): + input_type = 'url' + + class PasswordInput(TextInput): input_type = 'password' diff --git a/docs/ref/forms/api.txt b/docs/ref/forms/api.txt index 44e4684c1d..4c5c275806 100644 --- a/docs/ref/forms/api.txt +++ b/docs/ref/forms/api.txt @@ -161,7 +161,7 @@ precedence:: >>> f = CommentForm(initial={'name': 'instance'}, auto_id=False) >>> print(f) Name: - Url: + Url: Comment: Accessing "clean" data diff --git a/docs/ref/forms/fields.txt b/docs/ref/forms/fields.txt index 8bfe77cc20..2e4e779f0c 100644 --- a/docs/ref/forms/fields.txt +++ b/docs/ref/forms/fields.txt @@ -112,7 +112,7 @@ We've specified ``auto_id=False`` to simplify the output:: >>> f = CommentForm(auto_id=False) >>> print(f) Your name: - Your Web site: + Your Web site: Comment: ``initial`` @@ -135,7 +135,7 @@ field is initialized to a particular value. For example:: >>> f = CommentForm(auto_id=False) >>> print(f) Name: - Url: + Url: Comment: You may be thinking, why not just pass a dictionary of the initial values as @@ -150,7 +150,7 @@ and the HTML output will include any validation errors:: >>> f = CommentForm(default_data, auto_id=False) >>> print(f) Name: - Url:
      • Enter a valid URL.
      + Url:
      • Enter a valid URL.
      Comment:
      • This field is required.
      This is why ``initial`` values are only displayed for unbound forms. For bound @@ -805,7 +805,7 @@ For each field, we describe the default widget used if you don't specify .. class:: URLField(**kwargs) - * Default widget: :class:`TextInput` + * Default widget: :class:`URLInput` * Empty value: ``''`` (an empty string) * Normalizes to: A Unicode object. * Validates that the given value is a valid URL. diff --git a/docs/ref/forms/widgets.txt b/docs/ref/forms/widgets.txt index 9105a41b25..cb5224fd3c 100644 --- a/docs/ref/forms/widgets.txt +++ b/docs/ref/forms/widgets.txt @@ -139,7 +139,7 @@ provided for each widget will be rendered exactly the same:: >>> f = CommentForm(auto_id=False) >>> f.as_table() Name: - Url: + Url: Comment: On a real Web page, you probably don't want every widget to look the same. You @@ -160,7 +160,7 @@ Django will then include the extra attributes in the rendered output: >>> f = CommentForm(auto_id=False) >>> f.as_table() Name: - Url: + Url: Comment: .. _styling-widget-classes: @@ -403,6 +403,15 @@ These widgets make use of the HTML elements ``input`` and ``textarea``. Text input: ```` +``URLInput`` +~~~~~~~~~~~~ + +.. class:: URLInput + + .. versionadded:: 1.6 + + Text input: ```` + ``PasswordInput`` ~~~~~~~~~~~~~~~~~ diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 03341e586b..e0c07c40fe 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -31,8 +31,9 @@ Minor features * Added :meth:`~django.db.models.query.QuerySet.earliest` for symmetry with :meth:`~django.db.models.query.QuerySet.latest`. -* The default widgets for :class:`~django.forms.EmailField` use - the new type attribute available in HTML5 (type='email'). +* The default widgets for :class:`~django.forms.EmailField` and + :class:`~django.forms.URLField` use the new type attributes available in + HTML5 (type='email', type='url'). Backwards incompatible changes in 1.6 ===================================== @@ -44,7 +45,7 @@ Backwards incompatible changes in 1.6 * If your CSS/Javascript code used to access HTML input widgets by type, you should review it as ``type='text'`` widgets might be now output as - ``type='email'`` depending on their corresponding field type. + ``type='email'`` or ``type='url'`` depending on their corresponding field type. .. warning:: diff --git a/tests/regressiontests/forms/tests/fields.py b/tests/regressiontests/forms/tests/fields.py index aa03377d44..fc7fc70da4 100644 --- a/tests/regressiontests/forms/tests/fields.py +++ b/tests/regressiontests/forms/tests/fields.py @@ -639,6 +639,7 @@ class FieldsTests(SimpleTestCase): def test_urlfield_1(self): f = URLField() + self.assertWidgetRendersTo(f, '') self.assertRaisesMessage(ValidationError, "'This field is required.'", f.clean, '') self.assertRaisesMessage(ValidationError, "'This field is required.'", f.clean, None) self.assertEqual('http://localhost/', f.clean('http://localhost')) @@ -690,6 +691,7 @@ class FieldsTests(SimpleTestCase): def test_urlfield_5(self): f = URLField(min_length=15, max_length=20) + self.assertWidgetRendersTo(f, '') self.assertRaisesMessage(ValidationError, "'Ensure this value has at least 15 characters (it has 13).'", f.clean, 'http://f.com') self.assertEqual('http://example.com/', f.clean('http://example.com')) self.assertRaisesMessage(ValidationError, "'Ensure this value has at most 20 characters (it has 38).'", f.clean, 'http://abcdefghijklmnopqrstuvwxyz.com') diff --git a/tests/regressiontests/generic_inline_admin/tests.py b/tests/regressiontests/generic_inline_admin/tests.py index fea30b4946..f03641d292 100644 --- a/tests/regressiontests/generic_inline_admin/tests.py +++ b/tests/regressiontests/generic_inline_admin/tests.py @@ -102,22 +102,22 @@ class GenericAdminViewTest(TestCase): # Works with no queryset formset = EpisodeMediaFormSet(instance=e) self.assertEqual(len(formset.forms), 5) - self.assertHTMLEqual(formset.forms[0].as_p(), '

      ' % self.mp3_media_pk) - self.assertHTMLEqual(formset.forms[1].as_p(), '

      ' % self.png_media_pk) - self.assertHTMLEqual(formset.forms[2].as_p(), '

      ') + self.assertHTMLEqual(formset.forms[0].as_p(), '

      ' % self.mp3_media_pk) + self.assertHTMLEqual(formset.forms[1].as_p(), '

      ' % self.png_media_pk) + self.assertHTMLEqual(formset.forms[2].as_p(), '

      ') # A queryset can be used to alter display ordering formset = EpisodeMediaFormSet(instance=e, queryset=Media.objects.order_by('url')) self.assertEqual(len(formset.forms), 5) - self.assertHTMLEqual(formset.forms[0].as_p(), '

      ' % self.png_media_pk) - self.assertHTMLEqual(formset.forms[1].as_p(), '

      ' % self.mp3_media_pk) - self.assertHTMLEqual(formset.forms[2].as_p(), '

      ') + self.assertHTMLEqual(formset.forms[0].as_p(), '

      ' % self.png_media_pk) + self.assertHTMLEqual(formset.forms[1].as_p(), '

      ' % self.mp3_media_pk) + self.assertHTMLEqual(formset.forms[2].as_p(), '

      ') # Works with a queryset that omits items formset = EpisodeMediaFormSet(instance=e, queryset=Media.objects.filter(url__endswith=".png")) self.assertEqual(len(formset.forms), 4) - self.assertHTMLEqual(formset.forms[0].as_p(), '

      ' % self.png_media_pk) - self.assertHTMLEqual(formset.forms[1].as_p(), '

      ') + self.assertHTMLEqual(formset.forms[0].as_p(), '

      ' % self.png_media_pk) + self.assertHTMLEqual(formset.forms[1].as_p(), '

      ') def testGenericInlineFormsetFactory(self): # Regression test for #10522. -- cgit v1.3 From 537d44b1b937c6857ded0a2dc5703c61c5e980b4 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 29 Jan 2013 06:12:33 -0500 Subject: Fixed #19683 - Added a missing import in signing example. Thanks sunsongxp@ for the report. --- docs/topics/signing.txt | 1 + 1 file changed, 1 insertion(+) (limited to 'docs') diff --git a/docs/topics/signing.txt b/docs/topics/signing.txt index 0758ce8970..68afd6962a 100644 --- a/docs/topics/signing.txt +++ b/docs/topics/signing.txt @@ -58,6 +58,7 @@ You can retrieve the original value using the ``unsign`` method:: If the signature or value have been altered in any way, a ``django.core.signing.BadSignature`` exception will be raised:: + >>> from django.core import signing >>> value += 'm' >>> try: ... original = signer.unsign(value) -- cgit v1.3 From b99a4e1073e5504ec8f40447a8e9fd1066c76b7f Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Tue, 29 Jan 2013 14:05:34 +0100 Subject: Updated metrics on the documentation. --- docs/intro/whatsnext.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'docs') diff --git a/docs/intro/whatsnext.txt b/docs/intro/whatsnext.txt index 500a858d47..a677bc9efd 100644 --- a/docs/intro/whatsnext.txt +++ b/docs/intro/whatsnext.txt @@ -4,8 +4,8 @@ What to read next So you've read all the :doc:`introductory material ` and have decided you'd like to keep using Django. We've only just scratched the surface -with this intro (in fact, if you've read every single word you've still read -less than 10% of the overall documentation). +with this intro (in fact, if you've read every single word, you've read about +5% of the overall documentation). So what's next? @@ -23,9 +23,9 @@ to write a document about how to read the document about documentation.) Finding documentation ===================== -Django's got a *lot* of documentation -- almost 200,000 words -- so finding what -you need can sometimes be tricky. A few good places to start are the :ref:`search` -and the :ref:`genindex`. +Django's got a *lot* of documentation -- almost 450,000 words and counting -- +so finding what you need can sometimes be tricky. A few good places to start +are the :ref:`search` and the :ref:`genindex`. Or you can just browse around! -- cgit v1.3 From c6560e4843c94da7eab435b71288579d608c26c0 Mon Sep 17 00:00:00 2001 From: Lucian Ursu Date: Tue, 29 Jan 2013 16:12:13 +0200 Subject: Fixed #19690 - Removed unused import Removed an import of a class unused in the Ajax example. --- docs/topics/class-based-views/generic-editing.txt | 1 - 1 file changed, 1 deletion(-) (limited to 'docs') diff --git a/docs/topics/class-based-views/generic-editing.txt b/docs/topics/class-based-views/generic-editing.txt index 2f8b8b0711..8cd34f8ad9 100644 --- a/docs/topics/class-based-views/generic-editing.txt +++ b/docs/topics/class-based-views/generic-editing.txt @@ -225,7 +225,6 @@ works for AJAX requests as well as 'normal' form POSTs:: from django.http import HttpResponse from django.views.generic.edit import CreateView - from django.views.generic.detail import SingleObjectTemplateResponseMixin class AjaxableResponseMixin(object): """ -- cgit v1.3 From ee26797cff6ef17817c58e6a2f86db81c21f9800 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 29 Jan 2013 08:45:40 -0700 Subject: Fixed typos in docs and comments --- django/contrib/gis/gdal/geometries.py | 2 +- django/contrib/gis/geos/prototypes/geom.py | 2 +- django/contrib/gis/utils/srs.py | 2 +- django/contrib/staticfiles/views.py | 2 +- django/db/models/query.py | 2 +- django/middleware/csrf.py | 4 ++-- docs/internals/contributing/committing-code.txt | 2 +- docs/internals/contributing/writing-code/working-with-git.txt | 4 ++-- docs/intro/overview.txt | 4 +++- docs/misc/api-stability.txt | 3 ++- docs/ref/contrib/admin/index.txt | 2 +- docs/ref/contrib/gis/install/index.txt | 2 +- docs/topics/auth/default.txt | 2 +- tests/regressiontests/admin_views/tests.py | 2 +- tests/regressiontests/builtin_server/tests.py | 2 +- 15 files changed, 20 insertions(+), 17 deletions(-) (limited to 'docs') diff --git a/django/contrib/gis/gdal/geometries.py b/django/contrib/gis/gdal/geometries.py index eb67059245..0d75620b4e 100644 --- a/django/contrib/gis/gdal/geometries.py +++ b/django/contrib/gis/gdal/geometries.py @@ -76,7 +76,7 @@ class OGRGeometry(GDALBase): str_instance = isinstance(geom_input, six.string_types) - # If HEX, unpack input to to a binary buffer. + # If HEX, unpack input to a binary buffer. if str_instance and hex_regex.match(geom_input): geom_input = memoryview(a2b_hex(geom_input.upper().encode())) str_instance = False diff --git a/django/contrib/gis/geos/prototypes/geom.py b/django/contrib/gis/geos/prototypes/geom.py index 5a614fe5f0..2683c2e25d 100644 --- a/django/contrib/gis/geos/prototypes/geom.py +++ b/django/contrib/gis/geos/prototypes/geom.py @@ -27,7 +27,7 @@ def bin_constructor(func): # HEX & WKB output def bin_output(func): - "Generates a prototype for the routines that return a a sized string." + "Generates a prototype for the routines that return a sized string." func.argtypes = [GEOM_PTR, POINTER(c_size_t)] func.errcheck = check_sized_string func.restype = c_uchar_p diff --git a/django/contrib/gis/utils/srs.py b/django/contrib/gis/utils/srs.py index 07a593d90e..fe2f291cb8 100644 --- a/django/contrib/gis/utils/srs.py +++ b/django/contrib/gis/utils/srs.py @@ -24,7 +24,7 @@ def add_srs_entry(srs, auth_name='EPSG', auth_srid=None, ref_sys_name=None, Defaults to the SRID determined by GDAL. ref_sys_name: - For SpatiaLite users only, sets the value of the the `ref_sys_name` field. + For SpatiaLite users only, sets the value of the `ref_sys_name` field. Defaults to the name determined by GDAL. database: diff --git a/django/contrib/staticfiles/views.py b/django/contrib/staticfiles/views.py index 85459812ad..fe095ed225 100644 --- a/django/contrib/staticfiles/views.py +++ b/django/contrib/staticfiles/views.py @@ -32,7 +32,7 @@ def serve(request, path, document_root=None, insecure=False, **kwargs): """ if not settings.DEBUG and not insecure: raise ImproperlyConfigured("The staticfiles view can only be used in " - "debug mode or if the the --insecure " + "debug mode or if the --insecure " "option of 'runserver' is used") normalized_path = posixpath.normpath(unquote(path)).lstrip('/') absolute_path = finders.find(normalized_path) diff --git a/django/db/models/query.py b/django/db/models/query.py index 68d7931729..eda71d2478 100644 --- a/django/db/models/query.py +++ b/django/db/models/query.py @@ -1587,7 +1587,7 @@ def prefetch_related_objects(result_cache, related_lookups): continue done_lookups.add(lookup) - # Top level, the list of objects to decorate is the the result cache + # Top level, the list of objects to decorate is the result cache # from the primary QuerySet. It won't be for deeper levels. obj_list = result_cache diff --git a/django/middleware/csrf.py b/django/middleware/csrf.py index b2eb0df3f5..339f42a110 100644 --- a/django/middleware/csrf.py +++ b/django/middleware/csrf.py @@ -41,10 +41,10 @@ def _get_new_csrf_key(): def get_token(request): """ - Returns the the CSRF token required for a POST form. The token is an + Returns the CSRF token required for a POST form. The token is an alphanumeric value. - A side effect of calling this function is to make the the csrf_protect + A side effect of calling this function is to make the csrf_protect decorator and the CsrfViewMiddleware add a CSRF cookie and a 'Vary: Cookie' header to the outgoing response. For this reason, you may need to use this function lazily, as is done by the csrf context processor. diff --git a/docs/internals/contributing/committing-code.txt b/docs/internals/contributing/committing-code.txt index 67dda02f8b..bc2f97a485 100644 --- a/docs/internals/contributing/committing-code.txt +++ b/docs/internals/contributing/committing-code.txt @@ -116,7 +116,7 @@ Practicality beats purity, so it is up to each committer to decide how much history mangling to do for a pull request. The main points are engaging the community, getting work done, and having a usable commit history. -.. _committing-guidlines: +.. _committing-guidelines: Committing guidelines --------------------- diff --git a/docs/internals/contributing/writing-code/working-with-git.txt b/docs/internals/contributing/writing-code/working-with-git.txt index d4a95ae45a..dcfdd9e85b 100644 --- a/docs/internals/contributing/writing-code/working-with-git.txt +++ b/docs/internals/contributing/writing-code/working-with-git.txt @@ -81,7 +81,7 @@ commit them:: git commit When writing the commit message, follow the :ref:`commit message -guidelines ` to ease the work of the committer. If +guidelines ` to ease the work of the committer. If you're uncomfortable with English, try at least to describe precisely what the commit does. @@ -121,7 +121,7 @@ a pull request at GitHub. A good pull request means: * well-formed messages for each commit: a summary line and then paragraphs wrapped at 72 characters thereafter -- see the :ref:`committing guidelines - ` for more details, + ` for more details, * documentation and tests, if needed -- actually tests are always needed, except for documentation changes. diff --git a/docs/intro/overview.txt b/docs/intro/overview.txt index 7cca8bf51b..4f3cd47310 100644 --- a/docs/intro/overview.txt +++ b/docs/intro/overview.txt @@ -56,7 +56,9 @@ Enjoy the free API ================== With that, you've got a free, and rich, :doc:`Python API ` to -access your data. The API is created on the fly, no code generation necessary:: +access your data. The API is created on the fly, no code generation necessary: + +.. code-block:: python # Import the models we created from our "news" app >>> from news.models import Reporter, Article diff --git a/docs/misc/api-stability.txt b/docs/misc/api-stability.txt index 8ae3c716df..3c265be04f 100644 --- a/docs/misc/api-stability.txt +++ b/docs/misc/api-stability.txt @@ -118,7 +118,8 @@ Security fixes If we become aware of a security problem -- hopefully by someone following our :ref:`security reporting policy ` -- we'll do -everything necessary to fix it. This might mean breaking backwards compatibility; security trumps the compatibility guarantee. +everything necessary to fix it. This might mean breaking backwards +compatibility; security trumps the compatibility guarantee. Contributed applications (``django.contrib``) --------------------------------------------- diff --git a/docs/ref/contrib/admin/index.txt b/docs/ref/contrib/admin/index.txt index a862d55875..1c19499d2a 100644 --- a/docs/ref/contrib/admin/index.txt +++ b/docs/ref/contrib/admin/index.txt @@ -824,7 +824,7 @@ subclass:: added last after all editable fields. A read-only field can not only display data from a model's field, it can - also display the output of a a model's method or a method of the + also display the output of a model's method or a method of the ``ModelAdmin`` class itself. This is very similar to the way :attr:`ModelAdmin.list_display` behaves. This provides an easy way to use the admin interface to provide feedback on the status of the objects being diff --git a/docs/ref/contrib/gis/install/index.txt b/docs/ref/contrib/gis/install/index.txt index 35c01c9b7e..2987539f33 100644 --- a/docs/ref/contrib/gis/install/index.txt +++ b/docs/ref/contrib/gis/install/index.txt @@ -330,7 +330,7 @@ described above, ``psycopg2`` may be installed using the following command:: .. note:: - If you don't have ``pip``, follow the the :ref:`installation instructions + If you don't have ``pip``, follow the :ref:`installation instructions ` to install it. .. _fink: diff --git a/docs/topics/auth/default.txt b/docs/topics/auth/default.txt index 569738569d..1a57770b2b 100644 --- a/docs/topics/auth/default.txt +++ b/docs/topics/auth/default.txt @@ -82,7 +82,7 @@ Changing passwords Django does not store raw (clear text) passwords on the user model, but only a hash (see :doc:`documentation of how passwords are managed ` for full details). Because of this, do not attempt to -manipulate the password attribute of the user directly. This is why a a helper +manipulate the password attribute of the user directly. This is why a helper function is used when creating a user. To change a user's password, you have several options: diff --git a/tests/regressiontests/admin_views/tests.py b/tests/regressiontests/admin_views/tests.py index d7d01e6a92..1633fba6b5 100644 --- a/tests/regressiontests/admin_views/tests.py +++ b/tests/regressiontests/admin_views/tests.py @@ -2454,7 +2454,7 @@ class TestCustomChangeList(TestCase): self.assertEqual(response.status_code, 302) # redirect somewhere # Hit the page once to get messages out of the queue message list response = self.client.get('/test_admin/%s/admin_views/gadget/' % self.urlbit) - # Ensure that that data is still not visible on the page + # Ensure that data is still not visible on the page response = self.client.get('/test_admin/%s/admin_views/gadget/' % self.urlbit) self.assertEqual(response.status_code, 200) self.assertNotContains(response, 'First Gadget') diff --git a/tests/regressiontests/builtin_server/tests.py b/tests/regressiontests/builtin_server/tests.py index c8dc77e42e..041bb3c319 100644 --- a/tests/regressiontests/builtin_server/tests.py +++ b/tests/regressiontests/builtin_server/tests.py @@ -7,7 +7,7 @@ from django.utils.unittest import TestCase # # Tests for #9659: wsgi.file_wrapper in the builtin server. -# We need to mock a couple of of handlers and keep track of what +# We need to mock a couple of handlers and keep track of what # gets called when using a couple kinds of WSGI apps. # -- cgit v1.3 From 47ddd6a4082d55d8856b7e6beac553485dd627f7 Mon Sep 17 00:00:00 2001 From: Ramiro Morales Date: Sun, 20 Jan 2013 15:07:10 -0300 Subject: Fixed #19552 -- Enhanced makemessages handling of ``{# #}``-style template comments. They are simply ignored now. This allows for a more correct behavior when they are placed before translatable constructs on the same line. Previously, the latter were wrongly ignored because the former were preserved when converting template code to the internal Python-syntax form later fed to xgettext but Python has no ``/* ... */``-style comments. Also, special comments directed to translators are now only taken in account when they are located at the end of a line. e.g.:: {# Translators: ignored #}{% trans "Literal A" %}{# Translators: valid, associated with "Literal B" below #} {% trans "Literal B" %} Behavior of ``{% comment %}...{% endcomment %}``tags remains unchanged. Thanks juneih at redpill-linpro dot com for the report and Claude for his work on the issue. --- django/utils/translation/__init__.py | 5 ++ django/utils/translation/trans_real.py | 31 ++++++++- docs/releases/1.6.txt | 20 ++++++ docs/topics/i18n/translation.txt | 75 ++++++++++++++++++++-- docs/topics/templates.txt | 2 + tests/regressiontests/i18n/commands/extraction.py | 60 +++++++++++++++++ .../i18n/commands/templates/comments.thtml | 13 ++++ 7 files changed, 200 insertions(+), 6 deletions(-) create mode 100644 tests/regressiontests/i18n/commands/templates/comments.thtml (limited to 'docs') diff --git a/django/utils/translation/__init__.py b/django/utils/translation/__init__.py index f3cc6348f6..803bbb746a 100644 --- a/django/utils/translation/__init__.py +++ b/django/utils/translation/__init__.py @@ -21,6 +21,11 @@ __all__ = [ 'npgettext', 'npgettext_lazy', ] + +class TranslatorCommentWarning(SyntaxWarning): + pass + + # Here be dragons, so a short explanation of the logic won't hurt: # We are trying to solve two problems: (1) access settings, in particular # settings.USE_I18N, as late as possible, so that modules can be imported diff --git a/django/utils/translation/trans_real.py b/django/utils/translation/trans_real.py index cf6270cc0c..8014b5ea3a 100644 --- a/django/utils/translation/trans_real.py +++ b/django/utils/translation/trans_real.py @@ -7,6 +7,7 @@ import re import sys import gettext as gettext_module from threading import local +import warnings from django.utils.importlib import import_module from django.utils.encoding import force_str, force_text @@ -14,6 +15,7 @@ from django.utils._os import upath from django.utils.safestring import mark_safe, SafeData from django.utils import six from django.utils.six import StringIO +from django.utils.translation import TranslatorCommentWarning # Translations are cached in a dictionary for every language+app tuple. @@ -41,6 +43,7 @@ accept_language_re = re.compile(r''' language_code_prefix_re = re.compile(r'^/([\w-]+)(/|$)') + def to_locale(language, to_lower=False): """ Turns a language name (en-us) into a locale name (en_US). If 'to_lower' is @@ -468,6 +471,9 @@ def templatize(src, origin=None): plural = [] incomment = False comment = [] + lineno_comment_map = {} + comment_lineno_cache = None + for t in Lexer(src, origin).tokenize(): if incomment: if t.token_type == TOKEN_BLOCK and t.contents == 'endcomment': @@ -529,7 +535,27 @@ def templatize(src, origin=None): plural.append(contents) else: singular.append(contents) + else: + # Handle comment tokens (`{# ... #}`) plus other constructs on + # the same line: + if comment_lineno_cache is not None: + cur_lineno = t.lineno + t.contents.count('\n') + if comment_lineno_cache == cur_lineno: + if t.token_type != TOKEN_COMMENT: + for c in lineno_comment_map[comment_lineno_cache]: + filemsg = '' + if origin: + filemsg = 'file %s, ' % origin + warn_msg = ("The translator-targeted comment '%s' " + "(%sline %d) was ignored, because it wasn't the last item " + "on the line.") % (c, filemsg, comment_lineno_cache) + warnings.warn(warn_msg, TranslatorCommentWarning) + lineno_comment_map[comment_lineno_cache] = [] + else: + out.write('# %s' % ' | '.join(lineno_comment_map[comment_lineno_cache])) + comment_lineno_cache = None + if t.token_type == TOKEN_BLOCK: imatch = inline_re.match(t.contents) bmatch = block_re.match(t.contents) @@ -586,7 +612,10 @@ def templatize(src, origin=None): else: out.write(blankout(p, 'F')) elif t.token_type == TOKEN_COMMENT: - out.write(' # %s' % t.contents) + if t.contents.lstrip().startswith(TRANSLATOR_COMMENT_MARK): + lineno_comment_map.setdefault(t.lineno, + []).append(t.contents) + comment_lineno_cache = t.lineno else: out.write(blankout(t.contents, 'X')) return force_str(out.getvalue()) diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index e0c07c40fe..79fa3ffb86 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -47,6 +47,26 @@ Backwards incompatible changes in 1.6 should review it as ``type='text'`` widgets might be now output as ``type='email'`` or ``type='url'`` depending on their corresponding field type. +* Extraction of translatable literals from templates with the + :djadmin:`makemessages` command now correctly detects i18n constructs when + they are located after a ``{#`` / ``#}``-type comment on the same line. E.g.: + + .. code-block:: html+django + + {# A comment #}{% trans "This literal was incorrectly ignored. Not anymore" %} + +* (Related to the above item.) Validation of the placement of + :ref:`translator-comments-in-templates` specified using ``{#`` / ``#}`` is now + stricter. All translator comments not located at the end of their respective + lines in a template are ignored and a warning is generated by + :djadmin:`makemessages` when it finds them. E.g.: + + .. code-block:: html+django + + {# Translators: This is ignored #}{% trans "Translate me" %} + {{ title }}{# Translators: Extracted and associated with 'Welcome' below #} +

      {% trans "Welcome" %}

      + .. warning:: In addition to the changes outlined in this section, be sure to review the diff --git a/docs/topics/i18n/translation.txt b/docs/topics/i18n/translation.txt index 01f168bc10..3cf08e7ddf 100644 --- a/docs/topics/i18n/translation.txt +++ b/docs/topics/i18n/translation.txt @@ -142,14 +142,22 @@ preceding the string, e.g.:: # Translators: This message appears on the home page only output = ugettext("Welcome to my site.") -This also works in templates with the :ttag:`comment` tag: +The comment will then appear in the resulting ``.po`` file associated with the +translatable contruct located below it and should also be displayed by most +translation tools. -.. code-block:: html+django +.. note:: Just for completeness, this is the corresponding fragment of the + resulting ``.po`` file: + + .. code-block:: po - {% comment %}Translators: This is a text of the base template {% endcomment %} + #. Translators: This message appears on the home page only + # path/to/python/file.py:123 + msgid "Welcome to my site." + msgstr "" -The comment will then appear in the resulting ``.po`` file and should also be -displayed by most translation tools. +This also works in templates. See :ref:`translator-comments-in-templates` for +more details. Marking strings as no-op ------------------------ @@ -620,6 +628,63 @@ markers` using the ``context`` keyword: {% blocktrans with name=user.username context "greeting" %}Hi {{ name }}{% endblocktrans %} +.. _translator-comments-in-templates: + +Comments for translators in templates +------------------------------------- + +Just like with :ref:`Python code `, these notes for +translators can be specified using comments, either with the :ttag:`comment` +tag: + +.. code-block:: html+django + + {% comment %}Translators: View verb{% endcomment %} + {% trans "View" %} + + {% comment %}Translators: Short intro blurb{% endcomment %} +

      {% blocktrans %}A multiline translatable + literal.{% endblocktrans %}

      + +or with the ``{#`` ... ``#}`` :ref:`one-line comment constructs `: + +.. code-block:: html+django + + {# Translators: Label of a button that triggers search{% endcomment #} + + + {# Translators: This is a text of the base template #} + {% blocktrans %}Ambiguous translatable block of text{% endtransblock %} + +.. note:: Just for completeness, these are the corresponding fragments of the + resulting ``.po`` file: + + .. code-block:: po + + #. Translators: View verb + # path/to/template/file.html:10 + msgid "View" + msgstr "" + + #. Translators: Short intro blurb + # path/to/template/file.html:13 + msgid "" + "A multiline translatable" + "literal." + msgstr "" + + # ... + + #. Translators: Label of a button that triggers search + # path/to/template/file.html:100 + msgid "Go" + msgstr "" + + #. Translators: + # path/to/template/file.html:103 + msgid "Ambiguous translatable block of text" + msgstr "" + .. _template-translation-vars: Other tags diff --git a/docs/topics/templates.txt b/docs/topics/templates.txt index fb2119515b..58a3ee9870 100644 --- a/docs/topics/templates.txt +++ b/docs/topics/templates.txt @@ -250,6 +250,8 @@ You can also create your own custom template tags; see tags and filters available for a given site. See :doc:`/ref/contrib/admin/admindocs`. +.. _template-comments: + Comments ======== diff --git a/tests/regressiontests/i18n/commands/extraction.py b/tests/regressiontests/i18n/commands/extraction.py index ac8d8c1a09..0367d23ec6 100644 --- a/tests/regressiontests/i18n/commands/extraction.py +++ b/tests/regressiontests/i18n/commands/extraction.py @@ -4,6 +4,7 @@ from __future__ import unicode_literals import os import re import shutil +import warnings from django.core import management from django.test import SimpleTestCase @@ -11,6 +12,7 @@ from django.utils.encoding import force_text from django.utils._os import upath from django.utils import six from django.utils.six import StringIO +from django.utils.translation import TranslatorCommentWarning LOCALE='de' @@ -120,6 +122,7 @@ class BasicExtractorTests(ExtractorTests): self.assertFalse(os.path.exists('./templates/template_with_error.tpl.py')) def test_extraction_warning(self): + """test xgettext warning about multiple bare interpolation placeholders""" os.chdir(self.test_dir) shutil.copyfile('./code.sample', './code_sample.py') stdout = StringIO() @@ -172,6 +175,63 @@ class BasicExtractorTests(ExtractorTests): self.assertTrue('msgctxt "Special blocktrans context wrapped in double quotes"' in po_contents) self.assertTrue('msgctxt "Special blocktrans context wrapped in single quotes"' in po_contents) + def test_template_comments(self): + """Template comment tags on the same line of other constructs (#19552)""" + os.chdir(self.test_dir) + # Test detection/end user reporting of old, incorrect templates + # translator comments syntax + with warnings.catch_warnings(record=True) as ws: + warnings.simplefilter('always') + management.call_command('makemessages', locale=LOCALE, extensions=['thtml'], verbosity=0) + self.assertEqual(len(ws), 3) + for w in ws: + self.assertTrue(issubclass(w.category, TranslatorCommentWarning)) + six.assertRegex(self, str(ws[0].message), + r"The translator-targeted comment 'Translators: ignored i18n comment #1' \(file templates/comments.thtml, line 4\) was ignored, because it wasn't the last item on the line\." + ) + six.assertRegex(self, str(ws[1].message), + r"The translator-targeted comment 'Translators: ignored i18n comment #3' \(file templates/comments.thtml, line 6\) was ignored, because it wasn't the last item on the line\." + ) + six.assertRegex(self, str(ws[2].message), + r"The translator-targeted comment 'Translators: ignored i18n comment #4' \(file templates/comments.thtml, line 8\) was ignored, because it wasn't the last item on the line\." + ) + # Now test .po file contents + self.assertTrue(os.path.exists(self.PO_FILE)) + with open(self.PO_FILE, 'r') as fp: + po_contents = force_text(fp.read()) + + self.assertMsgId('Translatable literal #9a', po_contents) + self.assertFalse('ignored comment #1' in po_contents) + + self.assertFalse('Translators: ignored i18n comment #1' in po_contents) + self.assertMsgId("Translatable literal #9b", po_contents) + + self.assertFalse('ignored i18n comment #2' in po_contents) + self.assertFalse('ignored comment #2' in po_contents) + self.assertMsgId('Translatable literal #9c', po_contents) + + self.assertFalse('ignored comment #3' in po_contents) + self.assertFalse('ignored i18n comment #3' in po_contents) + self.assertMsgId('Translatable literal #9d', po_contents) + + self.assertFalse('ignored comment #4' in po_contents) + self.assertMsgId('Translatable literal #9e', po_contents) + self.assertFalse('ignored comment #5' in po_contents) + + self.assertFalse('ignored i18n comment #4' in po_contents) + self.assertMsgId('Translatable literal #9f', po_contents) + self.assertTrue('#. Translators: valid i18n comment #5' in po_contents) + + self.assertMsgId('Translatable literal #9g', po_contents) + self.assertTrue('#. Translators: valid i18n comment #6' in po_contents) + self.assertMsgId('Translatable literal #9h', po_contents) + self.assertTrue('#. Translators: valid i18n comment #7' in po_contents) + self.assertMsgId('Translatable literal #9i', po_contents) + + six.assertRegex(self, po_contents, r'#\..+Translators: valid i18n comment #8') + six.assertRegex(self, po_contents, r'#\..+Translators: valid i18n comment #9') + self.assertMsgId("Translatable literal #9j", po_contents) + class JavascriptExtractorTests(ExtractorTests): diff --git a/tests/regressiontests/i18n/commands/templates/comments.thtml b/tests/regressiontests/i18n/commands/templates/comments.thtml new file mode 100644 index 0000000000..90eb5f1792 --- /dev/null +++ b/tests/regressiontests/i18n/commands/templates/comments.thtml @@ -0,0 +1,13 @@ +{% load i18n %} + +{# ignored comment #1 #}{% trans "Translatable literal #9a" %} +{# Translators: ignored i18n comment #1 #}{% trans "Translatable literal #9b" %} +{# Translators: ignored i18n comment #2 #}{# ignored comment #2 #}{% trans "Translatable literal #9c" %} +{# ignored comment #3 #}{# Translators: ignored i18n comment #3 #}{% trans "Translatable literal #9d" %} +{# ignored comment #4 #}{% trans "Translatable literal #9e" %}{# ignored comment #5 #} +{# Translators: ignored i18n comment #4 #}{% trans "Translatable literal #9f" %}{# Translators: valid i18n comment #5 #} +{% trans "Translatable literal #9g" %}{# Translators: valid i18n comment #6 #} +{# ignored comment #6 #}{% trans "Translatable literal #9h" %}{# Translators: valid i18n comment #7 #} +{% trans "Translatable literal #9i" %} +{# Translators: valid i18n comment #8 #}{# Translators: valid i18n comment #9 #} +{% trans "Translatable literal #9j" %} -- cgit v1.3 From 3f1a0c0040b9a950584f4b309a1b670b0e709de5 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Wed, 30 Jan 2013 20:28:16 +0100 Subject: Fixed #19160 -- Made lazy plural translations usable. Many thanks to Alexey Boriskin, Claude Paroz and Julien Phalip. --- django/utils/functional.py | 3 +- django/utils/translation/__init__.py | 35 +++++++++++++-- docs/releases/1.6.txt | 4 ++ docs/topics/i18n/translation.txt | 35 +++++++++++++++ .../i18n/other/locale/de/LC_MESSAGES/django.mo | Bin 1449 -> 1998 bytes .../i18n/other/locale/de/LC_MESSAGES/django.po | 26 +++++++++++ tests/regressiontests/i18n/tests.py | 49 +++++++++++++++++++-- 7 files changed, 143 insertions(+), 9 deletions(-) (limited to 'docs') diff --git a/django/utils/functional.py b/django/utils/functional.py index 661518e3cc..1b5200c98c 100644 --- a/django/utils/functional.py +++ b/django/utils/functional.py @@ -157,8 +157,7 @@ def lazy(func, *resultclasses): return bytes(self) % rhs elif self._delegate_text: return six.text_type(self) % rhs - else: - raise AssertionError('__mod__ not supported for non-string types') + return self.__cast() % rhs def __deepcopy__(self, memo): # Instances of this class are effectively immutable. It's just a diff --git a/django/utils/translation/__init__.py b/django/utils/translation/__init__.py index 803bbb746a..7a48376a52 100644 --- a/django/utils/translation/__init__.py +++ b/django/utils/translation/__init__.py @@ -85,11 +85,40 @@ def npgettext(context, singular, plural, number): return _trans.npgettext(context, singular, plural, number) gettext_lazy = lazy(gettext, str) -ngettext_lazy = lazy(ngettext, str) ugettext_lazy = lazy(ugettext, six.text_type) -ungettext_lazy = lazy(ungettext, six.text_type) pgettext_lazy = lazy(pgettext, six.text_type) -npgettext_lazy = lazy(npgettext, six.text_type) + +def lazy_number(func, resultclass, number=None, **kwargs): + if isinstance(number, int): + kwargs['number'] = number + proxy = lazy(func, resultclass)(**kwargs) + else: + class NumberAwareString(resultclass): + def __mod__(self, rhs): + if isinstance(rhs, dict) and number: + try: + number_value = rhs[number] + except KeyError: + raise KeyError('Your dictionary lacks key \'%s\'. ' + 'Please provide it, because it is required to ' + 'determine whether string is singular or plural.' + % number) + else: + number_value = rhs + kwargs['number'] = number_value + return func(**kwargs) % rhs + + proxy = lazy(lambda **kwargs: NumberAwareString(), NumberAwareString)(**kwargs) + return proxy + +def ngettext_lazy(singular, plural, number=None): + return lazy_number(ngettext, str, singular=singular, plural=plural, number=number) + +def ungettext_lazy(singular, plural, number=None): + return lazy_number(ungettext, six.text_type, singular=singular, plural=plural, number=number) + +def npgettext_lazy(context, singular, plural, number=None): + return lazy_number(npgettext, six.text_type, context=context, singular=singular, plural=plural, number=number) def activate(language): return _trans.activate(language) diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 79fa3ffb86..5e1d959f60 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -35,6 +35,10 @@ Minor features :class:`~django.forms.URLField` use the new type attributes available in HTML5 (type='email', type='url'). +* The ``number`` argument for :ref:`lazy plural translations + ` can be provided at translation time rather than + at definition time. + Backwards incompatible changes in 1.6 ===================================== diff --git a/docs/topics/i18n/translation.txt b/docs/topics/i18n/translation.txt index 3cf08e7ddf..f45be3c63d 100644 --- a/docs/topics/i18n/translation.txt +++ b/docs/topics/i18n/translation.txt @@ -414,6 +414,41 @@ convert them to strings, because they should be converted as late as possible (so that the correct locale is in effect). This necessitates the use of the helper function described next. +.. _lazy-plural-translations: + +Lazy translations and plural +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. versionadded:: 1.6 + +When using lazy translation for a plural string (``[u]n[p]gettext_lazy``), you +generally don't know the ``number`` argument at the time of the string +definition. Therefore, you are authorized to pass a key name instead of an +integer as the ``number`` argument. Then ``number`` will be looked up in the +dictionary under that key during string interpolation. Here's example:: + + class MyForm(forms.Form): + error_message = ungettext_lazy("You only provided %(num)d argument", + "You only provided %(num)d arguments", 'num') + + def clean(self): + # ... + if error: + raise forms.ValidationError(self.error_message % {'num': number}) + +If the string contains exactly one unnamed placeholder, you can interpolate +directly with the ``number`` argument:: + + class MyForm(forms.Form): + error_message = ungettext_lazy("You provided %d argument", + "You provided %d arguments") + + def clean(self): + # ... + if error: + raise forms.ValidationError(self.error_message % number) + + Joining strings: string_concat() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/tests/regressiontests/i18n/other/locale/de/LC_MESSAGES/django.mo b/tests/regressiontests/i18n/other/locale/de/LC_MESSAGES/django.mo index f825e3918b..e208c8249f 100644 Binary files a/tests/regressiontests/i18n/other/locale/de/LC_MESSAGES/django.mo and b/tests/regressiontests/i18n/other/locale/de/LC_MESSAGES/django.mo differ diff --git a/tests/regressiontests/i18n/other/locale/de/LC_MESSAGES/django.po b/tests/regressiontests/i18n/other/locale/de/LC_MESSAGES/django.po index a471d3814b..3676893ca3 100644 --- a/tests/regressiontests/i18n/other/locale/de/LC_MESSAGES/django.po +++ b/tests/regressiontests/i18n/other/locale/de/LC_MESSAGES/django.po @@ -41,6 +41,32 @@ msgid_plural "%d results" msgstr[0] "%d Resultat" msgstr[1] "%d Resultate" +#: models.py:11 +msgid "%d good result" +msgid_plural "%d good results" +msgstr[0] "%d gutes Resultat" +msgstr[1] "%d guten Resultate" + +#: models.py:11 +msgctxt "Exclamation" +msgid "%d good result" +msgid_plural "%d good results" +msgstr[0] "%d gutes Resultat!" +msgstr[1] "%d guten Resultate!" + +#: models.py:11 +msgid "Hi %(name)s, %(num)d good result" +msgid_plural "Hi %(name)s, %(num)d good results" +msgstr[0] "Hallo %(name)s, %(num)d gutes Resultat" +msgstr[1] "Hallo %(name)s, %(num)d guten Resultate" + +#: models.py:11 +msgctxt "Greeting" +msgid "Hi %(name)s, %(num)d good result" +msgid_plural "Hi %(name)s, %(num)d good results" +msgstr[0] "Willkommen %(name)s, %(num)d gutes Resultat" +msgstr[1] "Willkommen %(name)s, %(num)d guten Resultate" + #: models.py:13 #, python-format msgid "The result was %(percent)s%%" diff --git a/tests/regressiontests/i18n/tests.py b/tests/regressiontests/i18n/tests.py index d9843c228a..fc1a832b89 100644 --- a/tests/regressiontests/i18n/tests.py +++ b/tests/regressiontests/i18n/tests.py @@ -22,10 +22,15 @@ from django.utils._os import upath from django.utils.safestring import mark_safe, SafeBytes, SafeString, SafeText from django.utils import six from django.utils.six import PY3 -from django.utils.translation import (ugettext, ugettext_lazy, activate, - deactivate, gettext_lazy, pgettext, npgettext, to_locale, - get_language_info, get_language, get_language_from_request, trans_real) - +from django.utils.translation import (activate, deactivate, + get_language, get_language_from_request, get_language_info, + to_locale, trans_real, + gettext, gettext_lazy, + ugettext, ugettext_lazy, + ngettext, ngettext_lazy, + ungettext, ungettext_lazy, + pgettext, pgettext_lazy, + npgettext, npgettext_lazy) from .commands.tests import can_run_extraction_tests, can_run_compilation_tests if can_run_extraction_tests: @@ -95,6 +100,42 @@ class TranslationTests(TestCase): s2 = pickle.loads(pickle.dumps(s1)) self.assertEqual(six.text_type(s2), "test") + @override_settings(LOCALE_PATHS=extended_locale_paths) + def test_ungettext_lazy(self): + s0 = ungettext_lazy("%d good result", "%d good results") + s1 = ngettext_lazy(str("%d good result"), str("%d good results")) + s2 = npgettext_lazy('Exclamation', '%d good result', '%d good results') + with translation.override('de'): + self.assertEqual(s0 % 1, "1 gutes Resultat") + self.assertEqual(s0 % 4, "4 guten Resultate") + self.assertEqual(s1 % 1, str("1 gutes Resultat")) + self.assertEqual(s1 % 4, str("4 guten Resultate")) + self.assertEqual(s2 % 1, "1 gutes Resultat!") + self.assertEqual(s2 % 4, "4 guten Resultate!") + + s3 = ungettext_lazy("Hi %(name)s, %(num)d good result", "Hi %(name)s, %(num)d good results", 4) + s4 = ungettext_lazy("Hi %(name)s, %(num)d good result", "Hi %(name)s, %(num)d good results", 'num') + s5 = ngettext_lazy(str("Hi %(name)s, %(num)d good result"), str("Hi %(name)s, %(num)d good results"), 4) + s6 = ngettext_lazy(str("Hi %(name)s, %(num)d good result"), str("Hi %(name)s, %(num)d good results"), 'num') + s7 = npgettext_lazy('Greeting', "Hi %(name)s, %(num)d good result", "Hi %(name)s, %(num)d good results", 4) + s8 = npgettext_lazy('Greeting', "Hi %(name)s, %(num)d good result", "Hi %(name)s, %(num)d good results", 'num') + with translation.override('de'): + self.assertEqual(s3 % {'num': 4, 'name': 'Jim'}, "Hallo Jim, 4 guten Resultate") + self.assertEqual(s4 % {'name': 'Jim', 'num': 1}, "Hallo Jim, 1 gutes Resultat") + self.assertEqual(s4 % {'name': 'Jim', 'num': 5}, "Hallo Jim, 5 guten Resultate") + with six.assertRaisesRegex(self, KeyError, 'Your dictionary lacks key.*'): + s4 % {'name': 'Jim'} + self.assertEqual(s5 % {'num': 4, 'name': 'Jim'}, str("Hallo Jim, 4 guten Resultate")) + self.assertEqual(s6 % {'name': 'Jim', 'num': 1}, str("Hallo Jim, 1 gutes Resultat")) + self.assertEqual(s6 % {'name': 'Jim', 'num': 5}, str("Hallo Jim, 5 guten Resultate")) + with six.assertRaisesRegex(self, KeyError, 'Your dictionary lacks key.*'): + s6 % {'name': 'Jim'} + self.assertEqual(s7 % {'num': 4, 'name': 'Jim'}, "Willkommen Jim, 4 guten Resultate") + self.assertEqual(s8 % {'name': 'Jim', 'num': 1}, "Willkommen Jim, 1 gutes Resultat") + self.assertEqual(s8 % {'name': 'Jim', 'num': 5}, "Willkommen Jim, 5 guten Resultate") + with six.assertRaisesRegex(self, KeyError, 'Your dictionary lacks key.*'): + s8 % {'name': 'Jim'} + @override_settings(LOCALE_PATHS=extended_locale_paths) def test_pgettext(self): trans_real._active = local() -- cgit v1.3 From 23e319d7298c8b778181e85dd9b6cbed095f8147 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Wed, 30 Jan 2013 21:26:17 +0100 Subject: Fixed #19076 -- Added content_type attribute to TemplateView. Thanks Gavin Wahl. --- django/views/generic/base.py | 2 ++ docs/ref/class-based-views/flattened-index.txt | 14 ++++++++++++++ docs/ref/class-based-views/mixins-simple.txt | 9 +++++++++ tests/regressiontests/generic_views/base.py | 5 +++++ tests/regressiontests/generic_views/urls.py | 2 ++ 5 files changed, 32 insertions(+) (limited to 'docs') diff --git a/django/views/generic/base.py b/django/views/generic/base.py index 9c82a29d8a..d50d6bbc55 100644 --- a/django/views/generic/base.py +++ b/django/views/generic/base.py @@ -113,6 +113,7 @@ class TemplateResponseMixin(object): """ template_name = None response_class = TemplateResponse + content_type = None def render_to_response(self, context, **response_kwargs): """ @@ -122,6 +123,7 @@ class TemplateResponseMixin(object): If any keyword arguments are provided, they will be passed to the constructor of the response class. """ + response_kwargs.setdefault('content_type', self.content_type) return self.response_class( request = self.request, template = self.get_template_names(), diff --git a/docs/ref/class-based-views/flattened-index.txt b/docs/ref/class-based-views/flattened-index.txt index 2e75363c58..b98a35634e 100644 --- a/docs/ref/class-based-views/flattened-index.txt +++ b/docs/ref/class-based-views/flattened-index.txt @@ -32,6 +32,7 @@ TemplateView **Attributes** (with optional accessor): +* :attr:`~django.views.generic.base.TemplateResponseMixin.content_type` * :attr:`~django.views.generic.base.View.http_method_names` * :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` * :attr:`~django.views.generic.base.TemplateResponseMixin.template_name` [:meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names`] @@ -79,6 +80,7 @@ DetailView **Attributes** (with optional accessor): +* :attr:`~django.views.generic.base.TemplateResponseMixin.content_type` * :attr:`~django.views.generic.detail.SingleObjectMixin.context_object_name` [:meth:`~django.views.generic.detail.SingleObjectMixin.get_context_object_name`] * :attr:`~django.views.generic.base.View.http_method_names` * :attr:`~django.views.generic.detail.SingleObjectMixin.model` @@ -112,6 +114,7 @@ ListView **Attributes** (with optional accessor): * :attr:`~django.views.generic.list.MultipleObjectMixin.allow_empty` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_allow_empty`] +* :attr:`~django.views.generic.base.TemplateResponseMixin.content_type` * :attr:`~django.views.generic.list.MultipleObjectMixin.context_object_name` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_context_object_name`] * :attr:`~django.views.generic.base.View.http_method_names` * :attr:`~django.views.generic.list.MultipleObjectMixin.model` @@ -144,6 +147,7 @@ FormView **Attributes** (with optional accessor): +* :attr:`~django.views.generic.base.TemplateResponseMixin.content_type` * :attr:`~django.views.generic.edit.FormMixin.form_class` [:meth:`~django.views.generic.edit.FormMixin.get_form_class`] * :attr:`~django.views.generic.base.View.http_method_names` * :attr:`~django.views.generic.edit.FormMixin.initial` [:meth:`~django.views.generic.edit.FormMixin.get_initial`] @@ -173,6 +177,7 @@ CreateView **Attributes** (with optional accessor): +* :attr:`~django.views.generic.base.TemplateResponseMixin.content_type` * :attr:`~django.views.generic.detail.SingleObjectMixin.context_object_name` [:meth:`~django.views.generic.detail.SingleObjectMixin.get_context_object_name`] * :attr:`~django.views.generic.edit.FormMixin.form_class` [:meth:`~django.views.generic.edit.FormMixin.get_form_class`] * :attr:`~django.views.generic.base.View.http_method_names` @@ -211,6 +216,7 @@ UpdateView **Attributes** (with optional accessor): +* :attr:`~django.views.generic.base.TemplateResponseMixin.content_type` * :attr:`~django.views.generic.detail.SingleObjectMixin.context_object_name` [:meth:`~django.views.generic.detail.SingleObjectMixin.get_context_object_name`] * :attr:`~django.views.generic.edit.FormMixin.form_class` [:meth:`~django.views.generic.edit.FormMixin.get_form_class`] * :attr:`~django.views.generic.base.View.http_method_names` @@ -249,6 +255,7 @@ DeleteView **Attributes** (with optional accessor): +* :attr:`~django.views.generic.base.TemplateResponseMixin.content_type` * :attr:`~django.views.generic.detail.SingleObjectMixin.context_object_name` [:meth:`~django.views.generic.detail.SingleObjectMixin.get_context_object_name`] * :attr:`~django.views.generic.base.View.http_method_names` * :attr:`~django.views.generic.detail.SingleObjectMixin.model` @@ -286,6 +293,7 @@ ArchiveIndexView * :attr:`~django.views.generic.list.MultipleObjectMixin.allow_empty` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_allow_empty`] * :attr:`~django.views.generic.dates.DateMixin.allow_future` [:meth:`~django.views.generic.dates.DateMixin.get_allow_future`] +* :attr:`~django.views.generic.base.TemplateResponseMixin.content_type` * :attr:`~django.views.generic.list.MultipleObjectMixin.context_object_name` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_context_object_name`] * :attr:`~django.views.generic.dates.DateMixin.date_field` [:meth:`~django.views.generic.dates.DateMixin.get_date_field`] * :attr:`~django.views.generic.base.View.http_method_names` @@ -321,6 +329,7 @@ YearArchiveView * :attr:`~django.views.generic.list.MultipleObjectMixin.allow_empty` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_allow_empty`] * :attr:`~django.views.generic.dates.DateMixin.allow_future` [:meth:`~django.views.generic.dates.DateMixin.get_allow_future`] +* :attr:`~django.views.generic.base.TemplateResponseMixin.content_type` * :attr:`~django.views.generic.list.MultipleObjectMixin.context_object_name` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_context_object_name`] * :attr:`~django.views.generic.dates.DateMixin.date_field` [:meth:`~django.views.generic.dates.DateMixin.get_date_field`] * :attr:`~django.views.generic.base.View.http_method_names` @@ -359,6 +368,7 @@ MonthArchiveView * :attr:`~django.views.generic.list.MultipleObjectMixin.allow_empty` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_allow_empty`] * :attr:`~django.views.generic.dates.DateMixin.allow_future` [:meth:`~django.views.generic.dates.DateMixin.get_allow_future`] +* :attr:`~django.views.generic.base.TemplateResponseMixin.content_type` * :attr:`~django.views.generic.list.MultipleObjectMixin.context_object_name` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_context_object_name`] * :attr:`~django.views.generic.dates.DateMixin.date_field` [:meth:`~django.views.generic.dates.DateMixin.get_date_field`] * :attr:`~django.views.generic.base.View.http_method_names` @@ -400,6 +410,7 @@ WeekArchiveView * :attr:`~django.views.generic.list.MultipleObjectMixin.allow_empty` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_allow_empty`] * :attr:`~django.views.generic.dates.DateMixin.allow_future` [:meth:`~django.views.generic.dates.DateMixin.get_allow_future`] +* :attr:`~django.views.generic.base.TemplateResponseMixin.content_type` * :attr:`~django.views.generic.list.MultipleObjectMixin.context_object_name` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_context_object_name`] * :attr:`~django.views.generic.dates.DateMixin.date_field` [:meth:`~django.views.generic.dates.DateMixin.get_date_field`] * :attr:`~django.views.generic.base.View.http_method_names` @@ -439,6 +450,7 @@ DayArchiveView * :attr:`~django.views.generic.list.MultipleObjectMixin.allow_empty` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_allow_empty`] * :attr:`~django.views.generic.dates.DateMixin.allow_future` [:meth:`~django.views.generic.dates.DateMixin.get_allow_future`] +* :attr:`~django.views.generic.base.TemplateResponseMixin.content_type` * :attr:`~django.views.generic.list.MultipleObjectMixin.context_object_name` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_context_object_name`] * :attr:`~django.views.generic.dates.DateMixin.date_field` [:meth:`~django.views.generic.dates.DateMixin.get_date_field`] * :attr:`~django.views.generic.dates.DayMixin.day` [:meth:`~django.views.generic.dates.DayMixin.get_day`] @@ -484,6 +496,7 @@ TodayArchiveView * :attr:`~django.views.generic.list.MultipleObjectMixin.allow_empty` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_allow_empty`] * :attr:`~django.views.generic.dates.DateMixin.allow_future` [:meth:`~django.views.generic.dates.DateMixin.get_allow_future`] +* :attr:`~django.views.generic.base.TemplateResponseMixin.content_type` * :attr:`~django.views.generic.list.MultipleObjectMixin.context_object_name` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_context_object_name`] * :attr:`~django.views.generic.dates.DateMixin.date_field` [:meth:`~django.views.generic.dates.DateMixin.get_date_field`] * :attr:`~django.views.generic.dates.DayMixin.day` [:meth:`~django.views.generic.dates.DayMixin.get_day`] @@ -528,6 +541,7 @@ DateDetailView **Attributes** (with optional accessor): * :attr:`~django.views.generic.dates.DateMixin.allow_future` [:meth:`~django.views.generic.dates.DateMixin.get_allow_future`] +* :attr:`~django.views.generic.base.TemplateResponseMixin.content_type` * :attr:`~django.views.generic.detail.SingleObjectMixin.context_object_name` [:meth:`~django.views.generic.detail.SingleObjectMixin.get_context_object_name`] * :attr:`~django.views.generic.dates.DateMixin.date_field` [:meth:`~django.views.generic.dates.DateMixin.get_date_field`] * :attr:`~django.views.generic.dates.DayMixin.day` [:meth:`~django.views.generic.dates.DayMixin.get_day`] diff --git a/docs/ref/class-based-views/mixins-simple.txt b/docs/ref/class-based-views/mixins-simple.txt index e2e6084e8e..f1ec0482d0 100644 --- a/docs/ref/class-based-views/mixins-simple.txt +++ b/docs/ref/class-based-views/mixins-simple.txt @@ -64,6 +64,15 @@ TemplateResponseMixin instantiation, create a ``TemplateResponse`` subclass and assign it to ``response_class``. + .. attribute:: content_type + + .. versionadded:: 1.6 + The ``content_type`` attribute was added. + + The content type to use for the response. ``content_type`` is passed + as a keyword argument to ``response_class``. Default is ``None`` -- + meaning that Django uses :setting:`DEFAULT_CONTENT_TYPE`. + **Methods** .. method:: render_to_response(context, **response_kwargs) diff --git a/tests/regressiontests/generic_views/base.py b/tests/regressiontests/generic_views/base.py index c7ad7a0deb..fd2abb0aa7 100644 --- a/tests/regressiontests/generic_views/base.py +++ b/tests/regressiontests/generic_views/base.py @@ -312,6 +312,11 @@ class TemplateViewTest(TestCase): self.assertNotEqual(response.content, response2.content) + def test_content_type(self): + response = self.client.get('/template/content_type/') + self.assertEqual(response['Content-Type'], 'text/plain') + + class RedirectViewTest(unittest.TestCase): rf = RequestFactory() diff --git a/tests/regressiontests/generic_views/urls.py b/tests/regressiontests/generic_views/urls.py index 34b37fa7c4..57309053d3 100644 --- a/tests/regressiontests/generic_views/urls.py +++ b/tests/regressiontests/generic_views/urls.py @@ -20,6 +20,8 @@ urlpatterns = patterns('', TemplateView.as_view(template_name='generic_views/about.html')), (r'^template/custom/(?P\w+)/$', views.CustomTemplateView.as_view(template_name='generic_views/about.html')), + (r'^template/content_type/$', + TemplateView.as_view(template_name='generic_views/robots.txt', content_type='text/plain')), (r'^template/cached/(?P\w+)/$', cache_page(2.0)(TemplateView.as_view(template_name='generic_views/about.html'))), -- cgit v1.3 From c8c7cdc8f8f81b2f162db7acc8faaef0ece3b6ae Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Wed, 30 Jan 2013 21:34:54 +0100 Subject: Changed "versionadded" after the decision to backport. Refs #19076. --- docs/ref/class-based-views/mixins-simple.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/ref/class-based-views/mixins-simple.txt b/docs/ref/class-based-views/mixins-simple.txt index f1ec0482d0..51b0386654 100644 --- a/docs/ref/class-based-views/mixins-simple.txt +++ b/docs/ref/class-based-views/mixins-simple.txt @@ -66,7 +66,7 @@ TemplateResponseMixin .. attribute:: content_type - .. versionadded:: 1.6 + .. versionadded:: 1.5 The ``content_type`` attribute was added. The content type to use for the response. ``content_type`` is passed -- cgit v1.3 From b2039d39d537340c1617f23d68b3f40f070e01db Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Thu, 31 Jan 2013 13:37:42 +0100 Subject: Attempted to reduce version mismatch problems in the tutorial. --- docs/intro/tutorial01.txt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'docs') diff --git a/docs/intro/tutorial01.txt b/docs/intro/tutorial01.txt index fbbfea800d..7a7221c71d 100644 --- a/docs/intro/tutorial01.txt +++ b/docs/intro/tutorial01.txt @@ -19,10 +19,12 @@ tell Django is installed and which version by running the following command: python -c "import django; print(django.get_version())" -You should see either the version of your Django installation or an error -telling "No module named django". Check also that the version number matches -the version of this tutorial. If they don't match, you can refer to the -tutorial for your version of Django or update Django to the newest version. +If Django is installed, you should see the version of your installation. If it +isn't, you'll get an error telling "No module named django". + +This tutorial is written for Django |version|. If the versions don't match, +you can refer to the tutorial for your version of Django or update Django to +the newest version. See :doc:`How to install Django ` for advice on how to remove older versions of Django and install a newer one. -- cgit v1.3 From 89cb771be7b53c40642872cdbedb15943bdf8e34 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Thu, 31 Jan 2013 13:39:29 +0100 Subject: Fixed #19692 -- Completed deprecation of mimetype in favor of content_type. Thanks Tim for the report and initial patch. --- django/contrib/sitemaps/views.py | 26 +++++++++++++++---- django/shortcuts/__init__.py | 10 ++++++- docs/howto/outputting-csv.txt | 6 ++--- docs/howto/outputting-pdf.txt | 4 +-- docs/internals/deprecation.txt | 10 +++++-- docs/ref/contrib/admin/actions.txt | 4 +-- docs/ref/template-response.txt | 36 +++++++++++++++----------- docs/topics/http/shortcuts.txt | 13 +++++++--- tests/regressiontests/views/generic_urls.py | 2 +- tests/regressiontests/views/tests/shortcuts.py | 4 +-- tests/regressiontests/views/views.py | 6 ++--- 11 files changed, 81 insertions(+), 40 deletions(-) (limited to 'docs') diff --git a/django/contrib/sitemaps/views.py b/django/contrib/sitemaps/views.py index cfe3aa66a9..c8d2f4dfa0 100644 --- a/django/contrib/sitemaps/views.py +++ b/django/contrib/sitemaps/views.py @@ -1,3 +1,5 @@ +import warnings + from django.contrib.sites.models import get_current_site from django.core import urlresolvers from django.core.paginator import EmptyPage, PageNotAnInteger @@ -6,8 +8,15 @@ from django.template.response import TemplateResponse from django.utils import six def index(request, sitemaps, - template_name='sitemap_index.xml', mimetype='application/xml', - sitemap_url_name='django.contrib.sitemaps.views.sitemap'): + template_name='sitemap_index.xml', content_type='application/xml', + sitemap_url_name='django.contrib.sitemaps.views.sitemap', + mimetype=None): + + if mimetype: + warnings.warn("The mimetype keyword argument is deprecated, use " + "content_type instead", DeprecationWarning, stacklevel=2) + content_type = mimetype + req_protocol = 'https' if request.is_secure() else 'http' req_site = get_current_site(request) @@ -24,10 +33,17 @@ def index(request, sitemaps, sites.append('%s?p=%s' % (absolute_url, page)) return TemplateResponse(request, template_name, {'sitemaps': sites}, - content_type=mimetype) + content_type=content_type) def sitemap(request, sitemaps, section=None, - template_name='sitemap.xml', mimetype='application/xml'): + template_name='sitemap.xml', content_type='application/xml', + mimetype=None): + + if mimetype: + warnings.warn("The mimetype keyword argument is deprecated, use " + "content_type instead", DeprecationWarning, stacklevel=2) + content_type = mimetype + req_protocol = 'https' if request.is_secure() else 'http' req_site = get_current_site(request) @@ -51,4 +67,4 @@ def sitemap(request, sitemaps, section=None, except PageNotAnInteger: raise Http404("No page '%s'" % page) return TemplateResponse(request, template_name, {'urlset': urls}, - content_type=mimetype) + content_type=content_type) diff --git a/django/shortcuts/__init__.py b/django/shortcuts/__init__.py index 9f896347a4..21bd7a06d2 100644 --- a/django/shortcuts/__init__.py +++ b/django/shortcuts/__init__.py @@ -3,6 +3,7 @@ This module collects helper functions and classes that "span" multiple levels of MVC. In other words, these functions/classes introduce controlled coupling for convenience's sake. """ +import warnings from django.template import loader, RequestContext from django.http import HttpResponse, Http404 @@ -17,7 +18,14 @@ def render_to_response(*args, **kwargs): Returns a HttpResponse whose content is filled with the result of calling django.template.loader.render_to_string() with the passed arguments. """ - httpresponse_kwargs = {'content_type': kwargs.pop('mimetype', None)} + httpresponse_kwargs = {'content_type': kwargs.pop('content_type', None)} + + mimetype = kwargs.pop('mimetype', None) + if mimetype: + warnings.warn("The mimetype keyword argument is deprecated, use " + "content_type instead", DeprecationWarning, stacklevel=2) + httpresponse_kwargs['content_type'] = mimetype + return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs) def render(request, *args, **kwargs): diff --git a/docs/howto/outputting-csv.txt b/docs/howto/outputting-csv.txt index bcc6f3827b..1f9efb5a4b 100644 --- a/docs/howto/outputting-csv.txt +++ b/docs/howto/outputting-csv.txt @@ -20,7 +20,7 @@ Here's an example:: def some_view(request): # Create the HttpResponse object with the appropriate CSV header. - response = HttpResponse(mimetype='text/csv') + response = HttpResponse(content_type='text/csv') response['Content-Disposition'] = 'attachment; filename="somefilename.csv"' writer = csv.writer(response) @@ -92,7 +92,7 @@ Here's an example, which generates the same CSV file as above:: def some_view(request): # Create the HttpResponse object with the appropriate CSV header. - response = HttpResponse(mimetype='text/csv') + response = HttpResponse(content_type='text/csv') response['Content-Disposition'] = 'attachment; filename="somefilename.csv"' # The data is hard-coded here, but you could load it from a database or @@ -111,7 +111,7 @@ Here's an example, which generates the same CSV file as above:: The only difference between this example and the previous example is that this one uses template loading instead of the CSV module. The rest of the code -- -such as the ``mimetype='text/csv'`` -- is the same. +such as the ``content_type='text/csv'`` -- is the same. Then, create the template ``my_template_name.txt``, with this template code: diff --git a/docs/howto/outputting-pdf.txt b/docs/howto/outputting-pdf.txt index 9d87b97710..d15f94f7f4 100644 --- a/docs/howto/outputting-pdf.txt +++ b/docs/howto/outputting-pdf.txt @@ -51,7 +51,7 @@ Here's a "Hello World" example:: def some_view(request): # Create the HttpResponse object with the appropriate PDF headers. - response = HttpResponse(mimetype='application/pdf') + response = HttpResponse(content_type='application/pdf') response['Content-Disposition'] = 'attachment; filename="somefilename.pdf"' # Create the PDF object, using the response object as its "file." @@ -120,7 +120,7 @@ Here's the above "Hello World" example rewritten to use :mod:`io`:: def some_view(request): # Create the HttpResponse object with the appropriate PDF headers. - response = HttpResponse(mimetype='application/pdf') + response = HttpResponse(content_type='application/pdf') response['Content-Disposition'] = 'attachment; filename="somefilename.pdf"' buffer = BytesIO() diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt index 63d65d1e4a..da0d1e212c 100644 --- a/docs/internals/deprecation.txt +++ b/docs/internals/deprecation.txt @@ -290,8 +290,14 @@ these changes. specified as a plain string instead of a tuple will be removed and raise an exception. -* The ``mimetype`` argument to :class:`~django.http.HttpResponse` ``__init__`` - will be removed (``content_type`` should be used instead). +* The ``mimetype`` argument to the ``__init__`` methods of + :class:`~django.http.HttpResponse`, + :class:`~django.template.response.SimpleTemplateResponse`, and + :class:`~django.template.response.TemplateResponse`, will be removed. + ``content_type`` should be used instead. This also applies to the + :func:`~django.shortcuts.render_to_response` shortcut and + the sitemamp views, :func:`~django.contrib.sitemaps.views.index` and + :func:`~django.contrib.sitemaps.views.sitemap`. * When :class:`~django.http.HttpResponse` is instantiated with an iterator, or when :attr:`~django.http.HttpResponse.content` is set to an iterator, diff --git a/docs/ref/contrib/admin/actions.txt b/docs/ref/contrib/admin/actions.txt index d7eef623d5..0a302ecd1d 100644 --- a/docs/ref/contrib/admin/actions.txt +++ b/docs/ref/contrib/admin/actions.txt @@ -223,7 +223,7 @@ objects as JSON:: from django.core import serializers def export_as_json(modeladmin, request, queryset): - response = HttpResponse(mimetype="text/javascript") + response = HttpResponse(content_type="application/json") serializers.serialize("json", queryset, stream=response) return response @@ -356,5 +356,3 @@ Conditionally enabling or disabling actions if 'delete_selected' in actions: del actions['delete_selected'] return actions - - diff --git a/docs/ref/template-response.txt b/docs/ref/template-response.txt index 3f5e772737..844b5fa46b 100644 --- a/docs/ref/template-response.txt +++ b/docs/ref/template-response.txt @@ -56,11 +56,11 @@ Attributes Methods ------- -.. method:: SimpleTemplateResponse.__init__(template, context=None, mimetype=None, status=None, content_type=None) +.. method:: SimpleTemplateResponse.__init__(template, context=None, content_type=None, status=None) Instantiates a :class:`~django.template.response.SimpleTemplateResponse` object - with the given template, context, MIME type and HTTP status. + with the given template, context, content type, and HTTP status. ``template`` The full name of a template, or a sequence of template names. @@ -75,12 +75,15 @@ Methods The HTTP Status code for the response. ``content_type`` - An alias for ``mimetype``. Historically, this parameter was only called - ``mimetype``, but since this is actually the value included in the HTTP - ``Content-Type`` header, it can also include the character set encoding, - which makes it more than just a MIME type specification. If ``mimetype`` - is specified (not ``None``), that value is used. Otherwise, - ``content_type`` is used. If neither is given, + + .. versionchanged:: 1.5 + + Historically, this parameter was only called ``mimetype`` (now + deprecated), but since this is actually the value included in the HTTP + ``Content-Type`` header, it can also include the character set + encoding, which makes it more than just a MIME type specification. If + ``mimetype`` is specified (not ``None``), that value is used. + Otherwise, ``content_type`` is used. If neither is given, :setting:`DEFAULT_CONTENT_TYPE` is used. @@ -144,7 +147,7 @@ TemplateResponse objects Methods ------- -.. method:: TemplateResponse.__init__(request, template, context=None, mimetype=None, status=None, content_type=None, current_app=None) +.. method:: TemplateResponse.__init__(request, template, context=None, content_type=None, status=None, current_app=None) Instantiates an ``TemplateResponse`` object with the given template, context, MIME type and HTTP status. @@ -165,12 +168,15 @@ Methods The HTTP Status code for the response. ``content_type`` - An alias for ``mimetype``. Historically, this parameter was only called - ``mimetype``, but since this is actually the value included in the HTTP - ``Content-Type`` header, it can also include the character set encoding, - which makes it more than just a MIME type specification. If ``mimetype`` - is specified (not ``None``), that value is used. Otherwise, - ``content_type`` is used. If neither is given, + + .. versionchanged:: 1.5 + + Historically, this parameter was only called ``mimetype`` (now + deprecated), but since this is actually the value included in the HTTP + ``Content-Type`` header, it can also include the character set + encoding, which makes it more than just a MIME type specification. If + ``mimetype`` is specified (not ``None``), that value is used. + Otherwise, ``content_type`` is used. If neither is given, :setting:`DEFAULT_CONTENT_TYPE` is used. ``current_app`` diff --git a/docs/topics/http/shortcuts.txt b/docs/topics/http/shortcuts.txt index b1b4700b73..68860f123f 100644 --- a/docs/topics/http/shortcuts.txt +++ b/docs/topics/http/shortcuts.txt @@ -50,6 +50,9 @@ Optional arguments The MIME type to use for the resulting document. Defaults to the value of the :setting:`DEFAULT_CONTENT_TYPE` setting. + .. versionchanged:: 1.5 + This parameter used to be called ``mimetype``. + ``status`` The status code for the response. Defaults to ``200``. @@ -87,7 +90,7 @@ This example is equivalent to:: ``render_to_response`` ====================== -.. function:: render_to_response(template_name[, dictionary][, context_instance][, mimetype]) +.. function:: render_to_response(template_name[, dictionary][, context_instance][, content_type]) Renders a given template with a given context dictionary and returns an :class:`~django.http.HttpResponse` object with that rendered text. @@ -121,10 +124,14 @@ Optional arguments my_data_dictionary, context_instance=RequestContext(request)) -``mimetype`` +``content_type`` The MIME type to use for the resulting document. Defaults to the value of the :setting:`DEFAULT_CONTENT_TYPE` setting. + .. versionchanged:: 1.5 + This parameter used to be called ``mimetype``. + + Example ------- @@ -148,7 +155,7 @@ This example is equivalent to:: t = loader.get_template('myapp/template.html') c = Context({'foo': 'bar'}) return HttpResponse(t.render(c), - mimetype="application/xhtml+xml") + content_type="application/xhtml+xml") ``redirect`` ============ diff --git a/tests/regressiontests/views/generic_urls.py b/tests/regressiontests/views/generic_urls.py index 0f214d12d5..d50436279a 100644 --- a/tests/regressiontests/views/generic_urls.py +++ b/tests/regressiontests/views/generic_urls.py @@ -47,7 +47,7 @@ urlpatterns += patterns('', urlpatterns += patterns('regressiontests.views.views', (r'^shortcuts/render_to_response/$', 'render_to_response_view'), (r'^shortcuts/render_to_response/request_context/$', 'render_to_response_view_with_request_context'), - (r'^shortcuts/render_to_response/mimetype/$', 'render_to_response_view_with_mimetype'), + (r'^shortcuts/render_to_response/content_type/$', 'render_to_response_view_with_content_type'), (r'^shortcuts/render/$', 'render_view'), (r'^shortcuts/render/base_context/$', 'render_view_with_base_context'), (r'^shortcuts/render/content_type/$', 'render_view_with_content_type'), diff --git a/tests/regressiontests/views/tests/shortcuts.py b/tests/regressiontests/views/tests/shortcuts.py index 62bd82f4a7..3a5df6a9cb 100644 --- a/tests/regressiontests/views/tests/shortcuts.py +++ b/tests/regressiontests/views/tests/shortcuts.py @@ -21,8 +21,8 @@ class ShortcutTests(TestCase): self.assertEqual(response.content, b'FOO.BAR../path/to/static/media/\n') self.assertEqual(response['Content-Type'], 'text/html; charset=utf-8') - def test_render_to_response_with_mimetype(self): - response = self.client.get('/shortcuts/render_to_response/mimetype/') + def test_render_to_response_with_content_type(self): + response = self.client.get('/shortcuts/render_to_response/content_type/') self.assertEqual(response.status_code, 200) self.assertEqual(response.content, b'FOO.BAR..\n') self.assertEqual(response['Content-Type'], 'application/x-rendertest') diff --git a/tests/regressiontests/views/views.py b/tests/regressiontests/views/views.py index 748f07637f..50ad98ac2d 100644 --- a/tests/regressiontests/views/views.py +++ b/tests/regressiontests/views/views.py @@ -68,11 +68,11 @@ def render_to_response_view_with_request_context(request): 'bar': 'BAR', }, context_instance=RequestContext(request)) -def render_to_response_view_with_mimetype(request): +def render_to_response_view_with_content_type(request): return render_to_response('debug/render_test.html', { 'foo': 'FOO', 'bar': 'BAR', - }, mimetype='application/x-rendertest') + }, content_type='application/x-rendertest') def render_view(request): return render(request, 'debug/render_test.html', { @@ -263,4 +263,4 @@ class Klass(object): return technical_500_response(request, *exc_info) def sensitive_method_view(request): - return Klass().method(request) \ No newline at end of file + return Klass().method(request) -- cgit v1.3 From 7947c9e3a6bd8c1dfe7fc209fb2256a528149bb6 Mon Sep 17 00:00:00 2001 From: Ramiro Morales Date: Thu, 31 Jan 2013 14:56:26 -0300 Subject: Deprecated undocumented warnings manipulation testing tools. --- django/test/testcases.py | 21 ++++++++++++++------- django/test/utils.py | 7 +++++++ docs/internals/deprecation.txt | 8 +++++++- docs/topics/testing/overview.txt | 2 ++ tests/regressiontests/test_utils/tests.py | 31 +++++++++++++++++-------------- 5 files changed, 47 insertions(+), 22 deletions(-) (limited to 'docs') diff --git a/django/test/testcases.py b/django/test/testcases.py index c311540fc3..3aa0afa35e 100644 --- a/django/test/testcases.py +++ b/django/test/testcases.py @@ -1,12 +1,13 @@ from __future__ import unicode_literals +from copy import copy import difflib +import errno +from functools import wraps import json import os import re import sys -from copy import copy -from functools import wraps try: from urllib.parse import urlsplit, urlunsplit except ImportError: # Python 2 @@ -14,7 +15,7 @@ except ImportError: # Python 2 import select import socket import threading -import errno +import warnings from django.conf import settings from django.contrib.staticfiles.handlers import StaticFilesHandler @@ -36,8 +37,7 @@ from django.test import _doctest as doctest from django.test.client import Client from django.test.html import HTMLParseError, parse_html from django.test.signals import template_rendered -from django.test.utils import (get_warnings_state, restore_warnings_state, - override_settings, compare_xml, strip_quotes) +from django.test.utils import (override_settings, compare_xml, strip_quotes) from django.test.utils import ContextList from django.utils import unittest as ut2 from django.utils.encoding import force_text @@ -241,6 +241,11 @@ class _AssertTemplateNotUsedContext(_AssertTemplateUsedContext): class SimpleTestCase(ut2.TestCase): + + _warn_txt = ("save_warnings_state/restore_warnings_state " + "django.test.*TestCase methods are deprecated. Use Python's " + "warnings.catch_warnings context manager instead.") + def __call__(self, result=None): """ Wrapper around default __call__ method to perform common Django test @@ -279,14 +284,16 @@ class SimpleTestCase(ut2.TestCase): """ Saves the state of the warnings module """ - self._warnings_state = get_warnings_state() + warnings.warn(self._warn_txt, DeprecationWarning, stacklevel=2) + self._warnings_state = warnings.filters[:] def restore_warnings_state(self): """ Restores the state of the warnings module to the state saved by save_warnings_state() """ - restore_warnings_state(self._warnings_state) + warnings.warn(self._warn_txt, DeprecationWarning, stacklevel=2) + warnings.filters = self._warnings_state[:] def settings(self, **kwargs): """ diff --git a/django/test/utils.py b/django/test/utils.py index 8114ae0e6a..9413ea8dc4 100644 --- a/django/test/utils.py +++ b/django/test/utils.py @@ -98,6 +98,11 @@ def teardown_test_environment(): del mail.outbox +warn_txt = ("get_warnings_state/restore_warnings_state functions from " + "django.test.utils are deprecated. Use Python's warnings.catch_warnings() " + "context manager instead.") + + def get_warnings_state(): """ Returns an object containing the state of the warnings module @@ -105,6 +110,7 @@ def get_warnings_state(): # There is no public interface for doing this, but this implementation of # get_warnings_state and restore_warnings_state appears to work on Python # 2.4 to 2.7. + warnings.warn(warn_txt, DeprecationWarning, stacklevel=2) return warnings.filters[:] @@ -113,6 +119,7 @@ def restore_warnings_state(state): Restores the state of the warnings module when passed an object that was returned by get_warnings_state() """ + warnings.warn(warn_txt, DeprecationWarning, stacklevel=2) warnings.filters = state[:] diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt index da0d1e212c..df3d84fdae 100644 --- a/docs/internals/deprecation.txt +++ b/docs/internals/deprecation.txt @@ -267,7 +267,6 @@ these changes. in 1.4. The backward compatibility will be removed -- ``HttpRequest.raw_post_data`` will no longer work. - * The value for the ``post_url_continue`` parameter in ``ModelAdmin.response_add()`` will have to be either ``None`` (to redirect to the newly created object's edit page) or a pre-formatted url. String @@ -314,6 +313,13 @@ these changes. * The ``depth`` keyword argument will be removed from :meth:`~django.db.models.query.QuerySet.select_related`. +* The undocumented ``get_warnings_state()``/``restore_warnings_state()`` + functions from :mod:`django.test.utils` and the ``save_warnings_state()``/ + ``restore_warnings_state()`` + :ref:`django.test.*TestCase ` methods are + deprecated. Use the :class:`warnings.catch_warnings` context manager + available starting with Python 2.6 instead. + 1.8 --- diff --git a/docs/topics/testing/overview.txt b/docs/topics/testing/overview.txt index 534569efeb..5739061dd1 100644 --- a/docs/topics/testing/overview.txt +++ b/docs/topics/testing/overview.txt @@ -835,6 +835,8 @@ The following is a simple unit test using the test client:: :class:`django.test.client.RequestFactory` +.. _django-testcase-subclasses: + Provided test case classes -------------------------- diff --git a/tests/regressiontests/test_utils/tests.py b/tests/regressiontests/test_utils/tests.py index d5d49b2104..2a74b95ffa 100644 --- a/tests/regressiontests/test_utils/tests.py +++ b/tests/regressiontests/test_utils/tests.py @@ -220,24 +220,27 @@ class SaveRestoreWarningState(TestCase): # of save_warnings_state/restore_warnings_state (e.g. just # warnings.resetwarnings()) , but it is difficult to test more. import warnings - self.save_warnings_state() + with warnings.catch_warnings(): + warnings.simplefilter("ignore", DeprecationWarning) - class MyWarning(Warning): - pass + self.save_warnings_state() + + class MyWarning(Warning): + pass - # Add a filter that causes an exception to be thrown, so we can catch it - warnings.simplefilter("error", MyWarning) - self.assertRaises(Warning, lambda: warnings.warn("warn", MyWarning)) + # Add a filter that causes an exception to be thrown, so we can catch it + warnings.simplefilter("error", MyWarning) + self.assertRaises(Warning, lambda: warnings.warn("warn", MyWarning)) - # Now restore. - self.restore_warnings_state() - # After restoring, we shouldn't get an exception. But we don't want a - # warning printed either, so we have to silence the warning. - warnings.simplefilter("ignore", MyWarning) - warnings.warn("warn", MyWarning) + # Now restore. + self.restore_warnings_state() + # After restoring, we shouldn't get an exception. But we don't want a + # warning printed either, so we have to silence the warning. + warnings.simplefilter("ignore", MyWarning) + warnings.warn("warn", MyWarning) - # Remove the filter we just added. - self.restore_warnings_state() + # Remove the filter we just added. + self.restore_warnings_state() class HTMLEqualTests(TestCase): -- cgit v1.3 From 56e553129f554f83c8e99ef3368544921dbd8a82 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Fri, 1 Feb 2013 09:55:19 +0100 Subject: Fixed #19714 -- Updated documentation about TemplateView context Thanks Aramgutang for the report. Refs #17228. --- docs/ref/class-based-views/base.txt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/ref/class-based-views/base.txt b/docs/ref/class-based-views/base.txt index c070ea707a..2073458314 100644 --- a/docs/ref/class-based-views/base.txt +++ b/docs/ref/class-based-views/base.txt @@ -101,8 +101,13 @@ TemplateView .. class:: django.views.generic.base.TemplateView - Renders a given template, passing it a ``{{ params }}`` template variable, - which is a dictionary of the parameters captured in the URL. + Renders a given template, with the context containing parameters captured + in the URL. + + .. versionchanged:: 1.5 + The context used to be populated with a ``{{ params }}`` dictionary of + the parameters captured in the URL. Now those parameters are first-level + context variables. **Ancestors (MRO)** -- cgit v1.3 From 393c268e725f5b229ecb554f3fac02cfc250d2df Mon Sep 17 00:00:00 2001 From: Matt Robenolt Date: Thu, 31 Jan 2013 18:36:34 -0800 Subject: Fixed #19715 -- Simplified findstatic output when verbosity set to 0 --- AUTHORS | 1 + .../staticfiles/management/commands/findstatic.py | 13 ++++++++----- docs/ref/contrib/staticfiles.txt | 18 ++++++++++++++---- tests/regressiontests/staticfiles_tests/tests.py | 18 +++++++++++++++--- 4 files changed, 38 insertions(+), 12 deletions(-) (limited to 'docs') diff --git a/AUTHORS b/AUTHORS index 16bfa574c9..8eb500d3e1 100644 --- a/AUTHORS +++ b/AUTHORS @@ -464,6 +464,7 @@ answer newbie questions, and generally made Django that much better: Mike Richardson Matt Riggott Alex Robbins + Matt Robenolt Henrique Romano Armin Ronacher Daniel Roseman diff --git a/django/contrib/staticfiles/management/commands/findstatic.py b/django/contrib/staticfiles/management/commands/findstatic.py index dc1e88d778..eaf63f7179 100644 --- a/django/contrib/staticfiles/management/commands/findstatic.py +++ b/django/contrib/staticfiles/management/commands/findstatic.py @@ -3,7 +3,7 @@ from __future__ import unicode_literals import os from optparse import make_option from django.core.management.base import LabelCommand -from django.utils.encoding import smart_text +from django.utils.encoding import force_text from django.contrib.staticfiles import finders @@ -19,13 +19,16 @@ class Command(LabelCommand): def handle_label(self, path, **options): verbosity = int(options.get('verbosity', 1)) result = finders.find(path, all=options['all']) - path = smart_text(path) + path = force_text(path) if result: if not isinstance(result, (list, tuple)): result = [result] - output = '\n '.join( - (smart_text(os.path.realpath(path)) for path in result)) - self.stdout.write("Found '%s' here:\n %s" % (path, output)) + result = (force_text(os.path.realpath(path)) for path in result) + if verbosity >= 1: + output = '\n '.join(result) + return "Found '%s' here:\n %s" % (path, output) + else: + return '\n'.join(result) else: if verbosity >= 1: self.stderr.write("No matching file found for '%s'." % path) diff --git a/docs/ref/contrib/staticfiles.txt b/docs/ref/contrib/staticfiles.txt index a7540388bc..fa740f4e2c 100644 --- a/docs/ref/contrib/staticfiles.txt +++ b/docs/ref/contrib/staticfiles.txt @@ -112,19 +112,29 @@ Searches for one or more relative paths with the enabled finders. For example:: $ python manage.py findstatic css/base.css admin/js/core.js - /home/special.polls.com/core/static/css/base.css - /home/polls.com/core/static/css/base.css - /home/polls.com/src/django/contrib/admin/media/js/core.js + Found 'css/base.css' here: + /home/special.polls.com/core/static/css/base.css + /home/polls.com/core/static/css/base.css + Found 'admin/js/core.js' here: + /home/polls.com/src/django/contrib/admin/media/js/core.js By default, all matching locations are found. To only return the first match for each relative path, use the ``--first`` option:: $ python manage.py findstatic css/base.css --first - /home/special.polls.com/core/static/css/base.css + Found 'css/base.css' here: + /home/special.polls.com/core/static/css/base.css This is a debugging aid; it'll show you exactly which static file will be collected for a given path. +By setting the :djadminopt:`--verbosity` flag to 0, you can suppress the extra +output and just get the path names:: + + $ python manage.py findstatic css/base.css --verbosity 0 + /home/special.polls.com/core/static/css/base.css + /home/polls.com/core/static/css/base.css + .. _staticfiles-runserver: runserver diff --git a/tests/regressiontests/staticfiles_tests/tests.py b/tests/regressiontests/staticfiles_tests/tests.py index 90c8621d0b..35d5683a0c 100644 --- a/tests/regressiontests/staticfiles_tests/tests.py +++ b/tests/regressiontests/staticfiles_tests/tests.py @@ -195,21 +195,33 @@ class TestFindStatic(CollectionTestCase, TestDefaults): call_command('findstatic', filepath, all=False, verbosity=0, stdout=out) out.seek(0) lines = [l.strip() for l in out.readlines()] - with codecs.open(force_text(lines[1].strip()), "r", "utf-8") as f: + with codecs.open(force_text(lines[0].strip()), "r", "utf-8") as f: return f.read() def test_all_files(self): """ - Test that findstatic returns all candidate files if run without --first. + Test that findstatic returns all candidate files if run without --first and -v1. """ out = six.StringIO() - call_command('findstatic', 'test/file.txt', verbosity=0, stdout=out) + call_command('findstatic', 'test/file.txt', verbosity=1, stdout=out) out.seek(0) lines = [l.strip() for l in out.readlines()] self.assertEqual(len(lines), 3) # three because there is also the "Found here" line self.assertIn('project', force_text(lines[1])) self.assertIn('apps', force_text(lines[2])) + def test_all_files_less_verbose(self): + """ + Test that findstatic returns all candidate files if run without --first and -v0. + """ + out = six.StringIO() + call_command('findstatic', 'test/file.txt', verbosity=0, stdout=out) + out.seek(0) + lines = [l.strip() for l in out.readlines()] + self.assertEqual(len(lines), 2) + self.assertIn('project', force_text(lines[0])) + self.assertIn('apps', force_text(lines[1])) + class TestCollection(CollectionTestCase, TestDefaults): """ -- cgit v1.3 From a0c67c69bf49d9e1902afd57d95b8511aa911ccb Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Fri, 1 Feb 2013 13:42:30 +0100 Subject: Documented ArchiveIndexView's date_list context variable. Refs #16218. --- docs/ref/class-based-views/generic-date-based.txt | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/ref/class-based-views/generic-date-based.txt b/docs/ref/class-based-views/generic-date-based.txt index 42dbab4dd8..4144c382f8 100644 --- a/docs/ref/class-based-views/generic-date-based.txt +++ b/docs/ref/class-based-views/generic-date-based.txt @@ -42,6 +42,20 @@ ArchiveIndexView * :class:`django.views.generic.dates.DateMixin` * :class:`django.views.generic.base.View` + **Context** + + In addition to the context provided by + :class:`django.views.generic.list.MultipleObjectMixin` (via + :class:`django.views.generic.dates.BaseDateListView`), the template's + context will be: + + * ``date_list``: A + :meth:`DateQuerySet` object + containing all years that have objects available according to + ``queryset``, represented as + :class:`datetime.datetime` objects, in + descending order. + **Notes** * Uses a default ``context_object_name`` of ``latest``. @@ -109,7 +123,6 @@ YearArchiveView Determine if an object list will be returned as part of the context. Returns :attr:`~YearArchiveView.make_object_list` by default. - **Context** In addition to the context provided by @@ -118,7 +131,7 @@ YearArchiveView context will be: * ``date_list``: A - :meth:`DateQuerySet` object object + :meth:`DateQuerySet` object containing all months that have objects available according to ``queryset``, represented as :class:`datetime.datetime` objects, in -- cgit v1.3 From ab51dff83d100af6ef026cab8cb75134e28296eb Mon Sep 17 00:00:00 2001 From: Simon Charette Date: Fri, 1 Feb 2013 14:52:27 -0500 Subject: Added myself to core developpers --- AUTHORS | 2 +- docs/internals/committers.txt | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/AUTHORS b/AUTHORS index 8eb500d3e1..6e79befd31 100644 --- a/AUTHORS +++ b/AUTHORS @@ -34,6 +34,7 @@ The PRIMARY AUTHORS are (and/or have been): * Jeremy Dunck * Bryan Veloso * Preston Holmes + * Simon Charette More information on the main contributors to Django can be found in docs/internals/committers.txt. @@ -127,7 +128,6 @@ answer newbie questions, and generally made Django that much better: Chris Chamberlin Amit Chakradeo ChaosKCW - Simon Charette Kowito Charoenratchatabhan Sengtha Chay ivan.chelubeev@gmail.com diff --git a/docs/internals/committers.txt b/docs/internals/committers.txt index 7900dd8cd0..69c9974967 100644 --- a/docs/internals/committers.txt +++ b/docs/internals/committers.txt @@ -419,6 +419,22 @@ Jeremy Dunck .. _Preston Holmes: http://www.ptone.com/ +`Simon Charette`_ + Simon is a mathematic student who discovered Django while searching for a + replacement framework to an in-house PHP entity. Since that faithful day + Django has been a big part of his life. So far, he's been involved in some + ORM and forms API fixes. + + Apart from contributing to multiple open source projects he spends most of + his spare-time playing `Ultimate Frisbee`_ and working part-time + at this awesome place called `Reptiletech`_. + + Simon lives in Montréal, Québec, Canada. + +.. _Simon Charette: https://github.com/charettes +.. _Ultimate Frisbee: http://www.montrealultimate.ca +.. _Reptiletech: http://www.reptiletech.com + Specialists ----------- -- cgit v1.3 From d75a54c184ef322fb427972ff86190c8e8cbf481 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Fri, 1 Feb 2013 21:47:50 +0100 Subject: Fix rst syntax error. Thanks Chris Rebert for the report. --- docs/ref/request-response.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'docs') diff --git a/docs/ref/request-response.txt b/docs/ref/request-response.txt index 2b4397a138..717995aea2 100644 --- a/docs/ref/request-response.txt +++ b/docs/ref/request-response.txt @@ -50,12 +50,12 @@ All attributes should be considered read-only, unless stated otherwise below. .. attribute:: HttpRequest.path_info - Under some Web server configurations, the portion of the URL after the host - name is split up into a script prefix portion and a path info portion. - The ``path_info`` attribute always contains the path info portion of the - path, no matter what Web server is being used. Using this instead of - attr:`~HttpRequest.path` can make your code much easier to move between test - and deployment servers. + Under some Web server configurations, the portion of the URL after the + host name is split up into a script prefix portion and a path info + portion. The ``path_info`` attribute always contains the path info portion + of the path, no matter what Web server is being used. Using this instead + of :attr:`~HttpRequest.path` can make your code easier to move between + test and deployment servers. For example, if the ``WSGIScriptAlias`` for your application is set to ``"/minfo"``, then ``path`` might be ``"/minfo/music/bands/the_beatles/"`` -- cgit v1.3 From 0412b7d28072ddef7dc1d0b363b6c6c88a439be8 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Fri, 1 Feb 2013 22:25:29 +0100 Subject: Avoided ambiguous output when runserver port is already in use. Thanks James Pic for the suggestion (PR 88). --- django/core/management/commands/runserver.py | 2 +- docs/intro/tutorial01.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/django/core/management/commands/runserver.py b/django/core/management/commands/runserver.py index 391e0b440a..0ca15fdb6f 100644 --- a/django/core/management/commands/runserver.py +++ b/django/core/management/commands/runserver.py @@ -93,7 +93,7 @@ class Command(BaseCommand): self.stdout.write(( "%(started_at)s\n" "Django version %(version)s, using settings %(settings)r\n" - "Development server is running at http://%(addr)s:%(port)s/\n" + "Starting development server at http://%(addr)s:%(port)s/\n" "Quit the server with %(quit_command)s.\n" ) % { "started_at": datetime.now().strftime('%B %d, %Y - %X'), diff --git a/docs/intro/tutorial01.txt b/docs/intro/tutorial01.txt index 7a7221c71d..a73db714f4 100644 --- a/docs/intro/tutorial01.txt +++ b/docs/intro/tutorial01.txt @@ -138,7 +138,7 @@ see the following output on the command line: 0 errors found |today| - 15:50:53 Django version |version|, using settings 'mysite.settings' - Development server is running at http://127.0.0.1:8000/ + Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C. You've started the Django development server, a lightweight Web server written -- cgit v1.3 From 1ee40f2141b0cffd4be69fbe5e6a8c526bcf6243 Mon Sep 17 00:00:00 2001 From: Ramiro Morales Date: Fri, 1 Feb 2013 21:10:34 -0300 Subject: Fixed content types contrib app doc typos. --- docs/ref/contrib/contenttypes.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'docs') diff --git a/docs/ref/contrib/contenttypes.txt b/docs/ref/contrib/contenttypes.txt index 282e350a64..34a2fd7f78 100644 --- a/docs/ref/contrib/contenttypes.txt +++ b/docs/ref/contrib/contenttypes.txt @@ -182,7 +182,7 @@ The ``ContentTypeManager`` Clears an internal cache used by :class:`~django.contrib.contenttypes.models.ContentType` to keep track - of which models for which it has created + of models for which it has created :class:`~django.contrib.contenttypes.models.ContentType` instances. You probably won't ever need to call this method yourself; Django will call it automatically when it's needed. @@ -239,11 +239,11 @@ Prior to Django 1.5, :meth:`~django.contrib.contenttypes.models.ContentTypeManager.get_for_models` always returned the :class:`~django.contrib.contenttypes.models.ContentType` associated with the concrete model of the specified one(s). That means there -was no way to retreive the +was no way to retrieve the :class:`~django.contrib.contenttypes.models.ContentType` of a proxy model using those methods. As of Django 1.5 you can now pass a boolean flag – ``for_concrete_model`` and ``for_concrete_models`` respectively – to specify -wether or not you want to retreive the +wether or not you want to retrieve the :class:`~django.contrib.contenttypes.models.ContentType` for the concrete or direct model. -- cgit v1.3 From 5f7eecd09af8d69722d483b73b5ac3a086ad0e42 Mon Sep 17 00:00:00 2001 From: Ramiro Morales Date: Fri, 1 Feb 2013 21:33:39 -0300 Subject: Small generic FK docs tweaks. --- docs/ref/contrib/contenttypes.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/ref/contrib/contenttypes.txt b/docs/ref/contrib/contenttypes.txt index 34a2fd7f78..fb85653ce8 100644 --- a/docs/ref/contrib/contenttypes.txt +++ b/docs/ref/contrib/contenttypes.txt @@ -277,7 +277,7 @@ A normal :class:`~django.db.models.ForeignKey` can only "point to" one other model, which means that if the ``TaggedItem`` model used a :class:`~django.db.models.ForeignKey` it would have to choose one and only one model to store tags for. The contenttypes -application provides a special field type which +application provides a special field type (``GenericForeignKey``) which works around this and allows the relationship to be with any model: @@ -287,7 +287,8 @@ model: :class:`~django.contrib.contenttypes.generic.GenericForeignKey`: 1. Give your model a :class:`~django.db.models.ForeignKey` - to :class:`~django.contrib.contenttypes.models.ContentType`. + to :class:`~django.contrib.contenttypes.models.ContentType`. The usual + name for this field is "content_type". 2. Give your model a field that can store primary key values from the models you'll be relating to. For most models, this means a -- cgit v1.3 From fdaaa241715ece2f706041faf16fb282e2782593 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sat, 2 Feb 2013 08:34:42 -0500 Subject: Fixed #19700 - Added documentation for BoundField.field. Thanks Tiberiu Ana for the report and patch. --- docs/topics/forms/index.txt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/topics/forms/index.txt b/docs/topics/forms/index.txt index 78f51f3fcc..ac58acc9e3 100644 --- a/docs/topics/forms/index.txt +++ b/docs/topics/forms/index.txt @@ -336,7 +336,7 @@ attributes, which can be useful in your templates: case, each object in the loop is a simple string containing the error message. -``field.is_hidden`` +``{{ field.is_hidden }}`` This attribute is ``True`` if the form field is a hidden field and ``False`` otherwise. It's not particularly useful as a template variable, but could be useful in conditional tests such as:: @@ -345,6 +345,12 @@ attributes, which can be useful in your templates: {# Do something special #} {% endif %} +``{{ field.field }}`` + The :class:`~django.forms.Field` instance from the form class that + this :class:`~django.forms.BoundField` wraps. You can use it to access + :class:`~django.forms.Field` attributes , e.g. + ``{{ char_field.field.max_length }}``. + Looping over hidden and visible fields ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- cgit v1.3 From 0694d2196f0fadde37ff2d002a9a4a8edb3ca504 Mon Sep 17 00:00:00 2001 From: Nick Sandford Date: Sat, 2 Feb 2013 13:21:50 -0800 Subject: Fixed #19445 -- Skip admin fieldsets validation when the ModelAdmin.get_form() method is overridden. --- django/contrib/admin/validation.py | 16 +++++++++------- docs/ref/contrib/admin/index.txt | 7 +++++++ tests/regressiontests/admin_validation/tests.py | 20 ++++++++++++++++++++ 3 files changed, 36 insertions(+), 7 deletions(-) (limited to 'docs') diff --git a/django/contrib/admin/validation.py b/django/contrib/admin/validation.py index 733f89d06f..a02bb7a316 100644 --- a/django/contrib/admin/validation.py +++ b/django/contrib/admin/validation.py @@ -6,7 +6,7 @@ from django.forms.models import (BaseModelForm, BaseModelFormSet, fields_for_mod from django.contrib.admin import ListFilter, FieldListFilter from django.contrib.admin.util import get_fields_from_path, NotRelationField from django.contrib.admin.options import (flatten_fieldsets, BaseModelAdmin, - HORIZONTAL, VERTICAL) + ModelAdmin, HORIZONTAL, VERTICAL) __all__ = ['validate'] @@ -388,12 +388,14 @@ def check_formfield(cls, model, opts, label, field): raise ImproperlyConfigured("'%s.%s' refers to field '%s' that " "is missing from the form." % (cls.__name__, label, field)) else: - fields = fields_for_model(model) - try: - fields[field] - except KeyError: - raise ImproperlyConfigured("'%s.%s' refers to field '%s' that " - "is missing from the form." % (cls.__name__, label, field)) + get_form_is_overridden = hasattr(cls, 'get_form') and cls.get_form != ModelAdmin.get_form + if not get_form_is_overridden: + fields = fields_for_model(model) + try: + fields[field] + except KeyError: + raise ImproperlyConfigured("'%s.%s' refers to field '%s' that " + "is missing from the form." % (cls.__name__, label, field)) def fetch_attr(cls, model, opts, label, field): try: diff --git a/docs/ref/contrib/admin/index.txt b/docs/ref/contrib/admin/index.txt index 1c19499d2a..1b47fa8828 100644 --- a/docs/ref/contrib/admin/index.txt +++ b/docs/ref/contrib/admin/index.txt @@ -1070,6 +1070,13 @@ templates used by the :class:`ModelAdmin` views: changelist that will be linked to the change view, as described in the :attr:`ModelAdmin.list_display_links` section. +.. method:: ModelAdmin.get_fieldsets(self, request, obj=None) + + The ``get_fieldsets`` method is given the ``HttpRequest`` and the ``obj`` + being edited (or ``None`` on an add form) and is expected to return a list + of two-tuples, in which each two-tuple represents a ``
      `` on the + admin form page, as described above in the :attr:`ModelAdmin.fieldsets` section. + .. method:: ModelAdmin.get_list_filter(self, request) .. versionadded:: 1.5 diff --git a/tests/regressiontests/admin_validation/tests.py b/tests/regressiontests/admin_validation/tests.py index be2500a803..b9b42c6bb9 100644 --- a/tests/regressiontests/admin_validation/tests.py +++ b/tests/regressiontests/admin_validation/tests.py @@ -20,6 +20,18 @@ class InvalidFields(admin.ModelAdmin): form = SongForm fields = ['spam'] +class ValidFormFieldsets(admin.ModelAdmin): + def get_form(self, request, obj=None, **kwargs): + class ExtraFieldForm(SongForm): + name = forms.CharField(max_length=50) + return ExtraFieldForm + + fieldsets = ( + (None, { + 'fields': ('name',), + }), + ) + class ValidationTestCase(TestCase): def test_readonly_and_editable(self): @@ -42,6 +54,14 @@ class ValidationTestCase(TestCase): validate, InvalidFields, Song) + def test_custom_get_form_with_fieldsets(self): + """ + Ensure that the fieldsets validation is skipped when the ModelAdmin.get_form() method + is overridden. + Refs #19445. + """ + validate(ValidFormFieldsets, Song) + def test_exclude_values(self): """ Tests for basic validation of 'exclude' option values (#12689) -- cgit v1.3 From c9c40bc6bc64e67365338751e4967d86d0882abf Mon Sep 17 00:00:00 2001 From: Julien Phalip Date: Sat, 2 Feb 2013 13:53:43 -0800 Subject: Fixed #19333 -- Moved compress.py outside of the admin static folder. Thanks to camilonova, Russell Keith-Magee, Aymeric Augustin and Ramiro Morales for the feedback. --- django/contrib/admin/bin/compress.py | 47 ++++++++++++++++++++++ django/contrib/admin/static/admin/js/compress.py | 47 ---------------------- .../writing-code/submitting-patches.txt | 6 ++- 3 files changed, 51 insertions(+), 49 deletions(-) create mode 100644 django/contrib/admin/bin/compress.py delete mode 100644 django/contrib/admin/static/admin/js/compress.py (limited to 'docs') diff --git a/django/contrib/admin/bin/compress.py b/django/contrib/admin/bin/compress.py new file mode 100644 index 0000000000..e15f2d3ef6 --- /dev/null +++ b/django/contrib/admin/bin/compress.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python +import os +import optparse +import subprocess +import sys + +js_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'static', 'admin', 'js') + +def main(): + usage = "usage: %prog [file1..fileN]" + description = """With no file paths given this script will automatically +compress all jQuery-based files of the admin app. Requires the Google Closure +Compiler library and Java version 6 or later.""" + parser = optparse.OptionParser(usage, description=description) + parser.add_option("-c", dest="compiler", default="~/bin/compiler.jar", + help="path to Closure Compiler jar file") + parser.add_option("-v", "--verbose", + action="store_true", dest="verbose") + parser.add_option("-q", "--quiet", + action="store_false", dest="verbose") + (options, args) = parser.parse_args() + + compiler = os.path.expanduser(options.compiler) + if not os.path.exists(compiler): + sys.exit("Google Closure compiler jar file %s not found. Please use the -c option to specify the path." % compiler) + + if not args: + if options.verbose: + sys.stdout.write("No filenames given; defaulting to admin scripts\n") + args = [os.path.join(js_path, f) for f in [ + "actions.js", "collapse.js", "inlines.js", "prepopulate.js"]] + + for arg in args: + if not arg.endswith(".js"): + arg = arg + ".js" + to_compress = os.path.expanduser(arg) + if os.path.exists(to_compress): + to_compress_min = "%s.min.js" % "".join(arg.rsplit(".js")) + cmd = "java -jar %s --js %s --js_output_file %s" % (compiler, to_compress, to_compress_min) + if options.verbose: + sys.stdout.write("Running: %s\n" % cmd) + subprocess.call(cmd.split()) + else: + sys.stdout.write("File %s not found. Sure it exists?\n" % to_compress) + +if __name__ == '__main__': + main() diff --git a/django/contrib/admin/static/admin/js/compress.py b/django/contrib/admin/static/admin/js/compress.py deleted file mode 100644 index 8d2caa28ea..0000000000 --- a/django/contrib/admin/static/admin/js/compress.py +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env python -import os -import optparse -import subprocess -import sys - -here = os.path.dirname(__file__) - -def main(): - usage = "usage: %prog [file1..fileN]" - description = """With no file paths given this script will automatically -compress all jQuery-based files of the admin app. Requires the Google Closure -Compiler library and Java version 6 or later.""" - parser = optparse.OptionParser(usage, description=description) - parser.add_option("-c", dest="compiler", default="~/bin/compiler.jar", - help="path to Closure Compiler jar file") - parser.add_option("-v", "--verbose", - action="store_true", dest="verbose") - parser.add_option("-q", "--quiet", - action="store_false", dest="verbose") - (options, args) = parser.parse_args() - - compiler = os.path.expanduser(options.compiler) - if not os.path.exists(compiler): - sys.exit("Google Closure compiler jar file %s not found. Please use the -c option to specify the path." % compiler) - - if not args: - if options.verbose: - sys.stdout.write("No filenames given; defaulting to admin scripts\n") - args = [os.path.join(here, f) for f in [ - "actions.js", "collapse.js", "inlines.js", "prepopulate.js"]] - - for arg in args: - if not arg.endswith(".js"): - arg = arg + ".js" - to_compress = os.path.expanduser(arg) - if os.path.exists(to_compress): - to_compress_min = "%s.min.js" % "".join(arg.rsplit(".js")) - cmd = "java -jar %s --js %s --js_output_file %s" % (compiler, to_compress, to_compress_min) - if options.verbose: - sys.stdout.write("Running: %s\n" % cmd) - subprocess.call(cmd.split()) - else: - sys.stdout.write("File %s not found. Sure it exists?\n" % to_compress) - -if __name__ == '__main__': - main() diff --git a/docs/internals/contributing/writing-code/submitting-patches.txt b/docs/internals/contributing/writing-code/submitting-patches.txt index a90dc32605..ed8aad99b3 100644 --- a/docs/internals/contributing/writing-code/submitting-patches.txt +++ b/docs/internals/contributing/writing-code/submitting-patches.txt @@ -176,8 +176,10 @@ Compressing JavaScript ~~~~~~~~~~~~~~~~~~~~~~ To simplify the process of providing optimized javascript code, Django -includes a handy script which should be used to create a "minified" version. -This script is located at ``django/contrib/admin/static/admin/js/compress.py``. +includes a handy python script which should be used to create a "minified" +version. To run it:: + + python django/contrib/admin/bin/compress.py Behind the scenes, ``compress.py`` is a front-end for Google's `Closure Compiler`_ which is written in Java. However, the Closure Compiler -- cgit v1.3 From 08dc90bccf7c4ffa8b04064d74b54c1150af5ff9 Mon Sep 17 00:00:00 2001 From: Ramiro Morales Date: Sat, 2 Feb 2013 21:08:45 -0300 Subject: Fixed #14305 -- Switched inspectdb to create unmanaged models. Thanks Ian Kelly for the report and initial patch. --- django/core/management/commands/inspectdb.py | 6 ++++-- docs/howto/legacy-databases.txt | 29 ++++++++++++++++++++++++++++ docs/ref/django-admin.txt | 15 ++++++++++++++ tests/regressiontests/inspectdb/tests.py | 10 ++++++++++ 4 files changed, 58 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/django/core/management/commands/inspectdb.py b/django/core/management/commands/inspectdb.py index f9cecc2f5f..42cc9c5dfe 100644 --- a/django/core/management/commands/inspectdb.py +++ b/django/core/management/commands/inspectdb.py @@ -40,8 +40,9 @@ class Command(NoArgsCommand): cursor = connection.cursor() yield "# This is an auto-generated Django model module." yield "# You'll have to do the following manually to clean this up:" - yield "# * Rearrange models' order" - yield "# * Make sure each model has one field with primary_key=True" + yield "# * Rearrange models' order" + yield "# * Make sure each model has one field with primary_key=True" + yield "# * Remove `managed = False` lines for those models you wish to give write DB access" yield "# Feel free to rename the models, but don't rename db_table values or field names." yield "#" yield "# Also note: You'll have to insert the output of 'django-admin.py sqlcustom [appname]'" @@ -224,5 +225,6 @@ class Command(NoArgsCommand): to the given database table name. """ return [" class Meta:", + " managed = False", " db_table = '%s'" % table_name, ""] diff --git a/docs/howto/legacy-databases.txt b/docs/howto/legacy-databases.txt index 3e75ef1e5f..67bce7e976 100644 --- a/docs/howto/legacy-databases.txt +++ b/docs/howto/legacy-databases.txt @@ -49,6 +49,35 @@ Once you've cleaned up your models, name the file ``models.py`` and put it in the Python package that holds your app. Then add the app to your :setting:`INSTALLED_APPS` setting. +If your plan is that your Django application(s) modify data (i.e. edit, remove +records and create new ones) in the existing database tables corresponding to +any of the introspected models then one of the manual review and edit steps +you need to perform on the resulting ``models.py`` file is to change the +Python declaration of each one of these models to specify it is a +:attr:`managed ` one. For example, consider +this generated model definition: + +.. parsed-literal:: + + class Person(models.Model): + id = models.IntegerField(primary_key=True) + first_name = models.ChaField(max_length=70) + class Meta: + **managed = False** + db_table = 'CENSUS_PERSONS' + +If you wanted to modify existing data on your ``CENSUS_PERSONS`` SQL table +with Django you'd need to change the ``managed`` option highlighted above to +``True`` (or simply remove it to let it because ``True`` is its default value). + +This servers as an explicit opt-in to give your nascent Django project write +access to your precious data on a model by model basis. + +.. versionchanged:: 1.6 + +The behavior by which introspected models are created as unmanaged ones is new +in Django 1.6. + Install the core Django tables ============================== diff --git a/docs/ref/django-admin.txt b/docs/ref/django-admin.txt index 8f6664edb7..4074495b9a 100644 --- a/docs/ref/django-admin.txt +++ b/docs/ref/django-admin.txt @@ -288,9 +288,24 @@ needed. ``inspectdb`` works with PostgreSQL, MySQL and SQLite. Foreign-key detection only works in PostgreSQL and with certain types of MySQL tables. +If your plan is that your Django application(s) modify data (i.e. edit, remove +records and create new ones) in the existing database tables corresponding to +any of the introspected models then one of the manual review and edit steps +you need to perform on the resulting ``models.py`` file is to change the +Python declaration of each one of these models to specify it is a +:attr:`managed ` one. + +This servers as an explicit opt-in to give your nascent Django project write +access to your precious data on a model by model basis. + The :djadminopt:`--database` option may be used to specify the database to introspect. +.. versionchanged:: 1.6 + +The behavior by which introspected models are created as unmanaged ones is new +in Django 1.6. + loaddata ------------------------------ diff --git a/tests/regressiontests/inspectdb/tests.py b/tests/regressiontests/inspectdb/tests.py index 33fd567546..d77e21bf92 100644 --- a/tests/regressiontests/inspectdb/tests.py +++ b/tests/regressiontests/inspectdb/tests.py @@ -140,3 +140,13 @@ class InspectDBTestCase(TestCase): self.assertIn("field_field_0 = models.IntegerField(db_column='%s__')" % base_name, output) self.assertIn("field_field_1 = models.IntegerField(db_column='__field')", output) self.assertIn("prc_x = models.IntegerField(db_column='prc(%) x')", output) + + def test_managed_models(self): + """Test that by default the command generates models with `Meta.managed = False` (#14305)""" + out = StringIO() + call_command('inspectdb', + table_name_filter=lambda tn:tn.startswith('inspectdb_columntypes'), + stdout=out) + output = out.getvalue() + self.longMessage = False + self.assertIn(" managed = False", output, msg='inspectdb should generate unmanaged models.') -- cgit v1.3 From 293f7a21147ad94c92c7d5b3f33cbab2f87b001b Mon Sep 17 00:00:00 2001 From: Julien Phalip Date: Sat, 2 Feb 2013 18:22:40 -0800 Subject: Fixed #17797 -- Enabled support for PATCH requests in the dummy test client. Thanks to pfarmer for the suggestion and initial patch. --- django/test/client.py | 16 ++++++++++++++++ docs/topics/testing/overview.txt | 8 ++++++++ tests/regressiontests/test_client_regress/tests.py | 15 +++++++++++++++ 3 files changed, 39 insertions(+) (limited to 'docs') diff --git a/django/test/client.py b/django/test/client.py index 6bdc1cf3d3..bb0f25e108 100644 --- a/django/test/client.py +++ b/django/test/client.py @@ -319,6 +319,11 @@ class RequestFactory(object): "Construct a PUT request." return self.generic('PUT', path, data, content_type, **extra) + def patch(self, path, data='', content_type='application/octet-stream', + **extra): + "Construct a PATCH request." + return self.generic('PATCH', path, data, content_type, **extra) + def delete(self, path, data='', content_type='application/octet-stream', **extra): "Construct a DELETE request." @@ -496,6 +501,17 @@ class Client(RequestFactory): response = self._handle_redirects(response, **extra) return response + def patch(self, path, data='', content_type='application/octet-stream', + follow=False, **extra): + """ + Send a resource to the server using PATCH. + """ + response = super(Client, self).patch( + path, data=data, content_type=content_type, **extra) + if follow: + response = self._handle_redirects(response, **extra) + return response + def delete(self, path, data='', content_type='application/octet-stream', follow=False, **extra): """ diff --git a/docs/topics/testing/overview.txt b/docs/topics/testing/overview.txt index 5739061dd1..3b2babd302 100644 --- a/docs/topics/testing/overview.txt +++ b/docs/topics/testing/overview.txt @@ -633,6 +633,14 @@ Use the ``django.test.client.Client`` class to make requests. The ``follow`` and ``extra`` arguments act the same as for :meth:`Client.get`. + .. method:: Client.patch(path, data='', content_type='application/octet-stream', follow=False, **extra) + + Makes a PATCH request on the provided ``path`` and returns a + ``Response`` object. Useful for testing RESTful interfaces. + + The ``follow`` and ``extra`` arguments act the same as for + :meth:`Client.get`. + .. method:: Client.delete(path, data='', content_type='application/octet-stream', follow=False, **extra) Makes an DELETE request on the provided ``path`` and returns a diff --git a/tests/regressiontests/test_client_regress/tests.py b/tests/regressiontests/test_client_regress/tests.py index 5ba5d3c4b3..c52715239b 100644 --- a/tests/regressiontests/test_client_regress/tests.py +++ b/tests/regressiontests/test_client_regress/tests.py @@ -783,6 +783,13 @@ class RequestMethodTests(TestCase): self.assertEqual(response.status_code, 200) self.assertEqual(response.content, b'request method: DELETE') + def test_patch(self): + "Request a view via request method PATCH" + response = self.client.patch('/test_client_regress/request_methods/') + self.assertEqual(response.status_code, 200) + self.assertEqual(response.content, b'request method: PATCH') + + class RequestMethodStringDataTests(TestCase): def test_post(self): "Request a view with string data via request method POST" @@ -800,6 +807,14 @@ class RequestMethodStringDataTests(TestCase): self.assertEqual(response.status_code, 200) self.assertEqual(response.content, b'request method: PUT') + def test_patch(self): + "Request a view with string data via request method PATCH" + # Regression test for #17797 + data = u'{"test": "json"}' + response = self.client.patch('/test_client_regress/request_methods/', data=data, content_type='application/json') + self.assertEqual(response.status_code, 200) + self.assertEqual(response.content, b'request method: PATCH') + class QueryStringTests(TestCase): def test_get_like_requests(self): # See: https://code.djangoproject.com/ticket/10571. -- cgit v1.3 From 2c173ff3b45e0a123147e3633082bbf9a7624536 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sun, 3 Feb 2013 13:22:53 -0500 Subject: Fixed a typo in docs/topics/auth/customizing.txt --- docs/topics/auth/customizing.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/topics/auth/customizing.txt b/docs/topics/auth/customizing.txt index cf031c7b84..7f1eff6624 100644 --- a/docs/topics/auth/customizing.txt +++ b/docs/topics/auth/customizing.txt @@ -444,11 +444,10 @@ different User model. you should specify the custom model using the :setting:`AUTH_USER_MODEL` setting. For example:: - from django.conf import settings from django.db import models - class Article(models.Model) + class Article(models.Model): author = models.ForeignKey(settings.AUTH_USER_MODEL) Specifying a custom User model -- cgit v1.3 From 869c9ba30615cb24fb5786787a2db8655f2f0d2b Mon Sep 17 00:00:00 2001 From: Ramiro Morales Date: Sun, 3 Feb 2013 20:53:48 -0300 Subject: Fixed #19730 -- Don't validate importability of settings by using i18n in management commands. They are handled independently now and the latter can be influenced by the new BaseCommand.leave_locale_alone internal option. Thanks chrischambers for the report, Claude, lpiatek, neaf and gabooo for their work on a patch, originally on refs. #17379. --- django/core/management/base.py | 45 ++++++++-- django/core/management/commands/compilemessages.py | 2 +- django/core/management/commands/makemessages.py | 2 +- django/core/management/templates.py | 3 + docs/howto/custom-management-commands.txt | 100 +++++++++++++-------- docs/releases/1.6.txt | 8 ++ .../commands/leave_locale_alone_false.py | 10 +++ .../management/commands/leave_locale_alone_true.py | 10 +++ tests/modeltests/user_commands/tests.py | 14 +++ tests/regressiontests/i18n/commands/extraction.py | 5 ++ 10 files changed, 153 insertions(+), 46 deletions(-) create mode 100644 tests/modeltests/user_commands/management/commands/leave_locale_alone_false.py create mode 100644 tests/modeltests/user_commands/management/commands/leave_locale_alone_true.py (limited to 'docs') diff --git a/django/core/management/base.py b/django/core/management/base.py index 7b9001ed14..9dc321a061 100644 --- a/django/core/management/base.py +++ b/django/core/management/base.py @@ -143,6 +143,22 @@ class BaseCommand(object): ``self.validate(app)`` from ``handle()``, where ``app`` is the application's Python module. + ``leave_locale_alone`` + A boolean indicating whether the locale set in settings should be + preserved during the execution of the command instead of being + forcibly set to 'en-us'. + + Default value is ``False``. + + Make sure you know what you are doing if you decide to change the value + of this option in your custom command because many of them create + database content that is locale-sensitive (like permissions) and that + content shouldn't contain any translations so making the locale differ + from the de facto default 'en-us' can cause unintended effects. + + This option can't be False when the can_import_settings option is set + to False too because attempting to set the locale needs access to + settings. This condition will generate a CommandError. """ # Metadata about this command. option_list = ( @@ -163,6 +179,7 @@ class BaseCommand(object): can_import_settings = True requires_model_validation = True output_transaction = False # Whether to wrap the output in a "BEGIN; COMMIT;" + leave_locale_alone = False def __init__(self): self.style = color_style() @@ -235,18 +252,28 @@ class BaseCommand(object): needed (as controlled by the attribute ``self.requires_model_validation``, except if force-skipped). """ - - # Switch to English, because django-admin.py creates database content - # like permissions, and those shouldn't contain any translations. - # But only do this if we can assume we have a working settings file, - # because django.utils.translation requires settings. - saved_lang = None self.stdout = OutputWrapper(options.get('stdout', sys.stdout)) self.stderr = OutputWrapper(options.get('stderr', sys.stderr), self.style.ERROR) if self.can_import_settings: + from django.conf import settings + + saved_locale = None + if not self.leave_locale_alone: + # Only mess with locales if we can assume we have a working + # settings file, because django.utils.translation requires settings + # (The final saying about whether the i18n machinery is active will be + # found in the value of the USE_I18N setting) + if not self.can_import_settings: + raise CommandError("Incompatible values of 'leave_locale_alone' " + "(%s) and 'can_import_settings' (%s) command " + "options." % (self.leave_locale_alone, + self.can_import_settings)) + # Switch to US English, because django-admin.py creates database + # content like permissions, and those shouldn't contain any + # translations. from django.utils import translation - saved_lang = translation.get_language() + saved_locale = translation.get_language() translation.activate('en-us') try: @@ -265,8 +292,8 @@ class BaseCommand(object): if self.output_transaction: self.stdout.write('\n' + self.style.SQL_KEYWORD("COMMIT;")) finally: - if saved_lang is not None: - translation.activate(saved_lang) + if saved_locale is not None: + translation.activate(saved_locale) def validate(self, app=None, display_num_errors=False): """ diff --git a/django/core/management/commands/compilemessages.py b/django/core/management/commands/compilemessages.py index 684ef3514c..8f2c1ff771 100644 --- a/django/core/management/commands/compilemessages.py +++ b/django/core/management/commands/compilemessages.py @@ -63,7 +63,7 @@ class Command(BaseCommand): help = 'Compiles .po files to .mo files for use with builtin gettext support.' requires_model_validation = False - can_import_settings = False + leave_locale_alone = True def handle(self, **options): locale = options.get('locale') diff --git a/django/core/management/commands/makemessages.py b/django/core/management/commands/makemessages.py index 4550605af2..daa4c5f023 100644 --- a/django/core/management/commands/makemessages.py +++ b/django/core/management/commands/makemessages.py @@ -189,7 +189,7 @@ class Command(NoArgsCommand): "--locale or --all options.") requires_model_validation = False - can_import_settings = False + leave_locale_alone = True def handle_noargs(self, *args, **options): locale = options.get('locale') diff --git a/django/core/management/templates.py b/django/core/management/templates.py index 927dbc13ac..5ce50b4dfd 100644 --- a/django/core/management/templates.py +++ b/django/core/management/templates.py @@ -61,6 +61,9 @@ class TemplateCommand(BaseCommand): can_import_settings = False # The supported URL schemes url_schemes = ['http', 'https', 'ftp'] + # Can't perform any active locale changes during this command, because + # setting might not be available at all. + leave_locale_alone = True def handle(self, app_or_project, name, target=None, **options): self.app_or_project = app_or_project diff --git a/docs/howto/custom-management-commands.txt b/docs/howto/custom-management-commands.txt index 6a7f644218..eba187bb37 100644 --- a/docs/howto/custom-management-commands.txt +++ b/docs/howto/custom-management-commands.txt @@ -112,54 +112,61 @@ In addition to being able to add custom command line options, all :doc:`management commands` can accept some default options such as :djadminopt:`--verbosity` and :djadminopt:`--traceback`. -.. admonition:: Management commands and locales +.. _management-commands-and-locales: - The :meth:`BaseCommand.execute` method sets the hardcoded ``en-us`` locale - because the commands shipped with Django perform several tasks - (for example, user-facing content rendering and database population) that - require a system-neutral string language (for which we use ``en-us``). +Management commands and locales +=============================== - If your custom management command uses another locale, you should manually - activate and deactivate it in your :meth:`~BaseCommand.handle` or - :meth:`~NoArgsCommand.handle_noargs` method using the functions provided by - the I18N support code: +By default, the :meth:`BaseCommand.execute` method sets the hardcoded 'en-us' +locale because most of the commands shipped with Django perform several tasks +(for example, user-facing content rendering and database population) that +require a system-neutral string language (for which we use 'en-us'). - .. code-block:: python +If, for some reason, your custom management command needs to use a fixed locale +different from 'en-us', you should manually activate and deactivate it in your +:meth:`~BaseCommand.handle` or :meth:`~NoArgsCommand.handle_noargs` method using +the functions provided by the I18N support code: - from django.core.management.base import BaseCommand, CommandError - from django.utils import translation +.. code-block:: python - class Command(BaseCommand): - ... - can_import_settings = True + from django.core.management.base import BaseCommand, CommandError + from django.utils import translation - def handle(self, *args, **options): + class Command(BaseCommand): + ... + can_import_settings = True - # Activate a fixed locale, e.g. Russian - translation.activate('ru') + def handle(self, *args, **options): - # Or you can activate the LANGUAGE_CODE - # chosen in the settings: - # - #from django.conf import settings - #translation.activate(settings.LANGUAGE_CODE) + # Activate a fixed locale, e.g. Russian + translation.activate('ru') + + # Or you can activate the LANGUAGE_CODE # chosen in the settings: + # + #from django.conf import settings + #translation.activate(settings.LANGUAGE_CODE) + + # Your command logic here + # ... - # Your command logic here - # ... + translation.deactivate() - translation.deactivate() +Another need might be that your command simply should use the locale set in +settings and Django should be kept from forcing it to 'en-us'. You can achieve +it by using the :data:`BaseCommand.leave_locale_alone` option. - Take into account though, that system management commands typically have to - be very careful about running in non-uniform locales, so: +When working on the scenarios described above though, take into account that +system management commands typically have to be very careful about running in +non-uniform locales, so you might need to: - * Make sure the :setting:`USE_I18N` setting is always ``True`` when running - the command (this is one good example of the potential problems stemming - from a dynamic runtime environment that Django commands avoid offhand by - always using a fixed locale). +* Make sure the :setting:`USE_I18N` setting is always ``True`` when running + the command (this is a good example of the potential problems stemming + from a dynamic runtime environment that Django commands avoid offhand by + always using a fixed locale). - * Review the code of your command and the code it calls for behavioral - differences when locales are changed and evaluate its impact on - predictable behavior of your command. +* Review the code of your command and the code it calls for behavioral + differences when locales are changed and evaluate its impact on + predictable behavior of your command. Command objects =============== @@ -222,6 +229,29 @@ All attributes can be set in your derived class and can be used in rather than all applications' models, call :meth:`~BaseCommand.validate` from :meth:`~BaseCommand.handle`. +.. attribute:: BaseCommand.leave_locale_alone + + A boolean indicating whether the locale set in settings should be preserved + during the execution of the command instead of being forcibly set to 'en-us'. + + Default value is ``False``. + + Make sure you know what you are doing if you decide to change the value of + this option in your custom command because many of them create database + content that is locale-sensitive (like permissions) and that content + shouldn't contain any translations so making the locale differ from the de + facto default 'en-us' can cause unintended effects. See the `Management + commands and locales`_ section above for further details. + + This option can't be ``False`` when the + :data:`~BaseCommand.can_import_settings` option is set to ``False`` too + because attempting to set the locale needs access to settings. This condition + will generate a :class:`CommandError`. + +.. versionadded:: 1.6 + + The ``leave_locale_alone`` option was added in Django 1.6. + Methods ------- diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 5e1d959f60..acc273cef4 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -39,6 +39,14 @@ Minor features ` can be provided at translation time rather than at definition time. +* For custom managemente commands: Validation of the presence of valid settings + in managements commands that ask for it by using the + :attr:`~django.core.management.BaseCommand.can_import_settings` internal + option is now performed independently from handling of the locale that should + active during the execution of the command. The latter can now be influenced + by the new :attr:`~django.core.management.BaseCommand.leave_locale_alone` + internal option. See :ref:`management-commands-and-locales` for more details. + Backwards incompatible changes in 1.6 ===================================== diff --git a/tests/modeltests/user_commands/management/commands/leave_locale_alone_false.py b/tests/modeltests/user_commands/management/commands/leave_locale_alone_false.py new file mode 100644 index 0000000000..8ebb607d5a --- /dev/null +++ b/tests/modeltests/user_commands/management/commands/leave_locale_alone_false.py @@ -0,0 +1,10 @@ +from django.core.management.base import BaseCommand +from django.utils import translation + +class Command(BaseCommand): + + can_import_settings = True + leave_locale_alone = False + + def handle(self, *args, **options): + return translation.get_language() diff --git a/tests/modeltests/user_commands/management/commands/leave_locale_alone_true.py b/tests/modeltests/user_commands/management/commands/leave_locale_alone_true.py new file mode 100644 index 0000000000..e0f923591e --- /dev/null +++ b/tests/modeltests/user_commands/management/commands/leave_locale_alone_true.py @@ -0,0 +1,10 @@ +from django.core.management.base import BaseCommand +from django.utils import translation + +class Command(BaseCommand): + + can_import_settings = True + leave_locale_alone = True + + def handle(self, *args, **options): + return translation.get_language() diff --git a/tests/modeltests/user_commands/tests.py b/tests/modeltests/user_commands/tests.py index d25911c09f..c8740577a5 100644 --- a/tests/modeltests/user_commands/tests.py +++ b/tests/modeltests/user_commands/tests.py @@ -44,3 +44,17 @@ class CommandTests(TestCase): finally: sys.stderr = old_stderr self.assertIn("CommandError", err.getvalue()) + + def test_default_en_us_locale_set(self): + # Forces en_us when set to true + out = StringIO() + with translation.override('pl'): + management.call_command('leave_locale_alone_false', stdout=out) + self.assertEqual(out.getvalue(), "en-us\n") + + def test_configured_locale_preserved(self): + # Leaves locale from settings when set to false + out = StringIO() + with translation.override('pl'): + management.call_command('leave_locale_alone_true', stdout=out) + self.assertEqual(out.getvalue(), "pl\n") diff --git a/tests/regressiontests/i18n/commands/extraction.py b/tests/regressiontests/i18n/commands/extraction.py index 0367d23ec6..ca89f30de8 100644 --- a/tests/regressiontests/i18n/commands/extraction.py +++ b/tests/regressiontests/i18n/commands/extraction.py @@ -110,6 +110,11 @@ class BasicExtractorTests(ExtractorTests): self.assertMsgId('I think that 100%% is more that 50%% of %(obj)s.', po_contents) self.assertMsgId("Blocktrans extraction shouldn't double escape this: %%, a=%(a)s", po_contents) + def test_force_en_us_locale(self): + """Value of locale-munging option used by the command is the right one""" + from django.core.management.commands.makemessages import Command + self.assertTrue(Command.leave_locale_alone) + def test_extraction_error(self): os.chdir(self.test_dir) self.assertRaises(SyntaxError, management.call_command, 'makemessages', locale=LOCALE, extensions=['tpl'], verbosity=0) -- cgit v1.3 From 21ea58b8ccf95798271157876d59d46dcc745b0d Mon Sep 17 00:00:00 2001 From: Ramiro Morales Date: Mon, 4 Feb 2013 08:55:45 -0300 Subject: Enhanced docs and docctrings added in 869c9ba. Thanks Claude for the suggestion. --- django/core/management/base.py | 9 +++++---- docs/howto/custom-management-commands.txt | 14 +++++++------- docs/releases/1.6.txt | 13 +++++++------ 3 files changed, 19 insertions(+), 17 deletions(-) (limited to 'docs') diff --git a/django/core/management/base.py b/django/core/management/base.py index 9dc321a061..bdaa5fa98a 100644 --- a/django/core/management/base.py +++ b/django/core/management/base.py @@ -151,10 +151,11 @@ class BaseCommand(object): Default value is ``False``. Make sure you know what you are doing if you decide to change the value - of this option in your custom command because many of them create - database content that is locale-sensitive (like permissions) and that - content shouldn't contain any translations so making the locale differ - from the de facto default 'en-us' can cause unintended effects. + of this option in your custom command if it creates database content + that is locale-sensitive and such content shouldn't contain any + translations (like it happens e.g. with django.contrim.auth + permissions) as making the locale differ from the de facto default + 'en-us' might cause unintended effects. This option can't be False when the can_import_settings option is set to False too because attempting to set the locale needs access to diff --git a/docs/howto/custom-management-commands.txt b/docs/howto/custom-management-commands.txt index eba187bb37..bfcea64b49 100644 --- a/docs/howto/custom-management-commands.txt +++ b/docs/howto/custom-management-commands.txt @@ -118,7 +118,7 @@ Management commands and locales =============================== By default, the :meth:`BaseCommand.execute` method sets the hardcoded 'en-us' -locale because most of the commands shipped with Django perform several tasks +locale because some commands shipped with Django perform several tasks (for example, user-facing content rendering and database population) that require a system-neutral string language (for which we use 'en-us'). @@ -237,11 +237,11 @@ All attributes can be set in your derived class and can be used in Default value is ``False``. Make sure you know what you are doing if you decide to change the value of - this option in your custom command because many of them create database - content that is locale-sensitive (like permissions) and that content - shouldn't contain any translations so making the locale differ from the de - facto default 'en-us' can cause unintended effects. See the `Management - commands and locales`_ section above for further details. + this option in your custom command if it creates database content that + is locale-sensitive and such content shouldn't contain any translations (like + it happens e.g. with django.contrim.auth permissions) as making the locale + differ from the de facto default 'en-us' might cause unintended effects. See + the `Management commands and locales`_ section above for further details. This option can't be ``False`` when the :data:`~BaseCommand.can_import_settings` option is set to ``False`` too @@ -250,7 +250,7 @@ All attributes can be set in your derived class and can be used in .. versionadded:: 1.6 - The ``leave_locale_alone`` option was added in Django 1.6. +The ``leave_locale_alone`` option was added in Django 1.6. Methods ------- diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index acc273cef4..25deb693af 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -39,13 +39,14 @@ Minor features ` can be provided at translation time rather than at definition time. -* For custom managemente commands: Validation of the presence of valid settings - in managements commands that ask for it by using the +* For custom management commands: Verification of the presence of valid + settings in commands that ask for it by using the :attr:`~django.core.management.BaseCommand.can_import_settings` internal - option is now performed independently from handling of the locale that should - active during the execution of the command. The latter can now be influenced - by the new :attr:`~django.core.management.BaseCommand.leave_locale_alone` - internal option. See :ref:`management-commands-and-locales` for more details. + option is now performed independently from handling of the locale that + should be active during the execution of the command. The latter can now be + influenced by the new + :attr:`~django.core.management.BaseCommand.leave_locale_alone` internal + option. See :ref:`management-commands-and-locales` for more details. Backwards incompatible changes in 1.6 ===================================== -- cgit v1.3 From 3f1c7b70537330435e2ec2fca9550f7b7fa4372e Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Mon, 28 Jan 2013 15:51:50 +0100 Subject: Simplified default project template. Squashed commit of: commit 508ec9144b35c50794708225b496bde1eb5e60aa Author: Aymeric Augustin Date: Tue Jan 29 22:50:55 2013 +0100 Tweaked default settings file. * Explained why BASE_DIR exists. * Added a link to the database configuration options, and put it in its own section. * Moved sensitive settings that must be changed for production at the top. commit 6515fd2f1aa73a86dc8dbd2ccf512ddb6b140d57 Author: Aymeric Augustin Date: Tue Jan 29 14:35:21 2013 +0100 Documented the simplified app & project templates in the changelog. commit 2c5b576c2ea91d84273a019b3d0b3b8b4da72f23 Author: Aymeric Augustin Date: Tue Jan 29 13:59:27 2013 +0100 Minor fixes in tutorials 5 and 6. commit 55a51531be8104f21b3cca3f6bf70b0a7139a041 Author: Aymeric Augustin Date: Tue Jan 29 13:51:11 2013 +0100 Updated tutorial 2 for the new project template. commit 29ddae87bdaecff12dd31b16b000c01efbde9e20 Author: Aymeric Augustin Date: Tue Jan 29 11:58:54 2013 +0100 Updated tutorial 1 for the new project template. commit 0ecb9f6e2514cfd26a678a280d471433375101a3 Author: Aymeric Augustin Date: Tue Jan 29 11:29:13 2013 +0100 Adjusted the default URLconf detection to account for the admin. It's now enabled by default. commit 5fb4da0d3d09dac28dd94e3fde92b9d4335c0565 Author: Aymeric Augustin Date: Tue Jan 29 10:36:55 2013 +0100 Added security warnings for the most sensitive settings. commit 718d84bd8ac4a42fb4b28ec93965de32680f091e Author: Aymeric Augustin Date: Mon Jan 28 23:24:06 2013 +0100 Used an absolute path for the SQLite database. This ensures the settings file works regardless of which directory django-admin.py / manage.py is invoked from. BASE_DIR got a +1 from a BDFL and another core dev. It doesn't involve the concept of a "Django project"; it's just a convenient way to express relative paths within the source code repository for non-Python files. Thanks Jacob Kaplan-Moss for the suggestion. commit 1b559b4bcda622e10909b68fe5cab90db6727dd9 Author: Aymeric Augustin Date: Mon Jan 28 23:22:40 2013 +0100 Removed STATIC_ROOT from the default settings template. It isn't necessary in development, and it confuses beginners to no end. Thanks Carl Meyer for the suggestion. commit a55f141a500bb7c9a1bc259bbe1954c13b199671 Author: Aymeric Augustin Date: Mon Jan 28 23:21:43 2013 +0100 Removed MEDIA_ROOT/URL from default settings template. Many sites will never deal with user-uploaded files, and MEDIA_ROOT is complicated to explain. Thanks Carl Meyer for the suggestion. commit 44bf2f2441420fd9429ee9fe1f7207f92dd87e70 Author: Aymeric Augustin Date: Mon Jan 28 22:22:09 2013 +0100 Removed logging config. This configuration is applied regardless of the value of LOGGING; duplicating it in LOGGING is confusing. commit eac747e848eaed65fd5f6f254f0a7559d856f88f Author: Aymeric Augustin Date: Mon Jan 28 22:05:31 2013 +0100 Enabled the locale middleware by default. USE_I18N is True by default, and doesn't work well without LocaleMiddleware. commit d806c62b2d00826dc2688c84b092627b8d571cab Author: Aymeric Augustin Date: Mon Jan 28 22:03:16 2013 +0100 Enabled clickjacking protection by default. commit 99152c30e6a15003f0b6737dc78e87adf462aacb Author: Aymeric Augustin Date: Mon Jan 28 22:01:48 2013 +0100 Reorganized settings in logical sections, and trimmed comments. commit d37ffdfcb24b7e0ec7cc113d07190f65fb12fb8a Author: Aymeric Augustin Date: Mon Jan 28 16:54:11 2013 +0100 Avoided misleading TEMPLATE_DEBUG = DEBUG. According to the docs TEMPLATE_DEBUG works only when DEBUG = True. commit 15d9478d3a9850e85841e7cf09cf83050371c6bf Author: Aymeric Augustin Date: Mon Jan 28 16:46:25 2013 +0100 Removed STATICFILES_FINDERS/TEMPLATE_LOADERS from default settings file. Only developers with special needs ever need to change these settings. commit 574da0eb5bfb4570883756914b4dbd7e20e1f61e Author: Aymeric Augustin Date: Mon Jan 28 16:45:01 2013 +0100 Removed STATICFILES/TEMPLATES_DIRS from default settings file. The current best practice is to put static files and templates in applications, for easier testing and deployment. commit 8cb18dbe56629aa1be74718a07e7cc66b4f9c9f0 Author: Aymeric Augustin Date: Mon Jan 28 16:24:16 2013 +0100 Removed settings related to email reporting from default settings file. While handy for small scale projects, it isn't exactly a best practice. commit 8ecbfcb3638058f0c49922540f874a7d802d864f Author: Aymeric Augustin Date: Tue Jan 29 18:54:43 2013 +0100 Documented how to enable the sites framework. commit 23fc91a6fa67d91ddd9d71b1c3e0dc26bdad9841 Author: Aymeric Augustin Date: Mon Jan 28 16:28:59 2013 +0100 Disabled the sites framework by default. RequestSite does the job for single-domain websites. commit c4d82eb8afc0eb8568bf9c4d12644272415e3960 Author: Aymeric Augustin Date: Tue Jan 29 00:08:33 2013 +0100 Added a default admin.py to the application template. Thanks Ryan D Hiebert for the suggestion. commit 4071dc771e5c44b1c5ebb9beecefb164ae465e22 Author: Aymeric Augustin Date: Mon Jan 28 10:59:49 2013 +0100 Enabled the admin by default. Everyone uses the admin. commit c807a31f8d89e7e7fd97380e3023f7983a8b6fcb Author: Aymeric Augustin Date: Mon Jan 28 10:57:05 2013 +0100 Removed admindocs from default project template. commit 09e4ce0e652a97da1a9e285046a91c8ad7a9189c Author: Aymeric Augustin Date: Mon Jan 28 16:32:52 2013 +0100 Added links to the settings documentation. commit 5b8f5eaef364eb790fcde6f9e86f7d266074cca8 Author: Aymeric Augustin Date: Mon Jan 28 11:06:54 2013 +0100 Used a significant example for URLconf includes. commit 908e91d6fcee2a3cb51ca26ecdf12a6a24e69ef8 Author: Aymeric Augustin Date: Mon Jan 28 16:22:31 2013 +0100 Moved code comments about WSGI to docs, and rewrote said docs. commit 50417e51996146f891d08ca8b74dcc736a581932 Author: Aymeric Augustin Date: Mon Jan 28 15:51:50 2013 +0100 Normalized the default application template. Removed the default test that 1 + 1 = 2, because it's been committed way too many times, in too many projects. Added an import of `render` for views, because the first view will often be: def home(request): return render(request, "mysite/home.html") --- django/conf/app_template/admin.py | 3 + django/conf/app_template/tests.py | 15 +- django/conf/app_template/views.py | 2 + .../conf/project_template/project_name/settings.py | 178 +++++++-------------- django/conf/project_template/project_name/urls.py | 13 +- django/conf/project_template/project_name/wsgi.py | 26 +-- django/core/management/templates.py | 5 + django/views/debug.py | 29 ++-- docs/howto/deployment/wsgi/index.txt | 99 ++++++++---- docs/howto/error-reporting.txt | 4 +- docs/intro/_images/admin02.png | Bin 64260 -> 32850 bytes docs/intro/_images/admin02t.png | Bin 24726 -> 16401 bytes docs/intro/_images/admin03.png | Bin 75434 -> 40583 bytes docs/intro/_images/admin03t.png | Bin 28131 -> 19722 bytes docs/intro/reusable-apps.txt | 2 +- docs/intro/tutorial01.txt | 110 ++++++------- docs/intro/tutorial02.txt | 103 ++++-------- docs/intro/tutorial05.txt | 3 +- docs/ref/clickjacking.txt | 6 +- docs/ref/contrib/admin/index.txt | 8 +- docs/ref/contrib/gis/tutorial.txt | 3 +- docs/ref/contrib/sites.txt | 24 ++- docs/ref/django-admin.txt | 4 + docs/ref/settings.txt | 19 ++- docs/releases/1.6.txt | 13 ++ docs/topics/i18n/translation.txt | 15 +- 26 files changed, 314 insertions(+), 370 deletions(-) create mode 100644 django/conf/app_template/admin.py (limited to 'docs') diff --git a/django/conf/app_template/admin.py b/django/conf/app_template/admin.py new file mode 100644 index 0000000000..8c38f3f3da --- /dev/null +++ b/django/conf/app_template/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/django/conf/app_template/tests.py b/django/conf/app_template/tests.py index 501deb776c..7ce503c2dd 100644 --- a/django/conf/app_template/tests.py +++ b/django/conf/app_template/tests.py @@ -1,16 +1,3 @@ -""" -This file demonstrates writing tests using the unittest module. These will pass -when you run "manage.py test". - -Replace this with more appropriate tests for your application. -""" - from django.test import TestCase - -class SimpleTest(TestCase): - def test_basic_addition(self): - """ - Tests that 1 + 1 always equals 2. - """ - self.assertEqual(1 + 1, 2) +# Create your tests here. diff --git a/django/conf/app_template/views.py b/django/conf/app_template/views.py index 60f00ef0ef..91ea44a218 100644 --- a/django/conf/app_template/views.py +++ b/django/conf/app_template/views.py @@ -1 +1,3 @@ +from django.shortcuts import render + # Create your views here. diff --git a/django/conf/project_template/project_name/settings.py b/django/conf/project_template/project_name/settings.py index 559e27ca16..8815dc6bc0 100644 --- a/django/conf/project_template/project_name/settings.py +++ b/django/conf/project_template/project_name/settings.py @@ -1,152 +1,82 @@ -# Django settings for {{ project_name }} project. +""" +Django settings for {{ project_name }} project. -DEBUG = True -TEMPLATE_DEBUG = DEBUG - -ADMINS = ( - # ('Your Name', 'your_email@example.com'), -) - -MANAGERS = ADMINS - -DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'. - 'NAME': '', # Or path to database file if using sqlite3. - # The following settings are not used with sqlite3: - 'USER': '', - 'PASSWORD': '', - 'HOST': '', # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP. - 'PORT': '', # Set to empty string for default. - } -} - -# Local time zone for this installation. Choices can be found here: -# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name -# although not all choices may be available on all operating systems. -# In a Windows environment this must be set to your system time zone. -TIME_ZONE = 'America/Chicago' - -# Language code for this installation. All choices can be found here: -# http://www.i18nguy.com/unicode/language-identifiers.html -LANGUAGE_CODE = 'en-us' - -SITE_ID = 1 - -# If you set this to False, Django will make some optimizations so as not -# to load the internationalization machinery. -USE_I18N = True +For more information on this file, see +https://docs.djangoproject.com/en/{{ docs_version }}/topics/settings/ -# If you set this to False, Django will not format dates, numbers and -# calendars according to the current locale. -USE_L10N = True +For the full list of settings and their values, see +https://docs.djangoproject.com/en/{{ docs_version }}/ref/settings/ +""" -# If you set this to False, Django will not use timezone-aware datetimes. -USE_TZ = True +# Build paths inside the project like this: os.path.join(BASE_DIR, ...) +import os +BASE_DIR = os.path.dirname(os.path.dirname(__file__)) -# Absolute filesystem path to the directory that will hold user-uploaded files. -# Example: "/var/www/example.com/media/" -MEDIA_ROOT = '' -# URL that handles the media served from MEDIA_ROOT. Make sure to use a -# trailing slash. -# Examples: "http://example.com/media/", "http://media.example.com/" -MEDIA_URL = '' +# Quick-start development settings - unsuitable for production -# Absolute path to the directory static files should be collected to. -# Don't put anything in this directory yourself; store your static files -# in apps' "static/" subdirectories and in STATICFILES_DIRS. -# Example: "/var/www/example.com/static/" -STATIC_ROOT = '' +# SECURITY WARNING: keep the secret key used in production secret! +# Hardcoded values can leak through source control. Consider loading +# the secret key from an environment variable or a file instead. +SECRET_KEY = '{{ secret_key }}' -# URL prefix for static files. -# Example: "http://example.com/static/", "http://static.example.com/" -STATIC_URL = '/static/' +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True -# Additional locations of static files -STATICFILES_DIRS = ( - # Put strings here, like "/home/html/static" or "C:/www/django/static". - # Always use forward slashes, even on Windows. - # Don't forget to use absolute paths, not relative paths. -) +TEMPLATE_DEBUG = True -# List of finder classes that know how to find static files in -# various locations. -STATICFILES_FINDERS = ( - 'django.contrib.staticfiles.finders.FileSystemFinder', - 'django.contrib.staticfiles.finders.AppDirectoriesFinder', - # 'django.contrib.staticfiles.finders.DefaultStorageFinder', -) -# Make this unique, and don't share it with anybody. -SECRET_KEY = '{{ secret_key }}' +# Application definition -# List of callables that know how to import templates from various sources. -TEMPLATE_LOADERS = ( - 'django.template.loaders.filesystem.Loader', - 'django.template.loaders.app_directories.Loader', - # 'django.template.loaders.eggs.Loader', +INSTALLED_APPS = ( + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', ) MIDDLEWARE_CLASSES = ( - 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.locale.LocaleMiddleware', + 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', - # Uncomment the next line for simple clickjacking protection: - # 'django.middleware.clickjacking.XFrameOptionsMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', ) ROOT_URLCONF = '{{ project_name }}.urls' -# Python dotted path to the WSGI application used by Django's runserver. WSGI_APPLICATION = '{{ project_name }}.wsgi.application' -TEMPLATE_DIRS = ( - # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". - # Always use forward slashes, even on Windows. - # Don't forget to use absolute paths, not relative paths. -) -INSTALLED_APPS = ( - 'django.contrib.auth', - 'django.contrib.contenttypes', - 'django.contrib.sessions', - 'django.contrib.sites', - 'django.contrib.messages', - 'django.contrib.staticfiles', - # Uncomment the next line to enable the admin: - # 'django.contrib.admin', - # Uncomment the next line to enable admin documentation: - # 'django.contrib.admindocs', -) +# Database +# https://docs.djangoproject.com/en/{{ docs_version }}/ref/settings/#databases -# A sample logging configuration. The only tangible logging -# performed by this configuration is to send an email to -# the site admins on every HTTP 500 error when DEBUG=False. -# See http://docs.djangoproject.com/en/dev/topics/logging for -# more details on how to customize your logging configuration. -LOGGING = { - 'version': 1, - 'disable_existing_loggers': False, - 'filters': { - 'require_debug_false': { - '()': 'django.utils.log.RequireDebugFalse' - } - }, - 'handlers': { - 'mail_admins': { - 'level': 'ERROR', - 'filters': ['require_debug_false'], - 'class': 'django.utils.log.AdminEmailHandler' - } - }, - 'loggers': { - 'django.request': { - 'handlers': ['mail_admins'], - 'level': 'ERROR', - 'propagate': True, - }, +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } } + +# Internationalization +# https://docs.djangoproject.com/en/{{ docs_version }}/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'UTC' + +USE_I18N = True + +USE_L10N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/{{ docs_version }}/howto/static-files/ + +STATIC_URL = '/static/' diff --git a/django/conf/project_template/project_name/urls.py b/django/conf/project_template/project_name/urls.py index eb471d54a8..f03a29478d 100644 --- a/django/conf/project_template/project_name/urls.py +++ b/django/conf/project_template/project_name/urls.py @@ -1,17 +1,12 @@ from django.conf.urls import patterns, include, url -# Uncomment the next two lines to enable the admin: -# from django.contrib import admin -# admin.autodiscover() +from django.contrib import admin +admin.autodiscover() urlpatterns = patterns('', # Examples: # url(r'^$', '{{ project_name }}.views.home', name='home'), - # url(r'^{{ project_name }}/', include('{{ project_name }}.foo.urls')), + # url(r'^blog/', include('blog.urls')), - # Uncomment the admin/doc line below to enable admin documentation: - # url(r'^admin/doc/', include('django.contrib.admindocs.urls')), - - # Uncomment the next line to enable the admin: - # url(r'^admin/', include(admin.site.urls)), + url(r'^admin/', include(admin.site.urls)), ) diff --git a/django/conf/project_template/project_name/wsgi.py b/django/conf/project_template/project_name/wsgi.py index f768265b23..94d60c8cf9 100644 --- a/django/conf/project_template/project_name/wsgi.py +++ b/django/conf/project_template/project_name/wsgi.py @@ -1,32 +1,14 @@ """ WSGI config for {{ project_name }} project. -This module contains the WSGI application used by Django's development server -and any production WSGI deployments. It should expose a module-level variable -named ``application``. Django's ``runserver`` and ``runfcgi`` commands discover -this application via the ``WSGI_APPLICATION`` setting. - -Usually you will have the standard Django WSGI application here, but it also -might make sense to replace the whole Django WSGI application with a custom one -that later delegates to the Django one. For example, you could introduce WSGI -middleware here, or combine a Django application with an application of another -framework. +It exposes the WSGI callable as a module-level variable named ``application``. +For more information on this file, see +https://docs.djangoproject.com/en/{{ docs_version }}/howto/deployment/wsgi/ """ -import os -# We defer to a DJANGO_SETTINGS_MODULE already in the environment. This breaks -# if running multiple sites in the same mod_wsgi process. To fix this, use -# mod_wsgi daemon mode with each site in its own daemon process, or use -# os.environ["DJANGO_SETTINGS_MODULE"] = "{{ project_name }}.settings" +import os os.environ.setdefault("DJANGO_SETTINGS_MODULE", "{{ project_name }}.settings") -# This application object is used by any WSGI server configured to use this -# file. This includes Django's development server, if the WSGI_APPLICATION -# setting points here. from django.core.wsgi import get_wsgi_application application = get_wsgi_application() - -# Apply WSGI middleware here. -# from helloworld.wsgi import HelloWorldApplication -# application = HelloWorldApplication(application) diff --git a/django/core/management/templates.py b/django/core/management/templates.py index 5ce50b4dfd..7904b72dd9 100644 --- a/django/core/management/templates.py +++ b/django/core/management/templates.py @@ -105,10 +105,15 @@ class TemplateCommand(BaseCommand): base_name = '%s_name' % app_or_project base_subdir = '%s_template' % app_or_project base_directory = '%s_directory' % app_or_project + if django.VERSION[-1] == 0: + docs_version = 'dev' + else: + docs_version = '%d.%d' % django.VERSION[:2] context = Context(dict(options, **{ base_name: name, base_directory: top_dir, + 'docs_version': docs_version, }), autoescape=False) # Setup a stub settings environment for template rendering diff --git a/django/views/debug.py b/django/views/debug.py index e5f4c70191..efab03f09c 100644 --- a/django/views/debug.py +++ b/django/views/debug.py @@ -438,9 +438,12 @@ def technical_404_response(request, exception): except (IndexError, TypeError, KeyError): tried = [] else: - if not tried: - # tried exists but is an empty list. The URLconf must've been empty. - return empty_urlconf(request) + if (not tried # empty URLconf + or (request.path == '/' + and len(tried) == 1 # default URLconf + and len(tried[0]) == 1 + and tried[0][0].app_name == tried[0][0].namespace == 'admin')): + return default_urlconf(request) urlconf = getattr(request, 'urlconf', settings.ROOT_URLCONF) if isinstance(urlconf, types.ModuleType): @@ -458,12 +461,10 @@ def technical_404_response(request, exception): }) return HttpResponseNotFound(t.render(c), content_type='text/html') -def empty_urlconf(request): +def default_urlconf(request): "Create an empty URLconf 404 error response." - t = Template(EMPTY_URLCONF_TEMPLATE, name='Empty URLConf template') - c = Context({ - 'project_name': settings.SETTINGS_MODULE.split('.')[0] - }) + t = Template(DEFAULT_URLCONF_TEMPLATE, name='Default URLconf template') + c = Context({}) return HttpResponse(t.render(c), content_type='text/html') # @@ -1067,7 +1068,7 @@ TECHNICAL_404_TEMPLATE = """ """ -EMPTY_URLCONF_TEMPLATE = """ +DEFAULT_URLCONF_TEMPLATE = """ @@ -1087,7 +1088,6 @@ EMPTY_URLCONF_TEMPLATE = """ tbody td, tbody th { vertical-align:top; padding:2px 3px; } thead th { padding:1px 6px 1px 3px; background:#fefefe; text-align:left; font-weight:normal; font-size:11px; border:1px solid #ddd; } tbody th { width:12em; text-align:right; color:#666; padding-right:.5em; } - ul { margin-left: 2em; margin-top: 1em; } #summary { background: #e0ebff; } #summary h2 { font-weight: normal; color: #666; } #explanation { background:#eee; } @@ -1103,11 +1103,10 @@ EMPTY_URLCONF_TEMPLATE = """
      -

      Of course, you haven't actually done any work yet. Here's what to do next:

      -
        -
      • If you plan to use a database, edit the DATABASES setting in {{ project_name }}/settings.py.
      • -
      • Start your first app by running python manage.py startapp [appname].
      • -
      +

      + Of course, you haven't actually done any work yet. + Next, start your first app by running python manage.py startapp [appname]. +

      diff --git a/docs/howto/deployment/wsgi/index.txt b/docs/howto/deployment/wsgi/index.txt index 91eda35cd7..738774462b 100644 --- a/docs/howto/deployment/wsgi/index.txt +++ b/docs/howto/deployment/wsgi/index.txt @@ -8,9 +8,10 @@ servers and applications. .. _WSGI: http://www.wsgi.org Django's :djadmin:`startproject` management command sets up a simple default -WSGI configuration for you, which you can tweak as needed for your project, and -direct any WSGI-compliant webserver to use. Django includes getting-started -documentation for the following WSGI servers: +WSGI configuration for you, which you can tweak as needed for your project, +and direct any WSGI-compliant application server to use. + +Django includes getting-started documentation for the following WSGI servers: .. toctree:: :maxdepth: 1 @@ -23,32 +24,76 @@ documentation for the following WSGI servers: The ``application`` object -------------------------- -One key concept of deploying with WSGI is to specify a central ``application`` -callable object which the webserver uses to communicate with your code. This is -commonly specified as an object named ``application`` in a Python module -accessible to the server. +The key concept of deploying with WSGI is the ``application`` callable which +the application server uses to communicate with your code. It's commonly +provided as an object named ``application`` in a Python module accessible to +the server. + +The :djadmin:`startproject` command creates a file +:file:`/wsgi.py` that contains such an ``application`` callable. + +It's used both by Django's development server and in production WSGI +deployments. + +WSGI servers obtain the path to the ``application`` callable from their +configuration. Django's built-in servers, namely the :djadmin:`runserver` and +:djadmin:`runfcgi` commands, read it from the :setting:`WSGI_APPLICATION` +setting. By default, it's set to ``.wsgi.application``, which +points to the ``application`` callable in :file:`/wsgi.py`. + +Configuring the settings module +------------------------------- + +When the WSGI server loads your application, Django needs to import the +settings module — that's where your entire application is defined. + +Django uses the :envvar:`DJANGO_SETTINGS_MODULE` environment variable to +locate the appropriate settings module. It must contain the dotted path to the +settings module. You can use a different value for development and production; +it all depends on how you organize your settings. -The :djadmin:`startproject` command creates a :file:`projectname/wsgi.py` that -contains such an application callable. +If this variable isn't set, the default :file:`wsgi.py` sets it to +``mysite.settings``, where ``mysite`` is the name of your project. That's how +:djadmin:`runserver` discovers the default settings file by default. .. note:: - Upgrading from a previous release of Django and don't have a :file:`wsgi.py` - file in your project? You can simply add one to your project's top-level - Python package (probably next to :file:`settings.py` and :file:`urls.py`) - with the contents below. If you want :djadmin:`runserver` to also make use - of this WSGI file, you can also add ``WSGI_APPLICATION = - "mysite.wsgi.application"`` in your settings (replacing ``mysite`` with the - name of your project). + Since environment variables are process-wide, this doesn't work when you + run multiple Django sites in the same process. This happens with mod_wsgi. -Initially this file contains:: + To avoid this problem, use mod_wsgi's daemon mode with each site in its + own daemon process, or override the value from the environnemnt by + enforcing ``os.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings"`` in + your :file:`wsgi.py`. - import os +Applying WSGI middleware +------------------------ + +To apply `WSGI middleware`_ you can simply wrap the application object. For +istance you could add these lines at the bottom of :file:`wsgi.py`:: + + from helloworld.wsgi import HelloWorldApplication + application = HelloWorldApplication(application) + +You could also replace the Django WSGI application with a custom WSGI +application that later delegates to the Django WSGI application, if you want +to combine a Django application with a WSGI application of another framework. + +.. _`WSGI middleware`: http://www.python.org/dev/peps/pep-3333/#middleware-components-that-play-both-sides + +Upgrading from Django < 1.4 +--------------------------- + +If you're upgrading from Django 1.3.x or earlier, you don't have a +:file:`wsgi.py` file in your project. + +You can simply add one to your project's top-level Python package (probably +next to :file:`settings.py` and :file:`urls.py`) with the contents below:: + + import os os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings") - # This application object is used by the development server - # as well as any WSGI server configured to use this file. from django.core.wsgi import get_wsgi_application application = get_wsgi_application() @@ -58,14 +103,6 @@ environment variable. You'll need to edit this line to replace ``mysite`` with the name of your project package, so the path to your settings module is correct. -To apply `WSGI middleware`_ you can simply wrap the application object -in the same file:: - - from helloworld.wsgi import HelloWorldApplication - application = HelloWorldApplication(application) - -You could also replace the Django WSGI application with a custom WSGI -application that later delegates to the Django WSGI application, if you want to -combine a Django application with a WSGI application of another framework. - -.. _`WSGI middleware`: http://www.python.org/dev/peps/pep-3333/#middleware-components-that-play-both-sides +Also add ``WSGI_APPLICATION = "mysite.wsgi.application"`` in your settings, so +that :djadmin:`runserver` finds your ``application`` callable. Don't forget to +replace ``mysite`` with the name of your project in this line. diff --git a/docs/howto/error-reporting.txt b/docs/howto/error-reporting.txt index 7f3c68c136..27f11f4936 100644 --- a/docs/howto/error-reporting.txt +++ b/docs/howto/error-reporting.txt @@ -39,8 +39,8 @@ By default, Django will send email from root@localhost. However, some mail providers reject all email from this address. To use a different sender address, modify the :setting:`SERVER_EMAIL` setting. -To disable this behavior, just remove all entries from the :setting:`ADMINS` -setting. +To activate this behavior, put the email addresses of the recipients in the +:setting:`ADMINS` setting. .. seealso:: diff --git a/docs/intro/_images/admin02.png b/docs/intro/_images/admin02.png index 4b49ebb490..b9810ab7ba 100644 Binary files a/docs/intro/_images/admin02.png and b/docs/intro/_images/admin02.png differ diff --git a/docs/intro/_images/admin02t.png b/docs/intro/_images/admin02t.png index d7519d19ab..c0c6a56928 100644 Binary files a/docs/intro/_images/admin02t.png and b/docs/intro/_images/admin02t.png differ diff --git a/docs/intro/_images/admin03.png b/docs/intro/_images/admin03.png index 635226c61c..5cf567d5ce 100644 Binary files a/docs/intro/_images/admin03.png and b/docs/intro/_images/admin03.png differ diff --git a/docs/intro/_images/admin03t.png b/docs/intro/_images/admin03t.png index 94273cb583..ad15ea60cd 100644 Binary files a/docs/intro/_images/admin03t.png and b/docs/intro/_images/admin03t.png differ diff --git a/docs/intro/reusable-apps.txt b/docs/intro/reusable-apps.txt index 6aade4997e..99fb62e4d7 100644 --- a/docs/intro/reusable-apps.txt +++ b/docs/intro/reusable-apps.txt @@ -63,8 +63,8 @@ After the previous tutorials, our project should look like this:: urls.py wsgi.py polls/ - admin.py __init__.py + admin.py models.py tests.py urls.py diff --git a/docs/intro/tutorial01.txt b/docs/intro/tutorial01.txt index a73db714f4..56a068ff1f 100644 --- a/docs/intro/tutorial01.txt +++ b/docs/intro/tutorial01.txt @@ -182,40 +182,40 @@ Database setup -------------- Now, edit :file:`mysite/settings.py`. It's a normal Python module with -module-level variables representing Django settings. Change the -following keys in the :setting:`DATABASES` ``'default'`` item to match -your database connection settings. +module-level variables representing Django settings. + +By default, the configuration uses SQLite. If you're new to databases, or +you're just interested in trying Django, this is the easiest choice. SQLite is +included in Python, so you won't need to install anything else to support your +database. + +If you wish to use another database, install the appropriate :ref:`database +bindings `, and change the following keys in the +:setting:`DATABASES` ``'default'`` item to match your database connection +settings: * :setting:`ENGINE ` -- Either + ``'django.db.backends.sqlite3'``, ``'django.db.backends.postgresql_psycopg2'``, - ``'django.db.backends.mysql'``, ``'django.db.backends.sqlite3'`` or + ``'django.db.backends.mysql'``, or ``'django.db.backends.oracle'``. Other backends are :setting:`also available `. -* :setting:`NAME` -- The name of your database. If you're using - SQLite, the database will be a file on your computer; in that - case, :setting:`NAME` should be the full absolute path, - including filename, of that file. If the file doesn't exist, it - will automatically be created when you synchronize the database - for the first time (see below). - - When specifying the path, always use forward slashes, even on - Windows (e.g. ``C:/homes/user/mysite/sqlite3.db``). +* :setting:`NAME` -- The name of your database. If you're using SQLite, the + database will be a file on your computer; in that case, :setting:`NAME` + should be the full absolute path, including filename, of that file. When + specifying the path, always use forward slashes, even on Windows (e.g. + ``C:/homes/user/mysite/sqlite3.db``). * :setting:`USER` -- Your database username (not used for SQLite). -* :setting:`PASSWORD` -- Your database password (not used for - SQLite). +* :setting:`PASSWORD` -- Your database password (not used for SQLite). -* :setting:`HOST` -- The host your database is on. Leave this as - an empty string (or possibly ``127.0.0.1``) if your database server is on the - same physical machine (not used for SQLite). See :setting:`HOST` for details. +* :setting:`HOST` -- The host your database is on (not used for SQLite). + Leave this as an empty string (or possibly ``127.0.0.1``) if your + database server is on the same physical machine . -If you're new to databases, we recommend simply using SQLite by setting -:setting:`ENGINE ` to ``'django.db.backends.sqlite3'`` and -:setting:`NAME` to the place where you'd like to store the database. SQLite is -included in Python, so you won't need to install anything else to support your -database. +For more details, see the reference documentation for :setting:`DATABASES`. .. note:: @@ -226,17 +226,20 @@ database. If you're using SQLite, you don't need to create anything beforehand - the database file will be created automatically when it is needed. -While you're editing :file:`settings.py`, set :setting:`TIME_ZONE` to your -time zone. The default value is the Central time zone in the U.S. (Chicago). +While you're editing :file:`mysite/settings.py`, set :setting:`TIME_ZONE` to +your time zone. -Also, note the :setting:`INSTALLED_APPS` setting toward the bottom of -the file. That holds the names of all Django applications that are -activated in this Django instance. Apps can be used in multiple projects, and -you can package and distribute them for use by others in their projects. +Also, note the :setting:`INSTALLED_APPS` setting at the top of the file. That +holds the names of all Django applications that are activated in this Django +instance. Apps can be used in multiple projects, and you can package and +distribute them for use by others in their projects. By default, :setting:`INSTALLED_APPS` contains the following apps, all of which come with Django: +* :mod:`django.contrib.admin` -- The admin site. You'll use it in :doc:`part 2 + of this tutorial `. + * :mod:`django.contrib.auth` -- An authentication system. * :mod:`django.contrib.contenttypes` -- A framework for content types. @@ -261,11 +264,12 @@ that, run the following command: python manage.py syncdb -The :djadmin:`syncdb` command looks at the :setting:`INSTALLED_APPS` setting and -creates any necessary database tables according to the database settings in your -:file:`settings.py` file. You'll see a message for each database table it -creates, and you'll get a prompt asking you if you'd like to create a superuser -account for the authentication system. Go ahead and do that. +The :djadmin:`syncdb` command looks at the :setting:`INSTALLED_APPS` setting +and creates any necessary database tables according to the database settings +in your :file:`mysqlite/settings.py` file. You'll see a message for each +database table it creates, and you'll get a prompt asking you if you'd like to +create a superuser account for the authentication system. Go ahead and do +that. If you're interested, run the command-line client for your database and type ``\dt`` (PostgreSQL), ``SHOW TABLES;`` (MySQL), or ``.schema`` (SQLite) to @@ -288,10 +292,10 @@ Creating models Now that your environment -- a "project" -- is set up, you're set to start doing work. -Each application you write in Django consists of a Python package, somewhere -on your `Python path`_, that follows a certain convention. Django comes with a -utility that automatically generates the basic directory structure of an app, -so you can focus on writing code rather than creating directories. +Each application you write in Django consists of a Python package that follows +a certain convention. Django comes with a utility that automatically generates +the basic directory structure of an app, so you can focus on writing code +rather than creating directories. .. admonition:: Projects vs. apps @@ -316,6 +320,7 @@ That'll create a directory :file:`polls`, which is laid out like this:: polls/ __init__.py + admin.py models.py tests.py views.py @@ -401,26 +406,21 @@ But first we need to tell our project that the ``polls`` app is installed. you can distribute apps, because they don't have to be tied to a given Django installation. -Edit the :file:`settings.py` file again, and change the -:setting:`INSTALLED_APPS` setting to include the string ``'polls'``. So -it'll look like this:: +Edit the :file:`mysite/settings.py` file again, and change the +:setting:`INSTALLED_APPS` setting to include the string ``'polls'``. So it'll +look like this:: INSTALLED_APPS = ( + 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', - 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', - # Uncomment the next line to enable the admin: - # 'django.contrib.admin', - # Uncomment the next line to enable admin documentation: - # 'django.contrib.admindocs', 'polls', ) -Now Django knows to include the ``polls`` app. Let's run another -command: +Now Django knows to include the ``polls`` app. Let's run another command: .. code-block:: bash @@ -433,13 +433,13 @@ statements for the polls app): BEGIN; CREATE TABLE "polls_poll" ( - "id" serial NOT NULL PRIMARY KEY, + "id" integer NOT NULL PRIMARY KEY, "question" varchar(200) NOT NULL, - "pub_date" timestamp with time zone NOT NULL + "pub_date" datetime NOT NULL ); CREATE TABLE "polls_choice" ( - "id" serial NOT NULL PRIMARY KEY, - "poll_id" integer NOT NULL REFERENCES "polls_poll" ("id") DEFERRABLE INITIALLY DEFERRED, + "id" integer NOT NULL PRIMARY KEY, + "poll_id" integer NOT NULL REFERENCES "polls_poll" ("id"), "choice_text" varchar(200) NOT NULL, "votes" integer NOT NULL ); @@ -447,7 +447,8 @@ statements for the polls app): Note the following: -* The exact output will vary depending on the database you are using. +* The exact output will vary depending on the database you are using. The + example above is generated for SQLite. * Table names are automatically generated by combining the name of the app (``polls``) and the lowercase name of the model -- ``poll`` and @@ -465,8 +466,7 @@ Note the following: types such as ``auto_increment`` (MySQL), ``serial`` (PostgreSQL), or ``integer primary key`` (SQLite) are handled for you automatically. Same goes for quoting of field names -- e.g., using double quotes or single - quotes. The author of this tutorial runs PostgreSQL, so the example - output is in PostgreSQL syntax. + quotes. * The :djadmin:`sql` command doesn't actually run the SQL in your database - it just prints it to the screen so that you can see what SQL Django thinks diff --git a/docs/intro/tutorial02.txt b/docs/intro/tutorial02.txt index 38ad7d88dc..e5350a4d4c 100644 --- a/docs/intro/tutorial02.txt +++ b/docs/intro/tutorial02.txt @@ -21,49 +21,11 @@ automatically-generated admin site. The admin isn't intended to be used by site visitors. It's for site managers. -Activate the admin site -======================= - -The Django admin site is not activated by default -- it's an opt-in thing. To -activate the admin site for your installation, do these three things: - -* Uncomment ``"django.contrib.admin"`` in the :setting:`INSTALLED_APPS` setting. - -* Run ``python manage.py syncdb``. Since you have added a new application - to :setting:`INSTALLED_APPS`, the database tables need to be updated. - -* Edit your ``mysite/urls.py`` file and uncomment the lines that reference - the admin -- there are three lines in total to uncomment. This file is a - URLconf; we'll dig into URLconfs in the next tutorial. For now, all you - need to know is that it maps URL roots to applications. In the end, you - should have a ``urls.py`` file that looks like this: - - .. parsed-literal:: - - from django.conf.urls import patterns, include, url - - # Uncomment the next two lines to enable the admin: - **from django.contrib import admin** - **admin.autodiscover()** - - urlpatterns = patterns('', - # Examples: - # url(r'^$', '{{ project_name }}.views.home', name='home'), - # url(r'^{{ project_name }}/', include('{{ project_name }}.foo.urls')), - - # Uncomment the admin/doc line below to enable admin documentation: - # url(r'^admin/doc/', include('django.contrib.admindocs.urls')), - - # Uncomment the next line to enable the admin: - **url(r'^admin/', include(admin.site.urls)),** - ) - - (The bold lines are the ones that needed to be uncommented.) - Start the development server ============================ -Let's start the development server and explore the admin site. +The Django admin site is activated by default. Let's start the development +server and explore it. Recall from Tutorial 1 that you start the development server like so: @@ -77,6 +39,10 @@ http://127.0.0.1:8000/admin/. You should see the admin's login screen: .. image:: _images/admin01.png :alt: Django admin login screen +Since :doc:`translation ` is turned on by default, +the login screen may be displayed in your own language, depending on your +browser's settings and on whether Django has a translation for this language. + .. admonition:: Doesn't match what you see? If at this point, instead of the above login page, you get an error @@ -93,24 +59,26 @@ http://127.0.0.1:8000/admin/. You should see the admin's login screen: Enter the admin site ==================== -Now, try logging in. (You created a superuser account in the first part of this +Now, try logging in. You created a superuser account in the first part of this tutorial, remember? If you didn't create one or forgot the password you can -:ref:`create another one `.) You should see -the Django admin index page: +:ref:`create another one `. + +You should see the Django admin index page: .. image:: _images/admin02t.png :alt: Django admin index page -You should see a few types of editable content, including groups, users -and sites. These are core features Django ships with by default. +You should see a few types of editable content: groups and users. They are +provided by :mod:`django.contrib.auth`, the authentication framework shipped +by Django. Make the poll app modifiable in the admin ========================================= But where's our poll app? It's not displayed on the admin index page. -Just one thing to do: We need to tell the admin that ``Poll`` -objects have an admin interface. To do this, create a file called +Just one thing to do: we need to tell the admin that ``Poll`` +objects have an admin interface. To do this, open the file called ``admin.py`` in your ``polls`` directory, and edit it to look like this:: from django.contrib import admin @@ -118,10 +86,6 @@ objects have an admin interface. To do this, create a file called admin.site.register(Poll) -You'll need to restart the development server to see your changes. Normally, -the server auto-reloads code every time you modify a file, but the action of -creating a new file doesn't trigger the auto-reloading logic. - Explore the free admin functionality ==================================== @@ -145,7 +109,7 @@ Click the "What's up?" poll to edit it: Things to note here: -* The form is automatically generated from the Poll model. +* The form is automatically generated from the ``Poll`` model. * The different model field types (:class:`~django.db.models.DateTimeField`, :class:`~django.db.models.CharField`) correspond to the appropriate HTML @@ -302,7 +266,7 @@ registration code to read:: This tells Django: "``Choice`` objects are edited on the ``Poll`` admin page. By default, provide enough fields for 3 choices." -Load the "Add poll" page to see how that looks, you may need to restart your development server: +Load the "Add poll" page to see how that looks: .. image:: _images/admin11t.png :alt: Add poll page now has choices on it @@ -435,31 +399,24 @@ That's easy to change, though, using Django's template system. The Django admin is powered by Django itself, and its interfaces use Django's own template system. -Open your settings file (``mysite/settings.py``, remember) and look at the -:setting:`TEMPLATE_DIRS` setting. :setting:`TEMPLATE_DIRS` is a tuple of -filesystem directories to check when loading Django templates. It's a search -path. - Create a ``mytemplates`` directory in your project directory. Templates can live anywhere on your filesystem that Django can access. (Django runs as whatever user your server runs.) However, keeping your templates within the project is a good convention to follow. -By default, :setting:`TEMPLATE_DIRS` is empty. So, let's add a line to it, to -tell Django where our templates live:: - - TEMPLATE_DIRS = ( - '/path/to/mysite/mytemplates', # Change this to your own directory. - ) - -Now copy the template ``admin/base_site.html`` from within the default Django -admin template directory in the source code of Django itself -(``django/contrib/admin/templates``) into an ``admin`` subdirectory of -whichever directory you're using in :setting:`TEMPLATE_DIRS`. For example, if -your :setting:`TEMPLATE_DIRS` includes ``'/path/to/mysite/mytemplates'``, as -above, then copy ``django/contrib/admin/templates/admin/base_site.html`` to -``/path/to/mysite/mytemplates/admin/base_site.html``. Don't forget that -``admin`` subdirectory. +Open your settings file (``mysite/settings.py``, remember) and add a +:setting:`TEMPLATE_DIRS` setting:: + + TEMPLATE_DIRS = (os.path.join(BASE_DIR, 'mytemplates'),) + +Don't forget the trailing comma. :setting:`TEMPLATE_DIRS` is a tuple of +filesystem directories to check when loading Django templates; it's a search +path. + +Now create a directory called ``admin`` inside ``mytemplates``, and copy the +template ``admin/base_site.html`` from within the default Django admin +template directory in the source code of Django itself +(``django/contrib/admin/templates``) into that directory. .. admonition:: Where are the Django source files? diff --git a/docs/intro/tutorial05.txt b/docs/intro/tutorial05.txt index d1f95176ed..7af4eb3edb 100644 --- a/docs/intro/tutorial05.txt +++ b/docs/intro/tutorial05.txt @@ -159,8 +159,7 @@ can do in an automated test, so let's turn that into an automated test. The best place for an application's tests is in the application's ``tests.py`` file - the testing system will look there for tests automatically. -Put the following in the ``tests.py`` file in the ``polls`` application (you'll -notice ``tests.py`` contains some dummy tests, you can remove those):: +Put the following in the ``tests.py`` file in the ``polls`` application:: import datetime diff --git a/docs/ref/clickjacking.txt b/docs/ref/clickjacking.txt index e3d1bfc87b..40b42d1ac7 100644 --- a/docs/ref/clickjacking.txt +++ b/docs/ref/clickjacking.txt @@ -51,7 +51,7 @@ How to use it Setting X-Frame-Options for all responses ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -To set the same X-Frame-Options value for all responses in your site, add +To set the same X-Frame-Options value for all responses in your site, put ``'django.middleware.clickjacking.XFrameOptionsMiddleware'`` to :setting:`MIDDLEWARE_CLASSES`:: @@ -61,6 +61,10 @@ To set the same X-Frame-Options value for all responses in your site, add ... ) +.. versionchanged:: 1.6 + This middleware is enabled in the settings file generated by + :djadmin:`startproject`. + By default, the middleware will set the X-Frame-Options header to SAMEORIGIN for every outgoing ``HttpResponse``. If you want DENY instead, set the :setting:`X_FRAME_OPTIONS` setting:: diff --git a/docs/ref/contrib/admin/index.txt b/docs/ref/contrib/admin/index.txt index 1b47fa8828..3f32d3bce4 100644 --- a/docs/ref/contrib/admin/index.txt +++ b/docs/ref/contrib/admin/index.txt @@ -14,7 +14,13 @@ Django's admin interface. Overview ======== -There are seven steps in activating the Django admin site: +The admin is enabled in the default project template used by +:djadmin:`startproject`. + +.. versionchanged:: 1.6 + In previous versions, the admin wasn't enabled by default. + +For reference, here are the requirements: 1. Add ``'django.contrib.admin'`` to your :setting:`INSTALLED_APPS` setting. diff --git a/docs/ref/contrib/gis/tutorial.txt b/docs/ref/contrib/gis/tutorial.txt index 9efa020e61..56d90c8593 100644 --- a/docs/ref/contrib/gis/tutorial.txt +++ b/docs/ref/contrib/gis/tutorial.txt @@ -115,13 +115,12 @@ In addition, modify the :setting:`INSTALLED_APPS` setting to include and ``world`` (your newly created application):: INSTALLED_APPS = ( + 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', - 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', - 'django.contrib.admin', 'django.contrib.gis', 'world' ) diff --git a/docs/ref/contrib/sites.txt b/docs/ref/contrib/sites.txt index 7e5448b3d3..7eaab5dacf 100644 --- a/docs/ref/contrib/sites.txt +++ b/docs/ref/contrib/sites.txt @@ -247,13 +247,29 @@ To do this, you can use the sites framework. A simple example:: 'http://example.com/mymodel/objects/3/' -Default site and ``syncdb`` -=========================== +Enabling the sites framework +============================ + +.. versionchanged:: 1.6 + In previous versions, the sites framework was enabled by default. + +To enable the sites framework, follow these steps: + +1. Add ``'django.contrib.sites'`` to your :setting:`INSTALLED_APPS` + setting. + +2. Define a :setting:`SITE_ID` setting:: + + SITE_ID = 1 + +3. Run :djadmin:`syncdb`. ``django.contrib.sites`` registers a :data:`~django.db.models.signals.post_syncdb` signal handler which creates a -default site named ``example.com`` with the domain ``example.com``. For -example, this site will be created after Django creates the test database. +default site named ``example.com`` with the domain ``example.com``. This site +will also be created after Django creates the test database. To set the +correct name and domain for your project, you can use an :doc:`initial data +fixture `. Caching the current ``Site`` object =================================== diff --git a/docs/ref/django-admin.txt b/docs/ref/django-admin.txt index 4074495b9a..bde4ec6c82 100644 --- a/docs/ref/django-admin.txt +++ b/docs/ref/django-admin.txt @@ -921,6 +921,8 @@ For example:: django-admin.py startapp myapp /Users/jezdez/Code/myapp +.. _custom-app-and-project-templates: + .. django-admin-option:: --template With the ``--template`` option, you can use a custom app template by providing @@ -952,6 +954,7 @@ with the ``--name`` option. The :class:`template context options) - ``app_name`` -- the app name as passed to the command - ``app_directory`` -- the full path of the newly created app +- ``docs_version`` -- the version of the documentation: ``'dev'`` or ``'1.x'`` .. _render_warning: @@ -1021,6 +1024,7 @@ with the ``--name`` option. The :class:`template context - ``project_name`` -- the project name as passed to the command - ``project_directory`` -- the full path of the newly created project - ``secret_key`` -- a random key for the :setting:`SECRET_KEY` setting +- ``docs_version`` -- the version of the documentation: ``'dev'`` or ``'1.x'`` Please also see the :ref:`rendering warning ` as mentioned for :djadmin:`startapp`. diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt index d057323c06..affa805bc4 100644 --- a/docs/ref/settings.txt +++ b/docs/ref/settings.txt @@ -1134,9 +1134,12 @@ LANGUAGE_CODE Default: ``'en-us'`` -A string representing the language code for this installation. This should be in -standard :term:`language format`. For example, U.S. English is -``"en-us"``. See :doc:`/topics/i18n/index`. +A string representing the language code for this installation. This should be +in standard :term:`language format`. For example, U.S. English +is ``"en-us"``. See also the `list of language identifiers`_ and +:doc:`/topics/i18n/index`. + +.. _list of language identifiers: http://www.i18nguy.com/unicode/language-identifiers.html .. setting:: LANGUAGE_COOKIE_NAME @@ -1668,12 +1671,8 @@ TIME_ZONE Default: ``'America/Chicago'`` -A string representing the time zone for this installation, or -``None``. `See available choices`_. (Note that list of available -choices lists more than one on the same line; you'll want to use just -one of the choices for a given time zone. For instance, one line says -``'Europe/London GB GB-Eire'``, but you should use the first bit of -that -- ``'Europe/London'`` -- as your :setting:`TIME_ZONE` setting.) +A string representing the time zone for this installation, or ``None``. See +the `list of time zones`_. Note that this isn't necessarily the time zone of the server. For example, one server may serve multiple Django-powered sites, each with a separate time zone @@ -1706,7 +1705,7 @@ to ensure your processes are running in the correct environment. If you're running Django on Windows, :setting:`TIME_ZONE` must be set to match the system time zone. -.. _See available choices: http://www.postgresql.org/docs/8.1/static/datetime-keywords.html#DATETIME-TIMEZONE-SET-TABLE +.. _list of time zones: http://en.wikipedia.org/wiki/List_of_tz_database_time_zones .. _pytz: http://pytz.sourceforge.net/ diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 25deb693af..32e5172878 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -17,6 +17,19 @@ deprecation process for some features`_. What's new in Django 1.6 ======================== +Simplified default project and app templates +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The default templates used by :djadmin:`startproject` and :djadmin:`startapp` +have been simplified and modernized. The :doc:`admin +` is now enabled by default in new projects; the +:doc:`sites ` framework no longer is. :ref:`Language +detection ` and :ref:`clickjacking +prevention ` are turned on. + +If the default templates don't suit your tastes, you can use :ref:`custom +project and app templates `. + Minor features ~~~~~~~~~~~~~~ diff --git a/docs/topics/i18n/translation.txt b/docs/topics/i18n/translation.txt index f45be3c63d..e2cc8fabce 100644 --- a/docs/topics/i18n/translation.txt +++ b/docs/topics/i18n/translation.txt @@ -29,7 +29,9 @@ use internationalization, you should take the two seconds to set :setting:`USE_I18N = False ` in your settings file. Then Django will make some optimizations so as not to load the internationalization machinery. You'll probably also want to remove ``'django.core.context_processors.i18n'`` -from your :setting:`TEMPLATE_CONTEXT_PROCESSORS` setting. +from your :setting:`TEMPLATE_CONTEXT_PROCESSORS` setting and +``'django.middleware.locale.LocaleMiddleware'`` from your +:setting:`MIDDLEWARE_CLASSES` setting. .. note:: @@ -1476,9 +1478,14 @@ If you want to let each individual user specify which language he or she prefers, use ``LocaleMiddleware``. ``LocaleMiddleware`` enables language selection based on data from the request. It customizes content for each user. -To use ``LocaleMiddleware``, add ``'django.middleware.locale.LocaleMiddleware'`` -to your :setting:`MIDDLEWARE_CLASSES` setting. Because middleware order -matters, you should follow these guidelines: +``LocaleMiddleware`` is enabled in the default settings file: the +:setting:`MIDDLEWARE_CLASSES` setting contains +``'django.middleware.locale.LocaleMiddleware'``. + +.. versionchanged:: 1.6 + In previous versions, ``LocaleMiddleware` wasn't enabled by default. + +Because middleware order matters, you should follow these guidelines: * Make sure it's one of the first middlewares installed. * It should come after ``SessionMiddleware``, because ``LocaleMiddleware`` -- cgit v1.3 From 5c70299a712434c8f1b2156230634913c6a0c813 Mon Sep 17 00:00:00 2001 From: Simon Charette Date: Mon, 4 Feb 2013 15:06:38 -0500 Subject: Fixed #19734 -- Missing values in `DATETIME_INPUT_FORMATS` doc. Also changed formating of `DATE_INPUT_FORMATS` and `TIME_INPUT_FORMATS` for readability. Thanks minddust for the report! --- docs/ref/settings.txt | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) (limited to 'docs') diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt index affa805bc4..d4c6868ced 100644 --- a/docs/ref/settings.txt +++ b/docs/ref/settings.txt @@ -636,9 +636,13 @@ DATE_INPUT_FORMATS Default:: - ('%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', - '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', - '%B %d, %Y', '%d %B %Y', '%d %B, %Y') + ( + '%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', # '2006-10-25', '10/25/2006', '10/25/06' + '%b %d %Y', '%b %d, %Y', # 'Oct 25 2006', 'Oct 25, 2006' + '%d %b %Y', '%d %b, %Y', # '25 Oct 2006', '25 Oct, 2006' + '%B %d %Y', '%B %d, %Y', # 'October 25 2006', 'October 25, 2006' + '%d %B %Y', '%d %B, %Y', # '25 October 2006', '25 October, 2006' + ) A tuple of formats that will be accepted when inputting data on a date field. Formats will be tried in order, using the first valid one. Note that these @@ -673,9 +677,20 @@ DATETIME_INPUT_FORMATS Default:: - ('%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M', '%Y-%m-%d', - '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M', '%m/%d/%Y', - '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M', '%m/%d/%y') + ( + '%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59' + '%Y-%m-%d %H:%M:%S.%f', # '2006-10-25 14:30:59.000200' + '%Y-%m-%d %H:%M', # '2006-10-25 14:30' + '%Y-%m-%d', # '2006-10-25' + '%m/%d/%Y %H:%M:%S', # '10/25/2006 14:30:59' + '%m/%d/%Y %H:%M:%S.%f', # '10/25/2006 14:30:59.000200' + '%m/%d/%Y %H:%M', # '10/25/2006 14:30' + '%m/%d/%Y', # '10/25/2006' + '%m/%d/%y %H:%M:%S', # '10/25/06 14:30:59' + '%m/%d/%y %H:%M:%S.%f', # '10/25/06 14:30:59.000200' + '%m/%d/%y %H:%M', # '10/25/06 14:30' + '%m/%d/%y', # '10/25/06' + ) A tuple of formats that will be accepted when inputting data on a datetime field. Formats will be tried in order, using the first valid one. Note that @@ -1650,7 +1665,12 @@ See also :setting:`DATE_FORMAT` and :setting:`DATETIME_FORMAT`. TIME_INPUT_FORMATS ------------------ -Default: ``('%H:%M:%S', '%H:%M')`` +Default:: + + ( + '%H:%M:%S', # '14:30:59' + '%H:%M', # '14:30' + ) A tuple of formats that will be accepted when inputting data on a time field. Formats will be tried in order, using the first valid one. Note that these -- cgit v1.3 From ec469ade2b04b94bfeb59fb0fc7d9300470be615 Mon Sep 17 00:00:00 2001 From: Simon Charette Date: Tue, 5 Feb 2013 04:16:07 -0500 Subject: Fixed #19689 -- Renamed `Model._meta.module_name` to `model_name`. --- django/contrib/admin/actions.py | 2 +- django/contrib/admin/options.py | 24 +++++++++--------- django/contrib/admin/sites.py | 6 ++--- .../templates/admin/auth/user/change_password.html | 2 +- .../contrib/admin/templates/admin/change_form.html | 2 +- django/contrib/admin/templatetags/admin_urls.py | 3 +-- django/contrib/admin/util.py | 2 +- django/contrib/admin/views/main.py | 2 +- django/contrib/admin/widgets.py | 4 +-- django/contrib/admindocs/views.py | 12 ++++----- django/contrib/auth/context_processors.py | 16 ++++++------ django/contrib/auth/management/__init__.py | 2 +- django/contrib/comments/moderation.py | 4 +-- django/contrib/comments/views/comments.py | 4 +-- django/contrib/contenttypes/generic.py | 4 +-- django/contrib/contenttypes/management.py | 2 +- django/contrib/contenttypes/models.py | 10 ++++---- django/contrib/gis/sitemaps/kml.py | 2 +- django/core/cache/backends/db.py | 2 +- django/core/management/sql.py | 4 +-- django/core/serializers/python.py | 2 +- django/core/xheaders.py | 2 +- django/db/models/base.py | 4 +-- django/db/models/fields/related.py | 8 +++--- django/db/models/loading.py | 2 +- django/db/models/options.py | 29 +++++++++++++++------- django/db/models/related.py | 10 ++++---- django/views/generic/detail.py | 6 ++--- django/views/generic/list.py | 4 +-- docs/internals/deprecation.txt | 2 ++ docs/releases/1.6.txt | 6 +++++ tests/regressiontests/admin_custom_urls/models.py | 2 +- 32 files changed, 102 insertions(+), 84 deletions(-) (limited to 'docs') diff --git a/django/contrib/admin/actions.py b/django/contrib/admin/actions.py index 201101736e..d11ba3d1a8 100644 --- a/django/contrib/admin/actions.py +++ b/django/contrib/admin/actions.py @@ -75,7 +75,7 @@ def delete_selected(modeladmin, request, queryset): # Display the confirmation page return TemplateResponse(request, modeladmin.delete_selected_confirmation_template or [ - "admin/%s/%s/delete_selected_confirmation.html" % (app_label, opts.object_name.lower()), + "admin/%s/%s/delete_selected_confirmation.html" % (app_label, opts.model_name), "admin/%s/delete_selected_confirmation.html" % app_label, "admin/delete_selected_confirmation.html" ], context, current_app=modeladmin.admin_site.name) diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py index 8e0aaccc86..8de31121e0 100644 --- a/django/contrib/admin/options.py +++ b/django/contrib/admin/options.py @@ -371,7 +371,7 @@ class ModelAdmin(BaseModelAdmin): return self.admin_site.admin_view(view)(*args, **kwargs) return update_wrapper(wrapper, view) - info = self.model._meta.app_label, self.model._meta.module_name + info = self.model._meta.app_label, self.model._meta.model_name urlpatterns = patterns('', url(r'^$', @@ -783,7 +783,7 @@ class ModelAdmin(BaseModelAdmin): form_template = self.change_form_template return TemplateResponse(request, form_template or [ - "admin/%s/%s/change_form.html" % (app_label, opts.object_name.lower()), + "admin/%s/%s/change_form.html" % (app_label, opts.model_name), "admin/%s/change_form.html" % app_label, "admin/change_form.html" ], context, current_app=self.admin_site.name) @@ -803,7 +803,7 @@ class ModelAdmin(BaseModelAdmin): self.message_user(request, msg) if post_url_continue is None: post_url_continue = reverse('admin:%s_%s_change' % - (opts.app_label, opts.module_name), + (opts.app_label, opts.model_name), args=(pk_value,), current_app=self.admin_site.name) if "_popup" in request.POST: @@ -845,14 +845,14 @@ class ModelAdmin(BaseModelAdmin): msg = _('The %(name)s "%(obj)s" was added successfully. You may edit it again below.') % msg_dict self.message_user(request, msg) return HttpResponseRedirect(reverse('admin:%s_%s_change' % - (opts.app_label, opts.module_name), + (opts.app_label, opts.model_name), args=(pk_value,), current_app=self.admin_site.name)) elif "_addanother" in request.POST: msg = _('The %(name)s "%(obj)s" was changed successfully. You may add another %(name)s below.') % msg_dict self.message_user(request, msg) return HttpResponseRedirect(reverse('admin:%s_%s_add' % - (opts.app_label, opts.module_name), + (opts.app_label, opts.model_name), current_app=self.admin_site.name)) else: msg = _('The %(name)s "%(obj)s" was changed successfully.') % msg_dict @@ -867,7 +867,7 @@ class ModelAdmin(BaseModelAdmin): opts = self.model._meta if self.has_change_permission(request, None): post_url = reverse('admin:%s_%s_changelist' % - (opts.app_label, opts.module_name), + (opts.app_label, opts.model_name), current_app=self.admin_site.name) else: post_url = reverse('admin:index', @@ -882,7 +882,7 @@ class ModelAdmin(BaseModelAdmin): opts = self.model._meta if self.has_change_permission(request, None): post_url = reverse('admin:%s_%s_changelist' % - (opts.app_label, opts.module_name), + (opts.app_label, opts.model_name), current_app=self.admin_site.name) else: post_url = reverse('admin:index', @@ -1060,7 +1060,7 @@ class ModelAdmin(BaseModelAdmin): if request.method == 'POST' and "_saveasnew" in request.POST: return self.add_view(request, form_url=reverse('admin:%s_%s_add' % - (opts.app_label, opts.module_name), + (opts.app_label, opts.model_name), current_app=self.admin_site.name)) ModelForm = self.get_form(request, obj) @@ -1283,7 +1283,7 @@ class ModelAdmin(BaseModelAdmin): context.update(extra_context or {}) return TemplateResponse(request, self.change_list_template or [ - 'admin/%s/%s/change_list.html' % (app_label, opts.object_name.lower()), + 'admin/%s/%s/change_list.html' % (app_label, opts.model_name), 'admin/%s/change_list.html' % app_label, 'admin/change_list.html' ], context, current_app=self.admin_site.name) @@ -1323,7 +1323,7 @@ class ModelAdmin(BaseModelAdmin): return HttpResponseRedirect(reverse('admin:index', current_app=self.admin_site.name)) return HttpResponseRedirect(reverse('admin:%s_%s_changelist' % - (opts.app_label, opts.module_name), + (opts.app_label, opts.model_name), current_app=self.admin_site.name)) object_name = force_text(opts.verbose_name) @@ -1346,7 +1346,7 @@ class ModelAdmin(BaseModelAdmin): context.update(extra_context or {}) return TemplateResponse(request, self.delete_confirmation_template or [ - "admin/%s/%s/delete_confirmation.html" % (app_label, opts.object_name.lower()), + "admin/%s/%s/delete_confirmation.html" % (app_label, opts.model_name), "admin/%s/delete_confirmation.html" % app_label, "admin/delete_confirmation.html" ], context, current_app=self.admin_site.name) @@ -1373,7 +1373,7 @@ class ModelAdmin(BaseModelAdmin): } context.update(extra_context or {}) return TemplateResponse(request, self.object_history_template or [ - "admin/%s/%s/object_history.html" % (app_label, opts.object_name.lower()), + "admin/%s/%s/object_history.html" % (app_label, opts.model_name), "admin/%s/object_history.html" % app_label, "admin/object_history.html" ], context, current_app=self.admin_site.name) diff --git a/django/contrib/admin/sites.py b/django/contrib/admin/sites.py index 185417015a..07d1ec7804 100644 --- a/django/contrib/admin/sites.py +++ b/django/contrib/admin/sites.py @@ -247,7 +247,7 @@ class AdminSite(object): # Add in each model's views. for model, model_admin in six.iteritems(self._registry): urlpatterns += patterns('', - url(r'^%s/%s/' % (model._meta.app_label, model._meta.module_name), + url(r'^%s/%s/' % (model._meta.app_label, model._meta.model_name), include(model_admin.urls)) ) return urlpatterns @@ -351,7 +351,7 @@ class AdminSite(object): # Check whether user has any perm for this module. # If so, add the module to the model_list. if True in perms.values(): - info = (app_label, model._meta.module_name) + info = (app_label, model._meta.model_name) model_dict = { 'name': capfirst(model._meta.verbose_name_plural), 'object_name': model._meta.object_name, @@ -407,7 +407,7 @@ class AdminSite(object): # Check whether user has any perm for this module. # If so, add the module to the model_list. if True in perms.values(): - info = (app_label, model._meta.module_name) + info = (app_label, model._meta.model_name) model_dict = { 'name': capfirst(model._meta.verbose_name_plural), 'object_name': model._meta.object_name, diff --git a/django/contrib/admin/templates/admin/auth/user/change_password.html b/django/contrib/admin/templates/admin/auth/user/change_password.html index 83a9c48ee1..9d1b917b61 100644 --- a/django/contrib/admin/templates/admin/auth/user/change_password.html +++ b/django/contrib/admin/templates/admin/auth/user/change_password.html @@ -19,7 +19,7 @@ {% endblock %} {% endif %} {% block content %}
      -
      {% csrf_token %}{% block form_top %}{% endblock %} +{% csrf_token %}{% block form_top %}{% endblock %}
      {% if is_popup %}{% endif %} {% if form.errors %} diff --git a/django/contrib/admin/templates/admin/change_form.html b/django/contrib/admin/templates/admin/change_form.html index 48846960b3..daf37753dc 100644 --- a/django/contrib/admin/templates/admin/change_form.html +++ b/django/contrib/admin/templates/admin/change_form.html @@ -35,7 +35,7 @@
    {% endif %}{% endif %} {% endblock %} -{% csrf_token %}{% block form_top %}{% endblock %} +{% csrf_token %}{% block form_top %}{% endblock %}
    {% if is_popup %}{% endif %} {% if save_on_top %}{% block submit_buttons_top %}{% submit_row %}{% endblock %}{% endif %} diff --git a/django/contrib/admin/templatetags/admin_urls.py b/django/contrib/admin/templatetags/admin_urls.py index 90e81b0ef3..bca95d92ae 100644 --- a/django/contrib/admin/templatetags/admin_urls.py +++ b/django/contrib/admin/templatetags/admin_urls.py @@ -1,4 +1,3 @@ -from django.core.urlresolvers import reverse from django import template from django.contrib.admin.util import quote @@ -6,7 +5,7 @@ register = template.Library() @register.filter def admin_urlname(value, arg): - return 'admin:%s_%s_%s' % (value.app_label, value.module_name, arg) + return 'admin:%s_%s_%s' % (value.app_label, value.model_name, arg) @register.filter diff --git a/django/contrib/admin/util.py b/django/contrib/admin/util.py index 07013d1d4b..133a8ad13e 100644 --- a/django/contrib/admin/util.py +++ b/django/contrib/admin/util.py @@ -116,7 +116,7 @@ def get_deleted_objects(objs, opts, user, admin_site, using): admin_url = reverse('%s:%s_%s_change' % (admin_site.name, opts.app_label, - opts.object_name.lower()), + opts.model_name), None, (quote(obj._get_pk_val()),)) p = '%s.%s' % (opts.app_label, opts.get_delete_permission()) diff --git a/django/contrib/admin/views/main.py b/django/contrib/admin/views/main.py index be7067ff61..4b296b3f4f 100644 --- a/django/contrib/admin/views/main.py +++ b/django/contrib/admin/views/main.py @@ -379,6 +379,6 @@ class ChangeList(object): def url_for_result(self, result): pk = getattr(result, self.pk_attname) return reverse('admin:%s_%s_change' % (self.opts.app_label, - self.opts.module_name), + self.opts.model_name), args=(quote(pk),), current_app=self.model_admin.admin_site.name) diff --git a/django/contrib/admin/widgets.py b/django/contrib/admin/widgets.py index a3887740d8..4b79401dbc 100644 --- a/django/contrib/admin/widgets.py +++ b/django/contrib/admin/widgets.py @@ -147,7 +147,7 @@ class ForeignKeyRawIdWidget(forms.TextInput): # The related object is registered with the same AdminSite related_url = reverse('admin:%s_%s_changelist' % (rel_to._meta.app_label, - rel_to._meta.module_name), + rel_to._meta.model_name), current_app=self.admin_site.name) params = self.url_parameters() @@ -247,7 +247,7 @@ class RelatedFieldWidgetWrapper(forms.Widget): def render(self, name, value, *args, **kwargs): rel_to = self.rel.to - info = (rel_to._meta.app_label, rel_to._meta.object_name.lower()) + info = (rel_to._meta.app_label, rel_to._meta.model_name) self.widget.choices = self.choices output = [self.widget.render(name, value, *args, **kwargs)] if self.can_add_related: diff --git a/django/contrib/admindocs/views.py b/django/contrib/admindocs/views.py index cb0c116416..ef2790f2db 100644 --- a/django/contrib/admindocs/views.py +++ b/django/contrib/admindocs/views.py @@ -189,7 +189,7 @@ def model_detail(request, app_label, model_name): raise Http404(_("App %r not found") % app_label) model = None for m in models.get_models(app_mod): - if m._meta.object_name.lower() == model_name: + if m._meta.model_name == model_name: model = m break if model is None: @@ -224,12 +224,12 @@ def model_detail(request, app_label, model_name): fields.append({ 'name': "%s.all" % field.name, "data_type": 'List', - 'verbose': utils.parse_rst(_("all %s") % verbose , 'model', _('model:') + opts.module_name), + 'verbose': utils.parse_rst(_("all %s") % verbose , 'model', _('model:') + opts.model_name), }) fields.append({ 'name' : "%s.count" % field.name, 'data_type' : 'Integer', - 'verbose' : utils.parse_rst(_("number of %s") % verbose , 'model', _('model:') + opts.module_name), + 'verbose' : utils.parse_rst(_("number of %s") % verbose , 'model', _('model:') + opts.model_name), }) # Gather model methods. @@ -243,7 +243,7 @@ def model_detail(request, app_label, model_name): continue verbose = func.__doc__ if verbose: - verbose = utils.parse_rst(utils.trim_docstring(verbose), 'model', _('model:') + opts.module_name) + verbose = utils.parse_rst(utils.trim_docstring(verbose), 'model', _('model:') + opts.model_name) fields.append({ 'name': func_name, 'data_type': get_return_data_type(func_name), @@ -257,12 +257,12 @@ def model_detail(request, app_label, model_name): fields.append({ 'name' : "%s.all" % accessor, 'data_type' : 'List', - 'verbose' : utils.parse_rst(_("all %s") % verbose , 'model', _('model:') + opts.module_name), + 'verbose' : utils.parse_rst(_("all %s") % verbose , 'model', _('model:') + opts.model_name), }) fields.append({ 'name' : "%s.count" % accessor, 'data_type' : 'Integer', - 'verbose' : utils.parse_rst(_("number of %s") % verbose , 'model', _('model:') + opts.module_name), + 'verbose' : utils.parse_rst(_("number of %s") % verbose , 'model', _('model:') + opts.model_name), }) return render_to_response('admin_doc/model_detail.html', { 'root_path': urlresolvers.reverse('admin:index'), diff --git a/django/contrib/auth/context_processors.py b/django/contrib/auth/context_processors.py index 3d17fe2754..b8ead73eb4 100644 --- a/django/contrib/auth/context_processors.py +++ b/django/contrib/auth/context_processors.py @@ -2,14 +2,14 @@ # the template system can understand. class PermLookupDict(object): - def __init__(self, user, module_name): - self.user, self.module_name = user, module_name + def __init__(self, user, app_label): + self.user, self.app_label = user, app_label def __repr__(self): return str(self.user.get_all_permissions()) def __getitem__(self, perm_name): - return self.user.has_perm("%s.%s" % (self.module_name, perm_name)) + return self.user.has_perm("%s.%s" % (self.app_label, perm_name)) def __iter__(self): # To fix 'item in perms.someapp' and __getitem__ iteraction we need to @@ -17,7 +17,7 @@ class PermLookupDict(object): raise TypeError("PermLookupDict is not iterable.") def __bool__(self): - return self.user.has_module_perms(self.module_name) + return self.user.has_module_perms(self.app_label) def __nonzero__(self): # Python 2 compatibility return type(self).__bool__(self) @@ -27,8 +27,8 @@ class PermWrapper(object): def __init__(self, user): self.user = user - def __getitem__(self, module_name): - return PermLookupDict(self.user, module_name) + def __getitem__(self, app_label): + return PermLookupDict(self.user, app_label) def __iter__(self): # I am large, I contain multitudes. @@ -41,8 +41,8 @@ class PermWrapper(object): if '.' not in perm_name: # The name refers to module. return bool(self[perm_name]) - module_name, perm_name = perm_name.split('.', 1) - return self[module_name][perm_name] + app_label, perm_name = perm_name.split('.', 1) + return self[app_label][perm_name] def auth(request): diff --git a/django/contrib/auth/management/__init__.py b/django/contrib/auth/management/__init__.py index a77bba0f73..475dd255d4 100644 --- a/django/contrib/auth/management/__init__.py +++ b/django/contrib/auth/management/__init__.py @@ -17,7 +17,7 @@ from django.utils.six.moves import input def _get_permission_codename(action, opts): - return '%s_%s' % (action, opts.object_name.lower()) + return '%s_%s' % (action, opts.model_name) def _get_all_permissions(opts, ctype): diff --git a/django/contrib/comments/moderation.py b/django/contrib/comments/moderation.py index 6c56d7a8a5..6648aebb59 100644 --- a/django/contrib/comments/moderation.py +++ b/django/contrib/comments/moderation.py @@ -302,7 +302,7 @@ class Moderator(object): model_or_iterable = [model_or_iterable] for model in model_or_iterable: if model in self._registry: - raise AlreadyModerated("The model '%s' is already being moderated" % model._meta.module_name) + raise AlreadyModerated("The model '%s' is already being moderated" % model._meta.model_name) self._registry[model] = moderation_class(model) def unregister(self, model_or_iterable): @@ -318,7 +318,7 @@ class Moderator(object): model_or_iterable = [model_or_iterable] for model in model_or_iterable: if model not in self._registry: - raise NotModerated("The model '%s' is not currently being moderated" % model._meta.module_name) + raise NotModerated("The model '%s' is not currently being moderated" % model._meta.model_name) del self._registry[model] def pre_save_moderation(self, sender, comment, request, **kwargs): diff --git a/django/contrib/comments/views/comments.py b/django/contrib/comments/views/comments.py index 7c02b21b6a..befd326092 100644 --- a/django/contrib/comments/views/comments.py +++ b/django/contrib/comments/views/comments.py @@ -86,10 +86,10 @@ def post_comment(request, next=None, using=None): # These first two exist for purely historical reasons. # Django v1.0 and v1.1 allowed the underscore format for # preview templates, so we have to preserve that format. - "comments/%s_%s_preview.html" % (model._meta.app_label, model._meta.module_name), + "comments/%s_%s_preview.html" % (model._meta.app_label, model._meta.model_name), "comments/%s_preview.html" % model._meta.app_label, # Now the usual directory based template hierarchy. - "comments/%s/%s/preview.html" % (model._meta.app_label, model._meta.module_name), + "comments/%s/%s/preview.html" % (model._meta.app_label, model._meta.model_name), "comments/%s/preview.html" % model._meta.app_label, "comments/preview.html", ] diff --git a/django/contrib/contenttypes/generic.py b/django/contrib/contenttypes/generic.py index cda4d46fe8..d849d1607e 100644 --- a/django/contrib/contenttypes/generic.py +++ b/django/contrib/contenttypes/generic.py @@ -389,7 +389,7 @@ class BaseGenericInlineFormSet(BaseModelFormSet): opts = self.model._meta self.instance = instance self.rel_name = '-'.join(( - opts.app_label, opts.object_name.lower(), + opts.app_label, opts.model_name, self.ct_field.name, self.ct_fk_field.name, )) if self.instance is None or self.instance.pk is None: @@ -409,7 +409,7 @@ class BaseGenericInlineFormSet(BaseModelFormSet): @classmethod def get_default_prefix(cls): opts = cls.model._meta - return '-'.join((opts.app_label, opts.object_name.lower(), + return '-'.join((opts.app_label, opts.model_name, cls.ct_field.name, cls.ct_fk_field.name, )) diff --git a/django/contrib/contenttypes/management.py b/django/contrib/contenttypes/management.py index 8329ab65d9..ddd7654ed7 100644 --- a/django/contrib/contenttypes/management.py +++ b/django/contrib/contenttypes/management.py @@ -21,7 +21,7 @@ def update_contenttypes(app, created_models, verbosity=2, db=DEFAULT_DB_ALIAS, * # They all have the same app_label, get the first one. app_label = app_models[0]._meta.app_label app_models = dict( - (model._meta.object_name.lower(), model) + (model._meta.model_name, model) for model in app_models ) diff --git a/django/contrib/contenttypes/models.py b/django/contrib/contenttypes/models.py index b658655bbb..f0bd109b00 100644 --- a/django/contrib/contenttypes/models.py +++ b/django/contrib/contenttypes/models.py @@ -25,7 +25,7 @@ class ContentTypeManager(models.Manager): return model._meta def _get_from_cache(self, opts): - key = (opts.app_label, opts.object_name.lower()) + key = (opts.app_label, opts.model_name) return self.__class__._cache[self.db][key] def get_for_model(self, model, for_concrete_model=True): @@ -43,7 +43,7 @@ class ContentTypeManager(models.Manager): # django.utils.functional.__proxy__ object. ct, created = self.get_or_create( app_label = opts.app_label, - model = opts.object_name.lower(), + model = opts.model_name, defaults = {'name': smart_text(opts.verbose_name_raw)}, ) self._add_to_cache(self.db, ct) @@ -67,7 +67,7 @@ class ContentTypeManager(models.Manager): ct = self._get_from_cache(opts) except KeyError: needed_app_labels.add(opts.app_label) - needed_models.add(opts.object_name.lower()) + needed_models.add(opts.model_name) needed_opts.add(opts) else: results[model] = ct @@ -86,7 +86,7 @@ class ContentTypeManager(models.Manager): # These weren't in the cache, or the DB, create them. ct = self.create( app_label=opts.app_label, - model=opts.object_name.lower(), + model=opts.model_name, name=smart_text(opts.verbose_name_raw), ) self._add_to_cache(self.db, ct) @@ -119,7 +119,7 @@ class ContentTypeManager(models.Manager): def _add_to_cache(self, using, ct): """Insert a ContentType into the cache.""" model = ct.model_class() - key = (model._meta.app_label, model._meta.object_name.lower()) + key = (model._meta.app_label, model._meta.model_name) self.__class__._cache.setdefault(using, {})[key] = ct self.__class__._cache.setdefault(using, {})[ct.id] = ct diff --git a/django/contrib/gis/sitemaps/kml.py b/django/contrib/gis/sitemaps/kml.py index db30606b04..837fe62b62 100644 --- a/django/contrib/gis/sitemaps/kml.py +++ b/django/contrib/gis/sitemaps/kml.py @@ -30,7 +30,7 @@ class KMLSitemap(Sitemap): for field in source._meta.fields: if isinstance(field, GeometryField): kml_sources.append((source._meta.app_label, - source._meta.module_name, + source._meta.model_name, field.name)) elif isinstance(source, (list, tuple)): if len(source) != 3: diff --git a/django/core/cache/backends/db.py b/django/core/cache/backends/db.py index c93bc90b18..5c9ea3e7bb 100644 --- a/django/core/cache/backends/db.py +++ b/django/core/cache/backends/db.py @@ -23,7 +23,7 @@ class Options(object): def __init__(self, table): self.db_table = table self.app_label = 'django_cache' - self.module_name = 'cacheentry' + self.model_name = 'cacheentry' self.verbose_name = 'cache entry' self.verbose_name_plural = 'cache entries' self.object_name = 'CacheEntry' diff --git a/django/core/management/sql.py b/django/core/management/sql.py index e46f4ae4f5..66df43e971 100644 --- a/django/core/management/sql.py +++ b/django/core/management/sql.py @@ -173,8 +173,8 @@ def custom_sql_for_model(model, style, connection): # Find custom SQL, if it's available. backend_name = connection.settings_dict['ENGINE'].split('.')[-1] - sql_files = [os.path.join(app_dir, "%s.%s.sql" % (opts.object_name.lower(), backend_name)), - os.path.join(app_dir, "%s.sql" % opts.object_name.lower())] + sql_files = [os.path.join(app_dir, "%s.%s.sql" % (opts.model_name, backend_name)), + os.path.join(app_dir, "%s.sql" % opts.model_name)] for sql_file in sql_files: if os.path.exists(sql_file): with codecs.open(sql_file, 'U', encoding=settings.FILE_CHARSET) as fp: diff --git a/django/core/serializers/python.py b/django/core/serializers/python.py index 37fa906280..5e07e2a006 100644 --- a/django/core/serializers/python.py +++ b/django/core/serializers/python.py @@ -143,7 +143,7 @@ def Deserializer(object_list, **options): def _get_model(model_identifier): """ - Helper to look up a model from an "app_label.module_name" string. + Helper to look up a model from an "app_label.model_name" string. """ try: Model = models.get_model(*model_identifier.split(".")) diff --git a/django/core/xheaders.py b/django/core/xheaders.py index b650a3a6d4..3766628c98 100644 --- a/django/core/xheaders.py +++ b/django/core/xheaders.py @@ -20,5 +20,5 @@ def populate_xheaders(request, response, model, object_id): if (request.META.get('REMOTE_ADDR') in settings.INTERNAL_IPS or (hasattr(request, 'user') and request.user.is_active and request.user.is_staff)): - response['X-Object-Type'] = "%s.%s" % (model._meta.app_label, model._meta.object_name.lower()) + response['X-Object-Type'] = "%s.%s" % (model._meta.app_label, model._meta.model_name) response['X-Object-Id'] = str(object_id) diff --git a/django/db/models/base.py b/django/db/models/base.py index 38afc60991..5f058654bf 100644 --- a/django/db/models/base.py +++ b/django/db/models/base.py @@ -191,7 +191,7 @@ class ModelBase(type): if base in o2o_map: field = o2o_map[base] elif not is_proxy: - attr_name = '%s_ptr' % base._meta.module_name + attr_name = '%s_ptr' % base._meta.model_name field = OneToOneField(base, name=attr_name, auto_created=True, parent_link=True) new_class.add_to_class(attr_name, field) @@ -973,7 +973,7 @@ def method_get_order(ordered_obj, self): ############################################## def get_absolute_url(opts, func, self, *args, **kwargs): - return settings.ABSOLUTE_URL_OVERRIDES.get('%s.%s' % (opts.app_label, opts.module_name), func)(self, *args, **kwargs) + return settings.ABSOLUTE_URL_OVERRIDES.get('%s.%s' % (opts.app_label, opts.model_name), func)(self, *args, **kwargs) ######## diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py index ae792a30e7..bd2e288410 100644 --- a/django/db/models/fields/related.py +++ b/django/db/models/fields/related.py @@ -118,7 +118,7 @@ class RelatedField(object): self.do_related_class(other, cls) def set_attributes_from_rel(self): - self.name = self.name or (self.rel.to._meta.object_name.lower() + '_' + self.rel.to._meta.pk.name) + self.name = self.name or (self.rel.to._meta.model_name + '_' + self.rel.to._meta.pk.name) if self.verbose_name is None: self.verbose_name = self.rel.to._meta.verbose_name self.rel.field_name = self.rel.field_name or self.rel.to._meta.pk.name @@ -222,7 +222,7 @@ class RelatedField(object): # related object in a table-spanning query. It uses the lower-cased # object_name by default, but this can be overridden with the # "related_name" option. - return self.rel.related_name or self.opts.object_name.lower() + return self.rel.related_name or self.opts.model_name class SingleRelatedObjectDescriptor(object): @@ -983,7 +983,7 @@ class ForeignKey(RelatedField, Field): def __init__(self, to, to_field=None, rel_class=ManyToOneRel, **kwargs): try: - to_name = to._meta.object_name.lower() + to_name = to._meta.model_name except AttributeError: # to._meta doesn't exist, so it must be RECURSIVE_RELATIONSHIP_CONSTANT assert isinstance(to, six.string_types), "%s(%r) is invalid. First parameter to ForeignKey must be either a model, a model name, or the string %r" % (self.__class__.__name__, to, RECURSIVE_RELATIONSHIP_CONSTANT) else: @@ -1174,7 +1174,7 @@ def create_many_to_many_intermediary_model(field, klass): from_ = 'from_%s' % to.lower() to = 'to_%s' % to.lower() else: - from_ = klass._meta.object_name.lower() + from_ = klass._meta.model_name to = to.lower() meta = type('Meta', (object,), { 'db_table': field._get_m2m_db_table(klass._meta), diff --git a/django/db/models/loading.py b/django/db/models/loading.py index 56edc36bec..c027105c5b 100644 --- a/django/db/models/loading.py +++ b/django/db/models/loading.py @@ -239,7 +239,7 @@ class AppCache(object): for model in models: # Store as 'name: model' pair in a dictionary # in the app_models dictionary - model_name = model._meta.object_name.lower() + model_name = model._meta.model_name model_dict = self.app_models.setdefault(app_label, SortedDict()) if model_name in model_dict: # The same model may be imported via different paths (e.g. diff --git a/django/db/models/options.py b/django/db/models/options.py index 952596b514..a302e2d73a 100644 --- a/django/db/models/options.py +++ b/django/db/models/options.py @@ -2,6 +2,7 @@ from __future__ import unicode_literals import re from bisect import bisect +import warnings from django.conf import settings from django.db.models.fields.related import ManyToManyRel @@ -28,7 +29,7 @@ class Options(object): def __init__(self, meta, app_label=None): self.local_fields, self.local_many_to_many = [], [] self.virtual_fields = [] - self.module_name, self.verbose_name = None, None + self.model_name, self.verbose_name = None, None self.verbose_name_plural = None self.db_table = '' self.ordering = [] @@ -78,7 +79,7 @@ class Options(object): self.installed = re.sub('\.models$', '', cls.__module__) in settings.INSTALLED_APPS # First, construct the default values for these options. self.object_name = cls.__name__ - self.module_name = self.object_name.lower() + self.model_name = self.object_name.lower() self.verbose_name = get_verbose_name(self.object_name) # Next, apply any overridden values from 'class Meta'. @@ -116,11 +117,21 @@ class Options(object): self.verbose_name_plural = string_concat(self.verbose_name, 's') del self.meta - # If the db_table wasn't provided, use the app_label + module_name. + # If the db_table wasn't provided, use the app_label + model_name. if not self.db_table: - self.db_table = "%s_%s" % (self.app_label, self.module_name) + self.db_table = "%s_%s" % (self.app_label, self.model_name) self.db_table = truncate_name(self.db_table, connection.ops.max_name_length()) + @property + def module_name(self): + """ + This property has been deprecated in favor of `model_name`. refs #19689 + """ + warnings.warn( + "Options.module_name has been deprecated in favor of model_name", + PendingDeprecationWarning, stacklevel=2) + return self.model_name + def _prepare(self, model): if self.order_with_respect_to: self.order_with_respect_to = self.get_field(self.order_with_respect_to) @@ -193,7 +204,7 @@ class Options(object): return '' % self.object_name def __str__(self): - return "%s.%s" % (smart_text(self.app_label), smart_text(self.module_name)) + return "%s.%s" % (smart_text(self.app_label), smart_text(self.model_name)) def verbose_name_raw(self): """ @@ -217,7 +228,7 @@ class Options(object): case insensitive, so we make sure we are case insensitive here. """ if self.swappable: - model_label = '%s.%s' % (self.app_label, self.object_name.lower()) + model_label = '%s.%s' % (self.app_label, self.model_name) swapped_for = getattr(settings, self.swappable, None) if swapped_for: try: @@ -371,13 +382,13 @@ class Options(object): return cache def get_add_permission(self): - return 'add_%s' % self.object_name.lower() + return 'add_%s' % self.model_name def get_change_permission(self): - return 'change_%s' % self.object_name.lower() + return 'change_%s' % self.model_name def get_delete_permission(self): - return 'delete_%s' % self.object_name.lower() + return 'delete_%s' % self.model_name def get_all_related_objects(self, local_only=False, include_hidden=False, include_proxy_eq=False): diff --git a/django/db/models/related.py b/django/db/models/related.py index 26932137ad..53645bedb9 100644 --- a/django/db/models/related.py +++ b/django/db/models/related.py @@ -16,8 +16,8 @@ class RelatedObject(object): self.model = model self.opts = model._meta self.field = field - self.name = '%s:%s' % (self.opts.app_label, self.opts.module_name) - self.var_name = self.opts.object_name.lower() + self.name = '%s:%s' % (self.opts.app_label, self.opts.model_name) + self.var_name = self.opts.model_name def get_choices(self, include_blank=True, blank_choice=BLANK_CHOICE_DASH, limit_to_currently_related=False): @@ -31,7 +31,7 @@ class RelatedObject(object): queryset = self.model._default_manager.all() if limit_to_currently_related: queryset = queryset.complex_filter( - {'%s__isnull' % self.parent_model._meta.module_name: False}) + {'%s__isnull' % self.parent_model._meta.model_name: False}) lst = [(x._get_pk_val(), smart_text(x)) for x in queryset] return first_choice + lst @@ -56,9 +56,9 @@ class RelatedObject(object): # If this is a symmetrical m2m relation on self, there is no reverse accessor. if getattr(self.field.rel, 'symmetrical', False) and self.model == self.parent_model: return None - return self.field.rel.related_name or (self.opts.object_name.lower() + '_set') + return self.field.rel.related_name or (self.opts.model_name + '_set') else: - return self.field.rel.related_name or (self.opts.object_name.lower()) + return self.field.rel.related_name or (self.opts.model_name) def get_cache_name(self): return "_%s_cache" % self.get_accessor_name() diff --git a/django/views/generic/detail.py b/django/views/generic/detail.py index c27b92b85e..58302bbe23 100644 --- a/django/views/generic/detail.py +++ b/django/views/generic/detail.py @@ -84,7 +84,7 @@ class SingleObjectMixin(ContextMixin): if self.context_object_name: return self.context_object_name elif isinstance(obj, models.Model): - return obj._meta.object_name.lower() + return obj._meta.model_name else: return None @@ -144,13 +144,13 @@ class SingleObjectTemplateResponseMixin(TemplateResponseMixin): if isinstance(self.object, models.Model): names.append("%s/%s%s.html" % ( self.object._meta.app_label, - self.object._meta.object_name.lower(), + self.object._meta.model_name, self.template_name_suffix )) elif hasattr(self, 'model') and self.model is not None and issubclass(self.model, models.Model): names.append("%s/%s%s.html" % ( self.model._meta.app_label, - self.model._meta.object_name.lower(), + self.model._meta.model_name, self.template_name_suffix )) return names diff --git a/django/views/generic/list.py b/django/views/generic/list.py index 1f286168f6..08c4bbcda0 100644 --- a/django/views/generic/list.py +++ b/django/views/generic/list.py @@ -97,7 +97,7 @@ class MultipleObjectMixin(ContextMixin): if self.context_object_name: return self.context_object_name elif hasattr(object_list, 'model'): - return '%s_list' % object_list.model._meta.object_name.lower() + return '%s_list' % object_list.model._meta.model_name else: return None @@ -177,7 +177,7 @@ class MultipleObjectTemplateResponseMixin(TemplateResponseMixin): # generated ones. if hasattr(self.object_list, 'model'): opts = self.object_list.model._meta - names.append("%s/%s%s.html" % (opts.app_label, opts.object_name.lower(), self.template_name_suffix)) + names.append("%s/%s%s.html" % (opts.app_label, opts.model_name, self.template_name_suffix)) return names diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt index df3d84fdae..50b9aa3c19 100644 --- a/docs/internals/deprecation.txt +++ b/docs/internals/deprecation.txt @@ -327,6 +327,8 @@ these changes. :class:`django.middleware.common.BrokenLinkEmailsMiddleware` middleware to your :setting:`MIDDLEWARE_CLASSES` setting instead. +* ``Model._meta.module_name`` was renamed to ``model_name``. + 2.0 --- diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 32e5172878..f86d8b8108 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -127,3 +127,9 @@ from your settings. If you defined your own form widgets and defined the ``_has_changed`` method on a widget, you should now define this method on the form field itself. + +``module_name`` model meta attribute +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +``Model._meta.module_name`` was renamed to ``model_name``. Despite being a +private API, it will go through a regular deprecation path. diff --git a/tests/regressiontests/admin_custom_urls/models.py b/tests/regressiontests/admin_custom_urls/models.py index ef04c2aa09..55fc064835 100644 --- a/tests/regressiontests/admin_custom_urls/models.py +++ b/tests/regressiontests/admin_custom_urls/models.py @@ -42,7 +42,7 @@ class ActionAdmin(admin.ModelAdmin): return self.admin_site.admin_view(view)(*args, **kwargs) return update_wrapper(wrapper, view) - info = self.model._meta.app_label, self.model._meta.module_name + info = self.model._meta.app_label, self.model._meta.model_name view_name = '%s_%s_add' % info -- cgit v1.3 From ea425ebcb2d42a60ab3934b3bac9378b08e39d12 Mon Sep 17 00:00:00 2001 From: Simon Charette Date: Wed, 6 Feb 2013 01:07:42 -0500 Subject: Fixed a documentation warning introduced by 3f1c7b7 --- docs/topics/i18n/translation.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/topics/i18n/translation.txt b/docs/topics/i18n/translation.txt index e2cc8fabce..122328e31b 100644 --- a/docs/topics/i18n/translation.txt +++ b/docs/topics/i18n/translation.txt @@ -1483,7 +1483,7 @@ selection based on data from the request. It customizes content for each user. ``'django.middleware.locale.LocaleMiddleware'``. .. versionchanged:: 1.6 - In previous versions, ``LocaleMiddleware` wasn't enabled by default. + In previous versions, ``LocaleMiddleware`` wasn't enabled by default. Because middleware order matters, you should follow these guidelines: -- cgit v1.3 From 5449240c548bb6877923791d02e800c6b25393f5 Mon Sep 17 00:00:00 2001 From: Simon Charette Date: Wed, 6 Feb 2013 05:25:35 -0500 Subject: Fixed #9800 -- Allow "isPermaLink" attribute in element of an RSS item. Thanks @rtnpro for the patch! --- django/contrib/syndication/views.py | 2 ++ django/utils/feedgenerator.py | 11 ++++++--- docs/ref/contrib/syndication.txt | 12 ++++++++++ tests/regressiontests/syndication/feeds.py | 13 +++++++++++ tests/regressiontests/syndication/tests.py | 36 +++++++++++++++++++++++++++++- tests/regressiontests/syndication/urls.py | 4 ++++ 6 files changed, 74 insertions(+), 4 deletions(-) (limited to 'docs') diff --git a/django/contrib/syndication/views.py b/django/contrib/syndication/views.py index 996b7dfb40..a80b9d1fae 100644 --- a/django/contrib/syndication/views.py +++ b/django/contrib/syndication/views.py @@ -184,6 +184,8 @@ class Feed(object): link = link, description = description, unique_id = self.__get_dynamic_attr('item_guid', item, link), + unique_id_is_permalink = self.__get_dynamic_attr( + 'item_guid_is_permalink', item), enclosure = enc, pubdate = pubdate, author_name = author_name, diff --git a/django/utils/feedgenerator.py b/django/utils/feedgenerator.py index f9126a6782..7eba842a89 100644 --- a/django/utils/feedgenerator.py +++ b/django/utils/feedgenerator.py @@ -113,8 +113,8 @@ class SyndicationFeed(object): def add_item(self, title, link, description, author_email=None, author_name=None, author_link=None, pubdate=None, comments=None, - unique_id=None, enclosure=None, categories=(), item_copyright=None, - ttl=None, **kwargs): + unique_id=None, unique_id_is_permalink=None, enclosure=None, + categories=(), item_copyright=None, ttl=None, **kwargs): """ Adds an item to the feed. All args are expected to be Python Unicode objects except pubdate, which is a datetime.datetime object, and @@ -136,6 +136,7 @@ class SyndicationFeed(object): 'pubdate': pubdate, 'comments': to_unicode(comments), 'unique_id': to_unicode(unique_id), + 'unique_id_is_permalink': unique_id_is_permalink, 'enclosure': enclosure, 'categories': categories or (), 'item_copyright': to_unicode(item_copyright), @@ -280,7 +281,11 @@ class Rss201rev2Feed(RssFeed): if item['comments'] is not None: handler.addQuickElement("comments", item['comments']) if item['unique_id'] is not None: - handler.addQuickElement("guid", item['unique_id']) + guid_attrs = {} + if isinstance(item.get('unique_id_is_permalink'), bool): + guid_attrs['isPermaLink'] = str( + item['unique_id_is_permalink']).lower() + handler.addQuickElement("guid", item['unique_id'], guid_attrs) if item['ttl'] is not None: handler.addQuickElement("ttl", item['ttl']) diff --git a/docs/ref/contrib/syndication.txt b/docs/ref/contrib/syndication.txt index 2955d7dad3..65aa7b57b4 100644 --- a/docs/ref/contrib/syndication.txt +++ b/docs/ref/contrib/syndication.txt @@ -624,6 +624,18 @@ This example illustrates all possible attributes and methods for a Takes an item, as return by items(), and returns the item's ID. """ + # ITEM_GUID_IS_PERMALINK -- The following method is optional. If + # provided, it sets the 'isPermaLink' attribute of an item's + # GUID element. This method is used only when 'item_guid' is + # specified. + + def item_guid_is_permalink(self, obj): + """ + Takes an item, as returned by items(), and returns a boolean. + """ + + item_guid_is_permalink = False # Hard coded value + # ITEM AUTHOR NAME -- One of the following three is optional. The # framework looks for them in this order. diff --git a/tests/regressiontests/syndication/feeds.py b/tests/regressiontests/syndication/feeds.py index 04a67f4bdb..25757057b9 100644 --- a/tests/regressiontests/syndication/feeds.py +++ b/tests/regressiontests/syndication/feeds.py @@ -42,6 +42,19 @@ class TestRss2Feed(views.Feed): item_copyright = 'Copyright (c) 2007, Sally Smith' +class TestRss2FeedWithGuidIsPermaLinkTrue(TestRss2Feed): + def item_guid_is_permalink(self, item): + return True + + +class TestRss2FeedWithGuidIsPermaLinkFalse(TestRss2Feed): + def item_guid(self, item): + return str(item.pk) + + def item_guid_is_permalink(self, item): + return False + + class TestRss091Feed(TestRss2Feed): feed_type = feedgenerator.RssUserland091Feed diff --git a/tests/regressiontests/syndication/tests.py b/tests/regressiontests/syndication/tests.py index 10413b4ddd..8885dc28c0 100644 --- a/tests/regressiontests/syndication/tests.py +++ b/tests/regressiontests/syndication/tests.py @@ -103,9 +103,43 @@ class SyndicationFeedTest(FeedTestCase): 'author': 'test@example.com (Sally Smith)', }) self.assertCategories(items[0], ['python', 'testing']) - for item in items: self.assertChildNodes(item, ['title', 'link', 'description', 'guid', 'category', 'pubDate', 'author']) + # Assert that does not have any 'isPermaLink' attribute + self.assertIsNone(item.getElementsByTagName( + 'guid')[0].attributes.get('isPermaLink')) + + def test_rss2_feed_guid_permalink_false(self): + """ + Test if the 'isPermaLink' attribute of element of an item + in the RSS feed is 'false'. + """ + response = self.client.get( + '/syndication/rss2/guid_ispermalink_false/') + doc = minidom.parseString(response.content) + chan = doc.getElementsByTagName( + 'rss')[0].getElementsByTagName('channel')[0] + items = chan.getElementsByTagName('item') + for item in items: + self.assertEqual( + item.getElementsByTagName('guid')[0].attributes.get( + 'isPermaLink').value, "false") + + def test_rss2_feed_guid_permalink_true(self): + """ + Test if the 'isPermaLink' attribute of element of an item + in the RSS feed is 'true'. + """ + response = self.client.get( + '/syndication/rss2/guid_ispermalink_true/') + doc = minidom.parseString(response.content) + chan = doc.getElementsByTagName( + 'rss')[0].getElementsByTagName('channel')[0] + items = chan.getElementsByTagName('item') + for item in items: + self.assertEqual( + item.getElementsByTagName('guid')[0].attributes.get( + 'isPermaLink').value, "true") def test_rss091_feed(self): """ diff --git a/tests/regressiontests/syndication/urls.py b/tests/regressiontests/syndication/urls.py index 57f9d81a73..ec3c8cc596 100644 --- a/tests/regressiontests/syndication/urls.py +++ b/tests/regressiontests/syndication/urls.py @@ -8,6 +8,10 @@ from . import feeds urlpatterns = patterns('django.contrib.syndication.views', (r'^syndication/complex/(?P.*)/$', feeds.ComplexFeed()), (r'^syndication/rss2/$', feeds.TestRss2Feed()), + (r'^syndication/rss2/guid_ispermalink_true/$', + feeds.TestRss2FeedWithGuidIsPermaLinkTrue()), + (r'^syndication/rss2/guid_ispermalink_false/$', + feeds.TestRss2FeedWithGuidIsPermaLinkFalse()), (r'^syndication/rss091/$', feeds.TestRss091Feed()), (r'^syndication/no_pubdate/$', feeds.TestNoPubdateFeed()), (r'^syndication/atom/$', feeds.TestAtomFeed()), -- cgit v1.3 From afa3e1633431137f4e76c7efc359b579f4d9c08e Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Wed, 6 Feb 2013 08:23:18 -0500 Subject: Fixed #19743 - Documented some limitations of contrib.auth. Thanks Aymeric for the suggestion. --- docs/topics/auth/index.txt | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'docs') diff --git a/docs/topics/auth/index.txt b/docs/topics/auth/index.txt index ddb2d2f992..8447d449ce 100644 --- a/docs/topics/auth/index.txt +++ b/docs/topics/auth/index.txt @@ -37,6 +37,14 @@ The auth system consists of: * Forms and view tools for logging in users, or restricting content * A pluggable backend system +The authentication system in Django aims to be very generic and doesn't provide +some features commonly found in web authentication systems. Solutions for some +of these common problems have been implemented in third-party packages: + +* Password strength checking +* Throttling of login attempts +* Authentication against third-parties (OAuth, for example) + Installation ============ -- cgit v1.3 From 720888a14699a80a6cd07d32514b9dcd5b1005fb Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Thu, 7 Feb 2013 09:48:08 +0100 Subject: Fixed #15808 -- Added optional HttpOnly flag to the CSRF Cookie. Thanks Samuel Lavitt for the report and Sascha Peilicke for the patch. --- django/conf/global_settings.py | 1 + django/middleware/csrf.py | 3 ++- docs/ref/contrib/csrf.txt | 1 + docs/ref/settings.txt | 13 +++++++++++++ docs/releases/1.6.txt | 3 +++ tests/regressiontests/csrf_tests/tests.py | 4 +++- 6 files changed, 23 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/django/conf/global_settings.py b/django/conf/global_settings.py index 740c792dcf..6a01493a72 100644 --- a/django/conf/global_settings.py +++ b/django/conf/global_settings.py @@ -529,6 +529,7 @@ CSRF_COOKIE_NAME = 'csrftoken' CSRF_COOKIE_DOMAIN = None CSRF_COOKIE_PATH = '/' CSRF_COOKIE_SECURE = False +CSRF_COOKIE_HTTPONLY = False ############ # MESSAGES # diff --git a/django/middleware/csrf.py b/django/middleware/csrf.py index 339f42a110..423034478b 100644 --- a/django/middleware/csrf.py +++ b/django/middleware/csrf.py @@ -210,7 +210,8 @@ class CsrfViewMiddleware(object): max_age = 60 * 60 * 24 * 7 * 52, domain=settings.CSRF_COOKIE_DOMAIN, path=settings.CSRF_COOKIE_PATH, - secure=settings.CSRF_COOKIE_SECURE + secure=settings.CSRF_COOKIE_SECURE, + httponly=settings.CSRF_COOKIE_HTTPONLY ) # Content varies with the CSRF cookie, so set the Vary header. patch_vary_headers(response, ('Cookie',)) diff --git a/docs/ref/contrib/csrf.txt b/docs/ref/contrib/csrf.txt index 3ad16e2f97..14522d8dbc 100644 --- a/docs/ref/contrib/csrf.txt +++ b/docs/ref/contrib/csrf.txt @@ -491,6 +491,7 @@ Settings A number of settings can be used to control Django's CSRF behavior: * :setting:`CSRF_COOKIE_DOMAIN` +* :setting:`CSRF_COOKIE_HTTPONLY` * :setting:`CSRF_COOKIE_NAME` * :setting:`CSRF_COOKIE_PATH` * :setting:`CSRF_COOKIE_SECURE` diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt index d4c6868ced..9a615b2d99 100644 --- a/docs/ref/settings.txt +++ b/docs/ref/settings.txt @@ -281,6 +281,19 @@ Please note that the presence of this setting does not imply that Django's CSRF protection is safe from cross-subdomain attacks by default - please see the :ref:`CSRF limitations ` section. +.. setting:: CSRF_COOKIE_HTTPONLY + +CSRF_COOKIE_HTTPONLY +-------------------- + +.. versionadded:: 1.6 + +Default: ``False`` + +Whether to use HttpOnly flag on the CSRF cookie. If this is set to ``True``, +client-side JavaScript will not to be able to access the CSRF cookie. See +:setting:`SESSION_COOKIE_HTTPONLY` for details on HttpOnly. + .. setting:: CSRF_COOKIE_NAME CSRF_COOKIE_NAME diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index f86d8b8108..f53fa8ac4c 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -36,6 +36,9 @@ Minor features * Authentication backends can raise ``PermissionDenied`` to immediately fail the authentication chain. +* The HttpOnly flag can be set on the CSRF cookie with + :setting:`CSRF_COOKIE_HTTPONLY`. + * The ``assertQuerysetEqual()`` now checks for undefined order and raises ``ValueError`` if undefined order is spotted. The order is seen as undefined if the given ``QuerySet`` isn't ordered and there are more than diff --git a/tests/regressiontests/csrf_tests/tests.py b/tests/regressiontests/csrf_tests/tests.py index c5b66a31d1..3719108962 100644 --- a/tests/regressiontests/csrf_tests/tests.py +++ b/tests/regressiontests/csrf_tests/tests.py @@ -101,7 +101,8 @@ class CsrfViewMiddlewareTest(TestCase): with self.settings(CSRF_COOKIE_NAME='myname', CSRF_COOKIE_DOMAIN='.example.com', CSRF_COOKIE_PATH='/test/', - CSRF_COOKIE_SECURE=True): + CSRF_COOKIE_SECURE=True, + CSRF_COOKIE_HTTPONLY=True): # token_view calls get_token() indirectly CsrfViewMiddleware().process_view(req, token_view, (), {}) resp = token_view(req) @@ -110,6 +111,7 @@ class CsrfViewMiddlewareTest(TestCase): self.assertNotEqual(csrf_cookie, False) self.assertEqual(csrf_cookie['domain'], '.example.com') self.assertEqual(csrf_cookie['secure'], True) + self.assertEqual(csrf_cookie['httponly'], True) self.assertEqual(csrf_cookie['path'], '/test/') self.assertTrue('Cookie' in resp2.get('Vary','')) -- cgit v1.3 From 43efefae692729925c0f75c55e93bd1f33f42bfd Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Thu, 7 Feb 2013 06:12:25 -0500 Subject: Fixed #19756 - Corrected a ManyToMany example and added some links and markup. --- docs/topics/db/examples/many_to_many.txt | 47 ++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 20 deletions(-) (limited to 'docs') diff --git a/docs/topics/db/examples/many_to_many.txt b/docs/topics/db/examples/many_to_many.txt index 5a24027894..2076427768 100644 --- a/docs/topics/db/examples/many_to_many.txt +++ b/docs/topics/db/examples/many_to_many.txt @@ -35,7 +35,7 @@ objects, and a ``Publication`` has multiple ``Article`` objects: What follows are examples of operations that can be performed using the Python API facilities. -Create a couple of Publications:: +Create a couple of ``Publications``:: >>> p1 = Publication(title='The Python Journal') >>> p1.save() @@ -44,11 +44,11 @@ Create a couple of Publications:: >>> p3 = Publication(title='Science Weekly') >>> p3.save() -Create an Article:: +Create an ``Article``:: >>> a1 = Article(headline='Django lets you build Web apps easily') -You can't associate it with a Publication until it's been saved:: +You can't associate it with a ``Publication`` until it's been saved:: >>> a1.publications.add(p1) Traceback (most recent call last): @@ -60,11 +60,11 @@ Save it! >>> a1.save() -Associate the Article with a Publication:: +Associate the ``Article`` with a ``Publication``:: >>> a1.publications.add(p1) -Create another Article, and set it to appear in both Publications:: +Create another ``Article``, and set it to appear in both ``Publications``:: >>> a2 = Article(headline='NASA uses Python') >>> a2.save() @@ -75,25 +75,26 @@ Adding a second time is OK:: >>> a2.publications.add(p3) -Adding an object of the wrong type raises TypeError:: +Adding an object of the wrong type raises :exc:`~exceptions.TypeError`:: >>> a2.publications.add(a1) Traceback (most recent call last): ... TypeError: 'Publication' instance expected -Add a Publication directly via publications.add by using keyword arguments:: +Create and add a ``Publication`` to an ``Article`` in one step using +:meth:`~django.db.models.fields.related.RelatedManager.create`:: >>> new_publication = a2.publications.create(title='Highlights for Children') -Article objects have access to their related Publication objects:: +``Article`` objects have access to their related ``Publication`` objects:: >>> a1.publications.all() [] >>> a2.publications.all() [, , , ] -Publication objects have access to their related Article objects:: +``Publication`` objects have access to their related ``Article`` objects:: >>> p2.article_set.all() [] @@ -102,7 +103,8 @@ Publication objects have access to their related Article objects:: >>> Publication.objects.get(id=4).article_set.all() [] -Many-to-many relationships can be queried using :ref:`lookups across relationships `:: +Many-to-many relationships can be queried using :ref:`lookups across +relationships `:: >>> Article.objects.filter(publications__id__exact=1) [, ] @@ -119,7 +121,8 @@ Many-to-many relationships can be queried using :ref:`lookups across relationshi >>> Article.objects.filter(publications__title__startswith="Science").distinct() [] -The count() function respects distinct() as well:: +The :meth:`~django.db.models.query.QuerySet.count` function respects +:meth:`~django.db.models.query.QuerySet.distinct` as well:: >>> Article.objects.filter(publications__title__startswith="Science").count() 2 @@ -133,7 +136,7 @@ The count() function respects distinct() as well:: [, ] Reverse m2m queries are supported (i.e., starting at the table that doesn't have -a ManyToManyField):: +a :class:`~django.db.models.ManyToManyField`):: >>> Publication.objects.filter(id__exact=1) [] @@ -163,7 +166,7 @@ involved is a little complex):: >>> Article.objects.exclude(publications=p2) [] -If we delete a Publication, its Articles won't be able to access it:: +If we delete a ``Publication``, its ``Articles`` won't be able to access it:: >>> p1.delete() >>> Publication.objects.all() @@ -172,7 +175,7 @@ If we delete a Publication, its Articles won't be able to access it:: >>> a1.publications.all() [] -If we delete an Article, its Publications won't be able to access it:: +If we delete an ``Article``, its ``Publications`` won't be able to access it:: >>> a2.delete() >>> Article.objects.all() @@ -199,7 +202,7 @@ Adding via the other end using keywords:: >>> a5.publications.all() [] -Removing publication from an article:: +Removing ``Publication`` from an ``Article``:: >>> a4.publications.remove(p2) >>> p2.article_set.all() @@ -242,7 +245,7 @@ And you can clear from the other end:: >>> p2.article_set.all() [] -Recreate the article and Publication we have deleted:: +Recreate the ``Article`` and ``Publication`` we have deleted:: >>> p1 = Publication(title='The Python Journal') >>> p1.save() @@ -250,7 +253,8 @@ Recreate the article and Publication we have deleted:: >>> a2.save() >>> a2.publications.add(p1, p2, p3) -Bulk delete some Publications - references to deleted publications should go:: +Bulk delete some ``Publications`` - references to deleted publications should +go:: >>> Publication.objects.filter(title__startswith='Science').delete() >>> Publication.objects.all() @@ -267,15 +271,18 @@ Bulk delete some articles - references to deleted objects should go:: [] >>> q.delete() -After the delete, the QuerySet cache needs to be cleared, and the referenced -objects should be gone:: +After the :meth:`~django.db.models.query.QuerySet.delete`, the +:class:`~django.db.models.query.QuerySet` cache needs to be cleared, and the +referenced objects should be gone:: >>> print(q) [] >>> p1.article_set.all() [] -An alternate to calling clear() is to assign the empty set:: +An alternate to calling +:meth:`~django.db.models.fields.related.RelatedManager.clear` is to assign the +empty set:: >>> p1.article_set = [] >>> p1.article_set.all() -- cgit v1.3 From aa85ccf8ce11c4b8374c74fd9dfe72647be49ada Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Thu, 7 Feb 2013 05:51:25 -0500 Subject: Fixed #19706 - Tweaks to the tutorial. Thanks Daniele Procida. --- docs/intro/reusable-apps.txt | 72 +++++---------------------------- docs/intro/tutorial01.txt | 10 +++-- docs/intro/tutorial02.txt | 22 +++++++++- docs/intro/tutorial03.txt | 95 +++++++++++++++++++++++++++++++------------- docs/intro/tutorial04.txt | 15 +++++-- 5 files changed, 116 insertions(+), 98 deletions(-) (limited to 'docs') diff --git a/docs/intro/reusable-apps.txt b/docs/intro/reusable-apps.txt index 99fb62e4d7..dcccd583c0 100644 --- a/docs/intro/reusable-apps.txt +++ b/docs/intro/reusable-apps.txt @@ -50,8 +50,8 @@ projects and ready to publish for others to install and use. Python package easy for others to install. It can be a little confusing, we know. -Completing your reusable app -============================ +Your project and your reusable app +================================== After the previous tutorials, our project should look like this:: @@ -67,78 +67,28 @@ After the previous tutorials, our project should look like this:: admin.py models.py tests.py - urls.py - views.py - -You also have a directory somewhere called ``mytemplates`` which you created in -:doc:`Tutorial 2 `. You specified its location in the -TEMPLATE_DIRS setting. This directory should look like this:: - - mytemplates/ - admin/ - base_site.html - polls/ - detail.html - index.html - results.html - -The polls app is already a Python package, thanks to the ``polls/__init__.py`` -file. That's a great start, but we can't just pick up this package and drop it -into a new project. The polls templates are currently stored in the -project-wide ``mytemplates`` directory. To make the app self-contained, it -should also contain the necessary templates. - -Inside the ``polls`` app, create a new ``templates`` directory. Now move the -``polls`` template directory from ``mytemplates`` into the new -``templates``. Your project should now look like this:: - - mysite/ - manage.py - mysite/ - __init__.py - settings.py - urls.py - wsgi.py - polls/ - admin.py - __init__.py - models.py templates/ polls/ detail.html index.html results.html - tests.py urls.py views.py + mytemplates/ + admin/ + base_site.html -Your project-wide templates directory should now look like this:: - - mytemplates/ - admin/ - base_site.html - -Looking good! Now would be a good time to confirm that your polls application -still works correctly. How does Django know how to find the new location of -the polls templates even though we didn't modify :setting:`TEMPLATE_DIRS`? -Django has a :setting:`TEMPLATE_LOADERS` setting which contains a list -of callables that know how to import templates from various sources. One of -the defaults is :class:`django.template.loaders.app_directories.Loader` which -looks for a "templates" subdirectory in each of the :setting:`INSTALLED_APPS`. +You created ``mysite/mytemplates`` in :doc:`Tutorial 2 `, +and ``polls/templates`` in :doc:`Tutorial 3 `. Now perhaps +it is clearer why we chose to have separate template directories for the +project and application: everything that is part of the polls application is in +``polls``. It makes the application self-contained and easier to drop into a +new project. The ``polls`` directory could now be copied into a new Django project and immediately reused. It's not quite ready to be published though. For that, we need to package the app to make it easy for others to install. -.. admonition:: Why nested? - - Why create a ``polls`` directory under ``templates`` when we're - already inside the polls app? This directory is needed to avoid conflicts in - Django's ``app_directories`` template loader. For example, if two - apps had a template called ``base.html``, without the extra directory it - wouldn't be possible to distinguish between the two. It's a good convention - to use the name of your app for this directory. - .. _installing-reusable-apps-prerequisites: Installing some prerequisites diff --git a/docs/intro/tutorial01.txt b/docs/intro/tutorial01.txt index 56a068ff1f..9b0c820380 100644 --- a/docs/intro/tutorial01.txt +++ b/docs/intro/tutorial01.txt @@ -146,7 +146,7 @@ purely in Python. We've included this with Django so you can develop things rapidly, without having to deal with configuring a production server -- such as Apache -- until you're ready for production. -Now's a good time to note: DON'T use this server in anything resembling a +Now's a good time to note: **Don't** use this server in anything resembling a production environment. It's intended only for use while developing. (We're in the business of making Web frameworks, not Web servers.) @@ -354,7 +354,7 @@ These concepts are represented by simple Python classes. Edit the class Choice(models.Model): poll = models.ForeignKey(Poll) choice_text = models.CharField(max_length=200) - votes = models.IntegerField() + votes = models.IntegerField(default=0) The code is straightforward. Each model is represented by a class that subclasses :class:`django.db.models.Model`. Each model has a number of class @@ -377,11 +377,15 @@ example, we've only defined a human-readable name for ``Poll.pub_date``. For all other fields in this model, the field's machine-readable name will suffice as its human-readable name. -Some :class:`~django.db.models.Field` classes have required elements. +Some :class:`~django.db.models.Field` classes have required arguments. :class:`~django.db.models.CharField`, for example, requires that you give it a :attr:`~django.db.models.CharField.max_length`. That's used not only in the database schema, but in validation, as we'll soon see. +A :class:`~django.db.models.Field` can also have various optional arguments; in +this case, we've set the :attr:`~django.db.models.Field.default` value of +``votes`` to 0. + Finally, note a relationship is defined, using :class:`~django.db.models.ForeignKey`. That tells Django each ``Choice`` is related to a single ``Poll``. Django supports all the common database relationships: diff --git a/docs/intro/tutorial02.txt b/docs/intro/tutorial02.txt index e5350a4d4c..966921f8a5 100644 --- a/docs/intro/tutorial02.txt +++ b/docs/intro/tutorial02.txt @@ -399,6 +399,11 @@ That's easy to change, though, using Django's template system. The Django admin is powered by Django itself, and its interfaces use Django's own template system. +.. _ref-customizing-your-projects-templates: + +Customizing your *project's* templates +-------------------------------------- + Create a ``mytemplates`` directory in your project directory. Templates can live anywhere on your filesystem that Django can access. (Django runs as whatever user your server runs.) However, keeping your templates within the @@ -446,11 +451,24 @@ override a template, just do the same thing you did with ``base_site.html`` -- copy it from the default directory into your custom directory, and make changes. +Customizing your *application's* templates +------------------------------------------ + Astute readers will ask: But if :setting:`TEMPLATE_DIRS` was empty by default, how was Django finding the default admin templates? The answer is that, by default, Django automatically looks for a ``templates/`` subdirectory within -each app package, for use as a fallback. See the :ref:`template loader -documentation ` for full information. +each application package, for use as a fallback (don't forget that +``django.contrib.admin`` is an application). + +Our poll application is not very complex and doesn't need custom admin +templates. But if it grew more sophisticated and required modification of +Django's standard admin templates for some of its functionality, it would be +more sensible to modify the *application's* templates, rather than those in the +*project*. That way, you could include the polls application in any new project +and be assured that it would find the custom templates it needed. + +See the :ref:`template loader documentation ` for more +information about how Django finds its templates. Customize the admin index page ============================== diff --git a/docs/intro/tutorial03.txt b/docs/intro/tutorial03.txt index ac77b7608d..abc61a23ba 100644 --- a/docs/intro/tutorial03.txt +++ b/docs/intro/tutorial03.txt @@ -39,7 +39,24 @@ In our poll application, we'll have the following four views: * Vote action -- handles voting for a particular choice in a particular poll. -In Django, each view is represented by a simple Python function. +In Django, web pages and other content are delivered by views. Each view is +represented by a simple Python function (or method, in the case of class-based +views). Django will choose a view by examining the URL that's requested (to be +precise, the part of the URL after the domain name). + +Now in your time on the web you may have come across such beauties as +"ME2/Sites/dirmod.asp?sid=&type=gen&mod=Core+Pages&gid=A6CD4967199A42D9B65B1B". +You will be pleased to know that Django allows us much more elegant +*URL patterns* than that. + +A URL pattern is simply the general form of a URL - for example: +``/newsarchive///``. + +To get from a URL to a view, Django uses what are known as 'URLconfs'. A +URLconf maps URL patterns (described as regular expressions) to views. + +This tutorial provides basic instruction in the use of URLconfs, and you can +refer to :mod:`django.core.urlresolvers` for more information. Write your first view ===================== @@ -52,19 +69,8 @@ and put the following Python code in it:: def index(request): return HttpResponse("Hello, world. You're at the poll index.") -This is the simplest view possible in Django. Now we have a problem, how does -this view get called? For that we need to map it to a URL, in Django this is -done in a configuration file called a URLconf. - -.. admonition:: What is a URLconf? - - In Django, web pages and other content are delivered by views and - determining which view is called is done by Python modules informally - titled 'URLconfs'. These modules are pure Python code and are a simple - mapping between URL patterns (as simple regular expressions) to Python - callback functions (your views). This tutorial provides basic instruction - in their use, and you can refer to :mod:`django.core.urlresolvers` for - more information. +This is the simplest view possible in Django. To call the view, we need to map +it to a URL - and for this we need a URLconf. To create a URLconf in the polls directory, create a file called ``urls.py``. Your app directory should now look like:: @@ -274,10 +280,48 @@ commas, according to publication date:: There's a problem here, though: the page's design is hard-coded in the view. If you want to change the way the page looks, you'll have to edit this Python code. -So let's use Django's template system to separate the design from Python. +So let's use Django's template system to separate the design from Python by +creating a template that the view can use. + +First, create a directory called ``templates`` in your ``polls`` directory. +Django will look for templates in there. + +Django's :setting:`TEMPLATE_LOADERS` setting contains a list of callables that +know how to import templates from various sources. One of the defaults is +:class:`django.template.loaders.app_directories.Loader` which looks for a +"templates" subdirectory in each of the :setting:`INSTALLED_APPS` - this is how +Django knows to find the polls templates even though we didn't modify +:setting:`TEMPLATE_DIRS`, as we did in :ref:`Tutorial 2 +`. + +.. admonition:: Organizing templates + + We *could* have all our templates together, in one big templates directory, + and it would work perfectly well. However, this template belongs to the + polls application, so unlike the admin template we created in the previous + tutorial, we'll put this one in the application's template directory + (``polls/templates``) rather than the project's (``mytemplates``). We'll + discuss in more detail in the :doc:`reusable apps tutorial + ` *why* we do this. + +Within the ``templates`` directory you have just created, create another +directory called ``polls``, and within that create a file called +``index.html``. In other words, your template should be at +``polls/templates/polls/index.html``. Because of how the ``app_directories`` +template loader works as described above, you can refer to this template within +Django simply as ``polls/index.html``. + +.. admonition:: Template namespacing + + Now we *might* be able to get away with putting our templates directly in + ``polls/templates`` (rather than creating another ``polls`` subdirectory), + but it would actually be a bad idea. Django will choose the first template + it finds whose name matches, and if you had a template with the same name + in a *different* application, Django would be unable to distinguish between + them. We need to be able to point Django at the right one, and the easiest + way to ensure this is by *namespacing* them. That is, by putting those + templates inside *another* directory named for the application itself. -First, create a directory ``polls`` in your template directory you specified -in :setting:`TEMPLATE_DIRS`. Within that, create a file called ``index.html``. Put the following code in that template: .. code-block:: html+django @@ -311,15 +355,9 @@ That code loads the template called ``polls/index.html`` and passes it a context. The context is a dictionary mapping template variable names to Python objects. -Load the page in your Web browser, and you should see a bulleted-list -containing the "What's up" poll from Tutorial 1. The link points to the poll's -detail page. - -.. admonition:: Organizing Templates - - Rather than one big templates directory, you can also store templates - within each app. We'll discuss this in more detail in the :doc:`reusable - apps tutorial`. +Load the page by pointing your browser at "/polls/", and you should see a +bulleted-list containing the "What's up" poll from Tutorial 1. The link points +to the poll's detail page. A shortcut: :func:`~django.shortcuts.render` -------------------------------------------- @@ -536,8 +574,9 @@ view, and so might an app on the same project that is for a blog. How does one make it so that Django knows which app view to create for a url when using the ``{% url %}`` template tag? -The answer is to add namespaces to your root URLconf. In the -``mysite/urls.py`` file, go ahead and change it to include namespacing:: +The answer is to add namespaces to your root URLconf. In the ``mysite/urls.py`` +file (the project's ``urls.py``, not the application's), go ahead and change +it to include namespacing:: from django.conf.urls import patterns, include, url diff --git a/docs/intro/tutorial04.txt b/docs/intro/tutorial04.txt index f047067aa7..87d8e584ad 100644 --- a/docs/intro/tutorial04.txt +++ b/docs/intro/tutorial04.txt @@ -33,7 +33,7 @@ A quick rundown: ``value`` of each radio button is the associated poll choice's ID. The ``name`` of each radio button is ``"choice"``. That means, when somebody selects one of the radio buttons and submits the form, it'll send the - POST data ``choice=3``. This is HTML Forms 101. + POST data ``choice=3``. This is the basic concept of HTML forms. * We set the form's ``action`` to ``{% url 'polls:vote' poll.id %}``, and we set ``method="post"``. Using ``method="post"`` (as opposed to @@ -199,6 +199,9 @@ Read on for details. You should know basic math before you start using a calculator. +Amend URLconf +------------- + First, open the ``polls/urls.py`` URLconf and change it like so:: from django.conf.urls import patterns, url @@ -225,6 +228,9 @@ First, open the ``polls/urls.py`` URLconf and change it like so:: url(r'^(?P\d+)/vote/$', 'polls.views.vote', name='vote'), ) +Amend views +----------- + We're using two generic views here: :class:`~django.views.generic.list.ListView` and :class:`~django.views.generic.detail.DetailView`. Respectively, those @@ -267,9 +273,10 @@ As an alternative approach, you could change your templates to match the new default context variables -- but it's a lot easier to just tell Django to use the variable you want. -You can now delete the ``index()``, ``detail()`` and ``results()`` -views from ``polls/views.py``. We don't need them anymore -- they have -been replaced by generic views. +You can now delete the ``index()``, ``detail()`` and ``results()`` views from +``polls/views.py``. We don't need them anymore -- they have been replaced by +generic views. You can also delete the import for ``HttpResponse``, which is no +longer required. Run the server, and use your new polling app based on generic views. -- cgit v1.3 From 112c6e987dbe789c8eb1889852f6056131c8d4d6 Mon Sep 17 00:00:00 2001 From: Ramiro Morales Date: Thu, 7 Feb 2013 19:57:26 -0300 Subject: Typo in i18n docs. --- docs/topics/i18n/translation.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/topics/i18n/translation.txt b/docs/topics/i18n/translation.txt index 122328e31b..782a632456 100644 --- a/docs/topics/i18n/translation.txt +++ b/docs/topics/i18n/translation.txt @@ -353,7 +353,7 @@ It is recommended to always provide explicit :attr:`~django.db.models.Options.verbose_name` and :attr:`~django.db.models.Options.verbose_name_plural` options rather than relying on the fallback English-centric and somewhat naïve determination of -verbose names Django performs bu looking at the model's class name:: +verbose names Django performs by looking at the model's class name:: from django.utils.translation import ugettext_lazy as _ -- cgit v1.3 From c44d748272d1d39e7cd48b625c526f532703aa29 Mon Sep 17 00:00:00 2001 From: Preston Holmes Date: Wed, 6 Feb 2013 14:25:51 -0800 Subject: Fixed #19662 -- alter auth modelbackend to accept custom username fields Thanks to Aymeric and Carl for the review. --- django/contrib/auth/backends.py | 8 ++++---- django/contrib/auth/tests/auth_backends.py | 20 +++++++++++++++++++- docs/ref/contrib/auth.txt | 12 +++++++++--- 3 files changed, 32 insertions(+), 8 deletions(-) (limited to 'docs') diff --git a/django/contrib/auth/backends.py b/django/contrib/auth/backends.py index 703fd2519d..05e9bfd721 100644 --- a/django/contrib/auth/backends.py +++ b/django/contrib/auth/backends.py @@ -8,11 +8,11 @@ class ModelBackend(object): Authenticates against django.contrib.auth.models.User. """ - # TODO: Model, login attribute name and password attribute name should be - # configurable. - def authenticate(self, username=None, password=None): + def authenticate(self, username=None, password=None, **kwargs): + UserModel = get_user_model() + if username is None: + username = kwargs.get(UserModel.USERNAME_FIELD) try: - UserModel = get_user_model() user = UserModel._default_manager.get_by_natural_key(username) if user.check_password(password): return user diff --git a/django/contrib/auth/tests/auth_backends.py b/django/contrib/auth/tests/auth_backends.py index 074374cd5a..20bbb4dbd4 100644 --- a/django/contrib/auth/tests/auth_backends.py +++ b/django/contrib/auth/tests/auth_backends.py @@ -4,7 +4,7 @@ from datetime import date from django.conf import settings from django.contrib.auth.models import User, Group, Permission, AnonymousUser from django.contrib.auth.tests.utils import skipIfCustomUser -from django.contrib.auth.tests.custom_user import ExtensionUser, CustomPermissionsUser +from django.contrib.auth.tests.custom_user import ExtensionUser, CustomPermissionsUser, CustomUser from django.contrib.contenttypes.models import ContentType from django.core.exceptions import ImproperlyConfigured, PermissionDenied from django.contrib.auth import authenticate @@ -190,6 +190,24 @@ class CustomPermissionsUserModelBackendTest(BaseModelBackendTest, TestCase): ) +@override_settings(AUTH_USER_MODEL='auth.CustomUser') +class CustomUserModelBackendAuthenticateTest(TestCase): + """ + Tests that the model backend can accept a credentials kwarg labeled with + custom user model's USERNAME_FIELD. + """ + + def test_authenticate(self): + test_user = CustomUser._default_manager.create_user( + email='test@example.com', + password='test', + date_of_birth=date(2006, 4, 25) + ) + authenticated_user = authenticate(email='test@example.com', password='test') + self.assertEqual(test_user, authenticated_user) + + + class TestObj(object): pass diff --git a/docs/ref/contrib/auth.txt b/docs/ref/contrib/auth.txt index f871f1493f..9bd7fe79b7 100644 --- a/docs/ref/contrib/auth.txt +++ b/docs/ref/contrib/auth.txt @@ -412,9 +412,15 @@ The following backends are available in :mod:`django.contrib.auth.backends`: .. class:: ModelBackend This is the default authentication backend used by Django. It - authenticates using usernames and passwords stored in the - :class:`~django.contrib.auth.models.User` model. - + authenticates using credentials consisting of a user identifier and + password. For Django's default user model, the user identifier is the + username, for custom user models it is the field specified by + USERNAME_FIELD (see :doc:`Customizing Users and authentication + `). + + It also handles the default permissions model as defined for + :class:`~django.contrib.auth.models.User` and + :class:`~django.contrib.auth.models.PermissionsMixin`. .. class:: RemoteUserBackend -- cgit v1.3 From 2ed90eac49b99d66ee4f2d59af8553274a4d095f Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Fri, 8 Feb 2013 16:32:09 +0100 Subject: Fixed #19779 -- Checked contrib.sites presence in RedirectFallbackMiddleware Thanks Aymeric Augustin for the report and directions for the patch. --- django/contrib/redirects/middleware.py | 11 ++++++++++- django/contrib/redirects/tests.py | 9 +++++++++ docs/ref/contrib/redirects.txt | 9 +++++---- docs/ref/contrib/sites.txt | 1 + docs/releases/1.5.txt | 6 ++++++ 5 files changed, 31 insertions(+), 5 deletions(-) (limited to 'docs') diff --git a/django/contrib/redirects/middleware.py b/django/contrib/redirects/middleware.py index f5d35946bc..03c9d97c0d 100644 --- a/django/contrib/redirects/middleware.py +++ b/django/contrib/redirects/middleware.py @@ -1,11 +1,20 @@ from __future__ import unicode_literals +from django.conf import settings from django.contrib.redirects.models import Redirect from django.contrib.sites.models import get_current_site +from django.core.exceptions import ImproperlyConfigured from django import http -from django.conf import settings + class RedirectFallbackMiddleware(object): + def __init__(self): + if 'django.contrib.sites' not in settings.INSTALLED_APPS: + raise ImproperlyConfigured( + "You cannot use RedirectFallbackMiddleware when " + "django.contrib.sites is not installed." + ) + def process_response(self, request, response): if response.status_code != 404: return response # No need to check for a redirect for non-404 responses. diff --git a/django/contrib/redirects/tests.py b/django/contrib/redirects/tests.py index 4ea8523199..bdcdf4a9e1 100644 --- a/django/contrib/redirects/tests.py +++ b/django/contrib/redirects/tests.py @@ -1,9 +1,11 @@ from django.conf import settings from django.contrib.sites.models import Site +from django.core.exceptions import ImproperlyConfigured from django.test import TestCase from django.test.utils import override_settings from django.utils import six +from .middleware import RedirectFallbackMiddleware from .models import Redirect @@ -52,3 +54,10 @@ class RedirectTests(TestCase): site=self.site, old_path='/initial', new_path='') response = self.client.get('/initial') self.assertEqual(response.status_code, 410) + + @override_settings( + INSTALLED_APPS=[app for app in settings.INSTALLED_APPS + if app != 'django.contrib.sites']) + def test_sites_not_installed(self): + with self.assertRaises(ImproperlyConfigured): + RedirectFallbackMiddleware() diff --git a/docs/ref/contrib/redirects.txt b/docs/ref/contrib/redirects.txt index e34ba405f4..0c0cb2a3c2 100644 --- a/docs/ref/contrib/redirects.txt +++ b/docs/ref/contrib/redirects.txt @@ -13,11 +13,12 @@ Installation To install the redirects app, follow these steps: -1. Add ``'django.contrib.redirects'`` to your :setting:`INSTALLED_APPS` - setting. -2. Add ``'django.contrib.redirects.middleware.RedirectFallbackMiddleware'`` +1. Ensure that the ``django.contrib.sites`` framework + :ref:`is installed `. +2. Add ``'django.contrib.redirects'`` to your :setting:`INSTALLED_APPS` setting. +3. Add ``'django.contrib.redirects.middleware.RedirectFallbackMiddleware'`` to your :setting:`MIDDLEWARE_CLASSES` setting. -3. Run the command :djadmin:`manage.py syncdb `. +4. Run the command :djadmin:`manage.py syncdb `. How it works ============ diff --git a/docs/ref/contrib/sites.txt b/docs/ref/contrib/sites.txt index 7eaab5dacf..139a9b377f 100644 --- a/docs/ref/contrib/sites.txt +++ b/docs/ref/contrib/sites.txt @@ -246,6 +246,7 @@ To do this, you can use the sites framework. A simple example:: >>> 'http://%s%s' % (Site.objects.get_current().domain, obj.get_absolute_url()) 'http://example.com/mymodel/objects/3/' +.. _enabling-the-sites-framework: Enabling the sites framework ============================ diff --git a/docs/releases/1.5.txt b/docs/releases/1.5.txt index a5ce08aed6..33dcb0e794 100644 --- a/docs/releases/1.5.txt +++ b/docs/releases/1.5.txt @@ -653,6 +653,12 @@ Miscellaneous Attempting to load it with ``{% load adminmedia %}`` will fail. If your templates still contain that line you must remove it. +* Because of an implementation oversight, it was possible to use + :doc:`django.contrib.redirects ` without enabling + :doc:`django.contrib.sites `. This isn't allowed any + longer. If you're using ``django.contrib.redirects``, make sure + :setting:``INSTALLED_APPS`` contains ``django.contrib.sites``. + Features deprecated in 1.5 ========================== -- cgit v1.3 From 0201b9d6d89ea277383e1fc0007bfaa33351b60b Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Sat, 9 Feb 2013 10:17:26 +0100 Subject: Fixed #19749 -- Documented ending param to command's self.stdout/err Thanks xian at mintchaos.com for the report. --- docs/howto/custom-management-commands.txt | 8 +++++++- docs/releases/1.5.txt | 5 +++++ 2 files changed, 12 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/howto/custom-management-commands.txt b/docs/howto/custom-management-commands.txt index bfcea64b49..7a31fc44e3 100644 --- a/docs/howto/custom-management-commands.txt +++ b/docs/howto/custom-management-commands.txt @@ -65,12 +65,18 @@ look like this: self.stdout.write('Successfully closed poll "%s"' % poll_id) +.. _management-commands-output: + .. note:: When you are using management commands and wish to provide console output, you should write to ``self.stdout`` and ``self.stderr``, instead of printing to ``stdout`` and ``stderr`` directly. By using these proxies, it becomes much easier to test your custom - command. + command. Note also that you don't need to end messages with a newline + character, it will be added automatically, unless you specify the ``ending`` + parameter:: + + self.stdout.write("Unterminated line", ending='') The new custom command can be called using ``python manage.py closepoll ``. diff --git a/docs/releases/1.5.txt b/docs/releases/1.5.txt index 33dcb0e794..acf4f153ce 100644 --- a/docs/releases/1.5.txt +++ b/docs/releases/1.5.txt @@ -253,6 +253,11 @@ Django 1.5 also includes several smaller improvements worth noting: from :ref:`call_command `. Any exception raised by the command (mostly :ref:`CommandError `) is propagated. + Moreover, when you output errors or messages in your custom commands, you + should now use ``self.stdout.write('message')`` and + ``self.stderr.write('error')`` (see the note on + :ref:`management commands output `). + * The dumpdata management command outputs one row at a time, preventing out-of-memory errors when dumping large datasets. -- cgit v1.3 From d93edffa896a68fc74c9a414c6beee289d176798 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sat, 9 Feb 2013 09:16:10 -0500 Subject: Fixed #19699 - Removed "Please see the release notes" from versionadded/changed directives Also bumped django_next_version back to 1.6 so those annotations are described as "the development version" in the docs. Thanks Aymeric for the patch. --- docs/_ext/djangodocs.py | 12 +++--------- docs/conf.py | 4 ++-- 2 files changed, 5 insertions(+), 11 deletions(-) (limited to 'docs') diff --git a/docs/_ext/djangodocs.py b/docs/_ext/djangodocs.py index 3d85147952..6c0e1892f4 100644 --- a/docs/_ext/djangodocs.py +++ b/docs/_ext/djangodocs.py @@ -65,19 +65,13 @@ class VersionDirective(Directive): def run(self): env = self.state.document.settings.env - arg0 = self.arguments[0] - is_nextversion = env.config.django_next_version == arg0 ret = [] node = addnodes.versionmodified() ret.append(node) - if not is_nextversion: - if len(self.arguments) == 1: - linktext = 'Please see the release notes ' % (arg0) - xrefs = roles.XRefRole()('doc', linktext, linktext, self.lineno, self.state) - node.extend(xrefs[0]) - node['version'] = arg0 - else: + if self.arguments[0] == env.config.django_next_version: node['version'] = "Development version" + else: + node['version'] = self.arguments[0] node['type'] = self.name if len(self.arguments) == 2: inodes, messages = self.state.inline_text(self.arguments[1], self.lineno+1) diff --git a/docs/conf.py b/docs/conf.py index e651000f8b..a654e3c4d6 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -70,8 +70,8 @@ else: release = django_release() -# The next version to be released -django_next_version = '1.7' +# The "development version" of Django +django_next_version = '1.6' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. -- cgit v1.3 From af2bb174708e662c59f43f3f8df79e4de7411451 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sun, 10 Feb 2013 12:58:42 -0500 Subject: Added a note about the default timezone and the new project template. Thanks JonLoy for the draft patch. --- docs/ref/settings.txt | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'docs') diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt index 9a615b2d99..25818184f6 100644 --- a/docs/ref/settings.txt +++ b/docs/ref/settings.txt @@ -1707,6 +1707,12 @@ Default: ``'America/Chicago'`` A string representing the time zone for this installation, or ``None``. See the `list of time zones`_. +.. note:: + Since Django was first released with the :setting:`TIME_ZONE` set to + ``'America/Chicago'``, the global setting (used if nothing is defined in + your project's ``settings.py``) remains ``'America/Chicago'`` for backwards + compatibility. New project templates default to ``'UTC'``. + Note that this isn't necessarily the time zone of the server. For example, one server may serve multiple Django-powered sites, each with a separate time zone setting. -- cgit v1.3 From 8fbc20b24bd14e22f3d9c0dd02781ddf1f2b5bd7 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Sun, 10 Feb 2013 20:43:08 +0100 Subject: Emphasized MyISAM pseudo-requirement for GeoDjango over MySQL Refs #15295. --- docs/ref/contrib/gis/install/index.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'docs') diff --git a/docs/ref/contrib/gis/install/index.txt b/docs/ref/contrib/gis/install/index.txt index 2987539f33..5273b5e630 100644 --- a/docs/ref/contrib/gis/install/index.txt +++ b/docs/ref/contrib/gis/install/index.txt @@ -46,8 +46,8 @@ how to install. Spatial database ---------------- -PostgreSQL (with PostGIS), MySQL, Oracle, and SQLite (with SpatiaLite) are -the spatial databases currently supported. +PostgreSQL (with PostGIS), MySQL (mostly with MyISAM engine), Oracle, and SQLite +(with SpatiaLite) are the spatial databases currently supported. .. note:: @@ -62,7 +62,7 @@ supported versions, and any notes for each of the supported database backends: Database Library Requirements Supported Versions Notes ================== ============================== ================== ========================================= PostgreSQL GEOS, PROJ.4, PostGIS 8.2+ Requires PostGIS. -MySQL GEOS 5.x Not OGC-compliant; limited functionality. +MySQL GEOS 5.x Not OGC-compliant; :ref:`limited functionality `. Oracle GEOS 10.2, 11 XE not supported; not tested with 9. SQLite GEOS, GDAL, PROJ.4, SpatiaLite 3.6.+ Requires SpatiaLite 2.3+, pysqlite2 2.5+ ================== ============================== ================== ========================================= -- cgit v1.3 From 5ce6a7cea25ac8e616fa6bd132ee341a240aad6f Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sun, 10 Feb 2013 18:07:50 -0500 Subject: Updated tutorial 1 to reflect changes in default project template. Thanks JonLoy for the patch. --- docs/intro/tutorial01.txt | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) (limited to 'docs') diff --git a/docs/intro/tutorial01.txt b/docs/intro/tutorial01.txt index 9b0c820380..7d1776296a 100644 --- a/docs/intro/tutorial01.txt +++ b/docs/intro/tutorial01.txt @@ -203,18 +203,11 @@ settings: * :setting:`NAME` -- The name of your database. If you're using SQLite, the database will be a file on your computer; in that case, :setting:`NAME` - should be the full absolute path, including filename, of that file. When - specifying the path, always use forward slashes, even on Windows (e.g. - ``C:/homes/user/mysite/sqlite3.db``). - -* :setting:`USER` -- Your database username (not used for SQLite). - -* :setting:`PASSWORD` -- Your database password (not used for SQLite). - -* :setting:`HOST` -- The host your database is on (not used for SQLite). - Leave this as an empty string (or possibly ``127.0.0.1``) if your - database server is on the same physical machine . + should be the full absolute path, including filename, of that file. The + default value, ``os.path.join(BASE_DIR, 'db.sqlite3')``, will store the file + in your project directory. +If you are not using SQLite as your database, additional settings such as :setting:`USER`, :setting:`PASSWORD`, :setting:`HOST` must be added. For more details, see the reference documentation for :setting:`DATABASES`. .. note:: -- cgit v1.3 From a10f3908042a71ec5ef81bf76f0f278ca5e7a596 Mon Sep 17 00:00:00 2001 From: Simon Charette Date: Mon, 11 Feb 2013 02:39:14 -0500 Subject: Fixed #19044 -- Made `DeletionMixin` interpolate its `success_url`. Thanks to nxvl and slurms for the initial patch, ptone for the review and timo for the documentation tweaks. --- django/views/generic/edit.py | 5 +++-- docs/ref/class-based-views/mixins-editing.txt | 7 +++++++ docs/releases/1.6.txt | 4 ++++ tests/regressiontests/generic_views/edit.py | 19 +++++++++++++------ tests/regressiontests/generic_views/urls.py | 2 ++ 5 files changed, 29 insertions(+), 8 deletions(-) (limited to 'docs') diff --git a/django/views/generic/edit.py b/django/views/generic/edit.py index 97a6c0a698..5b97fc81c9 100644 --- a/django/views/generic/edit.py +++ b/django/views/generic/edit.py @@ -242,8 +242,9 @@ class DeletionMixin(object): redirects to the success URL. """ self.object = self.get_object() + success_url = self.get_success_url() self.object.delete() - return HttpResponseRedirect(self.get_success_url()) + return HttpResponseRedirect(success_url) # Add support for browsers which only accept GET and POST for now. def post(self, *args, **kwargs): @@ -251,7 +252,7 @@ class DeletionMixin(object): def get_success_url(self): if self.success_url: - return self.success_url + return self.success_url % self.object.__dict__ else: raise ImproperlyConfigured( "No URL to redirect to. Provide a success_url.") diff --git a/docs/ref/class-based-views/mixins-editing.txt b/docs/ref/class-based-views/mixins-editing.txt index bce3c84cb1..844171c93a 100644 --- a/docs/ref/class-based-views/mixins-editing.txt +++ b/docs/ref/class-based-views/mixins-editing.txt @@ -201,6 +201,13 @@ ProcessFormView The url to redirect to when the nominated object has been successfully deleted. + .. versionadded:: 1.6 + + ``success_url`` may contain dictionary string formatting, which + will be interpolated against the object's field attributes. For + example, you could use ``success_url="/parent/%(parent_id)s/"`` to + redirect to a URL composed out of the ``parent_id`` field on a model. + .. method:: get_success_url(obj) Returns the url to redirect to when the nominated object has been diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index f53fa8ac4c..5d615177f4 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -64,6 +64,10 @@ Minor features :attr:`~django.core.management.BaseCommand.leave_locale_alone` internal option. See :ref:`management-commands-and-locales` for more details. +* The :attr:`~django.views.generic.edit.DeletionMixin.success_url` of + :class:`~django.views.generic.edit.DeletionMixin` is now interpolated with + its ``object``\'s ``__dict__``. + Backwards incompatible changes in 1.6 ===================================== diff --git a/tests/regressiontests/generic_views/edit.py b/tests/regressiontests/generic_views/edit.py index 0f1eb3cca7..3bacc31ee2 100644 --- a/tests/regressiontests/generic_views/edit.py +++ b/tests/regressiontests/generic_views/edit.py @@ -13,12 +13,12 @@ from .models import Artist, Author class FormMixinTests(TestCase): - def test_initial_data(self): - """ Test instance independence of initial data dict (see #16138) """ - initial_1 = FormMixin().get_initial() - initial_1['foo'] = 'bar' - initial_2 = FormMixin().get_initial() - self.assertNotEqual(initial_1, initial_2) + def test_initial_data(self): + """ Test instance independence of initial data dict (see #16138) """ + initial_1 = FormMixin().get_initial() + initial_1['foo'] = 'bar' + initial_2 = FormMixin().get_initial() + self.assertNotEqual(initial_1, initial_2) class BasicFormTests(TestCase): @@ -283,6 +283,13 @@ class DeleteViewTests(TestCase): self.assertRedirects(res, 'http://testserver/edit/authors/create/') self.assertQuerysetEqual(Author.objects.all(), []) + def test_delete_with_interpolated_redirect(self): + a = Author.objects.create(**{'name': 'Randall Munroe', 'slug': 'randall-munroe'}) + res = self.client.post('/edit/author/%d/delete/interpolate_redirect/' % a.pk) + self.assertEqual(res.status_code, 302) + self.assertRedirects(res, 'http://testserver/edit/authors/create/?deleted=%d' % a.pk) + self.assertQuerysetEqual(Author.objects.all(), []) + def test_delete_with_special_properties(self): a = Author.objects.create(**{'name': 'Randall Munroe', 'slug': 'randall-munroe'}) res = self.client.get('/edit/author/%d/delete/special/' % a.pk) diff --git a/tests/regressiontests/generic_views/urls.py b/tests/regressiontests/generic_views/urls.py index 57309053d3..695b50279a 100644 --- a/tests/regressiontests/generic_views/urls.py +++ b/tests/regressiontests/generic_views/urls.py @@ -97,6 +97,8 @@ urlpatterns = patterns('', views.NaiveAuthorDelete.as_view()), (r'^edit/author/(?P\d+)/delete/redirect/$', views.NaiveAuthorDelete.as_view(success_url='/edit/authors/create/')), + (r'^edit/author/(?P\d+)/delete/interpolate_redirect/$', + views.NaiveAuthorDelete.as_view(success_url='/edit/authors/create/?deleted=%(id)s')), (r'^edit/author/(?P\d+)/delete/$', views.AuthorDelete.as_view()), (r'^edit/author/(?P\d+)/delete/special/$', -- cgit v1.3 From 278dad5b411e3e2ba8b428f7761882424353dea7 Mon Sep 17 00:00:00 2001 From: Nick Sandford Date: Tue, 12 Feb 2013 14:00:38 +0800 Subject: Fixed #19746 -- Allow deserialization of pk-less data --- django/core/serializers/python.py | 2 +- docs/topics/serialization.txt | 10 ++++++++++ tests/modeltests/serializers/tests.py | 18 ++++++++++++++++-- 3 files changed, 27 insertions(+), 3 deletions(-) (limited to 'docs') diff --git a/django/core/serializers/python.py b/django/core/serializers/python.py index 5e07e2a006..cdfac5044b 100644 --- a/django/core/serializers/python.py +++ b/django/core/serializers/python.py @@ -88,7 +88,7 @@ def Deserializer(object_list, **options): for d in object_list: # Look up the model and starting build a dict of data for it. Model = _get_model(d["model"]) - data = {Model._meta.pk.attname: Model._meta.pk.to_python(d["pk"])} + data = {Model._meta.pk.attname: Model._meta.pk.to_python(d.get("pk", None))} m2m_data = {} model_fields = Model._meta.get_all_field_names() diff --git a/docs/topics/serialization.txt b/docs/topics/serialization.txt index 2af0584a61..982f986aad 100644 --- a/docs/topics/serialization.txt +++ b/docs/topics/serialization.txt @@ -117,6 +117,16 @@ object and any associated relationship data. Calling ``DeserializedObject.save()`` saves the object to the database. +.. note:: + + If the ``pk`` attribute in the serialized data doesn't exist or is + null, a new instance will be saved to the database. + +.. versionchanged:: 1.6 + +In previous versions of Django, the ``pk`` attribute had to be present +on the serialized data or a ``DeserializationError`` would be raised. + This ensures that deserializing is a non-destructive operation even if the data in your serialized representation doesn't match what's currently in the database. Usually, working with these ``DeserializedObject`` instances looks diff --git a/tests/modeltests/serializers/tests.py b/tests/modeltests/serializers/tests.py index e39f17b68a..34d0f5f1b1 100644 --- a/tests/modeltests/serializers/tests.py +++ b/tests/modeltests/serializers/tests.py @@ -255,7 +255,7 @@ class SerializersTestBase(object): for obj in deserial_objs: self.assertFalse(obj.object.id) obj.save() - self.assertEqual(Category.objects.all().count(), 4) + self.assertEqual(Category.objects.all().count(), 5) class SerializersTransactionTestBase(object): @@ -290,6 +290,9 @@ class XmlSerializerTestCase(SerializersTestBase, TestCase): Reference + + Non-fiction + """ @staticmethod @@ -351,7 +354,15 @@ class XmlSerializerTransactionTestCase(SerializersTransactionTestBase, Transacti class JsonSerializerTestCase(SerializersTestBase, TestCase): serializer_name = "json" - pkless_str = """[{"pk": null, "model": "serializers.category", "fields": {"name": "Reference"}}]""" + pkless_str = """[ + { + "pk": null, + "model": "serializers.category", + "fields": {"name": "Reference"} + }, { + "model": "serializers.category", + "fields": {"name": "Non-fiction"} + }]""" @staticmethod def _validate_output(serial_str): @@ -433,6 +444,9 @@ else: pkless_str = """- fields: name: Reference pk: null + model: serializers.category +- fields: + name: Non-fiction model: serializers.category""" @staticmethod -- cgit v1.3 From 0560bfb705687c831e2769b1202706e2ceb1f7a7 Mon Sep 17 00:00:00 2001 From: Ramiro Morales Date: Mon, 11 Feb 2013 12:49:30 -0300 Subject: Mention backward relationships in aggregate docs. Thanks Anssi and Marc Tamlyn for reviewing. Fixes #19803. --- docs/topics/db/aggregation.txt | 53 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 49 insertions(+), 4 deletions(-) (limited to 'docs') diff --git a/docs/topics/db/aggregation.txt b/docs/topics/db/aggregation.txt index 3a4d287864..49134e24c0 100644 --- a/docs/topics/db/aggregation.txt +++ b/docs/topics/db/aggregation.txt @@ -21,14 +21,12 @@ used to track the inventory for a series of online bookstores: class Author(models.Model): name = models.CharField(max_length=100) age = models.IntegerField() - friends = models.ManyToManyField('self', blank=True) class Publisher(models.Model): name = models.CharField(max_length=300) num_awards = models.IntegerField() class Book(models.Model): - isbn = models.CharField(max_length=9) name = models.CharField(max_length=300) pages = models.IntegerField() price = models.DecimalField(max_digits=10, decimal_places=2) @@ -40,6 +38,7 @@ used to track the inventory for a series of online bookstores: class Store(models.Model): name = models.CharField(max_length=300) books = models.ManyToManyField(Book) + registered_users = models.PositiveIntegerField() Cheat sheet =========== @@ -64,6 +63,9 @@ In a hurry? Here's how to do common aggregate queries, assuming the models above >>> Book.objects.all().aggregate(Max('price')) {'price__max': Decimal('81.20')} + # All the following queries involve traversing the Book<->Publisher + # many-to-many relationship backward + # Each publisher, each with a count of books as a "num_books" attribute. >>> from django.db.models import Count >>> pubs = Publisher.objects.annotate(num_books=Count('book')) @@ -73,7 +75,6 @@ In a hurry? Here's how to do common aggregate queries, assuming the models above 73 # The top 5 publishers, in order by number of books. - >>> from django.db.models import Count >>> pubs = Publisher.objects.annotate(num_books=Count('book')).order_by('-num_books')[:5] >>> pubs[0].num_books 1323 @@ -169,7 +170,7 @@ specify the annotation:: Unlike ``aggregate()``, ``annotate()`` is *not* a terminal clause. The output of the ``annotate()`` clause is a ``QuerySet``; this ``QuerySet`` can be modified using any other ``QuerySet`` operation, including ``filter()``, -``order_by``, or even additional calls to ``annotate()``. +``order_by()``, or even additional calls to ``annotate()``. Joins and aggregates ==================== @@ -205,6 +206,50 @@ issue the query:: >>> Store.objects.aggregate(youngest_age=Min('books__authors__age')) +Following relationships backwards +--------------------------------- + +In a way similar to :ref:`lookups-that-span-relationships`, aggregations and +annotations on fields of models or models that are related to the one you are +querying can include traversing "reverse" relationships. The lowercase name +of related models and double-underscores are used here too. + +For example, we can ask for all publishers, annotated with their respective +total book stock counters (note how we use `'book'` to specify the +Publisher->Book reverse foreign key hop):: + + >>> from django.db.models import Count, Min, Sum, Max, Avg + >>> Publisher.objects.annotate(Count('book')) + +(Every Publisher in the resulting QuerySet will have an extra attribute called +``book__count``.) + +We can also ask for the oldest book of any of those managed by every publisher:: + + >>> Publisher.objects.aggregate(oldest_pubdate=Min('book__pubdate')) + +(The resulting dictionary will have a key called ``'oldest_pubdate'``. If no +such alias was specified, it would be the rather long ``'book__pubdate__min'``.) + +This doesn't apply just to foreign keys. It also works with many-to-many +relations. For example, we can ask for every author, annotated with the total +number of pages considering all the books he/she has (co-)authored (note how we +use `'book'` to specify the Author->Book reverse many-to-many hop):: + + >>> Author.objects.annotate(total_pages=Sum('book__pages')) + +(Every Author in the resulting QuerySet will have an extra attribute called +``total_pages``. If no such alias was specified, it would be the rather long +``book__pages__sum``.) + +Or ask for the average rating of all the books written by author(s) we have on +file:: + + >>> Author.objects.aggregate(average_rating=Avg('book__rating')) + +(The resulting dictionary will have a key called ``'average__rating'``. If no +such alias was specified, it would be the rather long ``'book__rating__avg'``.) + Aggregations and other QuerySet clauses ======================================= -- cgit v1.3 From 74003ca36b0712830c3756bc00a0d1f1d4b313ea Mon Sep 17 00:00:00 2001 From: JonLoy Date: Tue, 12 Feb 2013 09:14:19 -0500 Subject: Fixed #19808 Capitalization error in example text --- docs/topics/forms/formsets.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/topics/forms/formsets.txt b/docs/topics/forms/formsets.txt index ee1c69e031..e2a2b00c7d 100644 --- a/docs/topics/forms/formsets.txt +++ b/docs/topics/forms/formsets.txt @@ -88,7 +88,7 @@ The ``max_num`` parameter to ``formset_factory`` gives you the ability to limit the maximum number of empty forms the formset will display:: >>> ArticleFormSet = formset_factory(ArticleForm, extra=2, max_num=1) - >>> formset = ArticleFormset() + >>> formset = ArticleFormSet() >>> for form in formset: ... print(form.as_table()) -- cgit v1.3 From e94f405d9499d310ef58b7409a98759a5f5512b0 Mon Sep 17 00:00:00 2001 From: Hiroki Kiyohara Date: Wed, 13 Feb 2013 09:55:43 +0100 Subject: Fixed #18558 -- Added url property to HttpResponseRedirect* Thanks coolRR for the report. --- AUTHORS | 1 + django/contrib/auth/tests/decorators.py | 2 +- django/contrib/auth/tests/views.py | 28 ++++++++--------- .../tests/wizard/namedwizardtests/tests.py | 36 +++++++++++----------- django/http/response.py | 2 ++ django/test/client.py | 2 +- django/test/testcases.py | 2 +- docs/ref/request-response.txt | 7 +++++ docs/releases/1.6.txt | 4 +++ tests/regressiontests/admin_views/tests.py | 2 +- tests/regressiontests/generic_views/base.py | 22 ++++++------- tests/regressiontests/httpwrappers/tests.py | 2 ++ tests/regressiontests/middleware/tests.py | 20 ++++++------ tests/regressiontests/urlpatterns_reverse/tests.py | 16 +++++----- tests/regressiontests/views/tests/i18n.py | 2 +- 15 files changed, 82 insertions(+), 66 deletions(-) (limited to 'docs') diff --git a/AUTHORS b/AUTHORS index 6e79befd31..c43823ce33 100644 --- a/AUTHORS +++ b/AUTHORS @@ -306,6 +306,7 @@ answer newbie questions, and generally made Django that much better: Garth Kidd kilian Sune Kirkeby + Hiroki Kiyohara Bastian Kleineidam Cameron Knight (ckknight) Nena Kojadin diff --git a/django/contrib/auth/tests/decorators.py b/django/contrib/auth/tests/decorators.py index be99e7abb6..5aff375498 100644 --- a/django/contrib/auth/tests/decorators.py +++ b/django/contrib/auth/tests/decorators.py @@ -34,7 +34,7 @@ class LoginRequiredTestCase(AuthViewsTestCase): """ response = self.client.get(view_url) self.assertEqual(response.status_code, 302) - self.assertTrue(login_url in response['Location']) + self.assertTrue(login_url in response.url) self.login() response = self.client.get(view_url) self.assertEqual(response.status_code, 200) diff --git a/django/contrib/auth/tests/views.py b/django/contrib/auth/tests/views.py index 6040a2f5b5..6c508cf607 100644 --- a/django/contrib/auth/tests/views.py +++ b/django/contrib/auth/tests/views.py @@ -46,7 +46,7 @@ class AuthViewsTestCase(TestCase): 'password': password, }) self.assertEqual(response.status_code, 302) - self.assertTrue(response['Location'].endswith(settings.LOGIN_REDIRECT_URL)) + self.assertTrue(response.url.endswith(settings.LOGIN_REDIRECT_URL)) self.assertTrue(SESSION_KEY in self.client.session) def assertContainsEscaped(self, response, text, **kwargs): @@ -281,7 +281,7 @@ class ChangePasswordTest(AuthViewsTestCase): 'new_password2': 'password1', }) self.assertEqual(response.status_code, 302) - self.assertTrue(response['Location'].endswith('/password_change/done/')) + self.assertTrue(response.url.endswith('/password_change/done/')) self.fail_login() self.login(password='password1') @@ -293,13 +293,13 @@ class ChangePasswordTest(AuthViewsTestCase): 'new_password2': 'password1', }) self.assertEqual(response.status_code, 302) - self.assertTrue(response['Location'].endswith('/password_change/done/')) + self.assertTrue(response.url.endswith('/password_change/done/')) def test_password_change_done_fails(self): with self.settings(LOGIN_URL='/login/'): response = self.client.get('/password_change/done/') self.assertEqual(response.status_code, 302) - self.assertTrue(response['Location'].endswith('/login/?next=/password_change/done/')) + self.assertTrue(response.url.endswith('/login/?next=/password_change/done/')) @skipIfCustomUser @@ -336,7 +336,7 @@ class LoginTest(AuthViewsTestCase): 'password': password, }) self.assertEqual(response.status_code, 302) - self.assertFalse(bad_url in response['Location'], + self.assertFalse(bad_url in response.url, "%s should be blocked" % bad_url) # These URLs *should* still pass the security check @@ -357,7 +357,7 @@ class LoginTest(AuthViewsTestCase): 'password': password, }) self.assertEqual(response.status_code, 302) - self.assertTrue(good_url in response['Location'], + self.assertTrue(good_url in response.url, "%s should be allowed" % good_url) @@ -376,7 +376,7 @@ class LoginURLSettings(AuthViewsTestCase): settings.LOGIN_URL = login_url response = self.client.get('/login_required/') self.assertEqual(response.status_code, 302) - return response['Location'] + return response.url def test_standard_login_url(self): login_url = '/login/' @@ -444,11 +444,11 @@ class LogoutTest(AuthViewsTestCase): self.login() response = self.client.get('/logout/next_page/') self.assertEqual(response.status_code, 302) - self.assertTrue(response['Location'].endswith('/somewhere/')) + self.assertTrue(response.url.endswith('/somewhere/')) response = self.client.get('/logout/next_page/?next=/login/') self.assertEqual(response.status_code, 302) - self.assertTrue(response['Location'].endswith('/login/')) + self.assertTrue(response.url.endswith('/login/')) self.confirm_logged_out() @@ -457,7 +457,7 @@ class LogoutTest(AuthViewsTestCase): self.login() response = self.client.get('/logout/next_page/') self.assertEqual(response.status_code, 302) - self.assertTrue(response['Location'].endswith('/somewhere/')) + self.assertTrue(response.url.endswith('/somewhere/')) self.confirm_logged_out() def test_logout_with_redirect_argument(self): @@ -465,7 +465,7 @@ class LogoutTest(AuthViewsTestCase): self.login() response = self.client.get('/logout/?next=/login/') self.assertEqual(response.status_code, 302) - self.assertTrue(response['Location'].endswith('/login/')) + self.assertTrue(response.url.endswith('/login/')) self.confirm_logged_out() def test_logout_with_custom_redirect_argument(self): @@ -473,7 +473,7 @@ class LogoutTest(AuthViewsTestCase): self.login() response = self.client.get('/logout/custom_query/?follow=/somewhere/') self.assertEqual(response.status_code, 302) - self.assertTrue(response['Location'].endswith('/somewhere/')) + self.assertTrue(response.url.endswith('/somewhere/')) self.confirm_logged_out() def test_security_check(self, password='password'): @@ -492,7 +492,7 @@ class LogoutTest(AuthViewsTestCase): self.login() response = self.client.get(nasty_url) self.assertEqual(response.status_code, 302) - self.assertFalse(bad_url in response['Location'], + self.assertFalse(bad_url in response.url, "%s should be blocked" % bad_url) self.confirm_logged_out() @@ -512,6 +512,6 @@ class LogoutTest(AuthViewsTestCase): self.login() response = self.client.get(safe_url) self.assertEqual(response.status_code, 302) - self.assertTrue(good_url in response['Location'], + self.assertTrue(good_url in response.url, "%s should be allowed" % good_url) self.confirm_logged_out() diff --git a/django/contrib/formtools/tests/wizard/namedwizardtests/tests.py b/django/contrib/formtools/tests/wizard/namedwizardtests/tests.py index 7529d89a2c..214f19a04d 100644 --- a/django/contrib/formtools/tests/wizard/namedwizardtests/tests.py +++ b/django/contrib/formtools/tests/wizard/namedwizardtests/tests.py @@ -21,7 +21,7 @@ class NamedWizardTests(object): def test_initial_call(self): response = self.client.get(reverse('%s_start' % self.wizard_urlname)) self.assertEqual(response.status_code, 302) - response = self.client.get(response['Location']) + response = self.client.get(response.url) self.assertEqual(response.status_code, 200) wizard = response.context['wizard'] self.assertEqual(wizard['steps'].current, 'form1') @@ -40,7 +40,7 @@ class NamedWizardTests(object): self.assertEqual(response.status_code, 302) # Test for proper redirect GET parameters - location = response['Location'] + location = response.url self.assertNotEqual(location.find('?'), -1) querydict = QueryDict(location[location.find('?') + 1:]) self.assertEqual(dict(querydict.items()), get_params) @@ -60,7 +60,7 @@ class NamedWizardTests(object): response = self.client.post( reverse(self.wizard_urlname, kwargs={'step': 'form1'}), self.wizard_step_data[0]) - response = self.client.get(response['Location']) + response = self.client.get(response.url) self.assertEqual(response.status_code, 200) wizard = response.context['wizard'] @@ -79,7 +79,7 @@ class NamedWizardTests(object): response = self.client.post( reverse(self.wizard_urlname, kwargs={'step': 'form1'}), self.wizard_step_data[0]) - response = self.client.get(response['Location']) + response = self.client.get(response.url) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form2') @@ -88,7 +88,7 @@ class NamedWizardTests(object): reverse(self.wizard_urlname, kwargs={ 'step': response.context['wizard']['steps'].current }), {'wizard_goto_step': response.context['wizard']['steps'].prev}) - response = self.client.get(response['Location']) + response = self.client.get(response.url) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form1') @@ -116,7 +116,7 @@ class NamedWizardTests(object): reverse(self.wizard_urlname, kwargs={'step': response.context['wizard']['steps'].current}), self.wizard_step_data[0]) - response = self.client.get(response['Location']) + response = self.client.get(response.url) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form2') @@ -128,7 +128,7 @@ class NamedWizardTests(object): reverse(self.wizard_urlname, kwargs={'step': response.context['wizard']['steps'].current}), post_data) - response = self.client.get(response['Location']) + response = self.client.get(response.url) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form3') @@ -137,7 +137,7 @@ class NamedWizardTests(object): reverse(self.wizard_urlname, kwargs={'step': response.context['wizard']['steps'].current}), self.wizard_step_data[2]) - response = self.client.get(response['Location']) + response = self.client.get(response.url) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form4') @@ -146,7 +146,7 @@ class NamedWizardTests(object): reverse(self.wizard_urlname, kwargs={'step': response.context['wizard']['steps'].current}), self.wizard_step_data[3]) - response = self.client.get(response['Location']) + response = self.client.get(response.url) self.assertEqual(response.status_code, 200) all_data = response.context['form_list'] @@ -169,7 +169,7 @@ class NamedWizardTests(object): reverse(self.wizard_urlname, kwargs={'step': response.context['wizard']['steps'].current}), self.wizard_step_data[0]) - response = self.client.get(response['Location']) + response = self.client.get(response.url) self.assertEqual(response.status_code, 200) post_data = self.wizard_step_data[1] @@ -178,7 +178,7 @@ class NamedWizardTests(object): reverse(self.wizard_urlname, kwargs={'step': response.context['wizard']['steps'].current}), post_data) - response = self.client.get(response['Location']) + response = self.client.get(response.url) self.assertEqual(response.status_code, 200) step2_url = reverse(self.wizard_urlname, kwargs={'step': 'form2'}) @@ -194,14 +194,14 @@ class NamedWizardTests(object): reverse(self.wizard_urlname, kwargs={'step': response.context['wizard']['steps'].current}), self.wizard_step_data[2]) - response = self.client.get(response['Location']) + response = self.client.get(response.url) self.assertEqual(response.status_code, 200) response = self.client.post( reverse(self.wizard_urlname, kwargs={'step': response.context['wizard']['steps'].current}), self.wizard_step_data[3]) - response = self.client.get(response['Location']) + response = self.client.get(response.url) self.assertEqual(response.status_code, 200) all_data = response.context['all_cleaned_data'] @@ -227,7 +227,7 @@ class NamedWizardTests(object): reverse(self.wizard_urlname, kwargs={'step': response.context['wizard']['steps'].current}), self.wizard_step_data[0]) - response = self.client.get(response['Location']) + response = self.client.get(response.url) self.assertEqual(response.status_code, 200) post_data = self.wizard_step_data[1] @@ -237,14 +237,14 @@ class NamedWizardTests(object): reverse(self.wizard_urlname, kwargs={'step': response.context['wizard']['steps'].current}), post_data) - response = self.client.get(response['Location']) + response = self.client.get(response.url) self.assertEqual(response.status_code, 200) response = self.client.post( reverse(self.wizard_urlname, kwargs={'step': response.context['wizard']['steps'].current}), self.wizard_step_data[2]) - loc = response['Location'] + loc = response.url response = self.client.get(loc) self.assertEqual(response.status_code, 200, loc) @@ -263,7 +263,7 @@ class NamedWizardTests(object): response = self.client.post( reverse(self.wizard_urlname, kwargs={'step': 'form1'}), self.wizard_step_data[0]) - response = self.client.get(response['Location']) + response = self.client.get(response.url) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form2') @@ -271,7 +271,7 @@ class NamedWizardTests(object): '%s?reset=1' % reverse('%s_start' % self.wizard_urlname)) self.assertEqual(response.status_code, 302) - response = self.client.get(response['Location']) + response = self.client.get(response.url) self.assertEqual(response.status_code, 200) self.assertEqual(response.context['wizard']['steps'].current, 'form1') diff --git a/django/http/response.py b/django/http/response.py index 48a401adcb..88ac8848c2 100644 --- a/django/http/response.py +++ b/django/http/response.py @@ -392,6 +392,8 @@ class HttpResponseRedirectBase(HttpResponse): super(HttpResponseRedirectBase, self).__init__(*args, **kwargs) self['Location'] = iri_to_uri(redirect_to) + url = property(lambda self: self['Location']) + class HttpResponseRedirect(HttpResponseRedirectBase): status_code = 302 diff --git a/django/test/client.py b/django/test/client.py index bb0f25e108..2506437023 100644 --- a/django/test/client.py +++ b/django/test/client.py @@ -580,7 +580,7 @@ class Client(RequestFactory): response.redirect_chain = [] while response.status_code in (301, 302, 303, 307): - url = response['Location'] + url = response.url redirect_chain = response.redirect_chain redirect_chain.append((url, response.status_code)) diff --git a/django/test/testcases.py b/django/test/testcases.py index f7c34a9f25..f9d028bb72 100644 --- a/django/test/testcases.py +++ b/django/test/testcases.py @@ -601,7 +601,7 @@ class TransactionTestCase(SimpleTestCase): " code was %d (expected %d)" % (response.status_code, status_code)) - url = response['Location'] + url = response.url scheme, netloc, path, query, fragment = urlsplit(url) redirect_response = response.client.get(path, QueryDict(query)) diff --git a/docs/ref/request-response.txt b/docs/ref/request-response.txt index 717995aea2..30f5e87100 100644 --- a/docs/ref/request-response.txt +++ b/docs/ref/request-response.txt @@ -746,6 +746,13 @@ types of HTTP responses. Like ``HttpResponse``, these subclasses live in domain (e.g. ``'/search/'``). See :class:`HttpResponse` for other optional constructor arguments. Note that this returns an HTTP status code 302. + .. attribute:: HttpResponseRedirect.url + + .. versionadded:: 1.6 + + This read-only attribute represents the URL the response will redirect + to (equivalent to the ``Location`` response header). + .. class:: HttpResponsePermanentRedirect Like :class:`HttpResponseRedirect`, but it returns a permanent redirect diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 5d615177f4..60537aca53 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -68,6 +68,10 @@ Minor features :class:`~django.views.generic.edit.DeletionMixin` is now interpolated with its ``object``\'s ``__dict__``. +* :class:`~django.http.HttpResponseRedirect` and + :class:`~django.http.HttpResponsePermanentRedirect` now provide an ``url`` + attribute (equivalent to the URL the response will redirect to). + Backwards incompatible changes in 1.6 ===================================== diff --git a/tests/regressiontests/admin_views/tests.py b/tests/regressiontests/admin_views/tests.py index 1633fba6b5..e0cd7cdfa1 100644 --- a/tests/regressiontests/admin_views/tests.py +++ b/tests/regressiontests/admin_views/tests.py @@ -1641,7 +1641,7 @@ class SecureViewTests(TestCase): response = self.client.get(shortcut_url, follow=False) # Can't use self.assertRedirects() because User.get_absolute_url() is silly. self.assertEqual(response.status_code, 302) - self.assertEqual(response['Location'], 'http://example.com/users/super/') + self.assertEqual(response.url, 'http://example.com/users/super/') @override_settings(PASSWORD_HASHERS=('django.contrib.auth.hashers.SHA1PasswordHasher',)) diff --git a/tests/regressiontests/generic_views/base.py b/tests/regressiontests/generic_views/base.py index fd2abb0aa7..7f6f261cb5 100644 --- a/tests/regressiontests/generic_views/base.py +++ b/tests/regressiontests/generic_views/base.py @@ -329,66 +329,66 @@ class RedirectViewTest(unittest.TestCase): "Default is a permanent redirect" response = RedirectView.as_view(url='/bar/')(self.rf.get('/foo/')) self.assertEqual(response.status_code, 301) - self.assertEqual(response['Location'], '/bar/') + self.assertEqual(response.url, '/bar/') def test_temporary_redirect(self): "Permanent redirects are an option" response = RedirectView.as_view(url='/bar/', permanent=False)(self.rf.get('/foo/')) self.assertEqual(response.status_code, 302) - self.assertEqual(response['Location'], '/bar/') + self.assertEqual(response.url, '/bar/') def test_include_args(self): "GET arguments can be included in the redirected URL" response = RedirectView.as_view(url='/bar/')(self.rf.get('/foo/')) self.assertEqual(response.status_code, 301) - self.assertEqual(response['Location'], '/bar/') + self.assertEqual(response.url, '/bar/') response = RedirectView.as_view(url='/bar/', query_string=True)(self.rf.get('/foo/?pork=spam')) self.assertEqual(response.status_code, 301) - self.assertEqual(response['Location'], '/bar/?pork=spam') + self.assertEqual(response.url, '/bar/?pork=spam') def test_include_urlencoded_args(self): "GET arguments can be URL-encoded when included in the redirected URL" response = RedirectView.as_view(url='/bar/', query_string=True)( self.rf.get('/foo/?unicode=%E2%9C%93')) self.assertEqual(response.status_code, 301) - self.assertEqual(response['Location'], '/bar/?unicode=%E2%9C%93') + self.assertEqual(response.url, '/bar/?unicode=%E2%9C%93') def test_parameter_substitution(self): "Redirection URLs can be parameterized" response = RedirectView.as_view(url='/bar/%(object_id)d/')(self.rf.get('/foo/42/'), object_id=42) self.assertEqual(response.status_code, 301) - self.assertEqual(response['Location'], '/bar/42/') + self.assertEqual(response.url, '/bar/42/') def test_redirect_POST(self): "Default is a permanent redirect" response = RedirectView.as_view(url='/bar/')(self.rf.post('/foo/')) self.assertEqual(response.status_code, 301) - self.assertEqual(response['Location'], '/bar/') + self.assertEqual(response.url, '/bar/') def test_redirect_HEAD(self): "Default is a permanent redirect" response = RedirectView.as_view(url='/bar/')(self.rf.head('/foo/')) self.assertEqual(response.status_code, 301) - self.assertEqual(response['Location'], '/bar/') + self.assertEqual(response.url, '/bar/') def test_redirect_OPTIONS(self): "Default is a permanent redirect" response = RedirectView.as_view(url='/bar/')(self.rf.options('/foo/')) self.assertEqual(response.status_code, 301) - self.assertEqual(response['Location'], '/bar/') + self.assertEqual(response.url, '/bar/') def test_redirect_PUT(self): "Default is a permanent redirect" response = RedirectView.as_view(url='/bar/')(self.rf.put('/foo/')) self.assertEqual(response.status_code, 301) - self.assertEqual(response['Location'], '/bar/') + self.assertEqual(response.url, '/bar/') def test_redirect_DELETE(self): "Default is a permanent redirect" response = RedirectView.as_view(url='/bar/')(self.rf.delete('/foo/')) self.assertEqual(response.status_code, 301) - self.assertEqual(response['Location'], '/bar/') + self.assertEqual(response.url, '/bar/') def test_redirect_when_meta_contains_no_query_string(self): "regression for #16705" diff --git a/tests/regressiontests/httpwrappers/tests.py b/tests/regressiontests/httpwrappers/tests.py index c76d8eafe3..2d3240915e 100644 --- a/tests/regressiontests/httpwrappers/tests.py +++ b/tests/regressiontests/httpwrappers/tests.py @@ -410,6 +410,8 @@ class HttpResponseSubclassesTests(TestCase): content='The resource has temporarily moved', content_type='text/html') self.assertContains(response, 'The resource has temporarily moved', status_code=302) + # Test that url attribute is right + self.assertEqual(response.url, response['Location']) def test_not_modified(self): response = HttpResponseNotModified() diff --git a/tests/regressiontests/middleware/tests.py b/tests/regressiontests/middleware/tests.py index 6c436415ab..73a6279e2c 100644 --- a/tests/regressiontests/middleware/tests.py +++ b/tests/regressiontests/middleware/tests.py @@ -69,7 +69,7 @@ class CommonMiddlewareTest(TestCase): request = self._get_request('slash') r = CommonMiddleware().process_request(request) self.assertEqual(r.status_code, 301) - self.assertEqual(r['Location'], 'http://testserver/middleware/slash/') + self.assertEqual(r.url, 'http://testserver/middleware/slash/') @override_settings(APPEND_SLASH=True, DEBUG=True) def test_append_slash_no_redirect_on_POST_in_DEBUG(self): @@ -101,7 +101,7 @@ class CommonMiddlewareTest(TestCase): r = CommonMiddleware().process_request(request) self.assertEqual(r.status_code, 301) self.assertEqual( - r['Location'], + r.url, 'http://testserver/middleware/needsquoting%23/') @override_settings(APPEND_SLASH=False, PREPEND_WWW=True) @@ -110,7 +110,7 @@ class CommonMiddlewareTest(TestCase): r = CommonMiddleware().process_request(request) self.assertEqual(r.status_code, 301) self.assertEqual( - r['Location'], + r.url, 'http://www.testserver/middleware/path/') @override_settings(APPEND_SLASH=True, PREPEND_WWW=True) @@ -118,7 +118,7 @@ class CommonMiddlewareTest(TestCase): request = self._get_request('slash/') r = CommonMiddleware().process_request(request) self.assertEqual(r.status_code, 301) - self.assertEqual(r['Location'], + self.assertEqual(r.url, 'http://www.testserver/middleware/slash/') @override_settings(APPEND_SLASH=True, PREPEND_WWW=True) @@ -126,7 +126,7 @@ class CommonMiddlewareTest(TestCase): request = self._get_request('slash') r = CommonMiddleware().process_request(request) self.assertEqual(r.status_code, 301) - self.assertEqual(r['Location'], + self.assertEqual(r.url, 'http://www.testserver/middleware/slash/') @@ -171,7 +171,7 @@ class CommonMiddlewareTest(TestCase): self.assertFalse(r is None, "CommonMiddlware failed to return APPEND_SLASH redirect using request.urlconf") self.assertEqual(r.status_code, 301) - self.assertEqual(r['Location'], 'http://testserver/middleware/customurlconf/slash/') + self.assertEqual(r.url, 'http://testserver/middleware/customurlconf/slash/') @override_settings(APPEND_SLASH=True, DEBUG=True) def test_append_slash_no_redirect_on_POST_in_DEBUG_custom_urlconf(self): @@ -208,7 +208,7 @@ class CommonMiddlewareTest(TestCase): "CommonMiddlware failed to return APPEND_SLASH redirect using request.urlconf") self.assertEqual(r.status_code, 301) self.assertEqual( - r['Location'], + r.url, 'http://testserver/middleware/customurlconf/needsquoting%23/') @override_settings(APPEND_SLASH=False, PREPEND_WWW=True) @@ -218,7 +218,7 @@ class CommonMiddlewareTest(TestCase): r = CommonMiddleware().process_request(request) self.assertEqual(r.status_code, 301) self.assertEqual( - r['Location'], + r.url, 'http://www.testserver/middleware/customurlconf/path/') @override_settings(APPEND_SLASH=True, PREPEND_WWW=True) @@ -227,7 +227,7 @@ class CommonMiddlewareTest(TestCase): request.urlconf = 'regressiontests.middleware.extra_urls' r = CommonMiddleware().process_request(request) self.assertEqual(r.status_code, 301) - self.assertEqual(r['Location'], + self.assertEqual(r.url, 'http://www.testserver/middleware/customurlconf/slash/') @override_settings(APPEND_SLASH=True, PREPEND_WWW=True) @@ -236,7 +236,7 @@ class CommonMiddlewareTest(TestCase): request.urlconf = 'regressiontests.middleware.extra_urls' r = CommonMiddleware().process_request(request) self.assertEqual(r.status_code, 301) - self.assertEqual(r['Location'], + self.assertEqual(r.url, 'http://www.testserver/middleware/customurlconf/slash/') # Legacy tests for the 404 error reporting via email (to be removed in 1.8) diff --git a/tests/regressiontests/urlpatterns_reverse/tests.py b/tests/regressiontests/urlpatterns_reverse/tests.py index eb3afe8201..9777710daf 100644 --- a/tests/regressiontests/urlpatterns_reverse/tests.py +++ b/tests/regressiontests/urlpatterns_reverse/tests.py @@ -270,31 +270,31 @@ class ReverseShortcutTests(TestCase): res = redirect(FakeObj()) self.assertTrue(isinstance(res, HttpResponseRedirect)) - self.assertEqual(res['Location'], '/hi-there/') + self.assertEqual(res.url, '/hi-there/') res = redirect(FakeObj(), permanent=True) self.assertTrue(isinstance(res, HttpResponsePermanentRedirect)) - self.assertEqual(res['Location'], '/hi-there/') + self.assertEqual(res.url, '/hi-there/') def test_redirect_to_view_name(self): res = redirect('hardcoded2') - self.assertEqual(res['Location'], '/hardcoded/doc.pdf') + self.assertEqual(res.url, '/hardcoded/doc.pdf') res = redirect('places', 1) - self.assertEqual(res['Location'], '/places/1/') + self.assertEqual(res.url, '/places/1/') res = redirect('headlines', year='2008', month='02', day='17') - self.assertEqual(res['Location'], '/headlines/2008.02.17/') + self.assertEqual(res.url, '/headlines/2008.02.17/') self.assertRaises(NoReverseMatch, redirect, 'not-a-view') def test_redirect_to_url(self): res = redirect('/foo/') - self.assertEqual(res['Location'], '/foo/') + self.assertEqual(res.url, '/foo/') res = redirect('http://example.com/') - self.assertEqual(res['Location'], 'http://example.com/') + self.assertEqual(res.url, 'http://example.com/') def test_redirect_view_object(self): from .views import absolute_kwargs_view res = redirect(absolute_kwargs_view) - self.assertEqual(res['Location'], '/absolute_arg_view/') + self.assertEqual(res.url, '/absolute_arg_view/') self.assertRaises(NoReverseMatch, redirect, absolute_kwargs_view, wrong_argument=None) diff --git a/tests/regressiontests/views/tests/i18n.py b/tests/regressiontests/views/tests/i18n.py index b1dc8808a1..0a091ed1b7 100644 --- a/tests/regressiontests/views/tests/i18n.py +++ b/tests/regressiontests/views/tests/i18n.py @@ -44,7 +44,7 @@ class I18NTests(TestCase): lang_code, lang_name = settings.LANGUAGES[0] post_data = dict(language=lang_code, next='//unsafe/redirection/') response = self.client.post('/views/i18n/setlang/', data=post_data) - self.assertEqual(response['Location'], 'http://testserver/') + self.assertEqual(response.url, 'http://testserver/') self.assertEqual(self.client.session['django_language'], lang_code) def test_setlang_reversal(self): -- cgit v1.3 From 668d0b8d499c45ef7d449b5e56f0adc97660d417 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Thu, 14 Feb 2013 11:22:33 +0100 Subject: Fixed #19823 -- Fixed memcached code example in cache docs --- docs/topics/cache.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/topics/cache.txt b/docs/topics/cache.txt index 208fa3a5e2..e345b89dcd 100644 --- a/docs/topics/cache.txt +++ b/docs/topics/cache.txt @@ -137,7 +137,7 @@ on the IP addresses 172.19.26.240 (port 11211), 172.19.26.242 (port 11212), and 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION': [ '172.19.26.240:11211', - '172.19.26.242:11211', + '172.19.26.242:11212', '172.19.26.244:11213', ] } -- cgit v1.3 From f5e4a699ca0f58818acbdf9081164060cee910fa Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Fri, 15 Feb 2013 09:00:55 +0800 Subject: Fixed #19822 -- Added validation for uniqueness on USERNAME_FIELD on custom User models. Thanks to Claude Peroz for the draft patch. --- django/contrib/auth/tests/custom_user.py | 22 ++++++++++++++++++++++ django/contrib/auth/tests/management.py | 18 ++++++++++++++++++ django/core/management/validation.py | 6 +++++- docs/topics/auth/customizing.txt | 5 ++++- 4 files changed, 49 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/django/contrib/auth/tests/custom_user.py b/django/contrib/auth/tests/custom_user.py index 8cc57d4caf..0d324f0953 100644 --- a/django/contrib/auth/tests/custom_user.py +++ b/django/contrib/auth/tests/custom_user.py @@ -144,3 +144,25 @@ class IsActiveTestUser1(AbstractBaseUser): app_label = 'auth' # the is_active attr is provided by AbstractBaseUser + + +class CustomUserNonUniqueUsername(AbstractBaseUser): + "A user with a non-unique username" + username = models.CharField(max_length=30) + + USERNAME_FIELD = 'username' + + class Meta: + app_label = 'auth' + + +class CustomUserBadRequiredFields(AbstractBaseUser): + "A user with a non-unique username" + username = models.CharField(max_length=30, unique=True) + date_of_birth = models.DateField() + + USERNAME_FIELD = 'username' + REQUIRED_FIELDS = ['username', 'date_of_birth'] + + class Meta: + app_label = 'auth' diff --git a/django/contrib/auth/tests/management.py b/django/contrib/auth/tests/management.py index 42f14d6d5c..687a5c31cb 100644 --- a/django/contrib/auth/tests/management.py +++ b/django/contrib/auth/tests/management.py @@ -9,6 +9,8 @@ from django.contrib.auth.tests import CustomUser from django.contrib.auth.tests.utils import skipIfCustomUser from django.core.management import call_command from django.core.management.base import CommandError +from django.core.management.validation import get_validation_errors +from django.db.models.loading import get_app from django.test import TestCase from django.test.utils import override_settings from django.utils import six @@ -170,6 +172,22 @@ class CreatesuperuserManagementCommandTestCase(TestCase): self.assertEqual(CustomUser._default_manager.count(), 0) +class CustomUserModelValidationTestCase(TestCase): + @override_settings(AUTH_USER_MODEL='auth.CustomUserBadRequiredFields') + def test_username_not_in_required_fields(self): + "USERNAME_FIELD should not appear in REQUIRED_FIELDS." + new_io = StringIO() + get_validation_errors(new_io, get_app('auth')) + self.assertIn("The field named as the USERNAME_FIELD should not be included in REQUIRED_FIELDS on a swappable User model.", new_io.getvalue()) + + @override_settings(AUTH_USER_MODEL='auth.CustomUserNonUniqueUsername') + def test_username_non_unique(self): + "A non-unique USERNAME_FIELD should raise a model validation error." + new_io = StringIO() + get_validation_errors(new_io, get_app('auth')) + self.assertIn("The USERNAME_FIELD must be unique. Add unique=True to the field parameters.", new_io.getvalue()) + + class PermissionDuplicationTestCase(TestCase): def setUp(self): diff --git a/django/core/management/validation.py b/django/core/management/validation.py index f49a3c2232..587d3a0ad7 100644 --- a/django/core/management/validation.py +++ b/django/core/management/validation.py @@ -49,12 +49,16 @@ def get_validation_errors(outfile, app=None): # No need to perform any other validation checks on a swapped model. continue - # This is the current User model. Check known validation problems with User models + # If this is the current User model, check known validation problems with User models if settings.AUTH_USER_MODEL == '%s.%s' % (opts.app_label, opts.object_name): # Check that the USERNAME FIELD isn't included in REQUIRED_FIELDS. if cls.USERNAME_FIELD in cls.REQUIRED_FIELDS: e.add(opts, 'The field named as the USERNAME_FIELD should not be included in REQUIRED_FIELDS on a swappable User model.') + # Check that the username field is unique + if not opts.get_field(cls.USERNAME_FIELD).unique: + e.add(opts, 'The USERNAME_FIELD must be unique. Add unique=True to the field parameters.') + # Model isn't swapped; do field-specific validation. for f in opts.local_fields: if f.name == 'id' and not f.primary_key and opts.pk.name == 'id': diff --git a/docs/topics/auth/customizing.txt b/docs/topics/auth/customizing.txt index 7f1eff6624..d1ce6eb7dc 100644 --- a/docs/topics/auth/customizing.txt +++ b/docs/topics/auth/customizing.txt @@ -492,7 +492,10 @@ password resets. You must then provide some key implementation details: A string describing the name of the field on the User model that is used as the unique identifier. This will usually be a username of some kind, but it can also be an email address, or any other unique - identifier. In the following example, the field `identifier` is used + identifier. The field *must* be unique (i.e., have ``unique=True`` + set in it's definition). + + In the following example, the field `identifier` is used as the identifying field:: class MyUser(AbstractBaseUser): -- cgit v1.3 From 91c26eadc9b4efa5399ec0f6c84b56a3f8eb84f4 Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Sat, 16 Feb 2013 10:21:05 +0800 Subject: Refs #14881 -- Document that User models need to have an integer primary key. Thanks to Kaloian Minkov for the reminder about this undocumented requirement. --- docs/topics/auth/customizing.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/topics/auth/customizing.txt b/docs/topics/auth/customizing.txt index d1ce6eb7dc..9c31445455 100644 --- a/docs/topics/auth/customizing.txt +++ b/docs/topics/auth/customizing.txt @@ -466,11 +466,13 @@ Specifying a custom User model Django expects your custom User model to meet some minimum requirements. -1. Your model must have a single unique field that can be used for +1. Your model must have an integer primary key. + +2. Your model must have a single unique field that can be used for identification purposes. This can be a username, an email address, or any other unique attribute. -2. Your model must provide a way to address the user in a "short" and +3. Your model must provide a way to address the user in a "short" and "long" form. The most common interpretation of this would be to use the user's given name as the "short" identifier, and the user's full name as the "long" identifier. However, there are no constraints on -- cgit v1.3 From e74e207cce54802f897adcb42149440ee154821e Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sun, 10 Feb 2013 16:15:49 +0100 Subject: Fixed #17260 -- Added time zone aware aggregation and lookups. Thanks Carl Meyer for the review. Squashed commit of the following: commit 4f290bdb60b7d8534abf4ca901bd0844612dcbda Author: Aymeric Augustin Date: Wed Feb 13 21:21:30 2013 +0100 Used '0:00' instead of 'UTC' which doesn't always exist in Oracle. Thanks Ian Kelly for the suggestion. commit 01b6366f3ce67d57a58ca8f25e5be77911748638 Author: Aymeric Augustin Date: Wed Feb 13 13:38:43 2013 +0100 Made tzname a parameter of datetime_extract/trunc_sql. This is required to work around a bug in Oracle. commit 924a144ef8a80ba4daeeafbe9efaa826566e9d02 Author: Aymeric Augustin Date: Wed Feb 13 14:47:44 2013 +0100 Added support for parameters in SELECT clauses. commit b4351d2890cd1090d3ff2d203fe148937324c935 Author: Aymeric Augustin Date: Mon Feb 11 22:30:22 2013 +0100 Documented backwards incompatibilities in the two previous commits. commit 91ef84713c81bd455f559dacf790e586d08cacb9 Author: Aymeric Augustin Date: Mon Feb 11 09:42:31 2013 +0100 Used QuerySet.datetimes for the admin's date_hierarchy. commit 0d0de288a5210fa106cd4350961eb2006535cc5c Author: Aymeric Augustin Date: Mon Feb 11 09:29:38 2013 +0100 Used QuerySet.datetimes in date-based generic views. commit 9c0859ff7c0b00734afe7fc15609d43d83215072 Author: Aymeric Augustin Date: Sun Feb 10 21:43:25 2013 +0100 Implemented QuerySet.datetimes on Oracle. commit 68ab511a4ffbd2b811bf5da174d47e4dd90f28fc Author: Aymeric Augustin Date: Sun Feb 10 21:43:14 2013 +0100 Implemented QuerySet.datetimes on MySQL. commit 22d52681d347a8cdf568dc31ed032cbc61d049ef Author: Aymeric Augustin Date: Sun Feb 10 21:42:29 2013 +0100 Implemented QuerySet.datetimes on SQLite. commit f6800fd04c93722b45f9236976389e0b2fe436f5 Author: Aymeric Augustin Date: Sun Feb 10 21:43:03 2013 +0100 Implemented QuerySet.datetimes on PostgreSQL. commit 0c829c23f4cf4d6804cadcc93032dd4c26b8c65e Author: Aymeric Augustin Date: Sun Feb 10 21:41:08 2013 +0100 Added datetime-handling infrastructure in the ORM layers. commit 104d82a7778cf3f0f5d03dfa53709c26df45daad Author: Aymeric Augustin Date: Mon Feb 11 10:05:55 2013 +0100 Updated null_queries tests to avoid clashing with the __second lookup. commit c01bbb32358201b3ac8cb4291ef87b7612a2b8e6 Author: Aymeric Augustin Date: Sun Feb 10 23:07:41 2013 +0100 Updated tests of .dates(). Replaced .dates() by .datetimes() for DateTimeFields. Replaced dates with datetimes in the expected output for DateFields. commit 50fb7a52462fecf0127b38e7f3df322aeb287c43 Author: Aymeric Augustin Date: Sun Feb 10 21:40:09 2013 +0100 Updated and added tests for QuerySet.datetimes. commit a8451a5004c437190e264667b1e6fb8acc3c1eeb Author: Aymeric Augustin Date: Sun Feb 10 22:34:46 2013 +0100 Documented the new time lookups and updated the date lookups. commit 29413eab2bd1d5e004598900c0dadc0521bbf4d3 Author: Aymeric Augustin Date: Sun Feb 10 16:15:49 2013 +0100 Documented QuerySet.datetimes and updated QuerySet.dates. --- django/contrib/admin/templatetags/admin_list.py | 14 +- django/contrib/gis/db/backends/mysql/compiler.py | 3 + django/contrib/gis/db/backends/mysql/operations.py | 7 +- django/contrib/gis/db/backends/oracle/compiler.py | 3 + .../contrib/gis/db/backends/oracle/operations.py | 4 +- .../contrib/gis/db/backends/postgis/operations.py | 2 +- .../gis/db/backends/spatialite/operations.py | 2 +- django/contrib/gis/db/backends/util.py | 2 +- django/contrib/gis/db/models/sql/aggregates.py | 12 +- django/contrib/gis/db/models/sql/compiler.py | 63 +++++++-- django/contrib/gis/db/models/sql/where.py | 5 +- django/contrib/gis/tests/geoapp/test_regress.py | 2 +- django/db/backends/__init__.py | 56 ++++++-- django/db/backends/mysql/base.py | 47 +++++- django/db/backends/mysql/compiler.py | 3 + django/db/backends/oracle/base.py | 62 ++++++-- django/db/backends/oracle/compiler.py | 3 + .../db/backends/postgresql_psycopg2/operations.py | 25 ++++ django/db/backends/sqlite3/base.py | 80 +++++++++-- django/db/models/fields/__init__.py | 23 +-- django/db/models/manager.py | 3 + django/db/models/query.py | 51 ++++++- django/db/models/query_utils.py | 2 +- django/db/models/sql/aggregates.py | 11 +- django/db/models/sql/compiler.py | 99 +++++++++---- django/db/models/sql/constants.py | 3 +- django/db/models/sql/datastructures.py | 23 ++- django/db/models/sql/expressions.py | 4 +- django/db/models/sql/subqueries.py | 48 +++++-- django/db/models/sql/where.py | 34 +++-- django/views/generic/dates.py | 9 +- docs/ref/models/querysets.txt | 157 ++++++++++++++++++--- docs/releases/1.6.txt | 35 +++++ tests/modeltests/aggregation/tests.py | 8 +- tests/modeltests/basic/tests.py | 18 +-- tests/modeltests/many_to_one/tests.py | 56 ++++---- tests/modeltests/reserved_names/tests.py | 4 +- tests/modeltests/timezones/tests.py | 128 +++++++++++++---- tests/regressiontests/aggregation_regress/tests.py | 4 +- tests/regressiontests/backends/tests.py | 6 +- tests/regressiontests/dates/models.py | 2 + tests/regressiontests/dates/tests.py | 38 ++--- tests/regressiontests/datetimes/__init__.py | 0 tests/regressiontests/datetimes/models.py | 28 ++++ tests/regressiontests/datetimes/tests.py | 83 +++++++++++ tests/regressiontests/extra_regress/tests.py | 5 +- tests/regressiontests/generic_views/dates.py | 15 +- .../model_inheritance_regress/tests.py | 4 +- tests/regressiontests/null_queries/models.py | 3 +- tests/regressiontests/null_queries/tests.py | 6 +- tests/regressiontests/queries/tests.py | 24 ++-- 51 files changed, 1035 insertions(+), 294 deletions(-) create mode 100644 tests/regressiontests/datetimes/__init__.py create mode 100644 tests/regressiontests/datetimes/models.py create mode 100644 tests/regressiontests/datetimes/tests.py (limited to 'docs') diff --git a/django/contrib/admin/templatetags/admin_list.py b/django/contrib/admin/templatetags/admin_list.py index ce435dea81..c5bcad342b 100644 --- a/django/contrib/admin/templatetags/admin_list.py +++ b/django/contrib/admin/templatetags/admin_list.py @@ -292,6 +292,8 @@ def date_hierarchy(cl): """ if cl.date_hierarchy: field_name = cl.date_hierarchy + field = cl.opts.get_field_by_name(field_name)[0] + dates_or_datetimes = 'datetimes' if isinstance(field, models.DateTimeField) else 'dates' year_field = '%s__year' % field_name month_field = '%s__month' % field_name day_field = '%s__day' % field_name @@ -323,7 +325,8 @@ def date_hierarchy(cl): 'choices': [{'title': capfirst(formats.date_format(day, 'MONTH_DAY_FORMAT'))}] } elif year_lookup and month_lookup: - days = cl.query_set.filter(**{year_field: year_lookup, month_field: month_lookup}).dates(field_name, 'day') + days = cl.query_set.filter(**{year_field: year_lookup, month_field: month_lookup}) + days = getattr(days, dates_or_datetimes)(field_name, 'day') return { 'show': True, 'back': { @@ -336,11 +339,12 @@ def date_hierarchy(cl): } for day in days] } elif year_lookup: - months = cl.query_set.filter(**{year_field: year_lookup}).dates(field_name, 'month') + months = cl.query_set.filter(**{year_field: year_lookup}) + months = getattr(months, dates_or_datetimes)(field_name, 'month') return { - 'show' : True, + 'show': True, 'back': { - 'link' : link({}), + 'link': link({}), 'title': _('All dates') }, 'choices': [{ @@ -349,7 +353,7 @@ def date_hierarchy(cl): } for month in months] } else: - years = cl.query_set.dates(field_name, 'year') + years = getattr(cl.query_set, dates_or_datetimes)(field_name, 'year') return { 'show': True, 'choices': [{ diff --git a/django/contrib/gis/db/backends/mysql/compiler.py b/django/contrib/gis/db/backends/mysql/compiler.py index 7079db9f6a..f4654eff84 100644 --- a/django/contrib/gis/db/backends/mysql/compiler.py +++ b/django/contrib/gis/db/backends/mysql/compiler.py @@ -30,3 +30,6 @@ class SQLAggregateCompiler(compiler.SQLAggregateCompiler, GeoSQLCompiler): class SQLDateCompiler(compiler.SQLDateCompiler, GeoSQLCompiler): pass + +class SQLDateTimeCompiler(compiler.SQLDateTimeCompiler, GeoSQLCompiler): + pass diff --git a/django/contrib/gis/db/backends/mysql/operations.py b/django/contrib/gis/db/backends/mysql/operations.py index fa20ca07f4..14402ec0a3 100644 --- a/django/contrib/gis/db/backends/mysql/operations.py +++ b/django/contrib/gis/db/backends/mysql/operations.py @@ -56,12 +56,13 @@ class MySQLOperations(DatabaseOperations, BaseSpatialOperations): lookup_info = self.geometry_functions.get(lookup_type, False) if lookup_info: - return "%s(%s, %s)" % (lookup_info, geo_col, - self.get_geom_placeholder(value, field.srid)) + sql = "%s(%s, %s)" % (lookup_info, geo_col, + self.get_geom_placeholder(value, field.srid)) + return sql, [] # TODO: Is this really necessary? MySQL can't handle NULL geometries # in its spatial indexes anyways. if lookup_type == 'isnull': - return "%s IS %sNULL" % (geo_col, (not value and 'NOT ' or '')) + return "%s IS %sNULL" % (geo_col, ('' if value else 'NOT ')), [] raise TypeError("Got invalid lookup_type: %s" % repr(lookup_type)) diff --git a/django/contrib/gis/db/backends/oracle/compiler.py b/django/contrib/gis/db/backends/oracle/compiler.py index 98da0163ba..d00af7fa71 100644 --- a/django/contrib/gis/db/backends/oracle/compiler.py +++ b/django/contrib/gis/db/backends/oracle/compiler.py @@ -20,3 +20,6 @@ class SQLAggregateCompiler(compiler.SQLAggregateCompiler, GeoSQLCompiler): class SQLDateCompiler(compiler.SQLDateCompiler, GeoSQLCompiler): pass + +class SQLDateTimeCompiler(compiler.SQLDateTimeCompiler, GeoSQLCompiler): + pass diff --git a/django/contrib/gis/db/backends/oracle/operations.py b/django/contrib/gis/db/backends/oracle/operations.py index 4e42b4cf00..18697ac8c0 100644 --- a/django/contrib/gis/db/backends/oracle/operations.py +++ b/django/contrib/gis/db/backends/oracle/operations.py @@ -262,7 +262,7 @@ class OracleOperations(DatabaseOperations, BaseSpatialOperations): return lookup_info.as_sql(geo_col, self.get_geom_placeholder(field, value)) elif lookup_type == 'isnull': # Handling 'isnull' lookup type - return "%s IS %sNULL" % (geo_col, (not value and 'NOT ' or '')) + return "%s IS %sNULL" % (geo_col, ('' if value else 'NOT ')), [] raise TypeError("Got invalid lookup_type: %s" % repr(lookup_type)) @@ -288,7 +288,7 @@ class OracleOperations(DatabaseOperations, BaseSpatialOperations): def spatial_ref_sys(self): from django.contrib.gis.db.backends.oracle.models import SpatialRefSys return SpatialRefSys - + def modify_insert_params(self, placeholders, params): """Drop out insert parameters for NULL placeholder. Needed for Oracle Spatial backend due to #10888 diff --git a/django/contrib/gis/db/backends/postgis/operations.py b/django/contrib/gis/db/backends/postgis/operations.py index aa23b974db..fe90343411 100644 --- a/django/contrib/gis/db/backends/postgis/operations.py +++ b/django/contrib/gis/db/backends/postgis/operations.py @@ -560,7 +560,7 @@ class PostGISOperations(DatabaseOperations, BaseSpatialOperations): elif lookup_type == 'isnull': # Handling 'isnull' lookup type - return "%s IS %sNULL" % (geo_col, (not value and 'NOT ' or '')) + return "%s IS %sNULL" % (geo_col, ('' if value else 'NOT ')), [] raise TypeError("Got invalid lookup_type: %s" % repr(lookup_type)) diff --git a/django/contrib/gis/db/backends/spatialite/operations.py b/django/contrib/gis/db/backends/spatialite/operations.py index 773ac0b57d..d2d75c1fff 100644 --- a/django/contrib/gis/db/backends/spatialite/operations.py +++ b/django/contrib/gis/db/backends/spatialite/operations.py @@ -358,7 +358,7 @@ class SpatiaLiteOperations(DatabaseOperations, BaseSpatialOperations): return op.as_sql(geo_col, self.get_geom_placeholder(field, geom)) elif lookup_type == 'isnull': # Handling 'isnull' lookup type - return "%s IS %sNULL" % (geo_col, (not value and 'NOT ' or '')) + return "%s IS %sNULL" % (geo_col, ('' if value else 'NOT ')), [] raise TypeError("Got invalid lookup_type: %s" % repr(lookup_type)) diff --git a/django/contrib/gis/db/backends/util.py b/django/contrib/gis/db/backends/util.py index 2fc9123d26..2612810659 100644 --- a/django/contrib/gis/db/backends/util.py +++ b/django/contrib/gis/db/backends/util.py @@ -16,7 +16,7 @@ class SpatialOperation(object): self.extra = kwargs def as_sql(self, geo_col, geometry='%s'): - return self.sql_template % self.params(geo_col, geometry) + return self.sql_template % self.params(geo_col, geometry), [] def params(self, geo_col, geometry): params = {'function' : self.function, diff --git a/django/contrib/gis/db/models/sql/aggregates.py b/django/contrib/gis/db/models/sql/aggregates.py index 9fcbb516d6..ae848c0894 100644 --- a/django/contrib/gis/db/models/sql/aggregates.py +++ b/django/contrib/gis/db/models/sql/aggregates.py @@ -22,13 +22,15 @@ class GeoAggregate(Aggregate): raise ValueError('Geospatial aggregates only allowed on geometry fields.') def as_sql(self, qn, connection): - "Return the aggregate, rendered as SQL." + "Return the aggregate, rendered as SQL with parameters." if connection.ops.oracle: self.extra['tolerance'] = self.tolerance + params = [] + if hasattr(self.col, 'as_sql'): - field_name = self.col.as_sql(qn, connection) + field_name, params = self.col.as_sql(qn, connection) elif isinstance(self.col, (list, tuple)): field_name = '.'.join([qn(c) for c in self.col]) else: @@ -36,13 +38,13 @@ class GeoAggregate(Aggregate): sql_template, sql_function = connection.ops.spatial_aggregate_sql(self) - params = { + substitutions = { 'function': sql_function, 'field': field_name } - params.update(self.extra) + substitutions.update(self.extra) - return sql_template % params + return sql_template % substitutions, params class Collect(GeoAggregate): pass diff --git a/django/contrib/gis/db/models/sql/compiler.py b/django/contrib/gis/db/models/sql/compiler.py index fc53d08ffd..b488f59362 100644 --- a/django/contrib/gis/db/models/sql/compiler.py +++ b/django/contrib/gis/db/models/sql/compiler.py @@ -1,14 +1,16 @@ +import datetime try: from itertools import zip_longest except ImportError: from itertools import izip_longest as zip_longest -from django.utils.six.moves import zip - -from django.db.backends.util import truncate_name, typecast_timestamp +from django.conf import settings +from django.db.backends.util import truncate_name, typecast_date, typecast_timestamp from django.db.models.sql import compiler from django.db.models.sql.constants import MULTI from django.utils import six +from django.utils.six.moves import zip +from django.utils import timezone SQLCompiler = compiler.SQLCompiler @@ -31,6 +33,7 @@ class GeoSQLCompiler(compiler.SQLCompiler): qn2 = self.connection.ops.quote_name result = ['(%s) AS %s' % (self.get_extra_select_format(alias) % col[0], qn2(alias)) for alias, col in six.iteritems(self.query.extra_select)] + params = [] aliases = set(self.query.extra_select.keys()) if with_aliases: col_aliases = aliases.copy() @@ -61,7 +64,9 @@ class GeoSQLCompiler(compiler.SQLCompiler): aliases.add(r) col_aliases.add(col[1]) else: - result.append(col.as_sql(qn, self.connection)) + col_sql, col_params = col.as_sql(qn, self.connection) + result.append(col_sql) + params.extend(col_params) if hasattr(col, 'alias'): aliases.add(col.alias) @@ -74,15 +79,13 @@ class GeoSQLCompiler(compiler.SQLCompiler): aliases.update(new_aliases) max_name_length = self.connection.ops.max_name_length() - result.extend([ - '%s%s' % ( - self.get_extra_select_format(alias) % aggregate.as_sql(qn, self.connection), - alias is not None - and ' AS %s' % qn(truncate_name(alias, max_name_length)) - or '' - ) - for alias, aggregate in self.query.aggregate_select.items() - ]) + for alias, aggregate in self.query.aggregate_select.items(): + agg_sql, agg_params = aggregate.as_sql(qn, self.connection) + if alias is None: + result.append(agg_sql) + else: + result.append('%s AS %s' % (agg_sql, qn(truncate_name(alias, max_name_length)))) + params.extend(agg_params) # This loop customized for GeoQuery. for (table, col), field in self.query.related_select_cols: @@ -98,7 +101,7 @@ class GeoSQLCompiler(compiler.SQLCompiler): col_aliases.add(col) self._select_aliases = aliases - return result + return result, params def get_default_columns(self, with_aliases=False, col_aliases=None, start_alias=None, opts=None, as_pairs=False, from_parent=None): @@ -280,5 +283,35 @@ class SQLDateCompiler(compiler.SQLDateCompiler, GeoSQLCompiler): if self.connection.ops.oracle: date = self.resolve_columns(row, fields)[offset] elif needs_string_cast: - date = typecast_timestamp(str(date)) + date = typecast_date(str(date)) + if isinstance(date, datetime.datetime): + date = date.date() yield date + +class SQLDateTimeCompiler(compiler.SQLDateTimeCompiler, GeoSQLCompiler): + """ + This is overridden for GeoDjango to properly cast date columns, since + `GeoQuery.resolve_columns` is used for spatial values. + See #14648, #16757. + """ + def results_iter(self): + if self.connection.ops.oracle: + from django.db.models.fields import DateTimeField + fields = [DateTimeField()] + else: + needs_string_cast = self.connection.features.needs_datetime_string_cast + + offset = len(self.query.extra_select) + for rows in self.execute_sql(MULTI): + for row in rows: + datetime = row[offset] + if self.connection.ops.oracle: + datetime = self.resolve_columns(row, fields)[offset] + elif needs_string_cast: + datetime = typecast_timestamp(str(datetime)) + # Datetimes are artifically returned in UTC on databases that + # don't support time zone. Restore the zone used in the query. + if settings.USE_TZ: + datetime = datetime.replace(tzinfo=None) + datetime = timezone.make_aware(datetime, self.query.tzinfo) + yield datetime diff --git a/django/contrib/gis/db/models/sql/where.py b/django/contrib/gis/db/models/sql/where.py index ec078aebed..6ef34db0a3 100644 --- a/django/contrib/gis/db/models/sql/where.py +++ b/django/contrib/gis/db/models/sql/where.py @@ -44,8 +44,9 @@ class GeoWhereNode(WhereNode): lvalue, lookup_type, value_annot, params_or_value = child if isinstance(lvalue, GeoConstraint): data, params = lvalue.process(lookup_type, params_or_value, connection) - spatial_sql = connection.ops.spatial_lookup_sql(data, lookup_type, params_or_value, lvalue.field, qn) - return spatial_sql, params + spatial_sql, spatial_params = connection.ops.spatial_lookup_sql( + data, lookup_type, params_or_value, lvalue.field, qn) + return spatial_sql, spatial_params + params else: return super(GeoWhereNode, self).make_atom(child, qn, connection) diff --git a/django/contrib/gis/tests/geoapp/test_regress.py b/django/contrib/gis/tests/geoapp/test_regress.py index 15e8555741..a27b2d40f6 100644 --- a/django/contrib/gis/tests/geoapp/test_regress.py +++ b/django/contrib/gis/tests/geoapp/test_regress.py @@ -49,7 +49,7 @@ class GeoRegressionTests(TestCase): founded = datetime(1857, 5, 23) mansfield = PennsylvaniaCity.objects.create(name='Mansfield', county='Tioga', point='POINT(-77.071445 41.823881)', founded=founded) - self.assertEqual(founded, PennsylvaniaCity.objects.dates('founded', 'day')[0]) + self.assertEqual(founded, PennsylvaniaCity.objects.datetimes('founded', 'day')[0]) self.assertEqual(founded, PennsylvaniaCity.objects.aggregate(Min('founded'))['founded__min']) def test_empty_count(self): diff --git a/django/db/backends/__init__.py b/django/db/backends/__init__.py index bbb5a5b294..03b62f6413 100644 --- a/django/db/backends/__init__.py +++ b/django/db/backends/__init__.py @@ -1,3 +1,5 @@ +import datetime + from django.db.utils import DatabaseError try: @@ -14,7 +16,7 @@ from django.db.transaction import TransactionManagementError from django.utils.functional import cached_property from django.utils.importlib import import_module from django.utils import six -from django.utils.timezone import is_aware +from django.utils import timezone class BaseDatabaseWrapper(object): @@ -397,6 +399,9 @@ class BaseDatabaseFeatures(object): # Can datetimes with timezones be used? supports_timezones = True + # Does the database have a copy of the zoneinfo database? + has_zoneinfo_database = True + # When performing a GROUP BY, is an ORDER BY NULL required # to remove any ordering? requires_explicit_null_ordering_when_grouping = False @@ -523,7 +528,7 @@ class BaseDatabaseOperations(object): def date_trunc_sql(self, lookup_type, field_name): """ Given a lookup_type of 'year', 'month' or 'day', returns the SQL that - truncates the given date field field_name to a DATE object with only + truncates the given date field field_name to a date object with only the given specificity. """ raise NotImplementedError() @@ -537,6 +542,23 @@ class BaseDatabaseOperations(object): """ return "%s" + def datetime_extract_sql(self, lookup_type, field_name, tzname): + """ + Given a lookup_type of 'year', 'month', 'day', 'hour', 'minute' or + 'second', returns the SQL that extracts a value from the given + datetime field field_name, and a tuple of parameters. + """ + raise NotImplementedError() + + def datetime_trunc_sql(self, lookup_type, field_name, tzname): + """ + Given a lookup_type of 'year', 'month', 'day', 'hour', 'minute' or + 'second', returns the SQL that truncates the given datetime field + field_name to a datetime object with only the given specificity, and + a tuple of parameters. + """ + raise NotImplementedError() + def deferrable_sql(self): """ Returns the SQL necessary to make a constraint "initially deferred" @@ -853,7 +875,7 @@ class BaseDatabaseOperations(object): """ if value is None: return None - if is_aware(value): + if timezone.is_aware(value): raise ValueError("Django does not support timezone-aware times.") return six.text_type(value) @@ -866,29 +888,33 @@ class BaseDatabaseOperations(object): return None return util.format_number(value, max_digits, decimal_places) - def year_lookup_bounds(self, value): + def year_lookup_bounds_for_date_field(self, value): """ Returns a two-elements list with the lower and upper bound to be used - with a BETWEEN operator to query a field value using a year lookup + with a BETWEEN operator to query a DateField value using a year + lookup. `value` is an int, containing the looked-up year. """ - first = '%s-01-01 00:00:00' - second = '%s-12-31 23:59:59.999999' - return [first % value, second % value] + first = datetime.date(value, 1, 1) + second = datetime.date(value, 12, 31) + return [first, second] - def year_lookup_bounds_for_date_field(self, value): + def year_lookup_bounds_for_datetime_field(self, value): """ Returns a two-elements list with the lower and upper bound to be used - with a BETWEEN operator to query a DateField value using a year lookup + with a BETWEEN operator to query a DateTimeField value using a year + lookup. `value` is an int, containing the looked-up year. - - By default, it just calls `self.year_lookup_bounds`. Some backends need - this hook because on their DB date fields can't be compared to values - which include a time part. """ - return self.year_lookup_bounds(value) + first = datetime.datetime(value, 1, 1) + second = datetime.datetime(value, 12, 31, 23, 59, 59, 999999) + if settings.USE_TZ: + tz = timezone.get_current_timezone() + first = timezone.make_aware(first, tz) + second = timezone.make_aware(second, tz) + return [first, second] def convert_values(self, value, field): """ diff --git a/django/db/backends/mysql/base.py b/django/db/backends/mysql/base.py index f24df93bf4..9de2a4d62d 100644 --- a/django/db/backends/mysql/base.py +++ b/django/db/backends/mysql/base.py @@ -30,6 +30,7 @@ if (version < (1, 2, 1) or (version[:3] == (1, 2, 1) and from MySQLdb.converters import conversions, Thing2Literal from MySQLdb.constants import FIELD_TYPE, CLIENT +from django.conf import settings from django.db import utils from django.db.backends import * from django.db.backends.signals import connection_created @@ -193,6 +194,12 @@ class DatabaseFeatures(BaseDatabaseFeatures): "Confirm support for introspected foreign keys" return self._mysql_storage_engine != 'MyISAM' + @cached_property + def has_zoneinfo_database(self): + cursor = self.connection.cursor() + cursor.execute("SELECT 1 FROM mysql.time_zone LIMIT 1") + return cursor.fetchone() is not None + class DatabaseOperations(BaseDatabaseOperations): compiler_module = "django.db.backends.mysql.compiler" @@ -218,6 +225,39 @@ class DatabaseOperations(BaseDatabaseOperations): sql = "CAST(DATE_FORMAT(%s, '%s') AS DATETIME)" % (field_name, format_str) return sql + def datetime_extract_sql(self, lookup_type, field_name, tzname): + if settings.USE_TZ: + field_name = "CONVERT_TZ(%s, 'UTC', %%s)" % field_name + params = [tzname] + else: + params = [] + # http://dev.mysql.com/doc/mysql/en/date-and-time-functions.html + if lookup_type == 'week_day': + # DAYOFWEEK() returns an integer, 1-7, Sunday=1. + # Note: WEEKDAY() returns 0-6, Monday=0. + sql = "DAYOFWEEK(%s)" % field_name + else: + sql = "EXTRACT(%s FROM %s)" % (lookup_type.upper(), field_name) + return sql, params + + def datetime_trunc_sql(self, lookup_type, field_name, tzname): + if settings.USE_TZ: + field_name = "CONVERT_TZ(%s, 'UTC', %%s)" % field_name + params = [tzname] + else: + params = [] + fields = ['year', 'month', 'day', 'hour', 'minute', 'second'] + format = ('%%Y-', '%%m', '-%%d', ' %%H:', '%%i', ':%%s') # Use double percents to escape. + format_def = ('0000-', '01', '-01', ' 00:', '00', ':00') + try: + i = fields.index(lookup_type) + 1 + except ValueError: + sql = field_name + else: + format_str = ''.join([f for f in format[:i]] + [f for f in format_def[i:]]) + sql = "CAST(DATE_FORMAT(%s, '%s') AS DATETIME)" % (field_name, format_str) + return sql, params + def date_interval_sql(self, sql, connector, timedelta): return "(%s %s INTERVAL '%d 0:0:%d:%d' DAY_MICROSECOND)" % (sql, connector, timedelta.days, timedelta.seconds, timedelta.microseconds) @@ -314,11 +354,10 @@ class DatabaseOperations(BaseDatabaseOperations): # MySQL doesn't support microseconds return six.text_type(value.replace(microsecond=0)) - def year_lookup_bounds(self, value): + def year_lookup_bounds_for_datetime_field(self, value): # Again, no microseconds - first = '%s-01-01 00:00:00' - second = '%s-12-31 23:59:59.99' - return [first % value, second % value] + first, second = super(DatabaseOperations, self).year_lookup_bounds_for_datetime_field(value) + return [first.replace(microsecond=0), second.replace(microsecond=0)] def max_name_length(self): return 64 diff --git a/django/db/backends/mysql/compiler.py b/django/db/backends/mysql/compiler.py index d8e9b3a202..f4c5563eb2 100644 --- a/django/db/backends/mysql/compiler.py +++ b/django/db/backends/mysql/compiler.py @@ -31,3 +31,6 @@ class SQLAggregateCompiler(compiler.SQLAggregateCompiler, SQLCompiler): class SQLDateCompiler(compiler.SQLDateCompiler, SQLCompiler): pass + +class SQLDateTimeCompiler(compiler.SQLDateTimeCompiler, SQLCompiler): + pass diff --git a/django/db/backends/oracle/base.py b/django/db/backends/oracle/base.py index e72a06472c..7bcfb46798 100644 --- a/django/db/backends/oracle/base.py +++ b/django/db/backends/oracle/base.py @@ -7,6 +7,7 @@ from __future__ import unicode_literals import datetime import decimal +import re import sys import warnings @@ -128,12 +129,12 @@ WHEN (new.%(col_name)s IS NULL) """ def date_extract_sql(self, lookup_type, field_name): - # http://download-east.oracle.com/docs/cd/B10501_01/server.920/a96540/functions42a.htm#1017163 if lookup_type == 'week_day': # TO_CHAR(field, 'D') returns an integer from 1-7, where 1=Sunday. return "TO_CHAR(%s, 'D')" % field_name else: - return "EXTRACT(%s FROM %s)" % (lookup_type, field_name) + # http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions050.htm + return "EXTRACT(%s FROM %s)" % (lookup_type.upper(), field_name) def date_interval_sql(self, sql, connector, timedelta): """ @@ -150,13 +151,58 @@ WHEN (new.%(col_name)s IS NULL) timedelta.microseconds, day_precision) def date_trunc_sql(self, lookup_type, field_name): - # Oracle uses TRUNC() for both dates and numbers. - # http://download-east.oracle.com/docs/cd/B10501_01/server.920/a96540/functions155a.htm#SQLRF06151 - if lookup_type == 'day': - sql = 'TRUNC(%s)' % field_name + # http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions230.htm#i1002084 + if lookup_type in ('year', 'month'): + return "TRUNC(%s, '%s')" % (field_name, lookup_type.upper()) else: - sql = "TRUNC(%s, '%s')" % (field_name, lookup_type) - return sql + return "TRUNC(%s)" % field_name + + # Oracle crashes with "ORA-03113: end-of-file on communication channel" + # if the time zone name is passed in parameter. Use interpolation instead. + # https://groups.google.com/forum/#!msg/django-developers/zwQju7hbG78/9l934yelwfsJ + # This regexp matches all time zone names from the zoneinfo database. + _tzname_re = re.compile(r'^[\w/:+-]+$') + + def _convert_field_to_tz(self, field_name, tzname): + if not self._tzname_re.match(tzname): + raise ValueError("Invalid time zone name: %s" % tzname) + # Convert from UTC to local time, returning TIMESTAMP WITH TIME ZONE. + result = "(FROM_TZ(%s, '0:00') AT TIME ZONE '%s')" % (field_name, tzname) + # Extracting from a TIMESTAMP WITH TIME ZONE ignore the time zone. + # Convert to a DATETIME, which is called DATE by Oracle. There's no + # built-in function to do that; the easiest is to go through a string. + result = "TO_CHAR(%s, 'YYYY-MM-DD HH24:MI:SS')" % result + result = "TO_DATE(%s, 'YYYY-MM-DD HH24:MI:SS')" % result + # Re-convert to a TIMESTAMP because EXTRACT only handles the date part + # on DATE values, even though they actually store the time part. + return "CAST(%s AS TIMESTAMP)" % result + + def datetime_extract_sql(self, lookup_type, field_name, tzname): + if settings.USE_TZ: + field_name = self._convert_field_to_tz(field_name, tzname) + if lookup_type == 'week_day': + # TO_CHAR(field, 'D') returns an integer from 1-7, where 1=Sunday. + sql = "TO_CHAR(%s, 'D')" % field_name + else: + # http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions050.htm + sql = "EXTRACT(%s FROM %s)" % (lookup_type.upper(), field_name) + return sql, [] + + def datetime_trunc_sql(self, lookup_type, field_name, tzname): + if settings.USE_TZ: + field_name = self._convert_field_to_tz(field_name, tzname) + # http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions230.htm#i1002084 + if lookup_type in ('year', 'month'): + sql = "TRUNC(%s, '%s')" % (field_name, lookup_type.upper()) + elif lookup_type == 'day': + sql = "TRUNC(%s)" % field_name + elif lookup_type == 'hour': + sql = "TRUNC(%s, 'HH24')" % field_name + elif lookup_type == 'minute': + sql = "TRUNC(%s, 'MI')" % field_name + else: + sql = field_name # Cast to DATE removes sub-second precision. + return sql, [] def convert_values(self, value, field): if isinstance(value, Database.LOB): diff --git a/django/db/backends/oracle/compiler.py b/django/db/backends/oracle/compiler.py index 24030cdffc..cbee27951c 100644 --- a/django/db/backends/oracle/compiler.py +++ b/django/db/backends/oracle/compiler.py @@ -71,3 +71,6 @@ class SQLAggregateCompiler(compiler.SQLAggregateCompiler, SQLCompiler): class SQLDateCompiler(compiler.SQLDateCompiler, SQLCompiler): pass + +class SQLDateTimeCompiler(compiler.SQLDateTimeCompiler, SQLCompiler): + pass diff --git a/django/db/backends/postgresql_psycopg2/operations.py b/django/db/backends/postgresql_psycopg2/operations.py index 40fe629110..8e87ed539f 100644 --- a/django/db/backends/postgresql_psycopg2/operations.py +++ b/django/db/backends/postgresql_psycopg2/operations.py @@ -1,5 +1,6 @@ from __future__ import unicode_literals +from django.conf import settings from django.db.backends import BaseDatabaseOperations @@ -36,6 +37,30 @@ class DatabaseOperations(BaseDatabaseOperations): # http://www.postgresql.org/docs/8.0/static/functions-datetime.html#FUNCTIONS-DATETIME-TRUNC return "DATE_TRUNC('%s', %s)" % (lookup_type, field_name) + def datetime_extract_sql(self, lookup_type, field_name, tzname): + if settings.USE_TZ: + field_name = "%s AT TIME ZONE %%s" % field_name + params = [tzname] + else: + params = [] + # http://www.postgresql.org/docs/8.0/static/functions-datetime.html#FUNCTIONS-DATETIME-EXTRACT + if lookup_type == 'week_day': + # For consistency across backends, we return Sunday=1, Saturday=7. + sql = "EXTRACT('dow' FROM %s) + 1" % field_name + else: + sql = "EXTRACT('%s' FROM %s)" % (lookup_type, field_name) + return sql, params + + def datetime_trunc_sql(self, lookup_type, field_name, tzname): + if settings.USE_TZ: + field_name = "%s AT TIME ZONE %%s" % field_name + params = [tzname] + else: + params = [] + # http://www.postgresql.org/docs/8.0/static/functions-datetime.html#FUNCTIONS-DATETIME-TRUNC + sql = "DATE_TRUNC('%s', %s)" % (lookup_type, field_name) + return sql, params + def deferrable_sql(self): return " DEFERRABLE INITIALLY DEFERRED" diff --git a/django/db/backends/sqlite3/base.py b/django/db/backends/sqlite3/base.py index f4fd1cc379..3b4ff4c5dd 100644 --- a/django/db/backends/sqlite3/base.py +++ b/django/db/backends/sqlite3/base.py @@ -35,6 +35,10 @@ except ImportError as exc: from django.core.exceptions import ImproperlyConfigured raise ImproperlyConfigured("Error loading either pysqlite2 or sqlite3 modules (tried in that order): %s" % exc) +try: + import pytz +except ImportError: + pytz = None DatabaseError = Database.DatabaseError IntegrityError = Database.IntegrityError @@ -117,6 +121,10 @@ class DatabaseFeatures(BaseDatabaseFeatures): cursor.execute('DROP TABLE STDDEV_TEST') return has_support + @cached_property + def has_zoneinfo_database(self): + return pytz is not None + class DatabaseOperations(BaseDatabaseOperations): def bulk_batch_size(self, fields, objs): """ @@ -142,10 +150,10 @@ class DatabaseOperations(BaseDatabaseOperations): def date_extract_sql(self, lookup_type, field_name): # sqlite doesn't support extract, so we fake it with the user-defined - # function django_extract that's registered in connect(). Note that + # function django_date_extract that's registered in connect(). Note that # single quotes are used because this is a string (and could otherwise # cause a collision with a field name). - return "django_extract('%s', %s)" % (lookup_type.lower(), field_name) + return "django_date_extract('%s', %s)" % (lookup_type.lower(), field_name) def date_interval_sql(self, sql, connector, timedelta): # It would be more straightforward if we could use the sqlite strftime @@ -154,7 +162,7 @@ class DatabaseOperations(BaseDatabaseOperations): # values differently. So instead we register our own function that # formats the datetime combined with the delta in a manner suitable # for comparisons. - return 'django_format_dtdelta(%s, "%s", "%d", "%d", "%d")' % (sql, + return 'django_format_dtdelta(%s, "%s", "%d", "%d", "%d")' % (sql, connector, timedelta.days, timedelta.seconds, timedelta.microseconds) def date_trunc_sql(self, lookup_type, field_name): @@ -164,6 +172,26 @@ class DatabaseOperations(BaseDatabaseOperations): # cause a collision with a field name). return "django_date_trunc('%s', %s)" % (lookup_type.lower(), field_name) + def datetime_extract_sql(self, lookup_type, field_name, tzname): + # Same comment as in date_extract_sql. + if settings.USE_TZ: + if pytz is None: + from django.core.exceptions import ImproperlyConfigured + raise ImproperlyConfigured("This query requires pytz, " + "but it isn't installed.") + return "django_datetime_extract('%s', %s, %%s)" % ( + lookup_type.lower(), field_name), [tzname] + + def datetime_trunc_sql(self, lookup_type, field_name, tzname): + # Same comment as in date_trunc_sql. + if settings.USE_TZ: + if pytz is None: + from django.core.exceptions import ImproperlyConfigured + raise ImproperlyConfigured("This query requires pytz, " + "but it isn't installed.") + return "django_datetime_trunc('%s', %s, %%s)" % ( + lookup_type.lower(), field_name), [tzname] + def drop_foreignkey_sql(self): return "" @@ -214,11 +242,6 @@ class DatabaseOperations(BaseDatabaseOperations): return six.text_type(value) - def year_lookup_bounds(self, value): - first = '%s-01-01' - second = '%s-12-31 23:59:59.999999' - return [first % value, second % value] - def convert_values(self, value, field): """SQLite returns floats when it should be returning decimals, and gets dates and datetimes wrong. @@ -310,9 +333,10 @@ class DatabaseWrapper(BaseDatabaseWrapper): def get_new_connection(self, conn_params): conn = Database.connect(**conn_params) - # Register extract, date_trunc, and regexp functions. - conn.create_function("django_extract", 2, _sqlite_extract) + conn.create_function("django_date_extract", 2, _sqlite_date_extract) conn.create_function("django_date_trunc", 2, _sqlite_date_trunc) + conn.create_function("django_datetime_extract", 3, _sqlite_datetime_extract) + conn.create_function("django_datetime_trunc", 3, _sqlite_datetime_trunc) conn.create_function("regexp", 2, _sqlite_regexp) conn.create_function("django_format_dtdelta", 5, _sqlite_format_dtdelta) return conn @@ -402,7 +426,7 @@ class SQLiteCursorWrapper(Database.Cursor): def convert_query(self, query): return FORMAT_QMARK_REGEX.sub('?', query).replace('%%','%') -def _sqlite_extract(lookup_type, dt): +def _sqlite_date_extract(lookup_type, dt): if dt is None: return None try: @@ -419,12 +443,46 @@ def _sqlite_date_trunc(lookup_type, dt): dt = util.typecast_timestamp(dt) except (ValueError, TypeError): return None + if lookup_type == 'year': + return "%i-01-01" % dt.year + elif lookup_type == 'month': + return "%i-%02i-01" % (dt.year, dt.month) + elif lookup_type == 'day': + return "%i-%02i-%02i" % (dt.year, dt.month, dt.day) + +def _sqlite_datetime_extract(lookup_type, dt, tzname): + if dt is None: + return None + try: + dt = util.typecast_timestamp(dt) + except (ValueError, TypeError): + return None + if tzname is not None: + dt = timezone.localtime(dt, pytz.timezone(tzname)) + if lookup_type == 'week_day': + return (dt.isoweekday() % 7) + 1 + else: + return getattr(dt, lookup_type) + +def _sqlite_datetime_trunc(lookup_type, dt, tzname): + try: + dt = util.typecast_timestamp(dt) + except (ValueError, TypeError): + return None + if tzname is not None: + dt = timezone.localtime(dt, pytz.timezone(tzname)) if lookup_type == 'year': return "%i-01-01 00:00:00" % dt.year elif lookup_type == 'month': return "%i-%02i-01 00:00:00" % (dt.year, dt.month) elif lookup_type == 'day': return "%i-%02i-%02i 00:00:00" % (dt.year, dt.month, dt.day) + elif lookup_type == 'hour': + return "%i-%02i-%02i %02i:00:00" % (dt.year, dt.month, dt.day, dt.hour) + elif lookup_type == 'minute': + return "%i-%02i-%02i %02i:%02i:00" % (dt.year, dt.month, dt.day, dt.hour, dt.minute) + elif lookup_type == 'second': + return "%i-%02i-%02i %02i:%02i:%02i" % (dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second) def _sqlite_format_dtdelta(dt, conn, days, secs, usecs): try: diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py index 94abfd784c..b70d235656 100644 --- a/django/db/models/fields/__init__.py +++ b/django/db/models/fields/__init__.py @@ -312,9 +312,10 @@ class Field(object): return value._prepare() if lookup_type in ( - 'regex', 'iregex', 'month', 'day', 'week_day', 'search', - 'contains', 'icontains', 'iexact', 'startswith', 'istartswith', - 'endswith', 'iendswith', 'isnull' + 'iexact', 'contains', 'icontains', + 'startswith', 'istartswith', 'endswith', 'iendswith', + 'month', 'day', 'week_day', 'hour', 'minute', 'second', + 'isnull', 'search', 'regex', 'iregex', ): return value elif lookup_type in ('exact', 'gt', 'gte', 'lt', 'lte'): @@ -350,8 +351,8 @@ class Field(object): sql, params = value._as_sql(connection=connection) return QueryWrapper(('(%s)' % sql), params) - if lookup_type in ('regex', 'iregex', 'month', 'day', 'week_day', - 'search'): + if lookup_type in ('month', 'day', 'week_day', 'hour', 'minute', + 'second', 'search', 'regex', 'iregex'): return [value] elif lookup_type in ('exact', 'gt', 'gte', 'lt', 'lte'): return [self.get_db_prep_value(value, connection=connection, @@ -370,10 +371,12 @@ class Field(object): elif lookup_type == 'isnull': return [] elif lookup_type == 'year': - if self.get_internal_type() == 'DateField': + if isinstance(self, DateTimeField): + return connection.ops.year_lookup_bounds_for_datetime_field(value) + elif isinstance(self, DateField): return connection.ops.year_lookup_bounds_for_date_field(value) else: - return connection.ops.year_lookup_bounds(value) + return [value] # this isn't supposed to happen def has_default(self): """ @@ -722,9 +725,9 @@ class DateField(Field): is_next=False)) def get_prep_lookup(self, lookup_type, value): - # For "__month", "__day", and "__week_day" lookups, convert the value - # to an int so the database backend always sees a consistent type. - if lookup_type in ('month', 'day', 'week_day'): + # For dates lookups, convert the value to an int + # so the database backend always sees a consistent type. + if lookup_type in ('month', 'day', 'week_day', 'hour', 'minute', 'second'): return int(value) return super(DateField, self).get_prep_lookup(lookup_type, value) diff --git a/django/db/models/manager.py b/django/db/models/manager.py index cee2131279..b1f2e10735 100644 --- a/django/db/models/manager.py +++ b/django/db/models/manager.py @@ -130,6 +130,9 @@ class Manager(object): def dates(self, *args, **kwargs): return self.get_query_set().dates(*args, **kwargs) + def datetimes(self, *args, **kwargs): + return self.get_query_set().datetimes(*args, **kwargs) + def distinct(self, *args, **kwargs): return self.get_query_set().distinct(*args, **kwargs) diff --git a/django/db/models/query.py b/django/db/models/query.py index 87bc6205a8..0f3a79a25d 100644 --- a/django/db/models/query.py +++ b/django/db/models/query.py @@ -7,6 +7,7 @@ import itertools import sys import warnings +from django.conf import settings from django.core import exceptions from django.db import connections, router, transaction, IntegrityError from django.db.models.constants import LOOKUP_SEP @@ -17,6 +18,7 @@ from django.db.models.deletion import Collector from django.db.models import sql from django.utils.functional import partition from django.utils import six +from django.utils import timezone # Used to control how many objects are worked with at once in some cases (e.g. # when deleting objects). @@ -629,16 +631,33 @@ class QuerySet(object): def dates(self, field_name, kind, order='ASC'): """ - Returns a list of datetime objects representing all available dates for + Returns a list of date objects representing all available dates for the given field_name, scoped to 'kind'. """ - assert kind in ("month", "year", "day"), \ + assert kind in ("year", "month", "day"), \ "'kind' must be one of 'year', 'month' or 'day'." assert order in ('ASC', 'DESC'), \ "'order' must be either 'ASC' or 'DESC'." return self._clone(klass=DateQuerySet, setup=True, _field_name=field_name, _kind=kind, _order=order) + def datetimes(self, field_name, kind, order='ASC', tzinfo=None): + """ + Returns a list of datetime objects representing all available + datetimes for the given field_name, scoped to 'kind'. + """ + assert kind in ("year", "month", "day", "hour", "minute", "second"), \ + "'kind' must be one of 'year', 'month', 'day', 'hour', 'minute' or 'second'." + assert order in ('ASC', 'DESC'), \ + "'order' must be either 'ASC' or 'DESC'." + if settings.USE_TZ: + if tzinfo is None: + tzinfo = timezone.get_current_timezone() + else: + tzinfo = None + return self._clone(klass=DateTimeQuerySet, setup=True, + _field_name=field_name, _kind=kind, _order=order, _tzinfo=tzinfo) + def none(self): """ Returns an empty QuerySet. @@ -1187,7 +1206,7 @@ class DateQuerySet(QuerySet): self.query.clear_deferred_loading() self.query = self.query.clone(klass=sql.DateQuery, setup=True) self.query.select = [] - self.query.add_date_select(self._field_name, self._kind, self._order) + self.query.add_select(self._field_name, self._kind, self._order) def _clone(self, klass=None, setup=False, **kwargs): c = super(DateQuerySet, self)._clone(klass, False, **kwargs) @@ -1198,6 +1217,32 @@ class DateQuerySet(QuerySet): return c +class DateTimeQuerySet(QuerySet): + def iterator(self): + return self.query.get_compiler(self.db).results_iter() + + def _setup_query(self): + """ + Sets up any special features of the query attribute. + + Called by the _clone() method after initializing the rest of the + instance. + """ + self.query.clear_deferred_loading() + self.query = self.query.clone(klass=sql.DateTimeQuery, setup=True, tzinfo=self._tzinfo) + self.query.select = [] + self.query.add_select(self._field_name, self._kind, self._order) + + def _clone(self, klass=None, setup=False, **kwargs): + c = super(DateTimeQuerySet, self)._clone(klass, False, **kwargs) + c._field_name = self._field_name + c._kind = self._kind + c._tzinfo = self._tzinfo + if setup and hasattr(c, '_setup_query'): + c._setup_query() + return c + + def get_klass_info(klass, max_depth=0, cur_depth=0, requested=None, only_load=None, from_parent=None): """ diff --git a/django/db/models/query_utils.py b/django/db/models/query_utils.py index c1a690a524..c82cc45617 100644 --- a/django/db/models/query_utils.py +++ b/django/db/models/query_utils.py @@ -25,7 +25,7 @@ class QueryWrapper(object): parameters. Can be used to pass opaque data to a where-clause, for example. """ def __init__(self, sql, params): - self.data = sql, params + self.data = sql, list(params) def as_sql(self, qn=None, connection=None): return self.data diff --git a/django/db/models/sql/aggregates.py b/django/db/models/sql/aggregates.py index 75a330f22a..3c8720210b 100644 --- a/django/db/models/sql/aggregates.py +++ b/django/db/models/sql/aggregates.py @@ -73,22 +73,23 @@ class Aggregate(object): self.col = (change_map.get(self.col[0], self.col[0]), self.col[1]) def as_sql(self, qn, connection): - "Return the aggregate, rendered as SQL." + "Return the aggregate, rendered as SQL with parameters." + params = [] if hasattr(self.col, 'as_sql'): - field_name = self.col.as_sql(qn, connection) + field_name, params = self.col.as_sql(qn, connection) elif isinstance(self.col, (list, tuple)): field_name = '.'.join([qn(c) for c in self.col]) else: field_name = self.col - params = { + substitutions = { 'function': self.sql_function, 'field': field_name } - params.update(self.extra) + substitutions.update(self.extra) - return self.sql_template % params + return self.sql_template % substitutions, params class Avg(Aggregate): diff --git a/django/db/models/sql/compiler.py b/django/db/models/sql/compiler.py index 79b5d99452..1b6654b670 100644 --- a/django/db/models/sql/compiler.py +++ b/django/db/models/sql/compiler.py @@ -1,5 +1,6 @@ -from django.utils.six.moves import zip +import datetime +from django.conf import settings from django.core.exceptions import FieldError from django.db import transaction from django.db.backends.util import truncate_name @@ -12,6 +13,8 @@ from django.db.models.sql.expressions import SQLEvaluator from django.db.models.sql.query import get_order_dir, Query from django.db.utils import DatabaseError from django.utils import six +from django.utils.six.moves import zip +from django.utils import timezone class SQLCompiler(object): @@ -71,7 +74,7 @@ class SQLCompiler(object): # as the pre_sql_setup will modify query state in a way that forbids # another run of it. self.refcounts_before = self.query.alias_refcount.copy() - out_cols = self.get_columns(with_col_aliases) + out_cols, s_params = self.get_columns(with_col_aliases) ordering, ordering_group_by = self.get_ordering() distinct_fields = self.get_distinct() @@ -94,6 +97,7 @@ class SQLCompiler(object): result.append(self.connection.ops.distinct_sql(distinct_fields)) result.append(', '.join(out_cols + self.query.ordering_aliases)) + params.extend(s_params) result.append('FROM') result.extend(from_) @@ -161,9 +165,10 @@ class SQLCompiler(object): def get_columns(self, with_aliases=False): """ - Returns the list of columns to use in the select statement. If no - columns have been specified, returns all columns relating to fields in - the model. + Returns the list of columns to use in the select statement, as well as + a list any extra parameters that need to be included. If no columns + have been specified, returns all columns relating to fields in the + model. If 'with_aliases' is true, any column names that are duplicated (without the table names) are given unique aliases. This is needed in @@ -172,6 +177,7 @@ class SQLCompiler(object): qn = self.quote_name_unless_alias qn2 = self.connection.ops.quote_name result = ['(%s) AS %s' % (col[0], qn2(alias)) for alias, col in six.iteritems(self.query.extra_select)] + params = [] aliases = set(self.query.extra_select.keys()) if with_aliases: col_aliases = aliases.copy() @@ -201,7 +207,9 @@ class SQLCompiler(object): aliases.add(r) col_aliases.add(col[1]) else: - result.append(col.as_sql(qn, self.connection)) + col_sql, col_params = col.as_sql(qn, self.connection) + result.append(col_sql) + params.extend(col_params) if hasattr(col, 'alias'): aliases.add(col.alias) @@ -214,15 +222,13 @@ class SQLCompiler(object): aliases.update(new_aliases) max_name_length = self.connection.ops.max_name_length() - result.extend([ - '%s%s' % ( - aggregate.as_sql(qn, self.connection), - alias is not None - and ' AS %s' % qn(truncate_name(alias, max_name_length)) - or '' - ) - for alias, aggregate in self.query.aggregate_select.items() - ]) + for alias, aggregate in self.query.aggregate_select.items(): + agg_sql, agg_params = aggregate.as_sql(qn, self.connection) + if alias is None: + result.append(agg_sql) + else: + result.append('%s AS %s' % (agg_sql, qn(truncate_name(alias, max_name_length)))) + params.extend(agg_params) for (table, col), _ in self.query.related_select_cols: r = '%s.%s' % (qn(table), qn(col)) @@ -237,7 +243,7 @@ class SQLCompiler(object): col_aliases.add(col) self._select_aliases = aliases - return result + return result, params def get_default_columns(self, with_aliases=False, col_aliases=None, start_alias=None, opts=None, as_pairs=False, from_parent=None): @@ -542,14 +548,16 @@ class SQLCompiler(object): seen = set() cols = self.query.group_by + select_cols for col in cols: + col_params = () if isinstance(col, (list, tuple)): sql = '%s.%s' % (qn(col[0]), qn(col[1])) elif hasattr(col, 'as_sql'): - sql = col.as_sql(qn, self.connection) + sql, col_params = col.as_sql(qn, self.connection) else: sql = '(%s)' % str(col) if sql not in seen: result.append(sql) + params.extend(col_params) seen.add(sql) # Still, we need to add all stuff in ordering (except if the backend can @@ -988,15 +996,17 @@ class SQLAggregateCompiler(SQLCompiler): if qn is None: qn = self.quote_name_unless_alias - sql = ('SELECT %s FROM (%s) subquery' % ( - ', '.join([ - aggregate.as_sql(qn, self.connection) - for aggregate in self.query.aggregate_select.values() - ]), - self.query.subquery) - ) - params = self.query.sub_params - return (sql, params) + sql, params = [], [] + for aggregate in self.query.aggregate_select.values(): + agg_sql, agg_params = aggregate.as_sql(qn, self.connection) + sql.append(agg_sql) + params.extend(agg_params) + sql = ', '.join(sql) + params = tuple(params) + + sql = 'SELECT %s FROM (%s) subquery' % (sql, self.query.subquery) + params = params + self.query.sub_params + return sql, params class SQLDateCompiler(SQLCompiler): def results_iter(self): @@ -1005,10 +1015,10 @@ class SQLDateCompiler(SQLCompiler): """ resolve_columns = hasattr(self, 'resolve_columns') if resolve_columns: - from django.db.models.fields import DateTimeField - fields = [DateTimeField()] + from django.db.models.fields import DateField + fields = [DateField()] else: - from django.db.backends.util import typecast_timestamp + from django.db.backends.util import typecast_date needs_string_cast = self.connection.features.needs_datetime_string_cast offset = len(self.query.extra_select) @@ -1018,9 +1028,38 @@ class SQLDateCompiler(SQLCompiler): if resolve_columns: date = self.resolve_columns(row, fields)[offset] elif needs_string_cast: - date = typecast_timestamp(str(date)) + date = typecast_date(str(date)) + if isinstance(date, datetime.datetime): + date = date.date() yield date +class SQLDateTimeCompiler(SQLCompiler): + def results_iter(self): + """ + Returns an iterator over the results from executing this query. + """ + resolve_columns = hasattr(self, 'resolve_columns') + if resolve_columns: + from django.db.models.fields import DateTimeField + fields = [DateTimeField()] + else: + from django.db.backends.util import typecast_timestamp + needs_string_cast = self.connection.features.needs_datetime_string_cast + + offset = len(self.query.extra_select) + for rows in self.execute_sql(MULTI): + for row in rows: + datetime = row[offset] + if resolve_columns: + datetime = self.resolve_columns(row, fields)[offset] + elif needs_string_cast: + datetime = typecast_timestamp(str(datetime)) + # Datetimes are artifically returned in UTC on databases that + # don't support time zone. Restore the zone used in the query. + if settings.USE_TZ: + datetime = datetime.replace(tzinfo=None) + datetime = timezone.make_aware(datetime, self.query.tzinfo) + yield datetime def order_modified_iter(cursor, trim, sentinel): """ diff --git a/django/db/models/sql/constants.py b/django/db/models/sql/constants.py index 1764db7fcc..81bd646d69 100644 --- a/django/db/models/sql/constants.py +++ b/django/db/models/sql/constants.py @@ -11,7 +11,8 @@ import re QUERY_TERMS = set([ 'exact', 'iexact', 'contains', 'icontains', 'gt', 'gte', 'lt', 'lte', 'in', 'startswith', 'istartswith', 'endswith', 'iendswith', 'range', 'year', - 'month', 'day', 'week_day', 'isnull', 'search', 'regex', 'iregex', + 'month', 'day', 'week_day', 'hour', 'minute', 'second', 'isnull', 'search', + 'regex', 'iregex', ]) # Size of each "chunk" for get_iterator calls. diff --git a/django/db/models/sql/datastructures.py b/django/db/models/sql/datastructures.py index b8e06daf01..612eb8f2d9 100644 --- a/django/db/models/sql/datastructures.py +++ b/django/db/models/sql/datastructures.py @@ -40,4 +40,25 @@ class Date(object): col = '%s.%s' % tuple([qn(c) for c in self.col]) else: col = self.col - return connection.ops.date_trunc_sql(self.lookup_type, col) + return connection.ops.date_trunc_sql(self.lookup_type, col), [] + +class DateTime(object): + """ + Add a datetime selection column. + """ + def __init__(self, col, lookup_type, tzname): + self.col = col + self.lookup_type = lookup_type + self.tzname = tzname + + def relabel_aliases(self, change_map): + c = self.col + if isinstance(c, (list, tuple)): + self.col = (change_map.get(c[0], c[0]), c[1]) + + def as_sql(self, qn, connection): + if isinstance(self.col, (list, tuple)): + col = '%s.%s' % tuple([qn(c) for c in self.col]) + else: + col = self.col + return connection.ops.datetime_trunc_sql(self.lookup_type, col, self.tzname) diff --git a/django/db/models/sql/expressions.py b/django/db/models/sql/expressions.py index a4c1d85c65..2a5008f067 100644 --- a/django/db/models/sql/expressions.py +++ b/django/db/models/sql/expressions.py @@ -94,9 +94,9 @@ class SQLEvaluator(object): if col is None: raise ValueError("Given node not found") if hasattr(col, 'as_sql'): - return col.as_sql(qn, connection), () + return col.as_sql(qn, connection) else: - return '%s.%s' % (qn(col[0]), qn(col[1])), () + return '%s.%s' % (qn(col[0]), qn(col[1])), [] def evaluate_date_modifier_node(self, node, qn, connection): timedelta = node.children.pop() diff --git a/django/db/models/sql/subqueries.py b/django/db/models/sql/subqueries.py index 6072804697..6aac5c898c 100644 --- a/django/db/models/sql/subqueries.py +++ b/django/db/models/sql/subqueries.py @@ -2,22 +2,23 @@ Query subclasses which provide extra functionality beyond simple data retrieval. """ +from django.conf import settings from django.core.exceptions import FieldError from django.db import connections from django.db.models.constants import LOOKUP_SEP -from django.db.models.fields import DateField, FieldDoesNotExist +from django.db.models.fields import DateField, DateTimeField, FieldDoesNotExist from django.db.models.sql.constants import * -from django.db.models.sql.datastructures import Date +from django.db.models.sql.datastructures import Date, DateTime from django.db.models.sql.query import Query from django.db.models.sql.where import AND, Constraint -from django.utils.datastructures import SortedDict from django.utils.functional import Promise from django.utils.encoding import force_text from django.utils import six +from django.utils import timezone __all__ = ['DeleteQuery', 'UpdateQuery', 'InsertQuery', 'DateQuery', - 'AggregateQuery'] + 'DateTimeQuery', 'AggregateQuery'] class DeleteQuery(Query): """ @@ -223,9 +224,9 @@ class DateQuery(Query): compiler = 'SQLDateCompiler' - def add_date_select(self, field_name, lookup_type, order='ASC'): + def add_select(self, field_name, lookup_type, order='ASC'): """ - Converts the query into a date extraction query. + Converts the query into an extraction query. """ try: result = self.setup_joins( @@ -238,10 +239,9 @@ class DateQuery(Query): self.model._meta.object_name, field_name )) field = result[0] - assert isinstance(field, DateField), "%r isn't a DateField." \ - % field.name + self._check_field(field) # overridden in DateTimeQuery alias = result[3][-1] - select = Date((alias, field.column), lookup_type) + select = self._get_select((alias, field.column), lookup_type) self.clear_select_clause() self.select = [SelectInfo(select, None)] self.distinct = True @@ -250,6 +250,36 @@ class DateQuery(Query): if field.null: self.add_filter(("%s__isnull" % field_name, False)) + def _check_field(self, field): + assert isinstance(field, DateField), \ + "%r isn't a DateField." % field.name + if settings.USE_TZ: + assert not isinstance(field, DateTimeField), \ + "%r is a DateTimeField, not a DateField." % field.name + + def _get_select(self, col, lookup_type): + return Date(col, lookup_type) + +class DateTimeQuery(DateQuery): + """ + A DateTimeQuery is like a DateQuery but for a datetime field. If time zone + support is active, the tzinfo attribute contains the time zone to use for + converting the values before truncating them. Otherwise it's set to None. + """ + + compiler = 'SQLDateTimeCompiler' + + def _check_field(self, field): + assert isinstance(field, DateTimeField), \ + "%r isn't a DateTimeField." % field.name + + def _get_select(self, col, lookup_type): + if self.tzinfo is None: + tzname = None + else: + tzname = timezone._get_timezone_name(self.tzinfo) + return DateTime(col, lookup_type, tzname) + class AggregateQuery(Query): """ An AggregateQuery takes another query as a parameter to the FROM diff --git a/django/db/models/sql/where.py b/django/db/models/sql/where.py index cbb0546d6a..ef856893b5 100644 --- a/django/db/models/sql/where.py +++ b/django/db/models/sql/where.py @@ -8,11 +8,13 @@ import collections import datetime from itertools import repeat -from django.utils import tree -from django.db.models.fields import Field +from django.conf import settings +from django.db.models.fields import DateTimeField, Field from django.db.models.sql.datastructures import EmptyResultSet, Empty from django.db.models.sql.aggregates import Aggregate from django.utils.six.moves import xrange +from django.utils import timezone +from django.utils import tree # Connection types AND = 'AND' @@ -60,7 +62,8 @@ class WhereNode(tree.Node): # about the value(s) to the query construction. Specifically, datetime # and empty values need special handling. Other types could be used # here in the future (using Python types is suggested for consistency). - if isinstance(value, datetime.datetime): + if (isinstance(value, datetime.datetime) + or (isinstance(obj.field, DateTimeField) and lookup_type != 'isnull')): value_annotation = datetime.datetime elif hasattr(value, 'value_annotation'): value_annotation = value.value_annotation @@ -169,15 +172,13 @@ class WhereNode(tree.Node): if isinstance(lvalue, tuple): # A direct database column lookup. - field_sql = self.sql_for_columns(lvalue, qn, connection) + field_sql, field_params = self.sql_for_columns(lvalue, qn, connection), [] else: # A smart object with an as_sql() method. - field_sql = lvalue.as_sql(qn, connection) + field_sql, field_params = lvalue.as_sql(qn, connection) - if value_annotation is datetime.datetime: - cast_sql = connection.ops.datetime_cast_sql() - else: - cast_sql = '%s' + is_datetime_field = value_annotation is datetime.datetime + cast_sql = connection.ops.datetime_cast_sql() if is_datetime_field else '%s' if hasattr(params, 'as_sql'): extra, params = params.as_sql(qn, connection) @@ -185,6 +186,8 @@ class WhereNode(tree.Node): else: extra = '' + params = field_params + params + if (len(params) == 1 and params[0] == '' and lookup_type == 'exact' and connection.features.interprets_empty_strings_as_nulls): lookup_type = 'isnull' @@ -221,9 +224,14 @@ class WhereNode(tree.Node): params) elif lookup_type in ('range', 'year'): return ('%s BETWEEN %%s and %%s' % field_sql, params) + elif is_datetime_field and lookup_type in ('month', 'day', 'week_day', + 'hour', 'minute', 'second'): + tzname = timezone.get_current_timezone_name() if settings.USE_TZ else None + sql, tz_params = connection.ops.datetime_extract_sql(lookup_type, field_sql, tzname) + return ('%s = %%s' % sql, tz_params + params) elif lookup_type in ('month', 'day', 'week_day'): - return ('%s = %%s' % connection.ops.date_extract_sql(lookup_type, field_sql), - params) + return ('%s = %%s' + % connection.ops.date_extract_sql(lookup_type, field_sql), params) elif lookup_type == 'isnull': assert value_annotation in (True, False), "Invalid value_annotation for isnull" return ('%s IS %sNULL' % (field_sql, ('' if value_annotation else 'NOT ')), ()) @@ -238,7 +246,7 @@ class WhereNode(tree.Node): """ Returns the SQL fragment used for the left-hand side of a column constraint (for example, the "T1.foo" portion in the clause - "WHERE ... T1.foo = 6"). + "WHERE ... T1.foo = 6") and a list of parameters. """ table_alias, name, db_type = data if table_alias: @@ -331,7 +339,7 @@ class ExtraWhere(object): def as_sql(self, qn=None, connection=None): sqls = ["(%s)" % sql for sql in self.sqls] - return " AND ".join(sqls), tuple(self.params or ()) + return " AND ".join(sqls), list(self.params or ()) def clone(self): return self diff --git a/django/views/generic/dates.py b/django/views/generic/dates.py index 9ffaca4470..29efc7dfac 100644 --- a/django/views/generic/dates.py +++ b/django/views/generic/dates.py @@ -379,15 +379,18 @@ class BaseDateListView(MultipleObjectMixin, DateMixin, View): def get_date_list(self, queryset, date_type=None, ordering='ASC'): """ - Get a date list by calling `queryset.dates()`, checking along the way - for empty lists that aren't allowed. + Get a date list by calling `queryset.dates/datetimes()`, checking + along the way for empty lists that aren't allowed. """ date_field = self.get_date_field() allow_empty = self.get_allow_empty() if date_type is None: date_type = self.get_date_list_period() - date_list = queryset.dates(date_field, date_type, ordering) + if self.uses_datetime_field: + date_list = queryset.datetimes(date_field, date_type, ordering) + else: + date_list = queryset.dates(date_field, date_type, ordering) if date_list is not None and not date_list and not allow_empty: name = force_text(queryset.model._meta.verbose_name_plural) raise Http404(_("No %(verbose_name_plural)s available") % diff --git a/docs/ref/models/querysets.txt b/docs/ref/models/querysets.txt index 171c2d3dcd..f77f87dd8e 100644 --- a/docs/ref/models/querysets.txt +++ b/docs/ref/models/querysets.txt @@ -550,14 +550,19 @@ dates .. method:: dates(field, kind, order='ASC') Returns a ``DateQuerySet`` — a ``QuerySet`` that evaluates to a list of -``datetime.datetime`` objects representing all available dates of a particular -kind within the contents of the ``QuerySet``. +:class:`datetime.date` objects representing all available dates of a +particular kind within the contents of the ``QuerySet``. -``field`` should be the name of a ``DateField`` or ``DateTimeField`` of your -model. +.. versionchanged:: 1.6 + ``dates`` used to return a list of :class:`datetime.datetime` objects. + +``field`` should be the name of a ``DateField`` of your model. + +.. versionchanged:: 1.6 + ``dates`` used to accept operating on a ``DateTimeField``. ``kind`` should be either ``"year"``, ``"month"`` or ``"day"``. Each -``datetime.datetime`` object in the result list is "truncated" to the given +``datetime.date`` object in the result list is "truncated" to the given ``type``. * ``"year"`` returns a list of all distinct year values for the field. @@ -572,21 +577,60 @@ model. Examples:: >>> Entry.objects.dates('pub_date', 'year') - [datetime.datetime(2005, 1, 1)] + [datetime.date(2005, 1, 1)] >>> Entry.objects.dates('pub_date', 'month') - [datetime.datetime(2005, 2, 1), datetime.datetime(2005, 3, 1)] + [datetime.date(2005, 2, 1), datetime.date(2005, 3, 1)] >>> Entry.objects.dates('pub_date', 'day') - [datetime.datetime(2005, 2, 20), datetime.datetime(2005, 3, 20)] + [datetime.date(2005, 2, 20), datetime.date(2005, 3, 20)] >>> Entry.objects.dates('pub_date', 'day', order='DESC') - [datetime.datetime(2005, 3, 20), datetime.datetime(2005, 2, 20)] + [datetime.date(2005, 3, 20), datetime.date(2005, 2, 20)] >>> Entry.objects.filter(headline__contains='Lennon').dates('pub_date', 'day') - [datetime.datetime(2005, 3, 20)] + [datetime.date(2005, 3, 20)] -.. warning:: +datetimes +~~~~~~~~~ + +.. versionadded:: 1.6 + +.. method:: datetimes(field, kind, order='ASC', tzinfo=None) + +Returns a ``DateTimeQuerySet`` — a ``QuerySet`` that evaluates to a list of +:class:`datetime.datetime` objects representing all available dates of a +particular kind within the contents of the ``QuerySet``. + +``field`` should be the name of a ``DateTimeField`` of your model. + +``kind`` should be either ``"year"``, ``"month"``, ``"day"``, ``"hour"``, +``"minute"`` or ``"second"``. Each ``datetime.datetime`` object in the result +list is "truncated" to the given ``type``. + +``order``, which defaults to ``'ASC'``, should be either ``'ASC'`` or +``'DESC'``. This specifies how to order the results. + +``tzinfo`` defines the time zone to which datetimes are converted prior to +truncation. Indeed, a given datetime has different representations depending +on the time zone in use. This parameter must be a :class:`datetime.tzinfo` +object. If it's ``None``, Django uses the :ref:`current time zone +`. It has no effect when :setting:`USE_TZ` is +``False``. + +.. _database-time-zone-definitions: + +.. note:: - When :doc:`time zone support ` is enabled, Django - uses UTC in the database connection, which means the aggregation is - performed in UTC. This is a known limitation of the current implementation. + This function performs time zone conversions directly in the database. + As a consequence, your database must be able to interpret the value of + ``tzinfo.tzname(None)``. This translates into the following requirements: + + - SQLite: install pytz_ — conversions are actually performed in Python. + - PostgreSQL: no requirements (see `Time Zones`_). + - Oracle: no requirements (see `Choosing a Time Zone File`_). + - MySQL: load the time zone tables with `mysql_tzinfo_to_sql`_. + + .. _pytz: http://pytz.sourceforge.net/ + .. _Time Zones: http://www.postgresql.org/docs/9.2/static/datatype-datetime.html#DATATYPE-TIMEZONES + .. _Choosing a Time Zone File: http://docs.oracle.com/cd/B19306_01/server.102/b14225/ch4datetime.htm#i1006667 + .. _mysql_tzinfo_to_sql: http://dev.mysql.com/doc/refman/5.5/en/mysql-tzinfo-to-sql.html none ~~~~ @@ -2020,7 +2064,7 @@ numbers and even characters. year ~~~~ -For date/datetime fields, exact year match. Takes a four-digit year. +For date and datetime fields, an exact year match. Takes an integer year. Example:: @@ -2032,6 +2076,9 @@ SQL equivalent:: (The exact SQL syntax varies for each database engine.) +When :setting:`USE_TZ` is ``True``, datetime fields are converted to the +current time zone before filtering. + .. fieldlookup:: month month @@ -2050,12 +2097,15 @@ SQL equivalent:: (The exact SQL syntax varies for each database engine.) +When :setting:`USE_TZ` is ``True``, datetime fields are converted to the +current time zone before filtering. + .. fieldlookup:: day day ~~~ -For date and datetime fields, an exact day match. +For date and datetime fields, an exact day match. Takes an integer day. Example:: @@ -2070,6 +2120,9 @@ SQL equivalent:: Note this will match any record with a pub_date on the third day of the month, such as January 3, July 3, etc. +When :setting:`USE_TZ` is ``True``, datetime fields are converted to the +current time zone before filtering. + .. fieldlookup:: week_day week_day @@ -2091,12 +2144,74 @@ Note this will match any record with a ``pub_date`` that falls on a Monday (day 2 of the week), regardless of the month or year in which it occurs. Week days are indexed with day 1 being Sunday and day 7 being Saturday. -.. warning:: +When :setting:`USE_TZ` is ``True``, datetime fields are converted to the +current time zone before filtering. + +.. fieldlookup:: hour + +hour +~~~~ + +.. versionadded:: 1.6 + +For datetime fields, an exact hour match. Takes an integer between 0 and 23. + +Example:: + + Event.objects.filter(timestamp__hour=23) + +SQL equivalent:: + + SELECT ... WHERE EXTRACT('hour' FROM timestamp) = '23'; + +(The exact SQL syntax varies for each database engine.) + +When :setting:`USE_TZ` is ``True``, values are converted to the current time +zone before filtering. + +.. fieldlookup:: minute + +minute +~~~~~~ + +.. versionadded:: 1.6 + +For datetime fields, an exact minute match. Takes an integer between 0 and 59. + +Example:: + + Event.objects.filter(timestamp__minute=29) + +SQL equivalent:: + + SELECT ... WHERE EXTRACT('minute' FROM timestamp) = '29'; + +(The exact SQL syntax varies for each database engine.) + +When :setting:`USE_TZ` is ``True``, values are converted to the current time +zone before filtering. + +.. fieldlookup:: second + +second +~~~~~~ + +.. versionadded:: 1.6 + +For datetime fields, an exact second match. Takes an integer between 0 and 59. + +Example:: + + Event.objects.filter(timestamp__second=31) + +SQL equivalent:: + + SELECT ... WHERE EXTRACT('second' FROM timestamp) = '31'; + +(The exact SQL syntax varies for each database engine.) - When :doc:`time zone support ` is enabled, Django - uses UTC in the database connection, which means the ``year``, ``month``, - ``day`` and ``week_day`` lookups are performed in UTC. This is a known - limitation of the current implementation. +When :setting:`USE_TZ` is ``True``, values are converted to the current time +zone before filtering. .. fieldlookup:: isnull diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 60537aca53..9594481b9f 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -30,6 +30,16 @@ prevention ` are turned on. If the default templates don't suit your tastes, you can use :ref:`custom project and app templates `. +Time zone aware aggregation +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The support for :doc:`time zones ` introduced in +Django 1.4 didn't work well with :meth:`QuerySet.dates() +`: aggregation was always performed in +UTC. This limitation was lifted in Django 1.6. Use :meth:`QuerySet.datetimes() +` to perform time zone aware +aggregation on a :class:`~django.db.models.DateTimeField`. + Minor features ~~~~~~~~~~~~~~ @@ -47,6 +57,9 @@ Minor features * Added :meth:`~django.db.models.query.QuerySet.earliest` for symmetry with :meth:`~django.db.models.query.QuerySet.latest`. +* In addition to :lookup:`year`, :lookup:`month` and :lookup:`day`, the ORM + now supports :lookup:`hour`, :lookup:`minute` and :lookup:`second` lookups. + * The default widgets for :class:`~django.forms.EmailField` and :class:`~django.forms.URLField` use the new type attributes available in HTML5 (type='email', type='url'). @@ -80,6 +93,28 @@ Backwards incompatible changes in 1.6 :meth:`~django.db.models.query.QuerySet.none` has been called: ``isinstance(qs.none(), EmptyQuerySet)`` +* :meth:`QuerySet.dates() ` raises an + error if it's used on :class:`~django.db.models.DateTimeField` when time + zone support is active. Use :meth:`QuerySet.datetimes() + ` instead. + +* :meth:`QuerySet.dates() ` returns a + list of :class:`~datetime.date`. It used to return a list of + :class:`~datetime.datetime`. + +* The :attr:`~django.contrib.admin.ModelAdmin.date_hierarchy` feature of the + admin on a :class:`~django.db.models.DateTimeField` requires time zone + definitions in the database when :setting:`USE_TZ` is ``True``. + :ref:`Learn more `. + +* Accessing ``date_list`` in the context of a date-based generic view requires + time zone definitions in the database when the view is based on a + :class:`~django.db.models.DateTimeField` and :setting:`USE_TZ` is ``True``. + :ref:`Learn more `. + +* Model fields named ``hour``, ``minute`` or ``second`` may clash with the new + lookups. Append an explicit :lookup:`exact` lookup if this is an issue. + * If your CSS/Javascript code used to access HTML input widgets by type, you should review it as ``type='text'`` widgets might be now output as ``type='email'`` or ``type='url'`` depending on their corresponding field type. diff --git a/tests/modeltests/aggregation/tests.py b/tests/modeltests/aggregation/tests.py index c23b32fc85..c635e6ebb6 100644 --- a/tests/modeltests/aggregation/tests.py +++ b/tests/modeltests/aggregation/tests.py @@ -579,9 +579,9 @@ class BaseAggregateTestCase(TestCase): dates = Book.objects.annotate(num_authors=Count("authors")).dates('pubdate', 'year') self.assertQuerysetEqual( dates, [ - "datetime.datetime(1991, 1, 1, 0, 0)", - "datetime.datetime(1995, 1, 1, 0, 0)", - "datetime.datetime(2007, 1, 1, 0, 0)", - "datetime.datetime(2008, 1, 1, 0, 0)" + "datetime.date(1991, 1, 1)", + "datetime.date(1995, 1, 1)", + "datetime.date(2007, 1, 1)", + "datetime.date(2008, 1, 1)" ] ) diff --git a/tests/modeltests/basic/tests.py b/tests/modeltests/basic/tests.py index 1ca4f20dac..e408df8d46 100644 --- a/tests/modeltests/basic/tests.py +++ b/tests/modeltests/basic/tests.py @@ -266,34 +266,34 @@ class ModelTest(TestCase): # ... but there will often be more efficient ways if that is all you need: self.assertTrue(Article.objects.filter(id=a8.id).exists()) - # dates() returns a list of available dates of the given scope for + # datetimes() returns a list of available dates of the given scope for # the given field. self.assertQuerysetEqual( - Article.objects.dates('pub_date', 'year'), + Article.objects.datetimes('pub_date', 'year'), ["datetime.datetime(2005, 1, 1, 0, 0)"]) self.assertQuerysetEqual( - Article.objects.dates('pub_date', 'month'), + Article.objects.datetimes('pub_date', 'month'), ["datetime.datetime(2005, 7, 1, 0, 0)"]) self.assertQuerysetEqual( - Article.objects.dates('pub_date', 'day'), + Article.objects.datetimes('pub_date', 'day'), ["datetime.datetime(2005, 7, 28, 0, 0)", "datetime.datetime(2005, 7, 29, 0, 0)", "datetime.datetime(2005, 7, 30, 0, 0)", "datetime.datetime(2005, 7, 31, 0, 0)"]) self.assertQuerysetEqual( - Article.objects.dates('pub_date', 'day', order='ASC'), + Article.objects.datetimes('pub_date', 'day', order='ASC'), ["datetime.datetime(2005, 7, 28, 0, 0)", "datetime.datetime(2005, 7, 29, 0, 0)", "datetime.datetime(2005, 7, 30, 0, 0)", "datetime.datetime(2005, 7, 31, 0, 0)"]) self.assertQuerysetEqual( - Article.objects.dates('pub_date', 'day', order='DESC'), + Article.objects.datetimes('pub_date', 'day', order='DESC'), ["datetime.datetime(2005, 7, 31, 0, 0)", "datetime.datetime(2005, 7, 30, 0, 0)", "datetime.datetime(2005, 7, 29, 0, 0)", "datetime.datetime(2005, 7, 28, 0, 0)"]) - # dates() requires valid arguments. + # datetimes() requires valid arguments. self.assertRaises( TypeError, Article.objects.dates, @@ -324,10 +324,10 @@ class ModelTest(TestCase): order="bad order", ) - # Use iterator() with dates() to return a generator that lazily + # Use iterator() with datetimes() to return a generator that lazily # requests each result one at a time, to save memory. dates = [] - for article in Article.objects.dates('pub_date', 'day', order='DESC').iterator(): + for article in Article.objects.datetimes('pub_date', 'day', order='DESC').iterator(): dates.append(article) self.assertEqual(dates, [ datetime(2005, 7, 31, 0, 0), diff --git a/tests/modeltests/many_to_one/tests.py b/tests/modeltests/many_to_one/tests.py index 44ae689dd4..a4f87a3283 100644 --- a/tests/modeltests/many_to_one/tests.py +++ b/tests/modeltests/many_to_one/tests.py @@ -1,7 +1,7 @@ from __future__ import absolute_import from copy import deepcopy -from datetime import datetime +import datetime from django.core.exceptions import MultipleObjectsReturned, FieldError from django.test import TestCase @@ -20,7 +20,7 @@ class ManyToOneTests(TestCase): self.r2.save() # Create an Article. self.a = Article(id=None, headline="This is a test", - pub_date=datetime(2005, 7, 27), reporter=self.r) + pub_date=datetime.date(2005, 7, 27), reporter=self.r) self.a.save() def test_get(self): @@ -36,25 +36,25 @@ class ManyToOneTests(TestCase): # You can also instantiate an Article by passing the Reporter's ID # instead of a Reporter object. a3 = Article(id=None, headline="Third article", - pub_date=datetime(2005, 7, 27), reporter_id=self.r.id) + pub_date=datetime.date(2005, 7, 27), reporter_id=self.r.id) a3.save() self.assertEqual(a3.reporter.id, self.r.id) # Similarly, the reporter ID can be a string. a4 = Article(id=None, headline="Fourth article", - pub_date=datetime(2005, 7, 27), reporter_id=str(self.r.id)) + pub_date=datetime.date(2005, 7, 27), reporter_id=str(self.r.id)) a4.save() self.assertEqual(repr(a4.reporter), "") def test_add(self): # Create an Article via the Reporter object. new_article = self.r.article_set.create(headline="John's second story", - pub_date=datetime(2005, 7, 29)) + pub_date=datetime.date(2005, 7, 29)) self.assertEqual(repr(new_article), "") self.assertEqual(new_article.reporter.id, self.r.id) # Create a new article, and add it to the article set. - new_article2 = Article(headline="Paul's story", pub_date=datetime(2006, 1, 17)) + new_article2 = Article(headline="Paul's story", pub_date=datetime.date(2006, 1, 17)) self.r.article_set.add(new_article2) self.assertEqual(new_article2.reporter.id, self.r.id) self.assertQuerysetEqual(self.r.article_set.all(), @@ -80,9 +80,9 @@ class ManyToOneTests(TestCase): def test_assign(self): new_article = self.r.article_set.create(headline="John's second story", - pub_date=datetime(2005, 7, 29)) + pub_date=datetime.date(2005, 7, 29)) new_article2 = self.r2.article_set.create(headline="Paul's story", - pub_date=datetime(2006, 1, 17)) + pub_date=datetime.date(2006, 1, 17)) # Assign the article to the reporter directly using the descriptor. new_article2.reporter = self.r new_article2.save() @@ -118,9 +118,9 @@ class ManyToOneTests(TestCase): def test_selects(self): new_article = self.r.article_set.create(headline="John's second story", - pub_date=datetime(2005, 7, 29)) + pub_date=datetime.date(2005, 7, 29)) new_article2 = self.r2.article_set.create(headline="Paul's story", - pub_date=datetime(2006, 1, 17)) + pub_date=datetime.date(2006, 1, 17)) # Reporter objects have access to their related Article objects. self.assertQuerysetEqual(self.r.article_set.all(), [ "", @@ -237,9 +237,9 @@ class ManyToOneTests(TestCase): def test_reverse_selects(self): a3 = Article.objects.create(id=None, headline="Third article", - pub_date=datetime(2005, 7, 27), reporter_id=self.r.id) + pub_date=datetime.date(2005, 7, 27), reporter_id=self.r.id) a4 = Article.objects.create(id=None, headline="Fourth article", - pub_date=datetime(2005, 7, 27), reporter_id=str(self.r.id)) + pub_date=datetime.date(2005, 7, 27), reporter_id=str(self.r.id)) # Reporters can be queried self.assertQuerysetEqual(Reporter.objects.filter(id__exact=self.r.id), [""]) @@ -316,33 +316,33 @@ class ManyToOneTests(TestCase): # objects (Reporters). r1 = Reporter.objects.create(first_name='Mike', last_name='Royko', email='royko@suntimes.com') r2 = Reporter.objects.create(first_name='John', last_name='Kass', email='jkass@tribune.com') - a1 = Article.objects.create(headline='First', pub_date=datetime(1980, 4, 23), reporter=r1) - a2 = Article.objects.create(headline='Second', pub_date=datetime(1980, 4, 23), reporter=r2) + Article.objects.create(headline='First', pub_date=datetime.date(1980, 4, 23), reporter=r1) + Article.objects.create(headline='Second', pub_date=datetime.date(1980, 4, 23), reporter=r2) self.assertEqual(list(Article.objects.select_related().dates('pub_date', 'day')), [ - datetime(1980, 4, 23, 0, 0), - datetime(2005, 7, 27, 0, 0), + datetime.date(1980, 4, 23), + datetime.date(2005, 7, 27), ]) self.assertEqual(list(Article.objects.select_related().dates('pub_date', 'month')), [ - datetime(1980, 4, 1, 0, 0), - datetime(2005, 7, 1, 0, 0), + datetime.date(1980, 4, 1), + datetime.date(2005, 7, 1), ]) self.assertEqual(list(Article.objects.select_related().dates('pub_date', 'year')), [ - datetime(1980, 1, 1, 0, 0), - datetime(2005, 1, 1, 0, 0), + datetime.date(1980, 1, 1), + datetime.date(2005, 1, 1), ]) def test_delete(self): new_article = self.r.article_set.create(headline="John's second story", - pub_date=datetime(2005, 7, 29)) + pub_date=datetime.date(2005, 7, 29)) new_article2 = self.r2.article_set.create(headline="Paul's story", - pub_date=datetime(2006, 1, 17)) + pub_date=datetime.date(2006, 1, 17)) a3 = Article.objects.create(id=None, headline="Third article", - pub_date=datetime(2005, 7, 27), reporter_id=self.r.id) + pub_date=datetime.date(2005, 7, 27), reporter_id=self.r.id) a4 = Article.objects.create(id=None, headline="Fourth article", - pub_date=datetime(2005, 7, 27), reporter_id=str(self.r.id)) + pub_date=datetime.date(2005, 7, 27), reporter_id=str(self.r.id)) # If you delete a reporter, his articles will be deleted. self.assertQuerysetEqual(Article.objects.all(), [ @@ -383,7 +383,7 @@ class ManyToOneTests(TestCase): # for a ForeignKey. a2, created = Article.objects.get_or_create(id=None, headline="John's second test", - pub_date=datetime(2011, 5, 7), + pub_date=datetime.date(2011, 5, 7), reporter_id=self.r.id) self.assertTrue(created) self.assertEqual(a2.reporter.id, self.r.id) @@ -398,7 +398,7 @@ class ManyToOneTests(TestCase): # Create an Article by Paul for the same date. a3 = Article.objects.create(id=None, headline="Paul's commentary", - pub_date=datetime(2011, 5, 7), + pub_date=datetime.date(2011, 5, 7), reporter_id=self.r2.id) self.assertEqual(a3.reporter.id, self.r2.id) @@ -407,7 +407,7 @@ class ManyToOneTests(TestCase): Article.objects.get, reporter_id=self.r.id) self.assertEqual(repr(a3), repr(Article.objects.get(reporter_id=self.r2.id, - pub_date=datetime(2011, 5, 7)))) + pub_date=datetime.date(2011, 5, 7)))) def test_manager_class_caching(self): r1 = Reporter.objects.create(first_name='Mike') @@ -425,7 +425,7 @@ class ManyToOneTests(TestCase): email='john.smith@example.com') lazy = ugettext_lazy('test') reporter.article_set.create(headline=lazy, - pub_date=datetime(2011, 6, 10)) + pub_date=datetime.date(2011, 6, 10)) notlazy = six.text_type(lazy) article = reporter.article_set.get() self.assertEqual(article.headline, notlazy) diff --git a/tests/modeltests/reserved_names/tests.py b/tests/modeltests/reserved_names/tests.py index 87f7a42ec4..ddffe08d34 100644 --- a/tests/modeltests/reserved_names/tests.py +++ b/tests/modeltests/reserved_names/tests.py @@ -42,8 +42,8 @@ class ReservedNameTests(TestCase): self.generate() resp = Thing.objects.dates('where', 'year') self.assertEqual(list(resp), [ - datetime.datetime(2005, 1, 1, 0, 0), - datetime.datetime(2006, 1, 1, 0, 0), + datetime.date(2005, 1, 1), + datetime.date(2006, 1, 1), ]) def test_month_filter(self): diff --git a/tests/modeltests/timezones/tests.py b/tests/modeltests/timezones/tests.py index 4ae6bbd6a8..8786c1912f 100644 --- a/tests/modeltests/timezones/tests.py +++ b/tests/modeltests/timezones/tests.py @@ -189,13 +189,16 @@ class LegacyDatabaseTests(TestCase): self.assertEqual(Event.objects.filter(dt__gte=dt2).count(), 1) self.assertEqual(Event.objects.filter(dt__gt=dt2).count(), 0) - def test_query_date_related_filters(self): + def test_query_datetime_lookups(self): Event.objects.create(dt=datetime.datetime(2011, 1, 1, 1, 30, 0)) Event.objects.create(dt=datetime.datetime(2011, 1, 1, 4, 30, 0)) self.assertEqual(Event.objects.filter(dt__year=2011).count(), 2) self.assertEqual(Event.objects.filter(dt__month=1).count(), 2) self.assertEqual(Event.objects.filter(dt__day=1).count(), 2) self.assertEqual(Event.objects.filter(dt__week_day=7).count(), 2) + self.assertEqual(Event.objects.filter(dt__hour=1).count(), 1) + self.assertEqual(Event.objects.filter(dt__minute=30).count(), 2) + self.assertEqual(Event.objects.filter(dt__second=0).count(), 2) def test_query_aggregation(self): # Only min and max make sense for datetimes. @@ -230,15 +233,30 @@ class LegacyDatabaseTests(TestCase): [afternoon_min_dt], transform=lambda d: d.dt) - def test_query_dates(self): + def test_query_datetimes(self): Event.objects.create(dt=datetime.datetime(2011, 1, 1, 1, 30, 0)) Event.objects.create(dt=datetime.datetime(2011, 1, 1, 4, 30, 0)) - self.assertQuerysetEqual(Event.objects.dates('dt', 'year'), - [datetime.datetime(2011, 1, 1)], transform=lambda d: d) - self.assertQuerysetEqual(Event.objects.dates('dt', 'month'), - [datetime.datetime(2011, 1, 1)], transform=lambda d: d) - self.assertQuerysetEqual(Event.objects.dates('dt', 'day'), - [datetime.datetime(2011, 1, 1)], transform=lambda d: d) + self.assertQuerysetEqual(Event.objects.datetimes('dt', 'year'), + [datetime.datetime(2011, 1, 1, 0, 0, 0)], + transform=lambda d: d) + self.assertQuerysetEqual(Event.objects.datetimes('dt', 'month'), + [datetime.datetime(2011, 1, 1, 0, 0, 0)], + transform=lambda d: d) + self.assertQuerysetEqual(Event.objects.datetimes('dt', 'day'), + [datetime.datetime(2011, 1, 1, 0, 0, 0)], + transform=lambda d: d) + self.assertQuerysetEqual(Event.objects.datetimes('dt', 'hour'), + [datetime.datetime(2011, 1, 1, 1, 0, 0), + datetime.datetime(2011, 1, 1, 4, 0, 0)], + transform=lambda d: d) + self.assertQuerysetEqual(Event.objects.datetimes('dt', 'minute'), + [datetime.datetime(2011, 1, 1, 1, 30, 0), + datetime.datetime(2011, 1, 1, 4, 30, 0)], + transform=lambda d: d) + self.assertQuerysetEqual(Event.objects.datetimes('dt', 'second'), + [datetime.datetime(2011, 1, 1, 1, 30, 0), + datetime.datetime(2011, 1, 1, 4, 30, 0)], + transform=lambda d: d) def test_raw_sql(self): # Regression test for #17755 @@ -398,17 +416,32 @@ class NewDatabaseTests(TestCase): msg = str(warning.message) self.assertTrue(msg.startswith("DateTimeField received a naive datetime")) - def test_query_date_related_filters(self): - # These two dates fall in the same day in EAT, but in different days, - # years and months in UTC, and aggregation is performed in UTC when - # time zone support is enabled. This test could be changed if the - # implementation is changed to perform the aggregation is local time. + @skipUnlessDBFeature('has_zoneinfo_database') + def test_query_datetime_lookups(self): Event.objects.create(dt=datetime.datetime(2011, 1, 1, 1, 30, 0, tzinfo=EAT)) Event.objects.create(dt=datetime.datetime(2011, 1, 1, 4, 30, 0, tzinfo=EAT)) - self.assertEqual(Event.objects.filter(dt__year=2011).count(), 1) - self.assertEqual(Event.objects.filter(dt__month=1).count(), 1) - self.assertEqual(Event.objects.filter(dt__day=1).count(), 1) - self.assertEqual(Event.objects.filter(dt__week_day=7).count(), 1) + self.assertEqual(Event.objects.filter(dt__year=2011).count(), 2) + self.assertEqual(Event.objects.filter(dt__month=1).count(), 2) + self.assertEqual(Event.objects.filter(dt__day=1).count(), 2) + self.assertEqual(Event.objects.filter(dt__week_day=7).count(), 2) + self.assertEqual(Event.objects.filter(dt__hour=1).count(), 1) + self.assertEqual(Event.objects.filter(dt__minute=30).count(), 2) + self.assertEqual(Event.objects.filter(dt__second=0).count(), 2) + + @skipUnlessDBFeature('has_zoneinfo_database') + def test_query_datetime_lookups_in_other_timezone(self): + Event.objects.create(dt=datetime.datetime(2011, 1, 1, 1, 30, 0, tzinfo=EAT)) + Event.objects.create(dt=datetime.datetime(2011, 1, 1, 4, 30, 0, tzinfo=EAT)) + with timezone.override(UTC): + # These two dates fall in the same day in EAT, but in different days, + # years and months in UTC. + self.assertEqual(Event.objects.filter(dt__year=2011).count(), 1) + self.assertEqual(Event.objects.filter(dt__month=1).count(), 1) + self.assertEqual(Event.objects.filter(dt__day=1).count(), 1) + self.assertEqual(Event.objects.filter(dt__week_day=7).count(), 1) + self.assertEqual(Event.objects.filter(dt__hour=22).count(), 1) + self.assertEqual(Event.objects.filter(dt__minute=30).count(), 2) + self.assertEqual(Event.objects.filter(dt__second=0).count(), 2) def test_query_aggregation(self): # Only min and max make sense for datetimes. @@ -443,22 +476,61 @@ class NewDatabaseTests(TestCase): [afternoon_min_dt], transform=lambda d: d.dt) - def test_query_dates(self): - # Same comment as in test_query_date_related_filters. + @skipUnlessDBFeature('has_zoneinfo_database') + def test_query_datetimes(self): Event.objects.create(dt=datetime.datetime(2011, 1, 1, 1, 30, 0, tzinfo=EAT)) Event.objects.create(dt=datetime.datetime(2011, 1, 1, 4, 30, 0, tzinfo=EAT)) - self.assertQuerysetEqual(Event.objects.dates('dt', 'year'), - [datetime.datetime(2010, 1, 1, tzinfo=UTC), - datetime.datetime(2011, 1, 1, tzinfo=UTC)], + self.assertQuerysetEqual(Event.objects.datetimes('dt', 'year'), + [datetime.datetime(2011, 1, 1, 0, 0, 0, tzinfo=EAT)], + transform=lambda d: d) + self.assertQuerysetEqual(Event.objects.datetimes('dt', 'month'), + [datetime.datetime(2011, 1, 1, 0, 0, 0, tzinfo=EAT)], + transform=lambda d: d) + self.assertQuerysetEqual(Event.objects.datetimes('dt', 'day'), + [datetime.datetime(2011, 1, 1, 0, 0, 0, tzinfo=EAT)], transform=lambda d: d) - self.assertQuerysetEqual(Event.objects.dates('dt', 'month'), - [datetime.datetime(2010, 12, 1, tzinfo=UTC), - datetime.datetime(2011, 1, 1, tzinfo=UTC)], + self.assertQuerysetEqual(Event.objects.datetimes('dt', 'hour'), + [datetime.datetime(2011, 1, 1, 1, 0, 0, tzinfo=EAT), + datetime.datetime(2011, 1, 1, 4, 0, 0, tzinfo=EAT)], transform=lambda d: d) - self.assertQuerysetEqual(Event.objects.dates('dt', 'day'), - [datetime.datetime(2010, 12, 31, tzinfo=UTC), - datetime.datetime(2011, 1, 1, tzinfo=UTC)], + self.assertQuerysetEqual(Event.objects.datetimes('dt', 'minute'), + [datetime.datetime(2011, 1, 1, 1, 30, 0, tzinfo=EAT), + datetime.datetime(2011, 1, 1, 4, 30, 0, tzinfo=EAT)], transform=lambda d: d) + self.assertQuerysetEqual(Event.objects.datetimes('dt', 'second'), + [datetime.datetime(2011, 1, 1, 1, 30, 0, tzinfo=EAT), + datetime.datetime(2011, 1, 1, 4, 30, 0, tzinfo=EAT)], + transform=lambda d: d) + + @skipUnlessDBFeature('has_zoneinfo_database') + def test_query_datetimes_in_other_timezone(self): + Event.objects.create(dt=datetime.datetime(2011, 1, 1, 1, 30, 0, tzinfo=EAT)) + Event.objects.create(dt=datetime.datetime(2011, 1, 1, 4, 30, 0, tzinfo=EAT)) + with timezone.override(UTC): + self.assertQuerysetEqual(Event.objects.datetimes('dt', 'year'), + [datetime.datetime(2010, 1, 1, 0, 0, 0, tzinfo=UTC), + datetime.datetime(2011, 1, 1, 0, 0, 0, tzinfo=UTC)], + transform=lambda d: d) + self.assertQuerysetEqual(Event.objects.datetimes('dt', 'month'), + [datetime.datetime(2010, 12, 1, 0, 0, 0, tzinfo=UTC), + datetime.datetime(2011, 1, 1, 0, 0, 0, tzinfo=UTC)], + transform=lambda d: d) + self.assertQuerysetEqual(Event.objects.datetimes('dt', 'day'), + [datetime.datetime(2010, 12, 31, 0, 0, 0, tzinfo=UTC), + datetime.datetime(2011, 1, 1, 0, 0, 0, tzinfo=UTC)], + transform=lambda d: d) + self.assertQuerysetEqual(Event.objects.datetimes('dt', 'hour'), + [datetime.datetime(2010, 12, 31, 22, 0, 0, tzinfo=UTC), + datetime.datetime(2011, 1, 1, 1, 0, 0, tzinfo=UTC)], + transform=lambda d: d) + self.assertQuerysetEqual(Event.objects.datetimes('dt', 'minute'), + [datetime.datetime(2010, 12, 31, 22, 30, 0, tzinfo=UTC), + datetime.datetime(2011, 1, 1, 1, 30, 0, tzinfo=UTC)], + transform=lambda d: d) + self.assertQuerysetEqual(Event.objects.datetimes('dt', 'second'), + [datetime.datetime(2010, 12, 31, 22, 30, 0, tzinfo=UTC), + datetime.datetime(2011, 1, 1, 1, 30, 0, tzinfo=UTC)], + transform=lambda d: d) def test_raw_sql(self): # Regression test for #17755 diff --git a/tests/regressiontests/aggregation_regress/tests.py b/tests/regressiontests/aggregation_regress/tests.py index 596ebbfaec..076567538b 100644 --- a/tests/regressiontests/aggregation_regress/tests.py +++ b/tests/regressiontests/aggregation_regress/tests.py @@ -546,8 +546,8 @@ class AggregationTests(TestCase): qs = Book.objects.annotate(num_authors=Count('authors')).filter(num_authors=2).dates('pubdate', 'day') self.assertQuerysetEqual( qs, [ - datetime.datetime(1995, 1, 15, 0, 0), - datetime.datetime(2007, 12, 6, 0, 0) + datetime.date(1995, 1, 15), + datetime.date(2007, 12, 6), ], lambda b: b ) diff --git a/tests/regressiontests/backends/tests.py b/tests/regressiontests/backends/tests.py index 313fdc8351..fbe5026e12 100644 --- a/tests/regressiontests/backends/tests.py +++ b/tests/regressiontests/backends/tests.py @@ -144,11 +144,11 @@ class DateQuotingTest(TestCase): updated = datetime.datetime(2010, 2, 20) models.SchoolClass.objects.create(year=2009, last_updated=updated) years = models.SchoolClass.objects.dates('last_updated', 'year') - self.assertEqual(list(years), [datetime.datetime(2010, 1, 1, 0, 0)]) + self.assertEqual(list(years), [datetime.date(2010, 1, 1)]) - def test_django_extract(self): + def test_django_date_extract(self): """ - Test the custom ``django_extract method``, in particular against fields + Test the custom ``django_date_extract method``, in particular against fields which clash with strings passed to it (e.g. 'day') - see #12818__. __: http://code.djangoproject.com/ticket/12818 diff --git a/tests/regressiontests/dates/models.py b/tests/regressiontests/dates/models.py index e4bffb7199..23350755e7 100644 --- a/tests/regressiontests/dates/models.py +++ b/tests/regressiontests/dates/models.py @@ -1,3 +1,5 @@ +from __future__ import unicode_literals + from django.db import models from django.utils.encoding import python_2_unicode_compatible diff --git a/tests/regressiontests/dates/tests.py b/tests/regressiontests/dates/tests.py index de28cac436..6c02d597de 100644 --- a/tests/regressiontests/dates/tests.py +++ b/tests/regressiontests/dates/tests.py @@ -1,6 +1,6 @@ from __future__ import absolute_import -from datetime import datetime +import datetime from django.test import TestCase @@ -11,32 +11,32 @@ class DatesTests(TestCase): def test_related_model_traverse(self): a1 = Article.objects.create( title="First one", - pub_date=datetime(2005, 7, 28), + pub_date=datetime.date(2005, 7, 28), ) a2 = Article.objects.create( title="Another one", - pub_date=datetime(2010, 7, 28), + pub_date=datetime.date(2010, 7, 28), ) a3 = Article.objects.create( title="Third one, in the first day", - pub_date=datetime(2005, 7, 28), + pub_date=datetime.date(2005, 7, 28), ) a1.comments.create( text="Im the HULK!", - pub_date=datetime(2005, 7, 28), + pub_date=datetime.date(2005, 7, 28), ) a1.comments.create( text="HULK SMASH!", - pub_date=datetime(2005, 7, 29), + pub_date=datetime.date(2005, 7, 29), ) a2.comments.create( text="LMAO", - pub_date=datetime(2010, 7, 28), + pub_date=datetime.date(2010, 7, 28), ) a3.comments.create( text="+1", - pub_date=datetime(2005, 8, 29), + pub_date=datetime.date(2005, 8, 29), ) c = Category.objects.create(name="serious-news") @@ -44,31 +44,31 @@ class DatesTests(TestCase): self.assertQuerysetEqual( Comment.objects.dates("article__pub_date", "year"), [ - datetime(2005, 1, 1), - datetime(2010, 1, 1), + datetime.date(2005, 1, 1), + datetime.date(2010, 1, 1), ], lambda d: d, ) self.assertQuerysetEqual( Comment.objects.dates("article__pub_date", "month"), [ - datetime(2005, 7, 1), - datetime(2010, 7, 1), + datetime.date(2005, 7, 1), + datetime.date(2010, 7, 1), ], lambda d: d ) self.assertQuerysetEqual( Comment.objects.dates("article__pub_date", "day"), [ - datetime(2005, 7, 28), - datetime(2010, 7, 28), + datetime.date(2005, 7, 28), + datetime.date(2010, 7, 28), ], lambda d: d ) self.assertQuerysetEqual( Article.objects.dates("comments__pub_date", "day"), [ - datetime(2005, 7, 28), - datetime(2005, 7, 29), - datetime(2005, 8, 29), - datetime(2010, 7, 28), + datetime.date(2005, 7, 28), + datetime.date(2005, 7, 29), + datetime.date(2005, 8, 29), + datetime.date(2010, 7, 28), ], lambda d: d ) @@ -77,7 +77,7 @@ class DatesTests(TestCase): ) self.assertQuerysetEqual( Category.objects.dates("articles__pub_date", "day"), [ - datetime(2005, 7, 28), + datetime.date(2005, 7, 28), ], lambda d: d, ) diff --git a/tests/regressiontests/datetimes/__init__.py b/tests/regressiontests/datetimes/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/regressiontests/datetimes/models.py b/tests/regressiontests/datetimes/models.py new file mode 100644 index 0000000000..f21376aa1c --- /dev/null +++ b/tests/regressiontests/datetimes/models.py @@ -0,0 +1,28 @@ +from __future__ import unicode_literals + +from django.db import models +from django.utils.encoding import python_2_unicode_compatible + + +@python_2_unicode_compatible +class Article(models.Model): + title = models.CharField(max_length=100) + pub_date = models.DateTimeField() + + categories = models.ManyToManyField("Category", related_name="articles") + + def __str__(self): + return self.title + +@python_2_unicode_compatible +class Comment(models.Model): + article = models.ForeignKey(Article, related_name="comments") + text = models.TextField() + pub_date = models.DateTimeField() + approval_date = models.DateTimeField(null=True) + + def __str__(self): + return 'Comment to %s (%s)' % (self.article.title, self.pub_date) + +class Category(models.Model): + name = models.CharField(max_length=255) diff --git a/tests/regressiontests/datetimes/tests.py b/tests/regressiontests/datetimes/tests.py new file mode 100644 index 0000000000..58cb060f6b --- /dev/null +++ b/tests/regressiontests/datetimes/tests.py @@ -0,0 +1,83 @@ +from __future__ import absolute_import + +import datetime + +from django.test import TestCase + +from .models import Article, Comment, Category + + +class DateTimesTests(TestCase): + def test_related_model_traverse(self): + a1 = Article.objects.create( + title="First one", + pub_date=datetime.datetime(2005, 7, 28, 9, 0, 0), + ) + a2 = Article.objects.create( + title="Another one", + pub_date=datetime.datetime(2010, 7, 28, 10, 0, 0), + ) + a3 = Article.objects.create( + title="Third one, in the first day", + pub_date=datetime.datetime(2005, 7, 28, 17, 0, 0), + ) + + a1.comments.create( + text="Im the HULK!", + pub_date=datetime.datetime(2005, 7, 28, 9, 30, 0), + ) + a1.comments.create( + text="HULK SMASH!", + pub_date=datetime.datetime(2005, 7, 29, 1, 30, 0), + ) + a2.comments.create( + text="LMAO", + pub_date=datetime.datetime(2010, 7, 28, 10, 10, 10), + ) + a3.comments.create( + text="+1", + pub_date=datetime.datetime(2005, 8, 29, 10, 10, 10), + ) + + c = Category.objects.create(name="serious-news") + c.articles.add(a1, a3) + + self.assertQuerysetEqual( + Comment.objects.datetimes("article__pub_date", "year"), [ + datetime.datetime(2005, 1, 1), + datetime.datetime(2010, 1, 1), + ], + lambda d: d, + ) + self.assertQuerysetEqual( + Comment.objects.datetimes("article__pub_date", "month"), [ + datetime.datetime(2005, 7, 1), + datetime.datetime(2010, 7, 1), + ], + lambda d: d + ) + self.assertQuerysetEqual( + Comment.objects.datetimes("article__pub_date", "day"), [ + datetime.datetime(2005, 7, 28), + datetime.datetime(2010, 7, 28), + ], + lambda d: d + ) + self.assertQuerysetEqual( + Article.objects.datetimes("comments__pub_date", "day"), [ + datetime.datetime(2005, 7, 28), + datetime.datetime(2005, 7, 29), + datetime.datetime(2005, 8, 29), + datetime.datetime(2010, 7, 28), + ], + lambda d: d + ) + self.assertQuerysetEqual( + Article.objects.datetimes("comments__approval_date", "day"), [] + ) + self.assertQuerysetEqual( + Category.objects.datetimes("articles__pub_date", "day"), [ + datetime.datetime(2005, 7, 28), + ], + lambda d: d, + ) diff --git a/tests/regressiontests/extra_regress/tests.py b/tests/regressiontests/extra_regress/tests.py index 1bc6789edd..194b250c99 100644 --- a/tests/regressiontests/extra_regress/tests.py +++ b/tests/regressiontests/extra_regress/tests.py @@ -166,8 +166,9 @@ class ExtraRegressTests(TestCase): ) self.assertQuerysetEqual( - RevisionableModel.objects.extra(select={"the_answer": 'id'}).dates('when', 'month'), - ['datetime.datetime(2008, 9, 1, 0, 0)'] + RevisionableModel.objects.extra(select={"the_answer": 'id'}).datetimes('when', 'month'), + [datetime.datetime(2008, 9, 1, 0, 0)], + transform=lambda d: d, ) def test_values_with_extra(self): diff --git a/tests/regressiontests/generic_views/dates.py b/tests/regressiontests/generic_views/dates.py index 0c565daf9f..844b10bbcc 100644 --- a/tests/regressiontests/generic_views/dates.py +++ b/tests/regressiontests/generic_views/dates.py @@ -4,7 +4,7 @@ import time import datetime from django.core.exceptions import ImproperlyConfigured -from django.test import TestCase +from django.test import TestCase, skipUnlessDBFeature from django.test.utils import override_settings from django.utils import timezone from django.utils.unittest import skipUnless @@ -119,6 +119,7 @@ class ArchiveIndexViewTests(TestCase): self.assertEqual(res.status_code, 200) @requires_tz_support + @skipUnlessDBFeature('has_zoneinfo_database') @override_settings(USE_TZ=True, TIME_ZONE='Africa/Nairobi') def test_aware_datetime_archive_view(self): BookSigning.objects.create(event_date=datetime.datetime(2008, 4, 2, 12, 0, tzinfo=timezone.utc)) @@ -140,7 +141,7 @@ class YearArchiveViewTests(TestCase): def test_year_view(self): res = self.client.get('/dates/books/2008/') self.assertEqual(res.status_code, 200) - self.assertEqual(list(res.context['date_list']), [datetime.datetime(2008, 10, 1)]) + self.assertEqual(list(res.context['date_list']), [datetime.date(2008, 10, 1)]) self.assertEqual(res.context['year'], datetime.date(2008, 1, 1)) self.assertTemplateUsed(res, 'generic_views/book_archive_year.html') @@ -151,7 +152,7 @@ class YearArchiveViewTests(TestCase): def test_year_view_make_object_list(self): res = self.client.get('/dates/books/2006/make_object_list/') self.assertEqual(res.status_code, 200) - self.assertEqual(list(res.context['date_list']), [datetime.datetime(2006, 5, 1)]) + self.assertEqual(list(res.context['date_list']), [datetime.date(2006, 5, 1)]) self.assertEqual(list(res.context['book_list']), list(Book.objects.filter(pubdate__year=2006))) self.assertEqual(list(res.context['object_list']), list(Book.objects.filter(pubdate__year=2006))) self.assertTemplateUsed(res, 'generic_views/book_archive_year.html') @@ -181,7 +182,7 @@ class YearArchiveViewTests(TestCase): res = self.client.get('/dates/books/%s/allow_future/' % year) self.assertEqual(res.status_code, 200) - self.assertEqual(list(res.context['date_list']), [datetime.datetime(year, 1, 1)]) + self.assertEqual(list(res.context['date_list']), [datetime.date(year, 1, 1)]) def test_year_view_paginated(self): res = self.client.get('/dates/books/2006/paginated/') @@ -204,6 +205,7 @@ class YearArchiveViewTests(TestCase): res = self.client.get('/dates/booksignings/2008/') self.assertEqual(res.status_code, 200) + @skipUnlessDBFeature('has_zoneinfo_database') @override_settings(USE_TZ=True, TIME_ZONE='Africa/Nairobi') def test_aware_datetime_year_view(self): BookSigning.objects.create(event_date=datetime.datetime(2008, 4, 2, 12, 0, tzinfo=timezone.utc)) @@ -225,7 +227,7 @@ class MonthArchiveViewTests(TestCase): res = self.client.get('/dates/books/2008/oct/') self.assertEqual(res.status_code, 200) self.assertTemplateUsed(res, 'generic_views/book_archive_month.html') - self.assertEqual(list(res.context['date_list']), [datetime.datetime(2008, 10, 1)]) + self.assertEqual(list(res.context['date_list']), [datetime.date(2008, 10, 1)]) self.assertEqual(list(res.context['book_list']), list(Book.objects.filter(pubdate=datetime.date(2008, 10, 1)))) self.assertEqual(res.context['month'], datetime.date(2008, 10, 1)) @@ -268,7 +270,7 @@ class MonthArchiveViewTests(TestCase): # allow_future = True, valid future month res = self.client.get('/dates/books/%s/allow_future/' % urlbit) self.assertEqual(res.status_code, 200) - self.assertEqual(res.context['date_list'][0].date(), b.pubdate) + self.assertEqual(res.context['date_list'][0], b.pubdate) self.assertEqual(list(res.context['book_list']), [b]) self.assertEqual(res.context['month'], future) @@ -328,6 +330,7 @@ class MonthArchiveViewTests(TestCase): res = self.client.get('/dates/booksignings/2008/apr/') self.assertEqual(res.status_code, 200) + @skipUnlessDBFeature('has_zoneinfo_database') @override_settings(USE_TZ=True, TIME_ZONE='Africa/Nairobi') def test_aware_datetime_month_view(self): BookSigning.objects.create(event_date=datetime.datetime(2008, 2, 1, 12, 0, tzinfo=timezone.utc)) diff --git a/tests/regressiontests/model_inheritance_regress/tests.py b/tests/regressiontests/model_inheritance_regress/tests.py index 6855d70071..8f741bbb7f 100644 --- a/tests/regressiontests/model_inheritance_regress/tests.py +++ b/tests/regressiontests/model_inheritance_regress/tests.py @@ -134,8 +134,8 @@ class ModelInheritanceTest(TestCase): obj = Child.objects.create( name='child', created=datetime.datetime(2008, 6, 26, 17, 0, 0)) - dates = list(Child.objects.dates('created', 'month')) - self.assertEqual(dates, [datetime.datetime(2008, 6, 1, 0, 0)]) + datetimes = list(Child.objects.datetimes('created', 'month')) + self.assertEqual(datetimes, [datetime.datetime(2008, 6, 1, 0, 0)]) def test_issue_7276(self): # Regression test for #7276: calling delete() on a model with diff --git a/tests/regressiontests/null_queries/models.py b/tests/regressiontests/null_queries/models.py index 25560fbab7..9070dd4873 100644 --- a/tests/regressiontests/null_queries/models.py +++ b/tests/regressiontests/null_queries/models.py @@ -28,4 +28,5 @@ class OuterB(models.Model): class Inner(models.Model): first = models.ForeignKey(OuterA) - second = models.ForeignKey(OuterB, null=True) + # second would clash with the __second lookup. + third = models.ForeignKey(OuterB, null=True) diff --git a/tests/regressiontests/null_queries/tests.py b/tests/regressiontests/null_queries/tests.py index 47c99fbcb3..93e72d55d8 100644 --- a/tests/regressiontests/null_queries/tests.py +++ b/tests/regressiontests/null_queries/tests.py @@ -55,17 +55,17 @@ class NullQueriesTests(TestCase): """ obj = OuterA.objects.create() self.assertQuerysetEqual( - OuterA.objects.filter(inner__second=None), + OuterA.objects.filter(inner__third=None), [''] ) self.assertQuerysetEqual( - OuterA.objects.filter(inner__second__data=None), + OuterA.objects.filter(inner__third__data=None), [''] ) inner_obj = Inner.objects.create(first=obj) self.assertQuerysetEqual( - Inner.objects.filter(first__inner__second=None), + Inner.objects.filter(first__inner__third=None), [''] ) diff --git a/tests/regressiontests/queries/tests.py b/tests/regressiontests/queries/tests.py index 9d223970a0..ea54d18451 100644 --- a/tests/regressiontests/queries/tests.py +++ b/tests/regressiontests/queries/tests.py @@ -550,37 +550,37 @@ class Queries1Tests(BaseQuerysetTest): def test_tickets_6180_6203(self): # Dates with limits and/or counts self.assertEqual(Item.objects.count(), 4) - self.assertEqual(Item.objects.dates('created', 'month').count(), 1) - self.assertEqual(Item.objects.dates('created', 'day').count(), 2) - self.assertEqual(len(Item.objects.dates('created', 'day')), 2) - self.assertEqual(Item.objects.dates('created', 'day')[0], datetime.datetime(2007, 12, 19, 0, 0)) + self.assertEqual(Item.objects.datetimes('created', 'month').count(), 1) + self.assertEqual(Item.objects.datetimes('created', 'day').count(), 2) + self.assertEqual(len(Item.objects.datetimes('created', 'day')), 2) + self.assertEqual(Item.objects.datetimes('created', 'day')[0], datetime.datetime(2007, 12, 19, 0, 0)) def test_tickets_7087_12242(self): # Dates with extra select columns self.assertQuerysetEqual( - Item.objects.dates('created', 'day').extra(select={'a': 1}), + Item.objects.datetimes('created', 'day').extra(select={'a': 1}), ['datetime.datetime(2007, 12, 19, 0, 0)', 'datetime.datetime(2007, 12, 20, 0, 0)'] ) self.assertQuerysetEqual( - Item.objects.extra(select={'a': 1}).dates('created', 'day'), + Item.objects.extra(select={'a': 1}).datetimes('created', 'day'), ['datetime.datetime(2007, 12, 19, 0, 0)', 'datetime.datetime(2007, 12, 20, 0, 0)'] ) name="one" self.assertQuerysetEqual( - Item.objects.dates('created', 'day').extra(where=['name=%s'], params=[name]), + Item.objects.datetimes('created', 'day').extra(where=['name=%s'], params=[name]), ['datetime.datetime(2007, 12, 19, 0, 0)'] ) self.assertQuerysetEqual( - Item.objects.extra(where=['name=%s'], params=[name]).dates('created', 'day'), + Item.objects.extra(where=['name=%s'], params=[name]).datetimes('created', 'day'), ['datetime.datetime(2007, 12, 19, 0, 0)'] ) def test_ticket7155(self): # Nullable dates self.assertQuerysetEqual( - Item.objects.dates('modified', 'day'), + Item.objects.datetimes('modified', 'day'), ['datetime.datetime(2007, 12, 19, 0, 0)'] ) @@ -699,7 +699,7 @@ class Queries1Tests(BaseQuerysetTest): ) # Pickling of DateQuerySets used to fail - qs = Item.objects.dates('created', 'month') + qs = Item.objects.datetimes('created', 'month') _ = pickle.loads(pickle.dumps(qs)) def test_ticket9997(self): @@ -1235,8 +1235,8 @@ class Queries3Tests(BaseQuerysetTest): # field self.assertRaisesMessage( AssertionError, - "'name' isn't a DateField.", - Item.objects.dates, 'name', 'month' + "'name' isn't a DateTimeField.", + Item.objects.datetimes, 'name', 'month' ) class Queries4Tests(BaseQuerysetTest): -- cgit v1.3 From 976dc07bafbd64f08c78ad6b1a4cbec5be9c85f4 Mon Sep 17 00:00:00 2001 From: Alex Hunley Date: Sat, 16 Feb 2013 14:30:55 -0500 Subject: Removed a misleading examples from documentations ala ticket #19719 --- docs/topics/forms/modelforms.txt | 5 ----- 1 file changed, 5 deletions(-) (limited to 'docs') diff --git a/docs/topics/forms/modelforms.txt b/docs/topics/forms/modelforms.txt index d9e00d86cf..fec0d14836 100644 --- a/docs/topics/forms/modelforms.txt +++ b/docs/topics/forms/modelforms.txt @@ -222,11 +222,6 @@ supplied, ``save()`` will update that instance. If it's not supplied, # Save a new Article object from the form's data. >>> new_article = f.save() - # Create a form to edit an existing Article. - >>> a = Article.objects.get(pk=1) - >>> f = ArticleForm(instance=a) - >>> f.save() - # Create a form to edit an existing Article, but use # POST data to populate the form. >>> a = Article.objects.get(pk=1) -- cgit v1.3 From 7a80904b002a1983282c7dfa3ac05046098242ce Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sat, 16 Feb 2013 18:23:39 -0500 Subject: Fixed #19812 - Removed a duplicate phrase in the widget docs. Thanks diegueus9 for the report and itsallvoodoo for the draft patch. --- docs/ref/forms/widgets.txt | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'docs') diff --git a/docs/ref/forms/widgets.txt b/docs/ref/forms/widgets.txt index cb5224fd3c..970901a9ae 100644 --- a/docs/ref/forms/widgets.txt +++ b/docs/ref/forms/widgets.txt @@ -279,15 +279,10 @@ foundation for custom widgets. * A single value (e.g., a string) that is the "compressed" representation of a ``list`` of values. - If `value` is a list, output of :meth:`~MultiWidget.render` will be a - concatenation of rendered child widgets. If `value` is not a list, it - will be first processed by the method :meth:`~MultiWidget.decompress()` - to create the list and then processed as above. - - In the second case -- i.e., if the value is *not* a list -- - ``render()`` will first decompress the value into a ``list`` before - rendering it. It does so by calling the ``decompress()`` method, which - :class:`MultiWidget`'s subclasses must implement (see above). + If ``value`` is a list, the output of :meth:`~MultiWidget.render` will + be a concatenation of rendered child widgets. If ``value`` is not a + list, it will first be processed by the method + :meth:`~MultiWidget.decompress()` to create the list and then rendered. When ``render()`` executes its HTML rendering, each value in the list is rendered with the corresponding widget -- the first value is -- cgit v1.3 From 218bbef0c4890b3b853dee945a02215533b923b7 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sat, 16 Feb 2013 18:31:54 -0500 Subject: Fixed #19824 - Corrected the class described for Field.primary_key from IntegerField to AutoField. Thanks Keryn Knight. --- docs/ref/models/fields.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/ref/models/fields.txt b/docs/ref/models/fields.txt index 77b838622b..33ee05dd85 100644 --- a/docs/ref/models/fields.txt +++ b/docs/ref/models/fields.txt @@ -248,8 +248,8 @@ Alternatively you can use plain text and If ``True``, this field is the primary key for the model. -If you don't specify ``primary_key=True`` for any fields in your model, Django -will automatically add an :class:`IntegerField` to hold the primary key, so you +If you don't specify ``primary_key=True`` for any field in your model, Django +will automatically add an :class:`AutoField` to hold the primary key, so you don't need to set ``primary_key=True`` on any of your fields unless you want to override the default primary-key behavior. For more, see :ref:`automatic-primary-key-fields`. -- cgit v1.3 From 9c2066d567492a4a285c053039f671a2ca4a23d4 Mon Sep 17 00:00:00 2001 From: Simon Meers Date: Mon, 18 Feb 2013 00:33:29 +1100 Subject: Corrected INSTALLED_APPS syntax in 1.5 release notes. --- docs/releases/1.5.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/releases/1.5.txt b/docs/releases/1.5.txt index acf4f153ce..8813313035 100644 --- a/docs/releases/1.5.txt +++ b/docs/releases/1.5.txt @@ -662,7 +662,7 @@ Miscellaneous :doc:`django.contrib.redirects ` without enabling :doc:`django.contrib.sites `. This isn't allowed any longer. If you're using ``django.contrib.redirects``, make sure - :setting:``INSTALLED_APPS`` contains ``django.contrib.sites``. + :setting:`INSTALLED_APPS` contains ``django.contrib.sites``. Features deprecated in 1.5 ========================== -- cgit v1.3 From 64d0f89ab1dc6ef8a84814f567050fc063d67de2 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Mon, 18 Feb 2013 09:35:22 -0500 Subject: Fixed #19717 - Removed mentions of "root QuerySet" in docs. Thanks julien.aubert.mail@ for the report and James Pic for the patch. --- docs/topics/db/queries.txt | 29 ++++++++++------------------- 1 file changed, 10 insertions(+), 19 deletions(-) (limited to 'docs') diff --git a/docs/topics/db/queries.txt b/docs/topics/db/queries.txt index de898c8373..f3a8709a51 100644 --- a/docs/topics/db/queries.txt +++ b/docs/topics/db/queries.txt @@ -163,10 +163,9 @@ default. Access it directly via the model class, like so:: "record-level" operations. The :class:`~django.db.models.Manager` is the main source of ``QuerySets`` for -a model. It acts as a "root" :class:`~django.db.models.query.QuerySet` that -describes all objects in the model's database table. For example, -``Blog.objects`` is the initial :class:`~django.db.models.query.QuerySet` that -contains all ``Blog`` objects in the database. +a model. For example, ``Blog.objects.all()`` returns a +:class:`~django.db.models.query.QuerySet` that contains all ``Blog`` objects in +the database. Retrieving all objects ---------------------- @@ -180,20 +179,13 @@ this, use the :meth:`~django.db.models.query.QuerySet.all` method on a The :meth:`~django.db.models.query.QuerySet.all` method returns a :class:`~django.db.models.query.QuerySet` of all the objects in the database. -(If ``Entry.objects`` is a :class:`~django.db.models.query.QuerySet`, why can't -we just do ``Entry.objects``? That's because ``Entry.objects``, the root -:class:`~django.db.models.query.QuerySet`, is a special case that cannot be -evaluated. The :meth:`~django.db.models.query.QuerySet.all` method returns a -:class:`~django.db.models.query.QuerySet` that *can* be evaluated.) - - Retrieving specific objects with filters ---------------------------------------- -The root :class:`~django.db.models.query.QuerySet` provided by the -:class:`~django.db.models.Manager` describes all objects in the database -table. Usually, though, you'll need to select only a subset of the complete set -of objects. +The :class:`~django.db.models.query.QuerySet` returned by +:meth:`~django.db.models.query.QuerySet.all` describes all objects in the +database table. Usually, though, you'll need to select only a subset of the +complete set of objects. To create such a subset, you refine the initial :class:`~django.db.models.query.QuerySet`, adding filter conditions. The two @@ -216,10 +208,9 @@ so:: Entry.objects.filter(pub_date__year=2006) -We don't have to add an :meth:`~django.db.models.query.QuerySet.all` -- -``Entry.objects.all().filter(...)``. That would still work, but you only need -:meth:`~django.db.models.query.QuerySet.all` when you want all objects from the -root :class:`~django.db.models.query.QuerySet`. +With the default manager class, it is the same as:: + + Entry.objects.all().filter(pub_date__year=2006) .. _chaining-filters: -- cgit v1.3 From 22d5e4b4af4a5913865bb3e4de4c25b6709cc4c5 Mon Sep 17 00:00:00 2001 From: "Stefan \"hr\" Berder" Date: Tue, 19 Feb 2013 16:01:06 +0800 Subject: Update docs/topics/class-based-views/generic-display.txt simple typo in "Making friendly template contexts" --- docs/topics/class-based-views/generic-display.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/topics/class-based-views/generic-display.txt b/docs/topics/class-based-views/generic-display.txt index 835ca07459..8fe6cd0d65 100644 --- a/docs/topics/class-based-views/generic-display.txt +++ b/docs/topics/class-based-views/generic-display.txt @@ -172,7 +172,7 @@ context using the lower cased version of the model class' name. This is provided in addition to the default ``object_list`` entry, but contains exactly the same data, i.e. ``publisher_list``. -If the this still isn't a good match, you can manually set the name of the +If this still isn't a good match, you can manually set the name of the context variable. The ``context_object_name`` attribute on a generic view specifies the context variable to use:: -- cgit v1.3 From efa300088f4bdb7224d5f1200f6ff4dd526c47a7 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 19 Feb 2013 10:25:26 -0500 Subject: Fixed #18789 - Fixed some text wrap issues with methods in the docs. Thanks neixetis@ for the report. --- docs/_theme/djangodocs/static/djangodocs.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/_theme/djangodocs/static/djangodocs.css b/docs/_theme/djangodocs/static/djangodocs.css index bab81cd919..c8d223382d 100644 --- a/docs/_theme/djangodocs/static/djangodocs.css +++ b/docs/_theme/djangodocs/static/djangodocs.css @@ -90,8 +90,8 @@ table.docutils thead th p { margin: 0; padding: 0; } table.docutils { border-collapse:collapse; } /*** code blocks ***/ -.literal { white-space:nowrap; } -.literal { color:#234f32; } +.literal { color:#234f32; white-space:nowrap; } +dt > tt.literal { white-space: normal; } #sidebar .literal { color:white; background:transparent; font-size:11px; } h4 .literal { color: #234f32; font-size: 13px; } pre { font-size:small; background:#E0FFB8; border:1px solid #94da3a; border-width:1px 0; margin: 1em 0; padding: .3em .4em; overflow: hidden; line-height: 1.3em;} -- cgit v1.3 From 00031b73bda7d910aa19876694ebb6778c4b3e70 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 19 Feb 2013 11:31:41 -0500 Subject: Updated a couple admonitions to use the warning directive. --- docs/ref/unicode.txt | 2 +- docs/topics/auth/customizing.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/ref/unicode.txt b/docs/ref/unicode.txt index 784ff33398..92a446ff6b 100644 --- a/docs/ref/unicode.txt +++ b/docs/ref/unicode.txt @@ -68,7 +68,7 @@ Python 2 with unicode literals or Python 3:: See also :doc:`Python 3 compatibility `. -.. admonition:: Warning +.. warning:: A bytestring does not carry any information with it about its encoding. For that reason, we have to make an assumption, and Django assumes that all diff --git a/docs/topics/auth/customizing.txt b/docs/topics/auth/customizing.txt index 9c31445455..2e7bf2e3db 100644 --- a/docs/topics/auth/customizing.txt +++ b/docs/topics/auth/customizing.txt @@ -408,7 +408,7 @@ This dotted pair describes the name of the Django app (which must be in your :setting:`INSTALLED_APPS`), and the name of the Django model that you wish to use as your User model. -.. admonition:: Warning +.. warning:: Changing :setting:`AUTH_USER_MODEL` has a big effect on your database structure. It changes the tables that are available, and it will affect the -- cgit v1.3 From 1add79bc4007fee658f193b65aea2af2347aab6b Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 19 Feb 2013 12:44:19 -0500 Subject: Fixed #19852 - Updated admin fieldset example for consistency. Thanks chris.freeman.pdx@ for the suggestion. --- docs/ref/contrib/admin/index.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/ref/contrib/admin/index.txt b/docs/ref/contrib/admin/index.txt index 3f32d3bce4..cbf7d4215b 100644 --- a/docs/ref/contrib/admin/index.txt +++ b/docs/ref/contrib/admin/index.txt @@ -271,7 +271,7 @@ subclass:: Example:: { - 'classes': ['wide', 'extrapretty'], + 'classes': ('wide', 'extrapretty'), } Two useful classes defined by the default admin site stylesheet are -- cgit v1.3 From d51fb74360b94f2a856573174f8aae3cd905dd35 Mon Sep 17 00:00:00 2001 From: Carl Meyer Date: Sat, 9 Feb 2013 10:17:01 -0700 Subject: Added a new required ALLOWED_HOSTS setting for HTTP host header validation. This is a security fix; disclosure and advisory coming shortly. --- django/conf/global_settings.py | 4 ++ .../conf/project_template/project_name/settings.py | 4 ++ django/contrib/auth/tests/views.py | 1 + django/contrib/contenttypes/tests.py | 2 + django/contrib/sites/tests.py | 2 + django/http/request.py | 53 +++++++++++++++-- django/test/utils.py | 6 ++ docs/ref/settings.txt | 36 ++++++++++++ docs/releases/1.5.txt | 10 ++++ docs/topics/security.txt | 67 ++++++++++------------ tests/regressiontests/csrf_tests/tests.py | 4 ++ tests/regressiontests/requests/tests.py | 24 +++++++- 12 files changed, 169 insertions(+), 44 deletions(-) (limited to 'docs') diff --git a/django/conf/global_settings.py b/django/conf/global_settings.py index 6a01493a72..659f2f42b7 100644 --- a/django/conf/global_settings.py +++ b/django/conf/global_settings.py @@ -29,6 +29,10 @@ ADMINS = () # * Receive x-headers INTERNAL_IPS = () +# Hosts/domain names that are valid for this site. +# "*" matches anything, ".example.com" matches example.com and all subdomains +ALLOWED_HOSTS = [] + # Local time zone for this installation. All choices can be found here: # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name (although not all # systems may support all possibilities). When USE_TZ is True, this is diff --git a/django/conf/project_template/project_name/settings.py b/django/conf/project_template/project_name/settings.py index 8815dc6bc0..d46f327922 100644 --- a/django/conf/project_template/project_name/settings.py +++ b/django/conf/project_template/project_name/settings.py @@ -25,6 +25,10 @@ DEBUG = True TEMPLATE_DEBUG = True +# Hosts/domain names that are valid for this site; required if DEBUG is False +# See https://docs.djangoproject.com/en/{{ docs_version }}/ref/settings/#allowed-hosts +ALLOWED_HOSTS = [] + # Application definition diff --git a/django/contrib/auth/tests/views.py b/django/contrib/auth/tests/views.py index 48dfc9ed76..229e294398 100644 --- a/django/contrib/auth/tests/views.py +++ b/django/contrib/auth/tests/views.py @@ -108,6 +108,7 @@ class PasswordResetTest(AuthViewsTestCase): self.assertEqual(len(mail.outbox), 1) self.assertEqual("staffmember@example.com", mail.outbox[0].from_email) + @override_settings(ALLOWED_HOSTS=['adminsite.com']) def test_admin_reset(self): "If the reset view is marked as being for admin, the HTTP_HOST header is used for a domain override." response = self.client.post('/admin_password_reset/', diff --git a/django/contrib/contenttypes/tests.py b/django/contrib/contenttypes/tests.py index 10311fae92..7937873a00 100644 --- a/django/contrib/contenttypes/tests.py +++ b/django/contrib/contenttypes/tests.py @@ -6,6 +6,7 @@ from django.contrib.contenttypes.views import shortcut from django.contrib.sites.models import Site, get_current_site from django.http import HttpRequest, Http404 from django.test import TestCase +from django.test.utils import override_settings from django.utils.http import urlquote from django.utils import six from django.utils.encoding import python_2_unicode_compatible @@ -203,6 +204,7 @@ class ContentTypesTests(TestCase): }) + @override_settings(ALLOWED_HOSTS=['example.com']) def test_shortcut_view(self): """ Check that the shortcut view (used for the admin "view on site" diff --git a/django/contrib/sites/tests.py b/django/contrib/sites/tests.py index 1bb2495e6b..cdbd78b80d 100644 --- a/django/contrib/sites/tests.py +++ b/django/contrib/sites/tests.py @@ -5,6 +5,7 @@ from django.contrib.sites.models import Site, RequestSite, get_current_site from django.core.exceptions import ObjectDoesNotExist from django.http import HttpRequest from django.test import TestCase +from django.test.utils import override_settings class SitesFrameworkTests(TestCase): @@ -41,6 +42,7 @@ class SitesFrameworkTests(TestCase): site = Site.objects.get_current() self.assertEqual("Example site", site.name) + @override_settings(ALLOWED_HOSTS=['example.com']) def test_get_current_site(self): # Test that the correct Site object is returned request = HttpRequest() diff --git a/django/http/request.py b/django/http/request.py index a8eb14d154..2c19e4ee8c 100644 --- a/django/http/request.py +++ b/django/http/request.py @@ -64,11 +64,12 @@ class HttpRequest(object): if server_port != ('443' if self.is_secure() else '80'): host = '%s:%s' % (host, server_port) - # Disallow potentially poisoned hostnames. - if not host_validation_re.match(host.lower()): - raise SuspiciousOperation('Invalid HTTP_HOST header: %s' % host) - - return host + allowed_hosts = ['*'] if settings.DEBUG else settings.ALLOWED_HOSTS + if validate_host(host, allowed_hosts): + return host + else: + raise SuspiciousOperation( + "Invalid HTTP_HOST header (you may need to set ALLOWED_HOSTS): %s" % host) def get_full_path(self): # RFC 3986 requires query string arguments to be in the ASCII range. @@ -450,3 +451,45 @@ def bytes_to_text(s, encoding): return six.text_type(s, encoding, 'replace') else: return s + + +def validate_host(host, allowed_hosts): + """ + Validate the given host header value for this site. + + Check that the host looks valid and matches a host or host pattern in the + given list of ``allowed_hosts``. Any pattern beginning with a period + matches a domain and all its subdomains (e.g. ``.example.com`` matches + ``example.com`` and any subdomain), ``*`` matches anything, and anything + else must match exactly. + + Return ``True`` for a valid host, ``False`` otherwise. + + """ + # All validation is case-insensitive + host = host.lower() + + # Basic sanity check + if not host_validation_re.match(host): + return False + + # Validate only the domain part. + if host[-1] == ']': + # It's an IPv6 address without a port. + domain = host + else: + domain = host.rsplit(':', 1)[0] + + for pattern in allowed_hosts: + pattern = pattern.lower() + match = ( + pattern == '*' or + pattern.startswith('.') and ( + domain.endswith(pattern) or domain == pattern[1:] + ) or + pattern == domain + ) + if match: + return True + + return False diff --git a/django/test/utils.py b/django/test/utils.py index a8ed3d6317..5d20120f58 100644 --- a/django/test/utils.py +++ b/django/test/utils.py @@ -78,6 +78,9 @@ def setup_test_environment(): mail.original_email_backend = settings.EMAIL_BACKEND settings.EMAIL_BACKEND = 'django.core.mail.backends.locmem.EmailBackend' + settings._original_allowed_hosts = settings.ALLOWED_HOSTS + settings.ALLOWED_HOSTS = ['*'] + mail.outbox = [] deactivate() @@ -96,6 +99,9 @@ def teardown_test_environment(): settings.EMAIL_BACKEND = mail.original_email_backend del mail.original_email_backend + settings.ALLOWED_HOSTS = settings._original_allowed_hosts + del settings._original_allowed_hosts + del mail.outbox diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt index 25818184f6..bba936d837 100644 --- a/docs/ref/settings.txt +++ b/docs/ref/settings.txt @@ -56,6 +56,42 @@ of (Full name, email address). Example:: Note that Django will email *all* of these people whenever an error happens. See :doc:`/howto/error-reporting` for more information. +.. setting:: ALLOWED_HOSTS + +ALLOWED_HOSTS +------------- + +Default: ``[]`` (Empty list) + +A list of strings representing the host/domain names that this Django site can +serve. This is a security measure to prevent an attacker from poisoning caches +and password reset emails with links to malicious hosts by submitting requests +with a fake HTTP ``Host`` header, which is possible even under many +seemingly-safe webserver configurations. + +Values in this list can be fully qualified names (e.g. ``'www.example.com'``), +in which case they will be matched against the request's ``Host`` header +exactly (case-insensitive, not including port). A value beginning with a period +can be used as a subdomain wildcard: ``'.example.com'`` will match +``example.com``, ``www.example.com``, and any other subdomain of +``example.com``. A value of ``'*'`` will match anything; in this case you are +responsible to provide your own validation of the ``Host`` header (perhaps in a +middleware; if so this middleware must be listed first in +:setting:`MIDDLEWARE_CLASSES`). + +If the ``Host`` header (or ``X-Forwarded-Host`` if +:setting:`USE_X_FORWARDED_HOST` is enabled) does not match any value in this +list, the :meth:`django.http.HttpRequest.get_host()` method will raise +:exc:`~django.core.exceptions.SuspiciousOperation`. + +When :setting:`DEBUG` is ``True`` or when running tests, host validation is +disabled; any host will be accepted. Thus it's usually only necessary to set it +in production. + +This validation only applies via :meth:`~django.http.HttpRequest.get_host()`; +if your code accesses the ``Host`` header directly from ``request.META`` you +are bypassing this security protection. + .. setting:: ALLOWED_INCLUDE_ROOTS ALLOWED_INCLUDE_ROOTS diff --git a/docs/releases/1.5.txt b/docs/releases/1.5.txt index 8813313035..63f9758762 100644 --- a/docs/releases/1.5.txt +++ b/docs/releases/1.5.txt @@ -354,6 +354,16 @@ Backwards incompatible changes in 1.5 deprecation timeline for a given feature, its removal may appear as a backwards incompatible change. +``ALLOWED_HOSTS`` required in production +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The new :setting:`ALLOWED_HOSTS` setting validates the request's ``Host`` +header and protects against host-poisoning attacks. This setting is now +required whenever :setting:`DEBUG` is ``False``, or else +:meth:`django.http.HttpRequest.get_host()` will raise +:exc:`~django.core.exceptions.SuspiciousOperation`. For more details see the +:setting:`full documentation` for the new setting. + Managers on abstract models ~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/topics/security.txt b/docs/topics/security.txt index 07b8ebcdd2..566202eefa 100644 --- a/docs/topics/security.txt +++ b/docs/topics/security.txt @@ -160,47 +160,40 @@ server, there are some additional steps you may need: .. _host-headers-virtual-hosting: -Host headers and virtual hosting -================================ +Host header validation +====================== -Django uses the ``Host`` header provided by the client to construct URLs -in certain cases. While these values are sanitized to prevent Cross -Site Scripting attacks, they can be used for Cross-Site Request -Forgery and cache poisoning attacks in some circumstances. We -recommend you ensure your Web server is configured such that: +Django uses the ``Host`` header provided by the client to construct URLs in +certain cases. While these values are sanitized to prevent Cross Site Scripting +attacks, a fake ``Host`` value can be used for Cross-Site Request Forgery, +cache poisoning attacks, and poisoning links in emails. -* It always validates incoming HTTP ``Host`` headers against the expected - host name. -* Disallows requests with no ``Host`` header. -* Is *not* configured with a catch-all virtual host that forwards requests - to a Django application. +Because even seemingly-secure webserver configurations are susceptible to fake +``Host`` headers, Django validates ``Host`` headers against the +:setting:`ALLOWED_HOSTS` setting in the +:meth:`django.http.HttpRequest.get_host()` method. + +This validation only applies via :meth:`~django.http.HttpRequest.get_host()`; +if your code accesses the ``Host`` header directly from ``request.META`` you +are bypassing this security protection. + +For more details see the full :setting:`ALLOWED_HOSTS` documentation. + +.. warning:: + + Previous versions of this document recommended configuring your webserver to + ensure it validates incoming HTTP ``Host`` headers. While this is still + recommended, in many common webservers a configuration that seems to + validate the ``Host`` header may not in fact do so. For instance, even if + Apache is configured such that your Django site is served from a non-default + virtual host with the ``ServerName`` set, it is still possible for an HTTP + request to match this virtual host and supply a fake ``Host`` header. Thus, + Django now requires that you set :setting:`ALLOWED_HOSTS` explicitly rather + than relying on webserver configuration. Additionally, as of 1.3.1, Django requires you to explicitly enable support for -the ``X-Forwarded-Host`` header if your configuration requires it. - -Configuration for Apache ------------------------- - -The easiest way to get the described behavior in Apache is as follows. Create -a `virtual host`_ using the ServerName_ and ServerAlias_ directives to restrict -the domains Apache reacts to. Please keep in mind that while the directives do -support ports the match is only performed against the hostname. This means that -the ``Host`` header could still contain a port pointing to another webserver on -the same machine. The next step is to make sure that your newly created virtual -host is not also the default virtual host. Apache uses the first virtual host -found in the configuration file as default virtual host. As such you have to -ensure that you have another virtual host which will act as catch-all virtual -host. Just add one if you do not have one already, there is nothing special -about it aside from ensuring it is the first virtual host in the configuration -file. Debian/Ubuntu users usually don't have to take any action, since Apache -ships with a default virtual host in ``sites-available`` which is linked into -``sites-enabled`` as ``000-default`` and included from ``apache2.conf``. Just -make sure not to name your site ``000-abc``, since files are included in -alphabetical order. - -.. _virtual host: http://httpd.apache.org/docs/2.2/vhosts/ -.. _ServerName: http://httpd.apache.org/docs/2.2/mod/core.html#servername -.. _ServerAlias: http://httpd.apache.org/docs/2.2/mod/core.html#serveralias +the ``X-Forwarded-Host`` header (via the :setting:`USE_X_FORWARDED_HOST` +setting) if your configuration requires it. .. _additional-security-topics: diff --git a/tests/regressiontests/csrf_tests/tests.py b/tests/regressiontests/csrf_tests/tests.py index 3719108962..5300b2172a 100644 --- a/tests/regressiontests/csrf_tests/tests.py +++ b/tests/regressiontests/csrf_tests/tests.py @@ -7,6 +7,7 @@ from django.http import HttpRequest, HttpResponse from django.middleware.csrf import CsrfViewMiddleware, CSRF_KEY_LENGTH from django.template import RequestContext, Template from django.test import TestCase +from django.test.utils import override_settings from django.views.decorators.csrf import csrf_exempt, requires_csrf_token, ensure_csrf_cookie @@ -269,6 +270,7 @@ class CsrfViewMiddlewareTest(TestCase): csrf_cookie = resp2.cookies[settings.CSRF_COOKIE_NAME] self._check_token_present(resp, csrf_id=csrf_cookie.value) + @override_settings(ALLOWED_HOSTS=['www.example.com']) def test_https_bad_referer(self): """ Test that a POST HTTPS request with a bad referer is rejected @@ -281,6 +283,7 @@ class CsrfViewMiddlewareTest(TestCase): self.assertNotEqual(None, req2) self.assertEqual(403, req2.status_code) + @override_settings(ALLOWED_HOSTS=['www.example.com']) def test_https_good_referer(self): """ Test that a POST HTTPS request with a good referer is accepted @@ -292,6 +295,7 @@ class CsrfViewMiddlewareTest(TestCase): req2 = CsrfViewMiddleware().process_view(req, post_form_view, (), {}) self.assertEqual(None, req2) + @override_settings(ALLOWED_HOSTS=['www.example.com']) def test_https_good_referer_2(self): """ Test that a POST HTTPS request with a good referer is accepted diff --git a/tests/regressiontests/requests/tests.py b/tests/regressiontests/requests/tests.py index 84928f39ba..345376d2df 100644 --- a/tests/regressiontests/requests/tests.py +++ b/tests/regressiontests/requests/tests.py @@ -84,7 +84,13 @@ class RequestsTests(unittest.TestCase): self.assertEqual(request.build_absolute_uri(location="/path/with:colons"), 'http://www.example.com/path/with:colons') - @override_settings(USE_X_FORWARDED_HOST=False) + @override_settings( + USE_X_FORWARDED_HOST=False, + ALLOWED_HOSTS=[ + 'forward.com', 'example.com', 'internal.com', '12.34.56.78', + '[2001:19f0:feee::dead:beef:cafe]', 'xn--4ca9at.com', + '.multitenant.com', 'INSENSITIVE.com', + ]) def test_http_get_host(self): # Check if X_FORWARDED_HOST is provided. request = HttpRequest() @@ -131,6 +137,9 @@ class RequestsTests(unittest.TestCase): '[2001:19f0:feee::dead:beef:cafe]', '[2001:19f0:feee::dead:beef:cafe]:8080', 'xn--4ca9at.com', # Punnycode for öäü.com + 'anything.multitenant.com', + 'multitenant.com', + 'insensitive.com', ] poisoned_hosts = [ @@ -139,6 +148,7 @@ class RequestsTests(unittest.TestCase): 'example.com:dr.frankenstein@evil.tld:80', 'example.com:80/badpath', 'example.com: recovermypassword.com', + 'other.com', # not in ALLOWED_HOSTS ] for host in legit_hosts: @@ -156,7 +166,7 @@ class RequestsTests(unittest.TestCase): } request.get_host() - @override_settings(USE_X_FORWARDED_HOST=True) + @override_settings(USE_X_FORWARDED_HOST=True, ALLOWED_HOSTS=['*']) def test_http_get_host_with_x_forwarded_host(self): # Check if X_FORWARDED_HOST is provided. request = HttpRequest() @@ -229,6 +239,16 @@ class RequestsTests(unittest.TestCase): request.get_host() + @override_settings(DEBUG=True, ALLOWED_HOSTS=[]) + def test_host_validation_disabled_in_debug_mode(self): + """If ALLOWED_HOSTS is empty and DEBUG is True, all hosts pass.""" + request = HttpRequest() + request.META = { + 'HTTP_HOST': 'example.com', + } + self.assertEqual(request.get_host(), 'example.com') + + def test_near_expiration(self): "Cookie will expire when an near expiration time is provided" response = HttpResponse() -- cgit v1.3 From 35c991aa06aa34fa458f01eac49275ff4c2d76f9 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Tue, 12 Feb 2013 11:22:41 +0100 Subject: Added a default limit to the maximum number of forms in a formset. This is a security fix. Disclosure and advisory coming shortly. --- django/forms/formsets.py | 23 ++++--- docs/topics/forms/formsets.txt | 4 +- docs/topics/forms/modelforms.txt | 4 +- tests/regressiontests/forms/tests/formsets.py | 70 ++++++++++++++++++++-- .../regressiontests/generic_inline_admin/tests.py | 3 +- 5 files changed, 85 insertions(+), 19 deletions(-) (limited to 'docs') diff --git a/django/forms/formsets.py b/django/forms/formsets.py index 1addbc617b..81b75f2796 100644 --- a/django/forms/formsets.py +++ b/django/forms/formsets.py @@ -21,6 +21,9 @@ MAX_NUM_FORM_COUNT = 'MAX_NUM_FORMS' ORDERING_FIELD_NAME = 'ORDER' DELETION_FIELD_NAME = 'DELETE' +# default maximum number of forms in a formset, to prevent memory exhaustion +DEFAULT_MAX_NUM = 1000 + class ManagementForm(Form): """ ``ManagementForm`` is used to keep track of how many form instances @@ -97,11 +100,10 @@ class BaseFormSet(object): total_forms = initial_forms + self.extra # Allow all existing related objects/inlines to be displayed, # but don't allow extra beyond max_num. - if self.max_num is not None: - if initial_forms > self.max_num >= 0: - total_forms = initial_forms - elif total_forms > self.max_num >= 0: - total_forms = self.max_num + if initial_forms > self.max_num >= 0: + total_forms = initial_forms + elif total_forms > self.max_num >= 0: + total_forms = self.max_num return total_forms def initial_form_count(self): @@ -111,14 +113,14 @@ class BaseFormSet(object): else: # Use the length of the inital data if it's there, 0 otherwise. initial_forms = self.initial and len(self.initial) or 0 - if self.max_num is not None and (initial_forms > self.max_num >= 0): + if initial_forms > self.max_num >= 0: initial_forms = self.max_num return initial_forms def _construct_forms(self): # instantiate all the forms and put them in self.forms self.forms = [] - for i in xrange(self.total_form_count()): + for i in xrange(min(self.total_form_count(), self.absolute_max)): self.forms.append(self._construct_form(i)) def _construct_form(self, i, **kwargs): @@ -367,9 +369,14 @@ class BaseFormSet(object): def formset_factory(form, formset=BaseFormSet, extra=1, can_order=False, can_delete=False, max_num=None): """Return a FormSet for the given form class.""" + if max_num is None: + max_num = DEFAULT_MAX_NUM + # hard limit on forms instantiated, to prevent memory-exhaustion attacks + # limit defaults to DEFAULT_MAX_NUM, but developer can increase it via max_num + absolute_max = max(DEFAULT_MAX_NUM, max_num) attrs = {'form': form, 'extra': extra, 'can_order': can_order, 'can_delete': can_delete, - 'max_num': max_num} + 'max_num': max_num, 'absolute_max': absolute_max} return type(form.__name__ + str('FormSet'), (formset,), attrs) def all_valid(formsets): diff --git a/docs/topics/forms/formsets.txt b/docs/topics/forms/formsets.txt index e2a2b00c7d..d2d102b5d6 100644 --- a/docs/topics/forms/formsets.txt +++ b/docs/topics/forms/formsets.txt @@ -98,8 +98,8 @@ If the value of ``max_num`` is greater than the number of existing objects, up to ``extra`` additional blank forms will be added to the formset, so long as the total number of forms does not exceed ``max_num``. -A ``max_num`` value of ``None`` (the default) puts no limit on the number of -forms displayed. +A ``max_num`` value of ``None`` (the default) puts a high limit on the number +of forms displayed (1000). In practice this is equivalent to no limit. Formset validation ------------------ diff --git a/docs/topics/forms/modelforms.txt b/docs/topics/forms/modelforms.txt index fec0d14836..62020e461e 100644 --- a/docs/topics/forms/modelforms.txt +++ b/docs/topics/forms/modelforms.txt @@ -738,8 +738,8 @@ so long as the total number of forms does not exceed ``max_num``:: -A ``max_num`` value of ``None`` (the default) puts no limit on the number of -forms displayed. +A ``max_num`` value of ``None`` (the default) puts a high limit on the number +of forms displayed (1000). In practice this is equivalent to no limit. Using a model formset in a view ------------------------------- diff --git a/tests/regressiontests/forms/tests/formsets.py b/tests/regressiontests/forms/tests/formsets.py index ef6f40c3e3..573a8f6a6d 100644 --- a/tests/regressiontests/forms/tests/formsets.py +++ b/tests/regressiontests/forms/tests/formsets.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals from django.forms import (CharField, DateField, FileField, Form, IntegerField, - ValidationError) + ValidationError, formsets) from django.forms.formsets import BaseFormSet, formset_factory from django.forms.util import ErrorList from django.test import TestCase @@ -51,7 +51,7 @@ class FormsFormsetTestCase(TestCase): # for adding data. By default, it displays 1 blank form. It can display more, # but we'll look at how to do so later. formset = ChoiceFormSet(auto_id=False, prefix='choices') - self.assertHTMLEqual(str(formset), """ + self.assertHTMLEqual(str(formset), """ Choice: Votes:""") @@ -654,8 +654,8 @@ class FormsFormsetTestCase(TestCase): # Limiting the maximum number of forms ######################################## # Base case for max_num. - # When not passed, max_num will take its default value of None, i.e. unlimited - # number of forms, only controlled by the value of the extra parameter. + # When not passed, max_num will take a high default value, leaving the + # number of forms only controlled by the value of the extra parameter. LimitedFavoriteDrinkFormSet = formset_factory(FavoriteDrinkForm, extra=3) formset = LimitedFavoriteDrinkFormSet() @@ -702,8 +702,8 @@ class FormsFormsetTestCase(TestCase): def test_max_num_with_initial_data(self): # max_num with initial data - # When not passed, max_num will take its default value of None, i.e. unlimited - # number of forms, only controlled by the values of the initial and extra + # When not passed, max_num will take a high default value, leaving the + # number of forms only controlled by the value of the initial and extra # parameters. initial = [ @@ -878,6 +878,64 @@ class FormsFormsetTestCase(TestCase): self.assertTrue(formset.is_valid()) self.assertTrue(all([form.is_valid_called for form in formset.forms])) + def test_hard_limit_on_instantiated_forms(self): + """A formset has a hard limit on the number of forms instantiated.""" + # reduce the default limit of 1000 temporarily for testing + _old_DEFAULT_MAX_NUM = formsets.DEFAULT_MAX_NUM + try: + formsets.DEFAULT_MAX_NUM = 3 + ChoiceFormSet = formset_factory(Choice) + # someone fiddles with the mgmt form data... + formset = ChoiceFormSet( + { + 'choices-TOTAL_FORMS': '4', + 'choices-INITIAL_FORMS': '0', + 'choices-MAX_NUM_FORMS': '4', + 'choices-0-choice': 'Zero', + 'choices-0-votes': '0', + 'choices-1-choice': 'One', + 'choices-1-votes': '1', + 'choices-2-choice': 'Two', + 'choices-2-votes': '2', + 'choices-3-choice': 'Three', + 'choices-3-votes': '3', + }, + prefix='choices', + ) + # But we still only instantiate 3 forms + self.assertEqual(len(formset.forms), 3) + finally: + formsets.DEFAULT_MAX_NUM = _old_DEFAULT_MAX_NUM + + def test_increase_hard_limit(self): + """Can increase the built-in forms limit via a higher max_num.""" + # reduce the default limit of 1000 temporarily for testing + _old_DEFAULT_MAX_NUM = formsets.DEFAULT_MAX_NUM + try: + formsets.DEFAULT_MAX_NUM = 3 + # for this form, we want a limit of 4 + ChoiceFormSet = formset_factory(Choice, max_num=4) + formset = ChoiceFormSet( + { + 'choices-TOTAL_FORMS': '4', + 'choices-INITIAL_FORMS': '0', + 'choices-MAX_NUM_FORMS': '4', + 'choices-0-choice': 'Zero', + 'choices-0-votes': '0', + 'choices-1-choice': 'One', + 'choices-1-votes': '1', + 'choices-2-choice': 'Two', + 'choices-2-votes': '2', + 'choices-3-choice': 'Three', + 'choices-3-votes': '3', + }, + prefix='choices', + ) + # This time four forms are instantiated + self.assertEqual(len(formset.forms), 4) + finally: + formsets.DEFAULT_MAX_NUM = _old_DEFAULT_MAX_NUM + data = { 'choices-TOTAL_FORMS': '1', # the number of forms rendered diff --git a/tests/regressiontests/generic_inline_admin/tests.py b/tests/regressiontests/generic_inline_admin/tests.py index f03641d292..8ba1700c76 100644 --- a/tests/regressiontests/generic_inline_admin/tests.py +++ b/tests/regressiontests/generic_inline_admin/tests.py @@ -6,6 +6,7 @@ from django.contrib import admin from django.contrib.admin.sites import AdminSite from django.contrib.contenttypes.generic import ( generic_inlineformset_factory, GenericTabularInline) +from django.forms.formsets import DEFAULT_MAX_NUM from django.forms.models import ModelForm from django.test import TestCase from django.test.utils import override_settings @@ -244,7 +245,7 @@ class GenericInlineModelAdminTest(TestCase): # Create a formset with default arguments formset = media_inline.get_formset(request) - self.assertEqual(formset.max_num, None) + self.assertEqual(formset.max_num, DEFAULT_MAX_NUM) self.assertEqual(formset.can_order, False) # Create a formset with custom keyword arguments -- cgit v1.3 From 8fbea5e1881e8c310a462599a191619688ba67dd Mon Sep 17 00:00:00 2001 From: Carl Meyer Date: Tue, 12 Feb 2013 16:06:03 -0700 Subject: Update 1.5 release notes for XML and formset fixes. --- docs/releases/1.5.txt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'docs') diff --git a/docs/releases/1.5.txt b/docs/releases/1.5.txt index 63f9758762..73986d226f 100644 --- a/docs/releases/1.5.txt +++ b/docs/releases/1.5.txt @@ -628,6 +628,25 @@ your routers allow synchronizing content types and permissions to only one of them. See the docs on the :ref:`behavior of contrib apps with multiple databases ` for more information. +XML deserializer will not parse documents with a DTD +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +In order to prevent exposure to denial-of-service attacks related to external +entity references and entity expansion, the XML model deserializer now refuses +to parse XML documents containing a DTD (DOCTYPE definition). Since the XML +serializer does not output a DTD, this will not impact typical usage, only +cases where custom-created XML documents are passed to Django's model +deserializer. + +Formsets default ``max_num`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +A (default) value of ``None`` for the ``max_num`` argument to a formset factory +no longer defaults to allowing any number of forms in the formset. Instead, in +order to prevent memory-exhaustion attacks, it now defaults to a limit of 1000 +forms. This limit can be raised by explicitly setting a higher value for +``max_num``. + Miscellaneous ~~~~~~~~~~~~~ -- cgit v1.3 From 3f49d91463fcb74611d8b3eb19f5b68c6aae6812 Mon Sep 17 00:00:00 2001 From: Justin Turner Arthur Date: Tue, 19 Feb 2013 17:03:33 -0600 Subject: Fixes typo introduced by django/django@08dc90bccf7c4ffa8b04064d74b54c1150af5ff9. This is described in Trac ticket:19855. --- docs/howto/legacy-databases.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/howto/legacy-databases.txt b/docs/howto/legacy-databases.txt index 67bce7e976..6846e4b2df 100644 --- a/docs/howto/legacy-databases.txt +++ b/docs/howto/legacy-databases.txt @@ -70,7 +70,7 @@ If you wanted to modify existing data on your ``CENSUS_PERSONS`` SQL table with Django you'd need to change the ``managed`` option highlighted above to ``True`` (or simply remove it to let it because ``True`` is its default value). -This servers as an explicit opt-in to give your nascent Django project write +This serves as an explicit opt-in to give your nascent Django project write access to your precious data on a model by model basis. .. versionchanged:: 1.6 -- cgit v1.3 From 132d5822b0651bd0f192388693cb22263e68ddf5 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 19 Feb 2013 18:19:50 -0500 Subject: Fixed #19728 - Updated API stability doc to reflect current meaning of "stable". --- docs/misc/api-stability.txt | 101 ++++---------------------------------------- 1 file changed, 8 insertions(+), 93 deletions(-) (limited to 'docs') diff --git a/docs/misc/api-stability.txt b/docs/misc/api-stability.txt index 3c265be04f..8517866769 100644 --- a/docs/misc/api-stability.txt +++ b/docs/misc/api-stability.txt @@ -4,17 +4,19 @@ API stability :doc:`The release of Django 1.0 ` comes with a promise of API stability and forwards-compatibility. In a nutshell, this means that code you -develop against Django 1.0 will continue to work against 1.1 unchanged, and you -should need to make only minor changes for any 1.X release. +develop against a 1.X version of Django will continue to work with future +1.X releases. You may need to make minor changes when upgrading the version of +Django your project uses: see the "Backwards incompatible changes" section of +the :doc:`release note ` for the version or versions to which +you are upgrading. What "stable" means =================== In this context, stable means: -- All the public APIs -- everything documented in the linked documents below, - and all methods that don't begin with an underscore -- will not be moved or - renamed without providing backwards-compatible aliases. +- All the public APIs (everything in this documentation) will not be moved + or renamed without providing backwards-compatible aliases. - If new features are added to these APIs -- which is quite possible -- they will not break or change the meaning of existing methods. In other @@ -35,77 +37,7 @@ Stable APIs =========== In general, everything covered in the documentation -- with the exception of -anything in the :doc:`internals area ` is considered stable as -of 1.0. This includes these APIs: - -- :doc:`Authorization ` - -- :doc:`Caching `. - -- :doc:`Model definition, managers, querying and transactions - ` - -- :doc:`Sending email `. - -- :doc:`File handling and storage ` - -- :doc:`Forms ` - -- :doc:`HTTP request/response handling `, including file - uploads, middleware, sessions, URL resolution, view, and shortcut APIs. - -- :doc:`Generic views `. - -- :doc:`Internationalization `. - -- :doc:`Pagination ` - -- :doc:`Serialization ` - -- :doc:`Signals ` - -- :doc:`Templates `, including the language, Python-level - :doc:`template APIs `, and :doc:`custom template tags - and libraries `. We may add new template - tags in the future and the names may inadvertently clash with - external template tags. Before adding any such tags, we'll ensure that - Django raises an error if it tries to load tags with duplicate names. - -- :doc:`Testing ` - -- :doc:`django-admin utility `. - -- :doc:`Built-in middleware ` - -- :doc:`Request/response objects `. - -- :doc:`Settings `. Note, though that while the :doc:`list of - built-in settings ` can be considered complete we may -- and - probably will -- add new settings in future versions. This is one of those - places where "'stable' does not mean 'complete.'" - -- :doc:`Built-in signals `. Like settings, we'll probably add - new signals in the future, but the existing ones won't break. - -- :doc:`Unicode handling `. - -- Everything covered by the :doc:`HOWTO guides `. - -``django.utils`` ----------------- - -Most of the modules in ``django.utils`` are designed for internal use. Only -the following parts of :doc:`django.utils ` can be considered stable: - -- ``django.utils.cache`` -- ``django.utils.datastructures.SortedDict`` -- only this single class; the - rest of the module is for internal use. -- ``django.utils.encoding`` -- ``django.utils.feedgenerator`` -- ``django.utils.http`` -- ``django.utils.safestring`` -- ``django.utils.translation`` -- ``django.utils.tzinfo`` +anything in the :doc:`internals area ` is considered stable. Exceptions ========== @@ -121,23 +53,6 @@ If we become aware of a security problem -- hopefully by someone following our everything necessary to fix it. This might mean breaking backwards compatibility; security trumps the compatibility guarantee. -Contributed applications (``django.contrib``) ---------------------------------------------- - -While we'll make every effort to keep these APIs stable -- and have no plans to -break any contrib apps -- this is an area that will have more flux between -releases. As the Web evolves, Django must evolve with it. - -However, any changes to contrib apps will come with an important guarantee: -we'll make sure it's always possible to use an older version of a contrib app if -we need to make changes. Thus, if Django 1.5 ships with a backwards-incompatible -``django.contrib.flatpages``, we'll make sure you can still use the Django 1.4 -version alongside Django 1.5. This will continue to allow for easy upgrades. - -Historically, apps in ``django.contrib`` have been more stable than the core, so -in practice we probably won't have to ever make this exception. However, it's -worth noting if you're building apps that depend on ``django.contrib``. - APIs marked as internal ----------------------- -- cgit v1.3 From b55cde054ee7dd22f93c3522a8ddb1d04193bcac Mon Sep 17 00:00:00 2001 From: Alex Gaynor Date: Wed, 20 Feb 2013 11:27:32 -0800 Subject: Added a db_constraint option to ForeignKeys. This controls whether or not a database level cosntraint is created. This is useful in a few specialized circumstances, but in general should not be used! --- django/db/backends/creation.py | 2 +- django/db/models/fields/related.py | 8 +++++--- docs/ref/models/fields.txt | 13 +++++++++++++ docs/releases/1.6.txt | 3 +++ tests/regressiontests/backends/models.py | 15 ++++++++++++++- tests/regressiontests/backends/tests.py | 24 +++++++++++++++++++++--- 6 files changed, 57 insertions(+), 8 deletions(-) (limited to 'docs') diff --git a/django/db/backends/creation.py b/django/db/backends/creation.py index 0afe66ba1c..89ff1170dc 100644 --- a/django/db/backends/creation.py +++ b/django/db/backends/creation.py @@ -77,7 +77,7 @@ class BaseDatabaseCreation(object): tablespace, inline=True) if tablespace_sql: field_output.append(tablespace_sql) - if f.rel: + if f.rel and f.db_constraint: ref_output, pending = self.sql_for_inline_foreign_key_references( model, f, known_models, style) if pending: diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py index bd2e288410..804dda5817 100644 --- a/django/db/models/fields/related.py +++ b/django/db/models/fields/related.py @@ -981,9 +981,10 @@ class ForeignKey(RelatedField, Field): } description = _("Foreign Key (type determined by related field)") - def __init__(self, to, to_field=None, rel_class=ManyToOneRel, **kwargs): + def __init__(self, to, to_field=None, rel_class=ManyToOneRel, + db_constraint=True, **kwargs): try: - to_name = to._meta.model_name + to._meta.model_name except AttributeError: # to._meta doesn't exist, so it must be RECURSIVE_RELATIONSHIP_CONSTANT assert isinstance(to, six.string_types), "%s(%r) is invalid. First parameter to ForeignKey must be either a model, a model name, or the string %r" % (self.__class__.__name__, to, RECURSIVE_RELATIONSHIP_CONSTANT) else: @@ -997,13 +998,14 @@ class ForeignKey(RelatedField, Field): if 'db_index' not in kwargs: kwargs['db_index'] = True + self.db_constraint = db_constraint kwargs['rel'] = rel_class(to, to_field, related_name=kwargs.pop('related_name', None), limit_choices_to=kwargs.pop('limit_choices_to', None), parent_link=kwargs.pop('parent_link', False), on_delete=kwargs.pop('on_delete', CASCADE), ) - Field.__init__(self, **kwargs) + super(ForeignKey, self).__init__(**kwargs) def get_path_info(self): """ diff --git a/docs/ref/models/fields.txt b/docs/ref/models/fields.txt index 33ee05dd85..a4ae66d492 100644 --- a/docs/ref/models/fields.txt +++ b/docs/ref/models/fields.txt @@ -1051,6 +1051,19 @@ define the details of how the relation works. The field on the related object that the relation is to. By default, Django uses the primary key of the related object. +.. attribute:: ForeignKey.db_constraint + + Controls whether or not a constraint should be created in the database for + this foreign key. The default is ``True``, and that's almost certainly what + you want; setting this to ``False`` can be very bad for data integrity. + That said, here are some scenarios where you might want to do this: + + * You have legacy data that is not valid. + * You're sharding your database. + + If you use this, accessing a related object that doesn't exist will raise + its ``DoesNotExist`` exception. + .. attribute:: ForeignKey.on_delete When an object referenced by a :class:`ForeignKey` is deleted, Django by diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 9594481b9f..8f1a4f375e 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -85,6 +85,9 @@ Minor features :class:`~django.http.HttpResponsePermanentRedirect` now provide an ``url`` attribute (equivalent to the URL the response will redirect to). +* Added the :attr:`django.db.models.ForeignKey.db_constraint` + option. + Backwards incompatible changes in 1.6 ===================================== diff --git a/tests/regressiontests/backends/models.py b/tests/regressiontests/backends/models.py index a92aa71e17..5876cbe52d 100644 --- a/tests/regressiontests/backends/models.py +++ b/tests/regressiontests/backends/models.py @@ -39,7 +39,7 @@ if connection.features.supports_long_model_names: verbose_name = 'model_with_long_table_name' primary_key_is_quite_long_zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz = models.AutoField(primary_key=True) charfield_is_quite_long_zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz = models.CharField(max_length=100) - m2m_also_quite_long_zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz = models.ManyToManyField(Person,blank=True) + m2m_also_quite_long_zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz = models.ManyToManyField(Person, blank=True) class Tag(models.Model): @@ -86,3 +86,16 @@ class Item(models.Model): def __str__(self): return self.name + + +@python_2_unicode_compatible +class Object(models.Model): + pass + + +@python_2_unicode_compatible +class ObjectReference(models.Model): + obj = models.ForeignKey(Object, db_constraint=False) + + def __str__(self): + return str(self.obj_id) diff --git a/tests/regressiontests/backends/tests.py b/tests/regressiontests/backends/tests.py index ed6f07691a..0e1700b36e 100644 --- a/tests/regressiontests/backends/tests.py +++ b/tests/regressiontests/backends/tests.py @@ -7,13 +7,12 @@ import threading from django.conf import settings from django.core.management.color import no_style -from django.core.exceptions import ImproperlyConfigured from django.db import (backend, connection, connections, DEFAULT_DB_ALIAS, IntegrityError, transaction) from django.db.backends.signals import connection_created from django.db.backends.postgresql_psycopg2 import version as pg_version -from django.db.models import fields, Sum, Avg, Variance, StdDev -from django.db.utils import ConnectionHandler, DatabaseError, load_backend +from django.db.models import Sum, Avg, Variance, StdDev +from django.db.utils import ConnectionHandler, DatabaseError from django.test import (TestCase, skipUnlessDBFeature, skipIfDBFeature, TransactionTestCase) from django.test.utils import override_settings, str_prefix @@ -724,3 +723,22 @@ class MySQLPKZeroTests(TestCase): def test_zero_as_autoval(self): with self.assertRaises(ValueError): models.Square.objects.create(id=0, root=0, square=1) + + +class DBConstraintTestCase(TransactionTestCase): + def test_can_reference_existant(self): + obj = models.Object.objects.create() + ref = models.ObjectReference.objects.create(obj=obj) + self.assertEqual(ref.obj, obj) + + ref = models.ObjectReference.objects.get(obj=obj) + self.assertEqual(ref.obj, obj) + + def test_can_reference_non_existant(self): + self.assertFalse(models.Object.objects.filter(id=12345).exists()) + ref = models.ObjectReference.objects.create(obj_id=12345) + ref_new = models.ObjectReference.objects.get(obj_id=12345) + self.assertEqual(ref, ref_new) + + with self.assertRaises(models.Object.DoesNotExist): + ref.obj -- cgit v1.3 From 4e36e0a8b34e5ac58a6b3c1444a999d9b257203b Mon Sep 17 00:00:00 2001 From: Alex Gaynor Date: Wed, 20 Feb 2013 13:08:33 -0800 Subject: Clarified the language used in the documentation. Thanks to Mike Smith for the report. --- docs/ref/models/fields.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/ref/models/fields.txt b/docs/ref/models/fields.txt index a4ae66d492..1a0f93cf9d 100644 --- a/docs/ref/models/fields.txt +++ b/docs/ref/models/fields.txt @@ -1061,8 +1061,8 @@ define the details of how the relation works. * You have legacy data that is not valid. * You're sharding your database. - If you use this, accessing a related object that doesn't exist will raise - its ``DoesNotExist`` exception. + If this is set to ``False``, accessing a related object that doesn't exist + will raise its ``DoesNotExist`` exception. .. attribute:: ForeignKey.on_delete -- cgit v1.3 From 649118961ce3952138536235fc842921e39bfa33 Mon Sep 17 00:00:00 2001 From: Preston Holmes Date: Wed, 20 Feb 2013 15:32:35 -0800 Subject: Fixed #19868 -- Clarified purpose of custom user example --- docs/topics/auth/customizing.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/topics/auth/customizing.txt b/docs/topics/auth/customizing.txt index 2e7bf2e3db..c5d9e4ff7b 100644 --- a/docs/topics/auth/customizing.txt +++ b/docs/topics/auth/customizing.txt @@ -904,7 +904,9 @@ Here is an example of an admin-compliant custom user app. This user model uses an email address as the username, and has a required date of birth; it provides no permission checking, beyond a simple `admin` flag on the user account. This model would be compatible with all the built-in auth forms and -views, except for the User creation forms. +views, except for the User creation forms. This example illustrates how most of +the components work together, but is not intended to be copied directly into +projects for production use. This code would all live in a ``models.py`` file for a custom authentication app:: -- cgit v1.3 From 60fff6fc9496c7c851182dd6ebac10bb011be2ba Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Fri, 22 Feb 2013 21:52:20 +0100 Subject: Documented jQuery upgrade Refs #14571. --- docs/ref/contrib/admin/index.txt | 5 ++++- docs/releases/1.6.txt | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/ref/contrib/admin/index.txt b/docs/ref/contrib/admin/index.txt index cbf7d4215b..c93c974a49 100644 --- a/docs/ref/contrib/admin/index.txt +++ b/docs/ref/contrib/admin/index.txt @@ -1420,10 +1420,13 @@ jQuery Django admin Javascript makes use of the `jQuery`_ library. To avoid conflicts with user-supplied scripts or libraries, Django's jQuery -(version 1.4.2) is namespaced as ``django.jQuery``. If you want to use jQuery +(version 1.9.1) is namespaced as ``django.jQuery``. If you want to use jQuery in your own admin JavaScript without including a second copy, you can use the ``django.jQuery`` object on changelist and add/edit views. +.. versionchanged:: 1.6 + The embedded jQuery has been upgraded from 1.4.2 to 1.9.1. + The :class:`ModelAdmin` class requires jQuery by default, so there is no need to add jQuery to your ``ModelAdmin``'s list of media resources unless you have a specifc need. For example, if you require the jQuery library to be in the diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 8f1a4f375e..d7b1547a91 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -88,6 +88,8 @@ Minor features * Added the :attr:`django.db.models.ForeignKey.db_constraint` option. +* The jQuery library embedded in the admin has been upgraded to version 1.9.1. + Backwards incompatible changes in 1.6 ===================================== -- cgit v1.3 From 7ec2a21be15af5b2c7513482c3bcfdd1e12782ed Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Sat, 23 Feb 2013 09:45:56 +0100 Subject: Fixed #19686 -- Added HTML5 number input type Thanks Simon Charette for his help on the patch. Refs #16630. --- django/forms/fields.py | 45 ++++++++++++++----- django/forms/widgets.py | 6 ++- docs/ref/forms/fields.txt | 9 ++-- docs/ref/forms/widgets.txt | 13 ++++++ docs/releases/1.6.txt | 13 ++++-- docs/topics/forms/formsets.txt | 6 +-- tests/modeltests/model_forms/tests.py | 4 +- tests/modeltests/model_formsets/tests.py | 17 ++++---- tests/regressiontests/forms/tests/fields.py | 33 +++++++++++++- tests/regressiontests/forms/tests/forms.py | 6 +-- tests/regressiontests/forms/tests/formsets.py | 62 +++++++++++++-------------- tests/regressiontests/i18n/tests.py | 1 + 12 files changed, 148 insertions(+), 67 deletions(-) (limited to 'docs') diff --git a/django/forms/fields.py b/django/forms/fields.py index c547d1456c..621d3801f2 100644 --- a/django/forms/fields.py +++ b/django/forms/fields.py @@ -19,7 +19,7 @@ from django.core import validators from django.core.exceptions import ValidationError from django.forms.util import ErrorList, from_current_timezone, to_current_timezone from django.forms.widgets import ( - TextInput, PasswordInput, EmailInput, URLInput, HiddenInput, + TextInput, NumberInput, EmailInput, URLInput, HiddenInput, MultipleHiddenInput, ClearableFileInput, CheckboxInput, Select, NullBooleanSelect, SelectMultiple, DateInput, DateTimeInput, TimeInput, SplitDateTimeWidget, SplitHiddenDateTimeWidget, FILE_INPUT_CONTRADICTION @@ -234,6 +234,7 @@ class IntegerField(Field): def __init__(self, max_value=None, min_value=None, *args, **kwargs): self.max_value, self.min_value = max_value, min_value + kwargs.setdefault('widget', NumberInput if not kwargs.get('localize') else self.widget) super(IntegerField, self).__init__(*args, **kwargs) if max_value is not None: @@ -257,6 +258,16 @@ class IntegerField(Field): raise ValidationError(self.error_messages['invalid']) return value + def widget_attrs(self, widget): + attrs = super(IntegerField, self).widget_attrs(widget) + if isinstance(widget, NumberInput): + if self.min_value is not None: + attrs['min'] = self.min_value + if self.max_value is not None: + attrs['max'] = self.max_value + return attrs + + class FloatField(IntegerField): default_error_messages = { 'invalid': _('Enter a number.'), @@ -278,25 +289,24 @@ class FloatField(IntegerField): raise ValidationError(self.error_messages['invalid']) return value -class DecimalField(Field): + def widget_attrs(self, widget): + attrs = super(FloatField, self).widget_attrs(widget) + if isinstance(widget, NumberInput): + attrs.setdefault('step', 'any') + return attrs + + +class DecimalField(IntegerField): default_error_messages = { 'invalid': _('Enter a number.'), - 'max_value': _('Ensure this value is less than or equal to %(limit_value)s.'), - 'min_value': _('Ensure this value is greater than or equal to %(limit_value)s.'), 'max_digits': _('Ensure that there are no more than %s digits in total.'), 'max_decimal_places': _('Ensure that there are no more than %s decimal places.'), 'max_whole_digits': _('Ensure that there are no more than %s digits before the decimal point.') } def __init__(self, max_value=None, min_value=None, max_digits=None, decimal_places=None, *args, **kwargs): - self.max_value, self.min_value = max_value, min_value self.max_digits, self.decimal_places = max_digits, decimal_places - Field.__init__(self, *args, **kwargs) - - if max_value is not None: - self.validators.append(validators.MaxValueValidator(max_value)) - if min_value is not None: - self.validators.append(validators.MinValueValidator(min_value)) + super(DecimalField, self).__init__(max_value, min_value, *args, **kwargs) def to_python(self, value): """ @@ -345,6 +355,19 @@ class DecimalField(Field): raise ValidationError(self.error_messages['max_whole_digits'] % (self.max_digits - self.decimal_places)) return value + def widget_attrs(self, widget): + attrs = super(DecimalField, self).widget_attrs(widget) + if isinstance(widget, NumberInput): + if self.max_digits is not None: + max_length = self.max_digits + 1 # for the sign + if self.decimal_places is None or self.decimal_places > 0: + max_length += 1 # for the dot + attrs['maxlength'] = max_length + if self.decimal_places: + attrs['step'] = '0.%s1' % ('0' * (self.decimal_places-1)) + return attrs + + class BaseTemporalField(Field): def __init__(self, input_formats=None, *args, **kwargs): diff --git a/django/forms/widgets.py b/django/forms/widgets.py index e906ed5bc6..026e8dc36a 100644 --- a/django/forms/widgets.py +++ b/django/forms/widgets.py @@ -23,7 +23,7 @@ from django.utils import datetime_safe, formats, six __all__ = ( 'Media', 'MediaDefiningClass', 'Widget', 'TextInput', - 'EmailInput', 'URLInput', 'PasswordInput', + 'EmailInput', 'URLInput', 'NumberInput', 'PasswordInput', 'HiddenInput', 'MultipleHiddenInput', 'ClearableFileInput', 'FileInput', 'DateInput', 'DateTimeInput', 'TimeInput', 'Textarea', 'CheckboxInput', 'Select', 'NullBooleanSelect', 'SelectMultiple', 'RadioSelect', @@ -252,6 +252,10 @@ class TextInput(Input): super(TextInput, self).__init__(attrs) +class NumberInput(TextInput): + input_type = 'number' + + class EmailInput(TextInput): input_type = 'email' diff --git a/docs/ref/forms/fields.txt b/docs/ref/forms/fields.txt index 2e4e779f0c..85650adcf4 100644 --- a/docs/ref/forms/fields.txt +++ b/docs/ref/forms/fields.txt @@ -454,7 +454,8 @@ For each field, we describe the default widget used if you don't specify .. class:: DecimalField(**kwargs) - * Default widget: :class:`TextInput` + * Default widget: :class:`NumberInput` when :attr:`Field.localize` is + ``False``, else :class:`TextInput`. * Empty value: ``None`` * Normalizes to: A Python ``decimal``. * Validates that the given value is a decimal. Leading and trailing @@ -580,7 +581,8 @@ For each field, we describe the default widget used if you don't specify .. class:: FloatField(**kwargs) - * Default widget: :class:`TextInput` + * Default widget: :class:`NumberInput` when :attr:`Field.localize` is + ``False``, else :class:`TextInput`. * Empty value: ``None`` * Normalizes to: A Python float. * Validates that the given value is an float. Leading and trailing @@ -621,7 +623,8 @@ For each field, we describe the default widget used if you don't specify .. class:: IntegerField(**kwargs) - * Default widget: :class:`TextInput` + * Default widget: :class:`NumberInput` when :attr:`Field.localize` is + ``False``, else :class:`TextInput`. * Empty value: ``None`` * Normalizes to: A Python integer or long integer. * Validates that the given value is an integer. Leading and trailing diff --git a/docs/ref/forms/widgets.txt b/docs/ref/forms/widgets.txt index 970901a9ae..7218e41082 100644 --- a/docs/ref/forms/widgets.txt +++ b/docs/ref/forms/widgets.txt @@ -389,6 +389,19 @@ These widgets make use of the HTML elements ``input`` and ``textarea``. Text input: ```` +``NumberInput`` +~~~~~~~~~~~~~~~ + +.. class:: NumberInput + + .. versionadded:: 1.6 + + Text input: ```` + + Beware that not all browsers support entering localized numbers in + ``number`` input types. Django itself avoids using them for fields having + their :attr:`~django.forms.Field.localize` property to ``True``. + ``EmailInput`` ~~~~~~~~~~~~~~ diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index d7b1547a91..67c032a362 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -60,9 +60,13 @@ Minor features * In addition to :lookup:`year`, :lookup:`month` and :lookup:`day`, the ORM now supports :lookup:`hour`, :lookup:`minute` and :lookup:`second` lookups. -* The default widgets for :class:`~django.forms.EmailField` and - :class:`~django.forms.URLField` use the new type attributes available in - HTML5 (type='email', type='url'). +* The default widgets for :class:`~django.forms.EmailField`, + :class:`~django.forms.URLField`, :class:`~django.forms.IntegerField`, + :class:`~django.forms.FloatField` and :class:`~django.forms.DecimalField` use + the new type attributes available in HTML5 (type='email', type='url', + type='number'). Note that due to erratic support of the ``number`` input type + with localized numbers in current browsers, Django only uses it when numeric + fields are not localized. * The ``number`` argument for :ref:`lazy plural translations ` can be provided at translation time rather than @@ -122,7 +126,8 @@ Backwards incompatible changes in 1.6 * If your CSS/Javascript code used to access HTML input widgets by type, you should review it as ``type='text'`` widgets might be now output as - ``type='email'`` or ``type='url'`` depending on their corresponding field type. + ``type='email'``, ``type='url'`` or ``type='number'`` depending on their + corresponding field type. * Extraction of translatable literals from templates with the :djadmin:`makemessages` command now correctly detects i18n constructs when diff --git a/docs/topics/forms/formsets.txt b/docs/topics/forms/formsets.txt index d2d102b5d6..2534947dd3 100644 --- a/docs/topics/forms/formsets.txt +++ b/docs/topics/forms/formsets.txt @@ -273,13 +273,13 @@ Lets you create a formset with the ability to order:: ... print(form.as_table()) - + - + - + This adds an additional field to each form. This new field is named ``ORDER`` and is an ``forms.IntegerField``. For the forms that came from the initial diff --git a/tests/modeltests/model_forms/tests.py b/tests/modeltests/model_forms/tests.py index 6ecd1278dd..fb400375b8 100644 --- a/tests/modeltests/model_forms/tests.py +++ b/tests/modeltests/model_forms/tests.py @@ -1133,7 +1133,7 @@ class OldFormForXTests(TestCase):

    -

    ''' % (w_woodward.pk, w_bernstein.pk, bw.pk, w_royko.pk)) +

    ''' % (w_woodward.pk, w_bernstein.pk, bw.pk, w_royko.pk)) data = { 'writer': six.text_type(w_woodward.pk), @@ -1151,7 +1151,7 @@ class OldFormForXTests(TestCase):

    -

    ''' % (w_woodward.pk, w_bernstein.pk, bw.pk, w_royko.pk)) +

    ''' % (w_woodward.pk, w_bernstein.pk, bw.pk, w_royko.pk)) def test_file_field(self): # Test conditions when files is either not given or empty. diff --git a/tests/modeltests/model_formsets/tests.py b/tests/modeltests/model_formsets/tests.py index 50ee3c73fb..037163b741 100644 --- a/tests/modeltests/model_formsets/tests.py +++ b/tests/modeltests/model_formsets/tests.py @@ -392,7 +392,7 @@ class ModelFormsetTest(TestCase): self.assertEqual(len(formset.forms), 1) self.assertHTMLEqual(formset.forms[0].as_p(), '

    \n' - '

    ') + '

    ') data = { 'form-TOTAL_FORMS': '1', # the number of forms rendered @@ -415,10 +415,10 @@ class ModelFormsetTest(TestCase): self.assertEqual(len(formset.forms), 2) self.assertHTMLEqual(formset.forms[0].as_p(), '

    \n' - '

    ' % hemingway_id) + '

    ' % hemingway_id) self.assertHTMLEqual(formset.forms[1].as_p(), '

    \n' - '

    ') + '

    ') data = { 'form-TOTAL_FORMS': '2', # the number of forms rendered @@ -551,6 +551,7 @@ class ModelFormsetTest(TestCase): def test_inline_formsets_with_custom_pk(self): # Test inline formsets where the inline-edited object has a custom # primary key that is not the fk to the parent object. + self.maxDiff = 1024 AuthorBooksFormSet2 = inlineformset_factory(Author, BookWithCustomPK, can_delete=False, extra=1) author = Author.objects.create(pk=1, name='Charles Baudelaire') @@ -558,7 +559,7 @@ class ModelFormsetTest(TestCase): formset = AuthorBooksFormSet2(instance=author) self.assertEqual(len(formset.forms), 1) self.assertHTMLEqual(formset.forms[0].as_p(), - '

    \n' + '

    \n' '

    ') data = { @@ -806,7 +807,7 @@ class ModelFormsetTest(TestCase): '\n' '\n' '

    \n' - '

    ' + '

    ' % (owner1.auto_id, owner2.auto_id)) owner1 = Owner.objects.get(name='Joe Perry') @@ -816,7 +817,7 @@ class ModelFormsetTest(TestCase): formset = FormSet(instance=owner1) self.assertEqual(len(formset.forms), 1) self.assertHTMLEqual(formset.forms[0].as_p(), - '

    ' + '

    ' % owner1.auto_id) data = { @@ -837,7 +838,7 @@ class ModelFormsetTest(TestCase): formset = FormSet(instance=owner1) self.assertEqual(len(formset.forms), 1) self.assertHTMLEqual(formset.forms[0].as_p(), - '

    ' + '

    ' % owner1.auto_id) data = { @@ -993,7 +994,7 @@ class ModelFormsetTest(TestCase): result = re.sub(r'\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)?', '__DATETIME__', result) self.assertHTMLEqual(result, '

    \n' - '

    ' + '

    ' % person.id) # test for validation with callable defaults. Validations rely on hidden fields diff --git a/tests/regressiontests/forms/tests/fields.py b/tests/regressiontests/forms/tests/fields.py index fc7fc70da4..3fe2cd2ace 100644 --- a/tests/regressiontests/forms/tests/fields.py +++ b/tests/regressiontests/forms/tests/fields.py @@ -35,7 +35,6 @@ from decimal import Decimal from django.core.files.uploadedfile import SimpleUploadedFile from django.forms import * from django.test import SimpleTestCase -from django.utils import formats from django.utils import six from django.utils._os import upath @@ -131,6 +130,7 @@ class FieldsTests(SimpleTestCase): def test_integerfield_1(self): f = IntegerField() + self.assertWidgetRendersTo(f, '') self.assertRaisesMessage(ValidationError, "'This field is required.'", f.clean, '') self.assertRaisesMessage(ValidationError, "'This field is required.'", f.clean, None) self.assertEqual(1, f.clean('1')) @@ -165,6 +165,7 @@ class FieldsTests(SimpleTestCase): def test_integerfield_3(self): f = IntegerField(max_value=10) + self.assertWidgetRendersTo(f, '') self.assertRaisesMessage(ValidationError, "'This field is required.'", f.clean, None) self.assertEqual(1, f.clean(1)) self.assertEqual(10, f.clean(10)) @@ -176,6 +177,7 @@ class FieldsTests(SimpleTestCase): def test_integerfield_4(self): f = IntegerField(min_value=10) + self.assertWidgetRendersTo(f, '') self.assertRaisesMessage(ValidationError, "'This field is required.'", f.clean, None) self.assertRaisesMessage(ValidationError, "'Ensure this value is greater than or equal to 10.'", f.clean, 1) self.assertEqual(10, f.clean(10)) @@ -187,6 +189,7 @@ class FieldsTests(SimpleTestCase): def test_integerfield_5(self): f = IntegerField(min_value=10, max_value=20) + self.assertWidgetRendersTo(f, '') self.assertRaisesMessage(ValidationError, "'This field is required.'", f.clean, None) self.assertRaisesMessage(ValidationError, "'Ensure this value is greater than or equal to 10.'", f.clean, 1) self.assertEqual(10, f.clean(10)) @@ -198,10 +201,19 @@ class FieldsTests(SimpleTestCase): self.assertEqual(f.max_value, 20) self.assertEqual(f.min_value, 10) + def test_integerfield_localized(self): + """ + Make sure localized IntegerField's widget renders to a text input with + no number input specific attributes. + """ + f1 = IntegerField(localize=True) + self.assertWidgetRendersTo(f1, '') + # FloatField ################################################################## def test_floatfield_1(self): f = FloatField() + self.assertWidgetRendersTo(f, '') self.assertRaisesMessage(ValidationError, "'This field is required.'", f.clean, '') self.assertRaisesMessage(ValidationError, "'This field is required.'", f.clean, None) self.assertEqual(1.0, f.clean('1')) @@ -228,6 +240,7 @@ class FieldsTests(SimpleTestCase): def test_floatfield_3(self): f = FloatField(max_value=1.5, min_value=0.5) + self.assertWidgetRendersTo(f, '') self.assertRaisesMessage(ValidationError, "'Ensure this value is less than or equal to 1.5.'", f.clean, '1.6') self.assertRaisesMessage(ValidationError, "'Ensure this value is greater than or equal to 0.5.'", f.clean, '0.4') self.assertEqual(1.5, f.clean('1.5')) @@ -235,10 +248,19 @@ class FieldsTests(SimpleTestCase): self.assertEqual(f.max_value, 1.5) self.assertEqual(f.min_value, 0.5) + def test_floatfield_localized(self): + """ + Make sure localized FloatField's widget renders to a text input with + no number input specific attributes. + """ + f = FloatField(localize=True) + self.assertWidgetRendersTo(f, '') + # DecimalField ################################################################ def test_decimalfield_1(self): f = DecimalField(max_digits=4, decimal_places=2) + self.assertWidgetRendersTo(f, '') self.assertRaisesMessage(ValidationError, "'This field is required.'", f.clean, '') self.assertRaisesMessage(ValidationError, "'This field is required.'", f.clean, None) self.assertEqual(f.clean('1'), Decimal("1")) @@ -284,6 +306,7 @@ class FieldsTests(SimpleTestCase): def test_decimalfield_3(self): f = DecimalField(max_digits=4, decimal_places=2, max_value=Decimal('1.5'), min_value=Decimal('0.5')) + self.assertWidgetRendersTo(f, '') self.assertRaisesMessage(ValidationError, "'Ensure this value is less than or equal to 1.5.'", f.clean, '1.6') self.assertRaisesMessage(ValidationError, "'Ensure this value is greater than or equal to 0.5.'", f.clean, '0.4') self.assertEqual(f.clean('1.5'), Decimal("1.5")) @@ -315,6 +338,14 @@ class FieldsTests(SimpleTestCase): self.assertEqual(f.clean('.01'), Decimal(".01")) self.assertRaisesMessage(ValidationError, "'Ensure that there are no more than 0 digits before the decimal point.'", f.clean, '1.1') + def test_decimalfield_localized(self): + """ + Make sure localized DecimalField's widget renders to a text input with + no number input specific attributes. + """ + f = DecimalField(localize=True) + self.assertWidgetRendersTo(f, '') + # DateField ################################################################### def test_datefield_1(self): diff --git a/tests/regressiontests/forms/tests/forms.py b/tests/regressiontests/forms/tests/forms.py index f2fa78e229..f856e30d33 100644 --- a/tests/regressiontests/forms/tests/forms.py +++ b/tests/regressiontests/forms/tests/forms.py @@ -1740,7 +1740,7 @@ class FormsTestCase(TestCase):
  • -
    • This field is required.
  • """) +
    • This field is required.
  • """) self.assertHTMLEqual(p.as_p(), """
    • This field is required.

    @@ -1751,7 +1751,7 @@ class FormsTestCase(TestCase):

    • This field is required.
    -

    """) +

    """) self.assertHTMLEqual(p.as_table(), """
    • This field is required.
    -
    • This field is required.
    """) +
    • This field is required.
    """) def test_label_split_datetime_not_displayed(self): class EventForm(Form): diff --git a/tests/regressiontests/forms/tests/formsets.py b/tests/regressiontests/forms/tests/formsets.py index 573a8f6a6d..2bef0c5c33 100644 --- a/tests/regressiontests/forms/tests/formsets.py +++ b/tests/regressiontests/forms/tests/formsets.py @@ -53,7 +53,7 @@ class FormsFormsetTestCase(TestCase): formset = ChoiceFormSet(auto_id=False, prefix='choices') self.assertHTMLEqual(str(formset), """ Choice: -Votes:""") +Votes:""") # On thing to note is that there needs to be a special value in the data. This # value tells the FormSet how many forms were displayed so it can tell how @@ -137,9 +137,9 @@ class FormsFormsetTestCase(TestCase): form_output.append(form.as_ul()) self.assertHTMLEqual('\n'.join(form_output), """
  • Choice:
  • -
  • Votes:
  • +
  • Votes:
  • Choice:
  • -
  • Votes:
  • """) +
  • Votes:
  • """) # Let's simulate what would happen if we submitted this form. @@ -210,11 +210,11 @@ class FormsFormsetTestCase(TestCase): form_output.append(form.as_ul()) self.assertHTMLEqual('\n'.join(form_output), """
  • Choice:
  • -
  • Votes:
  • +
  • Votes:
  • Choice:
  • -
  • Votes:
  • +
  • Votes:
  • Choice:
  • -
  • Votes:
  • """) +
  • Votes:
  • """) # Since we displayed every form as blank, we will also accept them back as blank. # This may seem a little strange, but later we will show how to require a minimum @@ -301,19 +301,19 @@ class FormsFormsetTestCase(TestCase): form_output.append(form.as_ul()) self.assertHTMLEqual('\n'.join(form_output), """
  • Choice:
  • -
  • Votes:
  • +
  • Votes:
  • Choice:
  • -
  • Votes:
  • +
  • Votes:
  • Choice:
  • -
  • Votes:
  • +
  • Votes:
  • Choice:
  • -
  • Votes:
  • """) +
  • Votes:
  • """) # Make sure retrieving an empty form works, and it shows up in the form list self.assertTrue(formset.empty_form.empty_permitted) self.assertHTMLEqual(formset.empty_form.as_ul(), """
  • Choice:
  • -
  • Votes:
  • """) +
  • Votes:
  • """) def test_formset_with_deletion(self): # FormSets with deletion ###################################################### @@ -331,13 +331,13 @@ class FormsFormsetTestCase(TestCase): form_output.append(form.as_ul()) self.assertHTMLEqual('\n'.join(form_output), """
  • Choice:
  • -
  • Votes:
  • +
  • Votes:
  • Delete:
  • Choice:
  • -
  • Votes:
  • +
  • Votes:
  • Delete:
  • Choice:
  • -
  • Votes:
  • +
  • Votes:
  • Delete:
  • """) # To delete something, we just need to set that form's special delete field to @@ -428,14 +428,14 @@ class FormsFormsetTestCase(TestCase): form_output.append(form.as_ul()) self.assertHTMLEqual('\n'.join(form_output), """
  • Choice:
  • -
  • Votes:
  • -
  • Order:
  • +
  • Votes:
  • +
  • Order:
  • Choice:
  • -
  • Votes:
  • -
  • Order:
  • +
  • Votes:
  • +
  • Order:
  • Choice:
  • -
  • Votes:
  • -
  • Order:
  • """) +
  • Votes:
  • +
  • Order:
  • """) data = { 'choices-TOTAL_FORMS': '3', # the number of forms rendered @@ -539,20 +539,20 @@ class FormsFormsetTestCase(TestCase): form_output.append(form.as_ul()) self.assertHTMLEqual('\n'.join(form_output), """
  • Choice:
  • -
  • Votes:
  • -
  • Order:
  • +
  • Votes:
  • +
  • Order:
  • Delete:
  • Choice:
  • -
  • Votes:
  • -
  • Order:
  • +
  • Votes:
  • +
  • Order:
  • Delete:
  • Choice:
  • -
  • Votes:
  • -
  • Order:
  • +
  • Votes:
  • +
  • Order:
  • Delete:
  • Choice:
  • -
  • Votes:
  • -
  • Order:
  • +
  • Votes:
  • +
  • Order:
  • Delete:
  • """) # Let's delete Fergie, and put The Decemberists ahead of Calexico. @@ -956,19 +956,19 @@ class FormsetAsFooTests(TestCase): formset = ChoiceFormSet(data, auto_id=False, prefix='choices') self.assertHTMLEqual(formset.as_table(),""" Choice: -Votes:""") +Votes:""") def test_as_p(self): formset = ChoiceFormSet(data, auto_id=False, prefix='choices') self.assertHTMLEqual(formset.as_p(),"""

    Choice:

    -

    Votes:

    """) +

    Votes:

    """) def test_as_ul(self): formset = ChoiceFormSet(data, auto_id=False, prefix='choices') self.assertHTMLEqual(formset.as_ul(),"""
  • Choice:
  • -
  • Votes:
  • """) +
  • Votes:
  • """) # Regression test for #11418 ################################################# diff --git a/tests/regressiontests/i18n/tests.py b/tests/regressiontests/i18n/tests.py index 45d49d5766..3fcb60c3b7 100644 --- a/tests/regressiontests/i18n/tests.py +++ b/tests/regressiontests/i18n/tests.py @@ -651,6 +651,7 @@ class FormattingTests(TestCase): """ Tests if form input is correctly localized """ + self.maxDiff = 1200 with translation.override('de-at', deactivate=True): form6 = CompanyForm({ 'name': 'acme', -- cgit v1.3 From 48a9194755a291441c26acbcd6b6c703c40e5f38 Mon Sep 17 00:00:00 2001 From: Evrim Çabuk Date: Sat, 23 Feb 2013 11:53:10 +0200 Subject: Remove the exact Postgresql version number from gis install documentation ref #19752 --- docs/ref/contrib/gis/install/index.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/ref/contrib/gis/install/index.txt b/docs/ref/contrib/gis/install/index.txt index 5273b5e630..1f4d3e1b66 100644 --- a/docs/ref/contrib/gis/install/index.txt +++ b/docs/ref/contrib/gis/install/index.txt @@ -415,7 +415,7 @@ __ http://python.org/download/ PostgreSQL ^^^^^^^^^^ -First, download the latest `PostgreSQL 9.0 installer`__ from the +First, download the latest `PostgreSQL installer`__ from the `EnterpriseDB`__ Web site. After downloading, simply run the installer, follow the on-screen directions, and keep the default options unless you know the consequences of changing them. -- cgit v1.3 From 2f4a4703e1931fadf5ed81387b26cf84caf5bef9 Mon Sep 17 00:00:00 2001 From: Horst Gutmann Date: Sat, 23 Feb 2013 13:39:21 +0100 Subject: Fixed #19758 -- Avoided leaking email existence through the password reset form. --- .../registration/password_reset_done.html | 4 ++- django/contrib/auth/forms.py | 32 ++++++---------------- django/contrib/auth/tests/forms.py | 26 ++++++++++++------ django/contrib/auth/tests/views.py | 5 ++-- docs/topics/auth/default.txt | 16 ++++++++++- 5 files changed, 47 insertions(+), 36 deletions(-) (limited to 'docs') diff --git a/django/contrib/admin/templates/registration/password_reset_done.html b/django/contrib/admin/templates/registration/password_reset_done.html index 7584c8393a..98471041b5 100644 --- a/django/contrib/admin/templates/registration/password_reset_done.html +++ b/django/contrib/admin/templates/registration/password_reset_done.html @@ -14,6 +14,8 @@

    {% trans 'Password reset successful' %}

    -

    {% trans "We've emailed you instructions for setting your password to the email address you submitted. You should be receiving it shortly." %}

    +

    {% trans "We've emailed you instructions for setting your password. You should be receiving them shortly." %}

    + +

    {% trans "If you don't receive an email, please make sure you've entered the address you registered with, and check your spam folder." %}

    {% endblock %} diff --git a/django/contrib/auth/forms.py b/django/contrib/auth/forms.py index ee4fb482ce..c28971b94d 100644 --- a/django/contrib/auth/forms.py +++ b/django/contrib/auth/forms.py @@ -206,31 +206,8 @@ class AuthenticationForm(forms.Form): class PasswordResetForm(forms.Form): - error_messages = { - 'unknown': _("That email address doesn't have an associated " - "user account. Are you sure you've registered?"), - 'unusable': _("The user account associated with this email " - "address cannot reset the password."), - } email = forms.EmailField(label=_("Email"), max_length=254) - def clean_email(self): - """ - Validates that an active user exists with the given email address. - """ - UserModel = get_user_model() - email = self.cleaned_data["email"] - self.users_cache = UserModel._default_manager.filter(email__iexact=email) - if not len(self.users_cache): - raise forms.ValidationError(self.error_messages['unknown']) - if not any(user.is_active for user in self.users_cache): - # none of the filtered users are active - raise forms.ValidationError(self.error_messages['unknown']) - if any((user.password == UNUSABLE_PASSWORD) - for user in self.users_cache): - raise forms.ValidationError(self.error_messages['unusable']) - return email - def save(self, domain_override=None, subject_template_name='registration/password_reset_subject.txt', email_template_name='registration/password_reset_email.html', @@ -241,7 +218,14 @@ class PasswordResetForm(forms.Form): user. """ from django.core.mail import send_mail - for user in self.users_cache: + UserModel = get_user_model() + email = self.cleaned_data["email"] + users = UserModel._default_manager.filter(email__iexact=email) + for user in users: + # Make sure that no email is sent to a user that actually has + # a password marked as unusable + if user.password == UNUSABLE_PASSWORD: + continue if not domain_override: current_site = get_current_site(request) site_name = current_site.name diff --git a/django/contrib/auth/tests/forms.py b/django/contrib/auth/tests/forms.py index c5a3fec7ce..781b917517 100644 --- a/django/contrib/auth/tests/forms.py +++ b/django/contrib/auth/tests/forms.py @@ -326,20 +326,28 @@ class PasswordResetFormTest(TestCase): [force_text(EmailField.default_error_messages['invalid'])]) def test_nonexistant_email(self): - # Test nonexistant email address + # Test nonexistant email address. This should not fail because it would + # expose information about registered users. data = {'email': 'foo@bar.com'} form = PasswordResetForm(data) - self.assertFalse(form.is_valid()) - self.assertEqual(form.errors, - {'email': [force_text(form.error_messages['unknown'])]}) + self.assertTrue(form.is_valid()) + self.assertEquals(len(mail.outbox), 0) + @override_settings( + TEMPLATE_LOADERS=('django.template.loaders.filesystem.Loader',), + TEMPLATE_DIRS=( + os.path.join(os.path.dirname(upath(__file__)), 'templates'), + ), + ) def test_cleaned_data(self): # Regression test (user, username, email) = self.create_dummy_user() data = {'email': email} form = PasswordResetForm(data) self.assertTrue(form.is_valid()) + form.save(domain_override='example.com') self.assertEqual(form.cleaned_data['email'], email) + self.assertEqual(len(mail.outbox), 1) @override_settings( TEMPLATE_LOADERS=('django.template.loaders.filesystem.Loader',), @@ -373,7 +381,8 @@ class PasswordResetFormTest(TestCase): user.is_active = False user.save() form = PasswordResetForm({'email': email}) - self.assertFalse(form.is_valid()) + self.assertTrue(form.is_valid()) + self.assertEqual(len(mail.outbox), 0) def test_unusable_password(self): user = User.objects.create_user('testuser', 'test@example.com', 'test') @@ -383,9 +392,10 @@ class PasswordResetFormTest(TestCase): user.set_unusable_password() user.save() form = PasswordResetForm(data) - self.assertFalse(form.is_valid()) - self.assertEqual(form["email"].errors, - [_("The user account associated with this email address cannot reset the password.")]) + # The form itself is valid, but no email is sent + self.assertTrue(form.is_valid()) + form.save() + self.assertEquals(len(mail.outbox), 0) class ReadOnlyPasswordHashTest(TestCase): diff --git a/django/contrib/auth/tests/views.py b/django/contrib/auth/tests/views.py index 229e294398..b41c7198f5 100644 --- a/django/contrib/auth/tests/views.py +++ b/django/contrib/auth/tests/views.py @@ -86,11 +86,12 @@ class AuthViewNamedURLTests(AuthViewsTestCase): class PasswordResetTest(AuthViewsTestCase): def test_email_not_found(self): - "Error is raised if the provided email address isn't currently registered" + """If the provided email is not registered, don't raise any error but + also don't send any email.""" response = self.client.get('/password_reset/') self.assertEqual(response.status_code, 200) response = self.client.post('/password_reset/', {'email': 'not_a_real_email@email.com'}) - self.assertFormError(response, PasswordResetForm.error_messages['unknown']) + self.assertEqual(response.status_code, 302) self.assertEqual(len(mail.outbox), 0) def test_email_found(self): diff --git a/docs/topics/auth/default.txt b/docs/topics/auth/default.txt index 1a57770b2b..d82731f73b 100644 --- a/docs/topics/auth/default.txt +++ b/docs/topics/auth/default.txt @@ -743,10 +743,24 @@ patterns. that can be used to reset the password, and sending that link to the user's registered email address. + If the email address provided does not exist in the system, this view + won't send an email, but the user won't receive any error message either. + This prevents information leaking to potential attackers. If you want to + provide an error message in this case, you can subclass + :class:`~django.contrib.auth.forms.PasswordResetForm` and use the + ``password_reset_form`` argument. + + Users flagged with an unusable password (see :meth:`~django.contrib.auth.models.User.set_unusable_password()` aren't allowed to request a password reset to prevent misuse when using an - external authentication source like LDAP. + external authentication source like LDAP. Note that they won't receive any + error message since this would expose their account's existence but no + mail will be sent either. + + .. versionchanged:: 1.6 + Previously, error messages indicated whether a given email was + registered. **URL name:** ``password_reset`` -- cgit v1.3 From c89717fabee46d70d73308f8ba1f2510f07bd596 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sat, 23 Feb 2013 08:52:33 -0500 Subject: Fixed #17094 - Typo in class-based views doc. Thanks alej0 for the report. --- docs/ref/class-based-views/mixins-editing.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/ref/class-based-views/mixins-editing.txt b/docs/ref/class-based-views/mixins-editing.txt index 844171c93a..c2493bfc60 100644 --- a/docs/ref/class-based-views/mixins-editing.txt +++ b/docs/ref/class-based-views/mixins-editing.txt @@ -208,7 +208,7 @@ ProcessFormView example, you could use ``success_url="/parent/%(parent_id)s/"`` to redirect to a URL composed out of the ``parent_id`` field on a model. - .. method:: get_success_url(obj) + .. method:: get_success_url() Returns the url to redirect to when the nominated object has been successfully deleted. Returns -- cgit v1.3 From 1b7fb29dfb8579dc627208b8ca6500b5341489a9 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sat, 23 Feb 2013 09:19:32 -0500 Subject: Changed "mysite/mytemplates/" -> "mysite/templates" in tutorial. Thanks James Pic. --- docs/intro/reusable-apps.txt | 4 ++-- docs/intro/tutorial02.txt | 11 +++++------ docs/intro/tutorial03.txt | 2 +- 3 files changed, 8 insertions(+), 9 deletions(-) (limited to 'docs') diff --git a/docs/intro/reusable-apps.txt b/docs/intro/reusable-apps.txt index dcccd583c0..0e0c9d2ba5 100644 --- a/docs/intro/reusable-apps.txt +++ b/docs/intro/reusable-apps.txt @@ -74,11 +74,11 @@ After the previous tutorials, our project should look like this:: results.html urls.py views.py - mytemplates/ + templates/ admin/ base_site.html -You created ``mysite/mytemplates`` in :doc:`Tutorial 2 `, +You created ``mysite/templates`` in :doc:`Tutorial 2 `, and ``polls/templates`` in :doc:`Tutorial 3 `. Now perhaps it is clearer why we chose to have separate template directories for the project and application: everything that is part of the polls application is in diff --git a/docs/intro/tutorial02.txt b/docs/intro/tutorial02.txt index 966921f8a5..4382602c54 100644 --- a/docs/intro/tutorial02.txt +++ b/docs/intro/tutorial02.txt @@ -404,7 +404,7 @@ system. Customizing your *project's* templates -------------------------------------- -Create a ``mytemplates`` directory in your project directory. Templates can +Create a ``templates`` directory in your project directory. Templates can live anywhere on your filesystem that Django can access. (Django runs as whatever user your server runs.) However, keeping your templates within the project is a good convention to follow. @@ -412,13 +412,12 @@ project is a good convention to follow. Open your settings file (``mysite/settings.py``, remember) and add a :setting:`TEMPLATE_DIRS` setting:: - TEMPLATE_DIRS = (os.path.join(BASE_DIR, 'mytemplates'),) + TEMPLATE_DIRS = [os.path.join(BASE_DIR, 'templates')] -Don't forget the trailing comma. :setting:`TEMPLATE_DIRS` is a tuple of -filesystem directories to check when loading Django templates; it's a search -path. +:setting:`TEMPLATE_DIRS` is an iterable of filesystem directories to check when +loading Django templates; it's a search path. -Now create a directory called ``admin`` inside ``mytemplates``, and copy the +Now create a directory called ``admin`` inside ``templates``, and copy the template ``admin/base_site.html`` from within the default Django admin template directory in the source code of Django itself (``django/contrib/admin/templates``) into that directory. diff --git a/docs/intro/tutorial03.txt b/docs/intro/tutorial03.txt index abc61a23ba..975e3fc668 100644 --- a/docs/intro/tutorial03.txt +++ b/docs/intro/tutorial03.txt @@ -300,7 +300,7 @@ Django knows to find the polls templates even though we didn't modify and it would work perfectly well. However, this template belongs to the polls application, so unlike the admin template we created in the previous tutorial, we'll put this one in the application's template directory - (``polls/templates``) rather than the project's (``mytemplates``). We'll + (``polls/templates``) rather than the project's (``templates``). We'll discuss in more detail in the :doc:`reusable apps tutorial ` *why* we do this. -- cgit v1.3 From 722683f508566cf06bcc85f9f1810c3cde80344c Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sat, 23 Feb 2013 09:45:34 -0500 Subject: Fixed #19887 - Noted when callables may be used in ModelAdmin.fields and ModelAdmin.fieldset. Thanks Patrick Strasser for the suggestion and Zbigniew Siciarz for the patch. --- docs/ref/contrib/admin/index.txt | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'docs') diff --git a/docs/ref/contrib/admin/index.txt b/docs/ref/contrib/admin/index.txt index c93c974a49..353c121cbc 100644 --- a/docs/ref/contrib/admin/index.txt +++ b/docs/ref/contrib/admin/index.txt @@ -186,6 +186,11 @@ subclass:: values defined in :attr:`ModelAdmin.readonly_fields` to be displayed as read-only. + The ``fields`` option, unlike :attr:`~ModelAdmin.list_display`, may contain + only field names of the model or the form specified by + :attr:`~ModelAdmin.form`, not callables. However it *can* contain callables + if they are defined in :attr:`~ModelAdmin.readonly_fields`. + To display multiple fields on the same line, wrap those fields in their own tuple. In this example, the ``url`` and ``title`` fields will display on the same line and the ``content`` field will be displayed below them in its @@ -265,6 +270,10 @@ subclass:: ``fields`` can contain values defined in :attr:`~ModelAdmin.readonly_fields` to be displayed as read-only. + If you add a callable name to ``fields``, the same rule applies as + with :attr:`~ModelAdmin.fields` option: the callable must be + specified in :attr:`~ModelAdmin.readonly_fields`. + * ``classes`` A list containing extra CSS classes to apply to the fieldset. -- cgit v1.3 From a61dbd62193d036d082fdad4d1af3b48ebec4fb3 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sat, 23 Feb 2013 10:00:23 -0500 Subject: Fixed #19675 - Added mention of static files to overview. Thanks Dwight Gunning for the patch. --- docs/intro/overview.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/intro/overview.txt b/docs/intro/overview.txt index 4f3cd47310..f04c6706fc 100644 --- a/docs/intro/overview.txt +++ b/docs/intro/overview.txt @@ -271,7 +271,8 @@ Finally, Django uses the concept of "template inheritance": That's what the following blocks." In short, that lets you dramatically cut down on redundancy in templates: each template has to define only what's unique to that template. -Here's what the "base.html" template might look like: +Here's what the "base.html" template, including the use of :doc:`static files +`, might look like: .. code-block:: html+django @@ -280,7 +281,7 @@ Here's what the "base.html" template might look like: {% block title %}{% endblock %} - Logo + Logo {% block content %}{% endblock %} -- cgit v1.3 From f49e9a517f2fdc1d9ed7ac841ace77636cbd6747 Mon Sep 17 00:00:00 2001 From: Vladimir A Filonov Date: Sat, 23 Feb 2013 15:07:21 +0100 Subject: Fixed #17906 - Autoescaping {% cycle %} and {% firstof %} templatetags. This commit adds "future" version of these two tags with auto-escaping enabled. --- django/template/defaulttags.py | 48 ++++++++++++++++++--------- django/templatetags/future.py | 57 ++++++++++++++++++++++++++++++-- docs/internals/deprecation.txt | 4 +++ docs/ref/templates/builtins.txt | 55 +++++++++++++++++++++++------- docs/releases/1.6.txt | 28 ++++++++++++++++ tests/regressiontests/templates/tests.py | 12 ++++++- 6 files changed, 173 insertions(+), 31 deletions(-) (limited to 'docs') diff --git a/django/template/defaulttags.py b/django/template/defaulttags.py index c1ca947753..41db90c0ac 100644 --- a/django/template/defaulttags.py +++ b/django/template/defaulttags.py @@ -5,13 +5,15 @@ import sys import re from datetime import datetime from itertools import groupby, cycle as itertools_cycle +import warnings from django.conf import settings from django.template.base import (Node, NodeList, Template, Context, Library, TemplateSyntaxError, VariableDoesNotExist, InvalidTemplateLibrary, BLOCK_TAG_START, BLOCK_TAG_END, VARIABLE_TAG_START, VARIABLE_TAG_END, SINGLE_BRACE_START, SINGLE_BRACE_END, COMMENT_TAG_START, COMMENT_TAG_END, - VARIABLE_ATTRIBUTE_SEPARATOR, get_library, token_kwargs, kwarg_re) + VARIABLE_ATTRIBUTE_SEPARATOR, get_library, token_kwargs, kwarg_re, + _render_value_in_context) from django.template.smartif import IfParser, Literal from django.template.defaultfilters import date from django.utils.encoding import smart_text @@ -54,15 +56,15 @@ class CsrfTokenNode(Node): # misconfiguration, so we raise a warning from django.conf import settings if settings.DEBUG: - import warnings warnings.warn("A {% csrf_token %} was used in a template, but the context did not provide the value. This is usually caused by not using RequestContext.") return '' class CycleNode(Node): - def __init__(self, cyclevars, variable_name=None, silent=False): + def __init__(self, cyclevars, variable_name=None, silent=False, escape=False): self.cyclevars = cyclevars self.variable_name = variable_name self.silent = silent + self.escape = escape # only while the "future" version exists def render(self, context): if self not in context.render_context: @@ -74,7 +76,9 @@ class CycleNode(Node): context[self.variable_name] = value if self.silent: return '' - return value + if not self.escape: + value = mark_safe(value) + return _render_value_in_context(value, context) class DebugNode(Node): def render(self, context): @@ -97,14 +101,17 @@ class FilterNode(Node): return filtered class FirstOfNode(Node): - def __init__(self, vars): - self.vars = vars + def __init__(self, variables, escape=False): + self.vars = variables + self.escape = escape # only while the "future" version exists def render(self, context): for var in self.vars: value = var.resolve(context, True) if value: - return smart_text(value) + if not self.escape: + value = mark_safe(value) + return _render_value_in_context(value, context) return '' class ForNode(Node): @@ -508,7 +515,7 @@ def comment(parser, token): return CommentNode() @register.tag -def cycle(parser, token): +def cycle(parser, token, escape=False): """ Cycles among the given strings each time this tag is encountered. @@ -541,6 +548,11 @@ def cycle(parser, token): {% endfor %} """ + if not escape: + warnings.warn( + "'The syntax for the `cycle` template tag is changing. Load it " + "from the `future` tag library to start using the new behavior.", + PendingDeprecationWarning, stacklevel=2) # Note: This returns the exact same node on each {% cycle name %} call; # that is, the node object returned from {% cycle a b c as name %} and the @@ -588,13 +600,13 @@ def cycle(parser, token): if as_form: name = args[-1] values = [parser.compile_filter(arg) for arg in args[1:-2]] - node = CycleNode(values, name, silent=silent) + node = CycleNode(values, name, silent=silent, escape=escape) if not hasattr(parser, '_namedCycleNodes'): parser._namedCycleNodes = {} parser._namedCycleNodes[name] = node else: values = [parser.compile_filter(arg) for arg in args[1:]] - node = CycleNode(values) + node = CycleNode(values, escape=escape) return node @register.tag @@ -643,7 +655,7 @@ def do_filter(parser, token): return FilterNode(filter_expr, nodelist) @register.tag -def firstof(parser, token): +def firstof(parser, token, escape=False): """ Outputs the first variable passed that is not False, without escaping. @@ -657,11 +669,11 @@ def firstof(parser, token): {% if var1 %} {{ var1|safe }} - {% else %}{% if var2 %} + {% elif var2 %} {{ var2|safe }} - {% else %}{% if var3 %} + {% elif var3 %} {{ var3|safe }} - {% endif %}{% endif %}{% endif %} + {% endif %} but obviously much cleaner! @@ -677,10 +689,16 @@ def firstof(parser, token): {% endfilter %} """ + if not escape: + warnings.warn( + "'The syntax for the `firstof` template tag is changing. Load it " + "from the `future` tag library to start using the new behavior.", + PendingDeprecationWarning, stacklevel=2) + bits = token.split_contents()[1:] if len(bits) < 1: raise TemplateSyntaxError("'firstof' statement requires at least one argument") - return FirstOfNode([parser.compile_filter(bit) for bit in bits]) + return FirstOfNode([parser.compile_filter(bit) for bit in bits], escape=escape) @register.tag('for') def do_for(parser, token): diff --git a/django/templatetags/future.py b/django/templatetags/future.py index e6a0127e71..a385c6d565 100644 --- a/django/templatetags/future.py +++ b/django/templatetags/future.py @@ -1,14 +1,65 @@ from django.template import Library -from django.template.defaulttags import url as default_url, ssi as default_ssi +from django.template import defaulttags register = Library() + @register.tag def ssi(parser, token): # Used for deprecation path during 1.3/1.4, will be removed in 2.0 - return default_ssi(parser, token) + return defaulttags.ssi(parser, token) + @register.tag def url(parser, token): # Used for deprecation path during 1.3/1.4, will be removed in 2.0 - return default_url(parser, token) + return defaulttags.url(parser, token) + + +@register.tag +def cycle(parser, token): + """ + This is the future version of `cycle` with auto-escaping. + + By default all strings are escaped. + + If you want to disable auto-escaping of variables you can use: + + {% autoescape off %} + {% cycle var1 var2 var3 as somecycle %} + {% autoescape %} + + Or if only some variables should be escaped, you can use: + + {% cycle var1 var2|safe var3|safe as somecycle %} + """ + return defaulttags.cycle(parser, token, escape=True) + + +@register.tag +def firstof(parser, token): + """ + This is the future version of `firstof` with auto-escaping. + + This is equivalent to: + + {% if var1 %} + {{ var1 }} + {% elif var2 %} + {{ var2 }} + {% elif var3 %} + {{ var3 }} + {% endif %} + + If you want to disable auto-escaping of variables you can use: + + {% autoescape off %} + {% firstof var1 var2 var3 "fallback value" %} + {% autoescape %} + + Or if only some variables should be escaped, you can use: + + {% firstof var1 var2|safe var3 "fallback value"|safe %} + + """ + return defaulttags.firstof(parser, token, escape=True) diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt index 50b9aa3c19..ef9fd31d15 100644 --- a/docs/internals/deprecation.txt +++ b/docs/internals/deprecation.txt @@ -323,6 +323,10 @@ these changes. 1.8 --- +* The :ttag:`cycle` and :ttag:`firstof` template tags will auto-escape their + arguments. In 1.6 and 1.7, this behavior is provided by the version of these + tags in the ``future`` template tag library. + * The ``SEND_BROKEN_LINK_EMAILS`` setting will be removed. Add the :class:`django.middleware.common.BrokenLinkEmailsMiddleware` middleware to your :setting:`MIDDLEWARE_CLASSES` setting instead. diff --git a/docs/ref/templates/builtins.txt b/docs/ref/templates/builtins.txt index cfc57cc551..149a557356 100644 --- a/docs/ref/templates/builtins.txt +++ b/docs/ref/templates/builtins.txt @@ -147,9 +147,8 @@ You can use any number of values in a ``{% cycle %}`` tag, separated by spaces. Values enclosed in single (``'``) or double quotes (``"``) are treated as string literals, while values without quotes are treated as template variables. -Note that the variables included in the cycle will not be escaped. -This is because template tags do not escape their content. Any HTML or -Javascript code contained in the printed variable will be rendered +Note that currently the variables included in the cycle will not be escaped. +Any HTML or Javascript code contained in the printed variable will be rendered as-is, which could potentially lead to security issues. For backwards compatibility, the ``{% cycle %}`` tag supports the much inferior @@ -190,6 +189,22 @@ call to ``{% cycle %}`` doesn't specify silent:: {% cycle 'row1' 'row2' as rowcolors silent %} {% cycle rowcolors %} +.. versionchanged:: 1.6 + +To improve safety, future versions of ``cycle`` will automatically escape +their output. You're encouraged to activate this behavior by loading +``cycle`` from the ``future`` template library:: + + {% load cycle from future %} + +When using the ``future`` version, you can disable auto-escaping with:: + + {% for o in some_list %} + + ... + + {% endfor %} + .. templatetag:: debug debug @@ -257,28 +272,44 @@ This is equivalent to:: {% if var1 %} {{ var1|safe }} - {% else %}{% if var2 %} + {% elif var2 %} {{ var2|safe }} - {% else %}{% if var3 %} + {% elif var3 %} {{ var3|safe }} - {% endif %}{% endif %}{% endif %} + {% endif %} You can also use a literal string as a fallback value in case all passed variables are False:: {% firstof var1 var2 var3 "fallback value" %} -Note that the variables included in the firstof tag will not be -escaped. This is because template tags do not escape their content. -Any HTML or Javascript code contained in the printed variable will be -rendered as-is, which could potentially lead to security issues. If you -need to escape the variables in the firstof tag, you must do so -explicitly:: +Note that currently the variables included in the firstof tag will not be +escaped. Any HTML or Javascript code contained in the printed variable will be +rendered as-is, which could potentially lead to security issues. If you need +to escape the variables in the firstof tag, you must do so explicitly:: {% filter force_escape %} {% firstof var1 var2 var3 "fallback value" %} {% endfilter %} +.. versionchanged:: 1.6 + +To improve safety, future versions of ``firstof`` will automatically escape +their output. You're encouraged to activate this behavior by loading +``firstof`` from the ``future`` template library:: + + {% load firstof from future %} + +When using the ``future`` version, you can disable auto-escaping with:: + + {% autoescape off %} + {% firstof var1 var2 var3 "fallback value" %} + {% endautoescape %} + +Or if only some variables should be escaped, you can use:: + + {% firstof var1 var2|safe var3 "fallback value"|safe %} + .. templatetag:: for for diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 67c032a362..ce1e643946 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -160,6 +160,34 @@ Backwards incompatible changes in 1.6 Features deprecated in 1.6 ========================== +Changes to :ttag:`cycle` and :ttag:`firstof` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The template system generally escapes all variables to avoid XSS attacks. +However, due to an accident of history, the :ttag:`cycle` and :ttag:`firstof` +tags render their arguments as-is. + +Django 1.6 starts a process to correct this inconsistency. The ``future`` +template library provides alternate implementations of :ttag:`cycle` and +:ttag:`firstof` that autoescape their inputs. If you're using these tags, +you're encourage to include the following line at the top of your templates to +enable the new behavior:: + + {% load cycle from future %} + +or:: + + {% load firstof from future %} + +The tags implementing the old behavior have been deprecated, and in Django +1.8, the old behavior will be replaced with the new behavior. To ensure +compatibility with future versions of Django, existing templates should be +modified to use the ``future`` versions. + +If necessary, you can temporarily disable auto-escaping with +:func:`~django.utils.safestring.mark_safe` or :ttag:`{% autoescape off %} +`. + ``SEND_BROKEN_LINK_EMAILS`` setting ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/tests/regressiontests/templates/tests.py b/tests/regressiontests/templates/tests.py index 02d3460b72..95b090fcde 100644 --- a/tests/regressiontests/templates/tests.py +++ b/tests/regressiontests/templates/tests.py @@ -773,6 +773,11 @@ class Templates(TestCase): 'cycle23': ("{% for x in values %}{% cycle 'a' 'b' 'c' as abc silent %}{{ abc }}{{ x }}{% endfor %}", {'values': [1,2,3,4]}, "a1b2c3a4"), 'included-cycle': ('{{ abc }}', {'abc': 'xxx'}, 'xxx'), 'cycle24': ("{% for x in values %}{% cycle 'a' 'b' 'c' as abc silent %}{% include 'included-cycle' %}{% endfor %}", {'values': [1,2,3,4]}, "abca"), + 'cycle25': ('{% cycle a as abc %}', {'a': '<'}, '<'), + + 'cycle26': ('{% load cycle from future %}{% cycle a b as ab %}{% cycle ab %}', {'a': '<', 'b': '>'}, '<>'), + 'cycle27': ('{% load cycle from future %}{% autoescape off %}{% cycle a b as ab %}{% cycle ab %}{% endautoescape %}', {'a': '<', 'b': '>'}, '<>'), + 'cycle28': ('{% load cycle from future %}{% cycle a|safe b as ab %}{% cycle ab %}', {'a': '<', 'b': '>'}, '<>'), ### EXCEPTIONS ############################################################ @@ -804,7 +809,12 @@ class Templates(TestCase): 'firstof07': ('{% firstof a b "c" %}', {'a':0}, 'c'), 'firstof08': ('{% firstof a b "c and d" %}', {'a':0,'b':0}, 'c and d'), 'firstof09': ('{% firstof %}', {}, template.TemplateSyntaxError), - 'firstof10': ('{% firstof a %}', {'a': '<'}, '<'), # Variables are NOT auto-escaped. + 'firstof10': ('{% firstof a %}', {'a': '<'}, '<'), + + 'firstof11': ('{% load firstof from future %}{% firstof a b %}', {'a': '<', 'b': '>'}, '<'), + 'firstof12': ('{% load firstof from future %}{% firstof a b %}', {'a': '', 'b': '>'}, '>'), + 'firstof13': ('{% load firstof from future %}{% autoescape off %}{% firstof a %}{% endautoescape %}', {'a': '<'}, '<'), + 'firstof14': ('{% load firstof from future %}{% firstof a|safe b %}', {'a': '<'}, '<'), ### FOR TAG ############################################################### 'for-tag01': ("{% for val in values %}{{ val }}{% endfor %}", {"values": [1, 2, 3]}, "123"), -- cgit v1.3 From 9e959e8d588d20988522200ad205e335e681c168 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sat, 23 Feb 2013 10:35:22 -0500 Subject: Updated static file example in overview to use static template tag, refs #19675. Thanks jezdez for the note. --- docs/intro/overview.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/intro/overview.txt b/docs/intro/overview.txt index f04c6706fc..f80eca4b3b 100644 --- a/docs/intro/overview.txt +++ b/docs/intro/overview.txt @@ -271,17 +271,18 @@ Finally, Django uses the concept of "template inheritance": That's what the following blocks." In short, that lets you dramatically cut down on redundancy in templates: each template has to define only what's unique to that template. -Here's what the "base.html" template, including the use of :doc:`static files +Here's what the "base.html" template, including the use of :doc:`static files `, might look like: .. code-block:: html+django + {% load static %} {% block title %}{% endblock %} - Logo + Logo {% block content %}{% endblock %} -- cgit v1.3 From 8d17114899256ef4033cd17645f90975ddf5628b Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sat, 23 Feb 2013 10:40:19 -0500 Subject: Fixed #19752 - Changed Postgres version numbers to 9.x to avoid having to update them each minor release. --- docs/ref/contrib/gis/install/index.txt | 12 ++++++------ docs/ref/contrib/gis/install/postgis.txt | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) (limited to 'docs') diff --git a/docs/ref/contrib/gis/install/index.txt b/docs/ref/contrib/gis/install/index.txt index 1f4d3e1b66..3e1cda0a47 100644 --- a/docs/ref/contrib/gis/install/index.txt +++ b/docs/ref/contrib/gis/install/index.txt @@ -392,7 +392,7 @@ GeoDjango on Windows. .. note:: These instructions assume that you are using 32-bit versions of - all programs. While 64-bit versions of Python and PostgreSQL 9.0 + all programs. While 64-bit versions of Python and PostgreSQL 9.x are available, 64-bit versions of spatial libraries, like GEOS and GDAL, are not yet provided by the :ref:`OSGeo4W` installer. @@ -415,7 +415,7 @@ __ http://python.org/download/ PostgreSQL ^^^^^^^^^^ -First, download the latest `PostgreSQL installer`__ from the +First, download the latest `PostgreSQL 9.x installer`__ from the `EnterpriseDB`__ Web site. After downloading, simply run the installer, follow the on-screen directions, and keep the default options unless you know the consequences of changing them. @@ -435,7 +435,7 @@ install :ref:`postgisasb`. If installed successfully, the PostgreSQL server will run in the background each time the system as started as a Windows service. - A :menuselection:`PostgreSQL 9.0` start menu group will created + A :menuselection:`PostgreSQL 9.x` start menu group will created and contains shortcuts for the ASB as well as the 'SQL Shell', which will launch a ``psql`` command window. @@ -448,10 +448,10 @@ PostGIS ^^^^^^^ From within the Application Stack Builder (to run outside of the installer, -:menuselection:`Start --> Programs --> PostgreSQL 9.0`), select -:menuselection:`PostgreSQL Database Server 9.0 on port 5432` from the drop down +:menuselection:`Start --> Programs --> PostgreSQL 9.x`), select +:menuselection:`PostgreSQL Database Server 9.x on port 5432` from the drop down menu. Next, expand the :menuselection:`Categories --> Spatial Extensions` menu -tree and select :menuselection:`PostGIS 1.5 for PostgreSQL 9.0`. +tree and select :menuselection:`PostGIS 1.5 for PostgreSQL 9.x`. After clicking next, you will be prompted to select your mirror, PostGIS will be downloaded, and the PostGIS installer will begin. Select only the diff --git a/docs/ref/contrib/gis/install/postgis.txt b/docs/ref/contrib/gis/install/postgis.txt index 6d7fe88203..603ed8c2d0 100644 --- a/docs/ref/contrib/gis/install/postgis.txt +++ b/docs/ref/contrib/gis/install/postgis.txt @@ -56,10 +56,10 @@ Post-installation .. _spatialdb_template: .. _spatialdb_template91: -Creating a spatial database with PostGIS 2.0 and PostgreSQL 9.1 ---------------------------------------------------------------- +Creating a spatial database with PostGIS 2.0 and PostgreSQL 9.1+ +---------------------------------------------------------------- -PostGIS 2 includes an extension for Postgres 9.1 that can be used to enable +PostGIS 2 includes an extension for Postgres 9.1+ that can be used to enable spatial functionality:: $ createdb @@ -166,8 +166,8 @@ Managing the database --------------------- To administer the database, you can either use the pgAdmin III program -(:menuselection:`Start --> PostgreSQL 9.0 --> pgAdmin III`) or the -SQL Shell (:menuselection:`Start --> PostgreSQL 9.0 --> SQL Shell`). +(:menuselection:`Start --> PostgreSQL 9.x --> pgAdmin III`) or the +SQL Shell (:menuselection:`Start --> PostgreSQL 9.x --> SQL Shell`). For example, to create a ``geodjango`` spatial database and user, the following may be executed from the SQL Shell as the ``postgres`` user:: -- cgit v1.3 From f3ae67a62f5bdcee892f19667967e8738f734908 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sat, 23 Feb 2013 11:05:38 -0500 Subject: Updated example to use staticfiles static template tag, thanks reinout for the suggestion, refs #19675. --- docs/intro/overview.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/intro/overview.txt b/docs/intro/overview.txt index f80eca4b3b..2081c960fc 100644 --- a/docs/intro/overview.txt +++ b/docs/intro/overview.txt @@ -276,7 +276,7 @@ Here's what the "base.html" template, including the use of :doc:`static files .. code-block:: html+django - {% load static %} + {% load staticfiles %} {% block title %}{% endblock %} -- cgit v1.3 From 1cd2f51eb43f9ed043982770b4efd5f28f53f302 Mon Sep 17 00:00:00 2001 From: Zbigniew Siciarz Date: Sat, 23 Feb 2013 17:10:48 +0100 Subject: Added test runner option to skip Selenium tests (#19854). --- django/contrib/admin/tests.py | 4 ++++ docs/internals/contributing/writing-code/unit-tests.txt | 9 +++++++++ tests/regressiontests/views/tests/i18n.py | 5 +++++ tests/runtests.py | 10 +++++++++- 4 files changed, 27 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/django/contrib/admin/tests.py b/django/contrib/admin/tests.py index c99488cd41..30d63e4486 100644 --- a/django/contrib/admin/tests.py +++ b/django/contrib/admin/tests.py @@ -1,3 +1,5 @@ +import os + from django.test import LiveServerTestCase from django.utils.module_loading import import_by_path from django.utils.unittest import SkipTest @@ -8,6 +10,8 @@ class AdminSeleniumWebDriverTestCase(LiveServerTestCase): @classmethod def setUpClass(cls): + if os.environ.get('DJANGO_SKIP_SELENIUM_TESTS', False): + raise SkipTest('Selenium tests skipped by explicit request') try: cls.selenium = import_by_path(cls.webdriver_class)() except Exception as e: diff --git a/docs/internals/contributing/writing-code/unit-tests.txt b/docs/internals/contributing/writing-code/unit-tests.txt index a03951d141..59f4c97c92 100644 --- a/docs/internals/contributing/writing-code/unit-tests.txt +++ b/docs/internals/contributing/writing-code/unit-tests.txt @@ -136,6 +136,15 @@ Then, run the tests normally, for example: ./runtests.py --settings=test_sqlite admin_inlines +If you have Selenium installed but for some reason don't want to run these tests +(for example to speed up the test suite), use the ``--skip-selenium`` option +of the test runner. + +.. code-block:: bash + + ./runtests.py --settings=test_sqlite --skip-selenium admin_inlines + + .. _running-unit-tests-dependencies: Running all the tests diff --git a/tests/regressiontests/views/tests/i18n.py b/tests/regressiontests/views/tests/i18n.py index 0a091ed1b7..206cf3d256 100644 --- a/tests/regressiontests/views/tests/i18n.py +++ b/tests/regressiontests/views/tests/i18n.py @@ -2,6 +2,7 @@ from __future__ import absolute_import import gettext +import os from os import path from django.conf import settings @@ -176,6 +177,10 @@ class JsI18NTestsMultiPackage(TestCase): javascript_quote('este texto de app3 debe ser traducido')) +skip_selenium = os.environ.get('DJANGO_SKIP_SELENIUM_TESTS', False) + + +@unittest.skipIf(skip_selenium, 'Selenium tests skipped by explicit request') @unittest.skipUnless(firefox, 'Selenium not installed') class JavascriptI18nTests(LiveServerTestCase): urls = 'regressiontests.views.urls' diff --git a/tests/runtests.py b/tests/runtests.py index c23737ed14..b9de137ea2 100755 --- a/tests/runtests.py +++ b/tests/runtests.py @@ -301,7 +301,12 @@ if __name__ == "__main__": '--liveserver', action='store', dest='liveserver', default=None, help='Overrides the default address where the live server (used with ' 'LiveServerTestCase) is expected to run from. The default value ' - 'is localhost:8081.'), + 'is localhost:8081.') + parser.add_option( + '--skip-selenium', action='store_true', dest='skip_selenium', + default=False, + help='Skip running Selenium tests even it Selenium itself is ' + 'installed. By default these tests are not skipped.') options, args = parser.parse_args() if options.settings: os.environ['DJANGO_SETTINGS_MODULE'] = options.settings @@ -314,6 +319,9 @@ if __name__ == "__main__": if options.liveserver is not None: os.environ['DJANGO_LIVE_TEST_SERVER_ADDRESS'] = options.liveserver + if options.skip_selenium: + os.environ['DJANGO_SKIP_SELENIUM_TESTS'] = '1' + if options.bisect: bisect_tests(options.bisect, options, args) elif options.pair: -- cgit v1.3 From e3296268de8f2c387c4155ae1b8d39bb109f265d Mon Sep 17 00:00:00 2001 From: Jacob Kaplan-Moss Date: Sat, 23 Feb 2013 12:33:57 -0600 Subject: Added a draft document explaining how to release Django. Thanks to James for the first draft; I made a few changes (svn->git) and some supporting links, but mostly I added FIXME's. --- docs/internals/howto-release-django.txt | 280 ++++++++++++++++++++++++++++++++ docs/internals/index.txt | 1 + 2 files changed, 281 insertions(+) create mode 100644 docs/internals/howto-release-django.txt (limited to 'docs') diff --git a/docs/internals/howto-release-django.txt b/docs/internals/howto-release-django.txt new file mode 100644 index 0000000000..109583b67f --- /dev/null +++ b/docs/internals/howto-release-django.txt @@ -0,0 +1,280 @@ +===================== +How is Django Formed? +===================== + +This document explains how to release Django. If you're unluky enough to +be driving a release, you should follow these instructions to get the +package out. + +**Please, keep these instructions up-to-date if you make changes!** The point +here is to be descriptive, not proscriptive, so feel free to streamline or +otherwise make changes, but **update this document accordingly!** + +Overview +======== + +There are three types of releases that you might need to make + +* Security releases, disclosing and fixing a vulnerability. This'll + generally involve two or three simultaneous releases -- e.g. + 1.5.X, 1.6.X, and, depending on timing, perhaps a 1.7 alpha/beta/rc. + +* Regular version releases, either a final release (e.g. 1.5) or a + bugfix update (e.g. 1.5.1). + +* Pre-releases, e.g. 1.6 beta or something. + +In general the steps are about the same reguardless, but there are a few +differences noted. The short version is: + +#. If this is a security release, pre-notify the security distribution list + at least one week before the actual release. + +#. Proofread (and create if needed) the release notes, looking for + organiztion, writing errors, deprecation timelines, etc. Draft a blog post + and email announcement. + +#. Update version numbers and create the release package(s)! + +#. Upload the package(s) to the the ``djangoproject.com`` server and creating + some redirects for download/checksum links. + +#. Unless this is a pre-release, add the new version(s) to PyPI. + +#. Update the home page and download page to link to the new version(s). + +#. Post the blog entry and send out the email announcements. + +#. Update version numbers post-release. + +There's a lot of details, so please read on. + +Prerequisites +============= + +You'll need a few things hooked up to make this work: + +* A GPG key. *FIXME: sort out exactly whose keys are acceptable for a + release.* + +* Access to Django's record on PyPI. + +* Access to the ``djangoproject.com`` server to upload files and trigger a + deploy. + +* Access to the admin on ``djangoproject.com``. + +* Access to post to ``django-announe``. + +* If this is a security release, access to the pre-notification distribution + list. + +If this is your first release, you'll need to corrdinate with James and Jacob +to get all these things ready to go. + +Pre-release tasks +================= + +A few items need to be taken care of before even beginning the release process. +This stuff starts about a week before the release; most of it can be done +any time leading up to the actual release: + +#. If this is a security release, send out pre-notification **one week** + before the release. We maintain a list of who gets these pre-notifcation + emails at *FIXME WHERE?*. This email should be signed by the key you'll use + for the release, and should include patches for each issue being fixed. + +#. As the release aproaches, watch Trac to make sure no release blockers + are left for the upcoming release. + +#. Check with the other committers to make sure they don't have any + un-committed changes for the release. + +#. Proofread the release notes, including looking at the online + version to catch any broken links or reST errors, and make sure the + release notes contain the correct date. + +#. Double-check that the release notes mention deprecation timelines + for any APIs noted as deprecated, and that they mention any changes + in Python version support. + +#. Double-check that the release notes index has a link to the notes + for the new release; this will be in ``docs/releases/index.txt``. + +Preparing for release +===================== + +Next, everything needs to be made ready for actually rolling the +release. The following things should be done a few days to a few hours +before release: + +#. Update the djangoproject home page and download page templates to + reflect the new release. There are two templates to change: + ``flatpages/download.html`` and ``homepage.html``; here's + `one example commit for the 1.4.5 / 1.3.7 releases`__ + + __ https://github.com/django/djangoproject.com/commit/772edbc6ac5a2b8e718606b3338f2bcc429fb9b6 + +#. Write the announcement blog post for the release. You can enter it into + the admin at any time and mark it as inactive. Here's a few examples: + `example security release accouncement`__, `example regular release + announcement`__, `example pre-release announcement`__. + + __ https://www.djangoproject.com/weblog/2013/feb/19/security/ + __ https://www.djangoproject.com/weblog/2012/mar/23/14/ + __ https://www.djangoproject.com/weblog/2012/nov/27/15-beta-1/ + +#. Create redirects in the admin for the new downloads. For each release, + we create two redirects that look like:: + + /download//tarball/ -> /m/releases//Django-.tar.gz + /download//checksum/ -> /m/pgp/Django-.checksum.txt + +Actually rolling the release +============================ + +OK, this is the fun part, where we actually push out a release! + +#. Check Jenkins is green for the version(s) you're putting out. You probably + shouldn't issue a release until it's green. + +#. A release always begins from a release branch, so you + should ``git pull`` to make sure you're up-to-date and then + ``git checkout stable/`` (e.g. checkout ``stable/1.5.x`` to issue + a release in the 1.5 series.) + +#. If this is a security release, merge the apropriate patches from + ``django-private``. *FIXME: actual commands here - make sure to --ff- + only right?*. Make sure the commit messages explain that the commit + is a security fix and that an announcement will follow (`example + security commit`__) + + __ https://github.com/django/django/commit/3ef4bbf495cc6c061789132e3d50a8231a89406b + +#. Update version numbers for the release. This has to happen in three + places: ``django/__init__.py``, ``docs/conf.py``, and ``setup.py``. + Please see `notes on setting the VERSION tuple`_ below for details + on ``VERSION``. Here's `an example commit updating version numbers`__ + + __ https://github.com/django/django/commit/18d920ea4839fb54f9d2a5dcb555b6a5666ee469 + + Make sure the ``download_url`` in ``setup.py`` is the actual URL you'll + use for the new release package, not the redirect URL (some tools can't + properly follow redirects). + +#. If this is a pre-release package, update the "Development Status" trove + classifier in ``setup.py`` to reflect this. Otherwise, make sure the + classifier is set to ``Development Status :: 5 - Production/Stable``. + +#. Tag the release by running ``git tag`` *FIXME actual commands*. + +#. ``git push`` your work. + +#. Make sure you have an absolutely clean tree by running ``git clean -dfx``. + +#. Run ``python setup.py sdist`` to generate the release package. + +#. Generate the MD5 and SHA1 hashes of the release package. *FIXME + actual commands for doign this?* + +#. Create a "checksums" file containing the hashes and release information. + You can start with `a previous checksums file`__ and replace the + dates, keys, links, and checksums. *FIXME: make a template file.* + + __ https://www.djangoproject.com/m/pgp/Django-1.5b1.checksum.txt + +#. Sign the checksum file using the release key (``gpg + --clearsign``), then verify the signature (``gpg --verify``). *FIXME: + full, actual commands here*. + +If you're issuing multiple releases, repeat these steps for each release. + +Making the release(s) available to the public +============================================= + +Now you're ready to actually put the release out there. To do this: + +#. Upload the release package(s) to the djangoproject server; releases go + in ``/home/www/djangoproject.com/src/media/releases``, under a + directory for the appropriate version number (e.g. + ``/home/www/djangoproject.com/src/media/releases/1.5`` for a ``1.5.X`` + release.). + +#. Upload the checksum file(s); these go in + ``/home/www/djangoproject.com/src/media/pgp``. + +#. Test that the release packages install correctly using ``easy_install`` + and ``pip``. Here's how I do it (which requires `virtualenvwrapper`__): + + $ mktmpenv + $ easy_install http://www.djangoproject.com/download//tarball/ + $ deactivate + $ mktmpenv + $ pip install http://www.djangoproject.com/download//tarball/ + $ deactivate + + This just tests that the tarballs are available (i.e. redirects are up) and + that they install correctly, but it'll catch silly mistakes. *XXX FIXME: + buildout too?* + + __ https://pypi.python.org/pypi/virtualenvwrapper + +#. Ask a few people on IRC to verify the checksums by visiting the chucksums + file (e.g. https://www.djangoproject.com/m/pgp/Django-1.5b1.checksum.txt) + and following the instructions in it. + +#. If this is a security or regular release, register the new package with + PyPI by uploading the ``PGK-INFO`` file generated in the release package + *FIXME: be more specific about where this is and how to upload it.* + Don't do this for pre-releases. + +#. Deploy the template changes you made a while back by running `fab deploy` + from the ``djangoproject.com`` repo. + +#. Update the ``/download/`` flat page in the djangoproject.com + admin. For alpha/beta/RC releases, we add a temporary third section + to that page listing the preview package; otherwise, just update + the "Get the latest official version" section. + +#. Make up the blog post announcing the release live. + +#. Post the release announcement to the django-announce, + django-developers and django-users mailing lists. This should + include links to both the announcement blog post and the release + notes. *FIXME: make some templates with example text*. + +Post-release +============ + +You're almost done! All that's left to do now is: + +#. Update the ``VERSION`` tuple in ``django/__init__.py`` again, + incrementing to whatever the next expected release will be. For + example, after releasing 1.2.1, update ``VERSION`` to report "1.2.2 + pre-alpha". + +Notes on setting the VERSION tuple +================================== + +Django's version reporting is controlled by the ``VERSION`` tuple in +``django/__init__.py``. This is a five-element tuple, whose elements +are: + +#. Major version. +#. Minor version. +#. Micro version. +#. Status -- can be one of "alpha", "beta", "rc" or "final". +#. Series number, for alpha/beta/RC packages which run in sequence + (allowing, for example, "beta 1", "beta 2", etc.). + +For a final release, the status is always "final" and the series +number is always 0. A series number of 0 with an "alpha" status will +be reported as "pre-alpha". + +Some examples: + +* ``(1, 2, 1, 'final', 0)`` --> "1.2.1" + +* ``(1, 3, 0, 'alpha', 0)`` --> "1.3 pre-alpha" + +* ``(1, 3, 0, 'beta', 2)`` --> "1.3 beta 2" diff --git a/docs/internals/index.txt b/docs/internals/index.txt index 3ff4eb62d0..9a80a90286 100644 --- a/docs/internals/index.txt +++ b/docs/internals/index.txt @@ -22,3 +22,4 @@ the hood". release-process deprecation git + howto-release-django -- cgit v1.3 From 799be90fde8a7b77b3876eb593751e410c718d1f Mon Sep 17 00:00:00 2001 From: Jacob Kaplan-Moss Date: Sat, 23 Feb 2013 13:01:52 -0600 Subject: Some updates to "how to release Django": Typo fixes, spell check, some more specifics where possible. --- docs/internals/howto-release-django.txt | 40 ++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 18 deletions(-) (limited to 'docs') diff --git a/docs/internals/howto-release-django.txt b/docs/internals/howto-release-django.txt index 109583b67f..1dc80b553e 100644 --- a/docs/internals/howto-release-django.txt +++ b/docs/internals/howto-release-django.txt @@ -2,7 +2,7 @@ How is Django Formed? ===================== -This document explains how to release Django. If you're unluky enough to +This document explains how to release Django. If you're unlucky enough to be driving a release, you should follow these instructions to get the package out. @@ -24,14 +24,14 @@ There are three types of releases that you might need to make * Pre-releases, e.g. 1.6 beta or something. -In general the steps are about the same reguardless, but there are a few +In general the steps are about the same regardless, but there are a few differences noted. The short version is: #. If this is a security release, pre-notify the security distribution list at least one week before the actual release. #. Proofread (and create if needed) the release notes, looking for - organiztion, writing errors, deprecation timelines, etc. Draft a blog post + organization, writing errors, deprecation timelines, etc. Draft a blog post and email announcement. #. Update version numbers and create the release package(s)! @@ -64,12 +64,12 @@ You'll need a few things hooked up to make this work: * Access to the admin on ``djangoproject.com``. -* Access to post to ``django-announe``. +* Access to post to ``django-announce``. * If this is a security release, access to the pre-notification distribution list. -If this is your first release, you'll need to corrdinate with James and Jacob +If this is your first release, you'll need to coordinate with James and Jacob to get all these things ready to go. Pre-release tasks @@ -80,11 +80,11 @@ This stuff starts about a week before the release; most of it can be done any time leading up to the actual release: #. If this is a security release, send out pre-notification **one week** - before the release. We maintain a list of who gets these pre-notifcation + before the release. We maintain a list of who gets these pre-notification emails at *FIXME WHERE?*. This email should be signed by the key you'll use for the release, and should include patches for each issue being fixed. -#. As the release aproaches, watch Trac to make sure no release blockers +#. As the release approaches, watch Trac to make sure no release blockers are left for the upcoming release. #. Check with the other committers to make sure they don't have any @@ -117,7 +117,7 @@ before release: #. Write the announcement blog post for the release. You can enter it into the admin at any time and mark it as inactive. Here's a few examples: - `example security release accouncement`__, `example regular release + `example security release announcement`__, `example regular release announcement`__, `example pre-release announcement`__. __ https://www.djangoproject.com/weblog/2013/feb/19/security/ @@ -143,7 +143,7 @@ OK, this is the fun part, where we actually push out a release! ``git checkout stable/`` (e.g. checkout ``stable/1.5.x`` to issue a release in the 1.5 series.) -#. If this is a security release, merge the apropriate patches from +#. If this is a security release, merge the appropriate patches from ``django-private``. *FIXME: actual commands here - make sure to --ff- only right?*. Make sure the commit messages explain that the commit is a security fix and that an announcement will follow (`example @@ -172,10 +172,13 @@ OK, this is the fun part, where we actually push out a release! #. Make sure you have an absolutely clean tree by running ``git clean -dfx``. -#. Run ``python setup.py sdist`` to generate the release package. +#. Run ``python setup.py sdist`` to generate the release package. This will + create the release package in a ``dist/`` directory. -#. Generate the MD5 and SHA1 hashes of the release package. *FIXME - actual commands for doign this?* +#. Generate the MD5 and SHA1 hashes of the release package:: + + $ md5sum dist/Django-.tar.gz + $ sha1sum dist/Django-.tar.gz #. Create a "checksums" file containing the hashes and release information. You can start with `a previous checksums file`__ and replace the @@ -207,10 +210,10 @@ Now you're ready to actually put the release out there. To do this: and ``pip``. Here's how I do it (which requires `virtualenvwrapper`__): $ mktmpenv - $ easy_install http://www.djangoproject.com/download//tarball/ + $ easy_install https://www.djangoproject.com/download//tarball/ $ deactivate $ mktmpenv - $ pip install http://www.djangoproject.com/download//tarball/ + $ pip install https://www.djangoproject.com/download//tarball/ $ deactivate This just tests that the tarballs are available (i.e. redirects are up) and @@ -224,9 +227,10 @@ Now you're ready to actually put the release out there. To do this: and following the instructions in it. #. If this is a security or regular release, register the new package with - PyPI by uploading the ``PGK-INFO`` file generated in the release package - *FIXME: be more specific about where this is and how to upload it.* - Don't do this for pre-releases. + PyPI by uploading the ``PGK-INFO`` file generated in the release package. + This file's *in* the distribution tarball, so you'll need to pull it + out. ``tar xzf dist/Django-.tar.gz Django-/PKG-INFO`` + ought to work. #. Deploy the template changes you made a while back by running `fab deploy` from the ``djangoproject.com`` repo. @@ -251,7 +255,7 @@ You're almost done! All that's left to do now is: #. Update the ``VERSION`` tuple in ``django/__init__.py`` again, incrementing to whatever the next expected release will be. For example, after releasing 1.2.1, update ``VERSION`` to report "1.2.2 - pre-alpha". + pre-alpha". *FIXME: Is this correct? Do we still do this?* Notes on setting the VERSION tuple ================================== -- cgit v1.3 From 31bcb102b24338e5cc0e69ade997e8fdc257b6b5 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sat, 23 Feb 2013 15:21:35 -0500 Subject: Fixed #19775 - Clarified requirements of the "default" database. Thanks monkut for the report and wsmith323 for the patch. --- docs/topics/db/multi-db.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/topics/db/multi-db.txt b/docs/topics/db/multi-db.txt index 8a02305376..dd7e59b99e 100644 --- a/docs/topics/db/multi-db.txt +++ b/docs/topics/db/multi-db.txt @@ -21,8 +21,10 @@ documentation. Databases can have any alias you choose. However, the alias ``default`` has special significance. Django uses the database with the alias of ``default`` when no other database has been selected. If -you don't have a ``default`` database, you need to be careful to -always specify the database that you want to use. +the concept of a ``default`` database doesn't make sense in the context +of your project, you need to be careful to always specify the database +that you want to use. Django requires that a ``default`` database entry +be defined, but the parameters can be left blank if it will not be used. The following is an example ``settings.py`` snippet defining two databases -- a default PostgreSQL database and a MySQL database called -- cgit v1.3 From 9b97f01dea093de484366924842c89550472d0b6 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sat, 23 Feb 2013 15:26:41 -0500 Subject: Fixed #19880 - Fixed an error in the form wizard initial_dict example. Thanks almalki for the report. --- docs/ref/contrib/formtools/form-wizard.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/ref/contrib/formtools/form-wizard.txt b/docs/ref/contrib/formtools/form-wizard.txt index ee9114acf9..bcffb7716b 100644 --- a/docs/ref/contrib/formtools/form-wizard.txt +++ b/docs/ref/contrib/formtools/form-wizard.txt @@ -537,7 +537,9 @@ Providing initial data for the forms ... '0': {'subject': 'Hello', 'sender': 'user@example.com'}, ... '1': {'message': 'Hi there!'} ... } - >>> wiz = ContactWizard.as_view([ContactForm1, ContactForm2], initial_dict=initial) + >>> # This example is illustrative only and isn't meant to be run in + >>> # the shell since it requires an HttpRequest to pass to the view. + >>> wiz = ContactWizard.as_view([ContactForm1, ContactForm2], initial_dict=initial)(request) >>> form1 = wiz.get_form('0') >>> form2 = wiz.get_form('1') >>> form1.initial -- cgit v1.3 From 4c05fdb467d1de68348401fc47869e8f35dcc278 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sat, 23 Feb 2013 15:33:43 -0500 Subject: Fixed #19579 - Documented that "providing_args" is purely documentational. --- docs/topics/signals.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/topics/signals.txt b/docs/topics/signals.txt index 5ea0895c42..d611da4a37 100644 --- a/docs/topics/signals.txt +++ b/docs/topics/signals.txt @@ -213,7 +213,8 @@ Defining signals All signals are :class:`django.dispatch.Signal` instances. The ``providing_args`` is a list of the names of arguments the signal will provide -to listeners. +to listeners. This is purely documentational, however, as there is nothing that +checks that the signal actually provides these arguments to its listeners. For example: -- cgit v1.3 From 24a2bcbcdd9e76901cd8f8bb38d9d5b6e0bc4fd6 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sat, 23 Feb 2013 15:42:56 -0500 Subject: Fixed #19402 - Clarified purpose of CustomUser.REQUIRED_FIELDS Thanks pydanny for the report and ptone for the patch. --- docs/topics/auth/customizing.txt | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'docs') diff --git a/docs/topics/auth/customizing.txt b/docs/topics/auth/customizing.txt index c5d9e4ff7b..204c11765c 100644 --- a/docs/topics/auth/customizing.txt +++ b/docs/topics/auth/customizing.txt @@ -507,9 +507,16 @@ password resets. You must then provide some key implementation details: .. attribute:: REQUIRED_FIELDS - A list of the field names that *must* be provided when creating - a user. For example, here is the partial definition for a User model - that defines two required fields - a date of birth and height:: + A list of the field names that *must* be provided when creating a user + via the :djadmin:`createsuperuser` management command. The user will be + prompted to supply a value for each of these fields. It should include + any field for which :attr:`~django.db.models.Field.blank` is ``False`` + or undefined, but may include additional fields you want prompted for + when a user is created interactively. However, it will not work for + :class:`~django.db.models.ForeignKey` fields. + + For example, here is the partial definition for a ``User`` model that + defines two required fields - a date of birth and height:: class MyUser(AbstractBaseUser): ... -- cgit v1.3 From cf890c110e159de16d54a59dc878272776d38514 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sat, 23 Feb 2013 16:01:43 -0500 Subject: Added an example of "default" database dictionary left blank; refs #19775. Thanks wsmith323 for the patch. --- docs/topics/db/multi-db.txt | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) (limited to 'docs') diff --git a/docs/topics/db/multi-db.txt b/docs/topics/db/multi-db.txt index dd7e59b99e..8150e498de 100644 --- a/docs/topics/db/multi-db.txt +++ b/docs/topics/db/multi-db.txt @@ -20,11 +20,7 @@ documentation. Databases can have any alias you choose. However, the alias ``default`` has special significance. Django uses the database with -the alias of ``default`` when no other database has been selected. If -the concept of a ``default`` database doesn't make sense in the context -of your project, you need to be careful to always specify the database -that you want to use. Django requires that a ``default`` database entry -be defined, but the parameters can be left blank if it will not be used. +the alias of ``default`` when no other database has been selected. The following is an example ``settings.py`` snippet defining two databases -- a default PostgreSQL database and a MySQL database called @@ -47,6 +43,29 @@ databases -- a default PostgreSQL database and a MySQL database called } } +If the concept of a ``default`` database doesn't make sense in the context +of your project, you need to be careful to always specify the database +that you want to use. Django requires that a ``default`` database entry +be defined, but the parameters dictionary can be left blank if it will not be +used. The following is an example ``settings.py`` snippet defining two +non-default databases, with the ``default`` entry intentionally left empty:: + + DATABASES = { + 'default': {}, + 'users': { + 'NAME': 'user_data', + 'ENGINE': 'django.db.backends.mysql', + 'USER': 'mysql_user', + 'PASSWORD': 'superS3cret' + }, + 'customers': { + 'NAME': 'customer_data', + 'ENGINE': 'django.db.backends.mysql', + 'USER': 'mysql_cust', + 'PASSWORD': 'veryPriv@ate' + } + } + If you attempt to access a database that you haven't defined in your :setting:`DATABASES` setting, Django will raise a ``django.db.utils.ConnectionDoesNotExist`` exception. -- cgit v1.3 From 9d2c0a0ae6ce931699daa87735d5b8b2afaa20f9 Mon Sep 17 00:00:00 2001 From: Preston Holmes Date: Sat, 23 Feb 2013 14:19:01 -0800 Subject: Removed superfluous cookie check from auth login. This is ensured through the CSRF protection of the view --- django/contrib/admin/forms.py | 1 - django/contrib/auth/forms.py | 9 ++++----- django/contrib/auth/views.py | 5 ----- docs/internals/deprecation.txt | 6 ++++++ 4 files changed, 10 insertions(+), 11 deletions(-) (limited to 'docs') diff --git a/django/contrib/admin/forms.py b/django/contrib/admin/forms.py index 1fabdce245..38c445f71a 100644 --- a/django/contrib/admin/forms.py +++ b/django/contrib/admin/forms.py @@ -33,5 +33,4 @@ class AdminAuthenticationForm(AuthenticationForm): raise forms.ValidationError(message % { 'username': self.username_field.verbose_name }) - self.check_for_test_cookie() return self.cleaned_data diff --git a/django/contrib/auth/forms.py b/django/contrib/auth/forms.py index c28971b94d..f3ad655c65 100644 --- a/django/contrib/auth/forms.py +++ b/django/contrib/auth/forms.py @@ -1,5 +1,7 @@ from __future__ import unicode_literals +import warnings + from django import forms from django.forms.util import flatatt from django.template import loader @@ -153,8 +155,6 @@ class AuthenticationForm(forms.Form): error_messages = { 'invalid_login': _("Please enter a correct %(username)s and password. " "Note that both fields may be case-sensitive."), - 'no_cookies': _("Your Web browser doesn't appear to have cookies " - "enabled. Cookies are required for logging in."), 'inactive': _("This account is inactive."), } @@ -189,12 +189,11 @@ class AuthenticationForm(forms.Form): }) elif not self.user_cache.is_active: raise forms.ValidationError(self.error_messages['inactive']) - self.check_for_test_cookie() return self.cleaned_data def check_for_test_cookie(self): - if self.request and not self.request.session.test_cookie_worked(): - raise forms.ValidationError(self.error_messages['no_cookies']) + warnings.warn("check_for_test_cookie is deprecated; ensure your login " + "view is CSRF-protected.", DeprecationWarning) def get_user_id(self): if self.user_cache: diff --git a/django/contrib/auth/views.py b/django/contrib/auth/views.py index 9d1534651b..c9f53f1956 100644 --- a/django/contrib/auth/views.py +++ b/django/contrib/auth/views.py @@ -45,15 +45,10 @@ def login(request, template_name='registration/login.html', # Okay, security check complete. Log the user in. auth_login(request, form.get_user()) - if request.session.test_cookie_worked(): - request.session.delete_test_cookie() - return HttpResponseRedirect(redirect_to) else: form = authentication_form(request) - request.session.set_test_cookie() - current_site = get_current_site(request) context = { diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt index ef9fd31d15..f1ae1338df 100644 --- a/docs/internals/deprecation.txt +++ b/docs/internals/deprecation.txt @@ -320,6 +320,12 @@ these changes. deprecated. Use the :class:`warnings.catch_warnings` context manager available starting with Python 2.6 instead. +* The undocumented ``check_for_test_cookie`` method in + :class:`~django.contrib.auth.forms.AuthenticationForm` will be removed + following an accelerated deprecation. Users subclassing this form should + remove calls to this method, and instead ensure that their auth related views + are CSRF protected, which ensures that cookies are enabled. + 1.8 --- -- cgit v1.3 From f480b395256612de83b2f912bfecee03366bc990 Mon Sep 17 00:00:00 2001 From: Carl Meyer Date: Sat, 23 Feb 2013 17:58:57 -0700 Subject: Various tweaks and additions to 'how to release Django' document. --- docs/internals/howto-release-django.txt | 63 ++++++++++++++++++++------------- 1 file changed, 38 insertions(+), 25 deletions(-) (limited to 'docs') diff --git a/docs/internals/howto-release-django.txt b/docs/internals/howto-release-django.txt index 1dc80b553e..fffdc9b869 100644 --- a/docs/internals/howto-release-django.txt +++ b/docs/internals/howto-release-django.txt @@ -36,7 +36,7 @@ differences noted. The short version is: #. Update version numbers and create the release package(s)! -#. Upload the package(s) to the the ``djangoproject.com`` server and creating +#. Upload the package(s) to the the ``djangoproject.com`` server and create some redirects for download/checksum links. #. Unless this is a pre-release, add the new version(s) to PyPI. @@ -47,7 +47,7 @@ differences noted. The short version is: #. Update version numbers post-release. -There's a lot of details, so please read on. +There are a lot of details, so please read on. Prerequisites ============= @@ -116,7 +116,7 @@ before release: __ https://github.com/django/djangoproject.com/commit/772edbc6ac5a2b8e718606b3338f2bcc429fb9b6 #. Write the announcement blog post for the release. You can enter it into - the admin at any time and mark it as inactive. Here's a few examples: + the admin at any time and mark it as inactive. Here are a few examples: `example security release announcement`__, `example regular release announcement`__, `example pre-release announcement`__. @@ -135,19 +135,28 @@ Actually rolling the release OK, this is the fun part, where we actually push out a release! -#. Check Jenkins is green for the version(s) you're putting out. You probably - shouldn't issue a release until it's green. +#. Check `Jenkins`__ is green for the version(s) you're putting out. You + probably shouldn't issue a release until it's green. + + __ http://ci.djangoproject.com + +#. A release always begins from a release branch, so you should ``git checkout + stable/`` (e.g. checkout ``stable/1.5.x`` to issue a release in the + 1.5 series) and then ``git pull`` to make sure you're up-to-date. -#. A release always begins from a release branch, so you - should ``git pull`` to make sure you're up-to-date and then - ``git checkout stable/`` (e.g. checkout ``stable/1.5.x`` to issue - a release in the 1.5 series.) #. If this is a security release, merge the appropriate patches from - ``django-private``. *FIXME: actual commands here - make sure to --ff- - only right?*. Make sure the commit messages explain that the commit - is a security fix and that an announcement will follow (`example - security commit`__) + ``django-private``. Rebase these patches as necessary to make each one a + simple commit on the release branch rather than a merge commit. To ensure + this, merge them with the ``--ff-only`` flag; for example, ``git checkout + stable/1.5.x; git merge --ff-only security/1.5.x``, if ``security/1.5.x`` is + a branch in the ``django-private`` repo containing the necessary security + patches for the next release in the 1.5 series. If git refuses to merge with + ``--ff-only``, switch to the security-patch branch and rebase it on the + branch you are about to merge it into (``git checkout security/1.5.x; git + rebase stable/1.5.x``) and then switch back and do the merge. Make sure the + commit message for each security fix explains that the commit is a security + fix and that an announcement will follow (`example security commit`__) __ https://github.com/django/django/commit/3ef4bbf495cc6c061789132e3d50a8231a89406b @@ -166,7 +175,7 @@ OK, this is the fun part, where we actually push out a release! classifier in ``setup.py`` to reflect this. Otherwise, make sure the classifier is set to ``Development Status :: 5 - Production/Stable``. -#. Tag the release by running ``git tag`` *FIXME actual commands*. +#. Tag the release by running ``git tag -s`` *FIXME actual commands*. #. ``git push`` your work. @@ -207,7 +216,7 @@ Now you're ready to actually put the release out there. To do this: ``/home/www/djangoproject.com/src/media/pgp``. #. Test that the release packages install correctly using ``easy_install`` - and ``pip``. Here's how I do it (which requires `virtualenvwrapper`__): + and ``pip``. Here's one method (which requires `virtualenvwrapper`__):: $ mktmpenv $ easy_install https://www.djangoproject.com/download//tarball/ @@ -217,20 +226,24 @@ Now you're ready to actually put the release out there. To do this: $ deactivate This just tests that the tarballs are available (i.e. redirects are up) and - that they install correctly, but it'll catch silly mistakes. *XXX FIXME: + that they install correctly, but it'll catch silly mistakes. *FIXME: buildout too?* __ https://pypi.python.org/pypi/virtualenvwrapper -#. Ask a few people on IRC to verify the checksums by visiting the chucksums +#. Ask a few people on IRC to verify the checksums by visiting the checksums file (e.g. https://www.djangoproject.com/m/pgp/Django-1.5b1.checksum.txt) - and following the instructions in it. - -#. If this is a security or regular release, register the new package with - PyPI by uploading the ``PGK-INFO`` file generated in the release package. - This file's *in* the distribution tarball, so you'll need to pull it - out. ``tar xzf dist/Django-.tar.gz Django-/PKG-INFO`` - ought to work. + and following the instructions in it. For bonus points, they can also unpack + the downloaded release tarball and verify that its contents appear to be + correct (proper version numbers, no stray ``.pyc`` or other undesirable + files). + +#. If this is a security or regular release, register the new package with PyPI + by uploading the ``PGK-INFO`` file generated in the release package. This + file's *in* the distribution tarball, so you'll need to pull it out. ``tar + xzf dist/Django-.tar.gz Django-/PKG-INFO`` ought to + work. *FIXME: Is there any reason to pull this file out manually rather than + using "python setup.py register"?* #. Deploy the template changes you made a while back by running `fab deploy` from the ``djangoproject.com`` repo. @@ -240,7 +253,7 @@ Now you're ready to actually put the release out there. To do this: to that page listing the preview package; otherwise, just update the "Get the latest official version" section. -#. Make up the blog post announcing the release live. +#. Make the blog post announcing the release live. #. Post the release announcement to the django-announce, django-developers and django-users mailing lists. This should -- cgit v1.3 From 17a28b39a8d77997f83ecd94ebcff7b198b8cb05 Mon Sep 17 00:00:00 2001 From: Preston Holmes Date: Sat, 23 Feb 2013 19:06:04 -0800 Subject: Made a small clarification in tutorial. refs #19889 --- docs/intro/tutorial03.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/intro/tutorial03.txt b/docs/intro/tutorial03.txt index 975e3fc668..daab8b7756 100644 --- a/docs/intro/tutorial03.txt +++ b/docs/intro/tutorial03.txt @@ -405,7 +405,8 @@ The new concept here: The view raises the :exc:`~django.http.Http404` exception if a poll with the requested ID doesn't exist. We'll discuss what you could put in that ``polls/detail.html`` template a bit -later, but if you'd like to quickly get the above example working, just:: +later, but if you'd like to quickly get the above example working, a file +containing just:: {{ poll }} -- cgit v1.3 From 5612f54bd56086e2a375e86474ec734c172e7d1f Mon Sep 17 00:00:00 2001 From: Horst Gutmann Date: Sat, 23 Feb 2013 19:11:56 +0100 Subject: Added more details about the various serialization formats. --- docs/topics/serialization.txt | 96 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 91 insertions(+), 5 deletions(-) (limited to 'docs') diff --git a/docs/topics/serialization.txt b/docs/topics/serialization.txt index 2af0584a61..25884fa874 100644 --- a/docs/topics/serialization.txt +++ b/docs/topics/serialization.txt @@ -162,11 +162,82 @@ Identifier Information .. _json: http://json.org/ .. _PyYAML: http://www.pyyaml.org/ -Notes for specific serialization formats -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +XML +~~~ + +The basic XML serialization format is quite simple:: + + + + + 2013-01-16T08:16:59.844560+00:00 + + + + +The whole collection of objects that is either serialized or de-serialized is +represented by a ````-tag which contains multiple +````-elements. Each such object has two attributes: "pk" and "model", +the latter being represented by the name of the app ("sessions") and the +lowercase name of the model ("session") separated by a dot. + +Each field of the object is serialized as a ````-element sporting the +fields "type" and "name". The text content of the element represents the value +that should be stored. + +Foreign keys and other relational fields are treated a little bit differently:: + + + + 9 + + + +In this example we specify that the auth.Permission object with the PK 24 has +a foreign key to the contenttypes.ContentType instance with the PK 9. + +ManyToMany-relations are exported for the model that binds them. For instance, +the auth.User model has such a relation to the auth.Permission model:: + + + + + + + + + +This example links the given user with the permission models with PKs 46 and 47. + +JSON +~~~~ + +When staying with the same example data as before it would be serialized as +JSON in the following way:: + + [ + { + "pk": "4b678b301dfd8a4e0dad910de3ae245b", + "model": "sessions.session", + "fields": { + "expire_date": "2013-01-16T08:16:59.844Z", + ... + } + } + ] + +The formatting here is a bit simpler than with XML. The whole collection +is just represented as an array and the objects are represented by JSON objects +with three properties: "pk", "model" and "fields". "fields" is again an object +containing each field's name and value as property and property-value +respectively. + +Foreign keys just have the PK of the linked object as property value. +ManyToMany-relations are serialized for the model that defines them and are +represented as a list of PKs. -json -^^^^ +Date and datetime related types are treated in a special way by the JSON +serializer to make the format compatible with `ECMA-262`_. Be aware that not all Django output can be passed unmodified to :mod:`json`. In particular, :ref:`lazy translation objects ` need a @@ -175,14 +246,29 @@ In particular, :ref:`lazy translation objects ` need a import json from django.utils.functional import Promise from django.utils.encoding import force_text + from django.core.serializers.json import DjangoJSONEncoder - class LazyEncoder(json.JSONEncoder): + class LazyEncoder(DjangoJSONEncoder): def default(self, obj): if isinstance(obj, Promise): return force_text(obj) return super(LazyEncoder, self).default(obj) .. _special encoder: http://docs.python.org/library/json.html#encoders-and-decoders +.. _ecma-262: http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15 + +YAML +~~~~ + +YAML serialization looks quite similar to JSON. The object list is serialized +as a sequence mappings with the keys "pk", "model" and "fields". Each field is +again a mapping with the key being name of the field and the value the value:: + + - fields: {expire_date: !!timestamp '2013-01-16 08:16:59.844560+00:00'} + model: sessions.session + pk: 4b678b301dfd8a4e0dad910de3ae245b + +Referential fields are again just represented by the PK or sequence of PKs. .. _topics-serialization-natural-keys: -- cgit v1.3 From 5099f31a31c80e82bdc185b23c9ac5f1f472fefb Mon Sep 17 00:00:00 2001 From: Tomasz Rybak Date: Sun, 24 Feb 2013 12:53:59 +0100 Subject: Made changes asked in review by HonzaKral Add documentation for new command in django-admin. --- docs/ref/django-admin.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'docs') diff --git a/docs/ref/django-admin.txt b/docs/ref/django-admin.txt index bde4ec6c82..166d7a5a60 100644 --- a/docs/ref/django-admin.txt +++ b/docs/ref/django-admin.txt @@ -863,6 +863,16 @@ Note that the order in which the SQL files are processed is undefined. The :djadminopt:`--database` option can be used to specify the database for which to print the SQL. +sqldropindexes +-------------------------------- + +.. django-admin:: sqldropindexes + +Prints the DROP INDEX SQL statements for the given app name(s). + +The :djadminopt:`--database` option can be used to specify the database for +which to print the SQL. + sqlflush -------- -- cgit v1.3 From 5a9b2bce242bd2f8a9fed6ac735406ce68b10738 Mon Sep 17 00:00:00 2001 From: Bas Peschier Date: Sun, 24 Feb 2013 13:36:04 +0100 Subject: Fixed #19810 -- MemcachedCache now uses pickle.HIGHEST_PROTOCOL --- django/core/cache/backends/memcached.py | 7 +++++++ docs/releases/1.6.txt | 3 +++ tests/regressiontests/cache/tests.py | 13 +++++++++++++ 3 files changed, 23 insertions(+) (limited to 'docs') diff --git a/django/core/cache/backends/memcached.py b/django/core/cache/backends/memcached.py index f8dcf983af..c942acd52f 100644 --- a/django/core/cache/backends/memcached.py +++ b/django/core/cache/backends/memcached.py @@ -1,6 +1,7 @@ "Memcached cache backend" import time +import pickle from threading import local from django.core.cache.backends.base import BaseCache, InvalidCacheBackendError @@ -146,6 +147,12 @@ class MemcachedCache(BaseMemcachedCache): library=memcache, value_not_found_exception=ValueError) + @property + def _cache(self): + if getattr(self, '_client', None) is None: + self._client = self._lib.Client(self._servers, pickleProtocol=pickle.HIGHEST_PROTOCOL) + return self._client + class PyLibMCCache(BaseMemcachedCache): "An implementation of a cache binding using pylibmc" def __init__(self, server, params): diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index ce1e643946..c2a3d56c53 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -89,6 +89,9 @@ Minor features :class:`~django.http.HttpResponsePermanentRedirect` now provide an ``url`` attribute (equivalent to the URL the response will redirect to). +* The ``MemcachedCache`` cache backend now uses the latest :mod:`pickle` + protocol available. + * Added the :attr:`django.db.models.ForeignKey.db_constraint` option. diff --git a/tests/regressiontests/cache/tests.py b/tests/regressiontests/cache/tests.py index b446465d32..17d17f7fdd 100644 --- a/tests/regressiontests/cache/tests.py +++ b/tests/regressiontests/cache/tests.py @@ -12,6 +12,7 @@ import string import tempfile import time import warnings +import pickle from django.conf import settings from django.core import management @@ -984,6 +985,18 @@ class MemcachedCacheTests(unittest.TestCase, BaseCacheTests): # memcached limits key length to 250 self.assertRaises(Exception, self.cache.set, 'a' * 251, 'value') + # Explicitly display a skipped test if no configured cache uses MemcachedCache + @unittest.skipUnless( + any(cache['BACKEND'] == 'django.core.cache.backends.memcached.MemcachedCache' + for cache in settings.CACHES.values()), + "cache with python-memcached library not available") + def test_memcached_uses_highest_pickle_version(self): + # Regression test for #19810 + for cache_key, cache in settings.CACHES.items(): + if cache['BACKEND'] == 'django.core.cache.backends.memcached.MemcachedCache': + self.assertEqual(get_cache(cache_key)._cache.pickleProtocol, + pickle.HIGHEST_PROTOCOL) + class FileBasedCacheTests(unittest.TestCase, BaseCacheTests): """ -- cgit v1.3 From deb4e097ae2a495480a2907028fc3c76eed0cbb7 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sun, 24 Feb 2013 13:58:24 +0100 Subject: Fixed minor rst formatting glitch. --- docs/ref/django-admin.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/ref/django-admin.txt b/docs/ref/django-admin.txt index 166d7a5a60..b8b81e42cd 100644 --- a/docs/ref/django-admin.txt +++ b/docs/ref/django-admin.txt @@ -864,7 +864,7 @@ The :djadminopt:`--database` option can be used to specify the database for which to print the SQL. sqldropindexes --------------------------------- +------------------------------------ .. django-admin:: sqldropindexes -- cgit v1.3 From ade992c61e15fbc83d87bfc688c0f844b6ef19fd Mon Sep 17 00:00:00 2001 From: Erik Romijn Date: Sun, 24 Feb 2013 13:20:41 +0100 Subject: Fixed #16302 -- Ensure contrib.comments is IPv6 capable Changed the ip_address field for Comment to GenericIPAddressField. Added instructions to the release notes on how to update the schema of existing databases. --- django/contrib/comments/models.py | 2 +- docs/releases/1.6.txt | 24 +++++++++++++++ .../comment_tests/tests/comment_view_tests.py | 34 ++++++++++++++++++++-- 3 files changed, 57 insertions(+), 3 deletions(-) (limited to 'docs') diff --git a/django/contrib/comments/models.py b/django/contrib/comments/models.py index c263ea7d10..bc4d932464 100644 --- a/django/contrib/comments/models.py +++ b/django/contrib/comments/models.py @@ -60,7 +60,7 @@ class Comment(BaseCommentAbstractModel): # Metadata about the comment submit_date = models.DateTimeField(_('date/time submitted'), default=None) - ip_address = models.IPAddressField(_('IP address'), blank=True, null=True) + ip_address = models.GenericIPAddressField(_('IP address'), unpack_ipv4=True, blank=True, null=True) is_public = models.BooleanField(_('is public'), default=True, help_text=_('Uncheck this box to make the comment effectively ' \ 'disappear from the site.')) diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index ce1e643946..497a0349db 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -149,6 +149,30 @@ Backwards incompatible changes in 1.6 {{ title }}{# Translators: Extracted and associated with 'Welcome' below #}

    {% trans "Welcome" %}

    +* The :doc:`comments ` app now uses a ``GenericIPAddressField`` + for storing commenters' IP addresses, to support comments submitted from IPv6 addresses. + Until now, it stored them in an ``IPAddressField``, which is only meant to support IPv4. + When saving a comment made from an IPv6 address, the address would be silently truncated + on MySQL databases, and raise an exception on Oracle. + You will need to change the column type in your database to benefit from this change. + + For MySQL, execute this query on your project's database: + + .. code-block:: sql + + ALTER TABLE django_comments MODIFY ip_address VARCHAR(39); + + For Oracle, execute this query: + + .. code-block:: sql + + ALTER TABLE DJANGO_COMMENTS MODIFY (ip_address VARCHAR2(39)); + + If you do not apply this change, the behaviour is unchanged: on MySQL, IPv6 addresses + are silently truncated; on Oracle, an exception is generated. No database + change is needed for SQLite or PostgreSQL databases. + + .. warning:: In addition to the changes outlined in this section, be sure to review the diff --git a/tests/regressiontests/comment_tests/tests/comment_view_tests.py b/tests/regressiontests/comment_tests/tests/comment_view_tests.py index 5c1954026d..0d994d3af8 100644 --- a/tests/regressiontests/comment_tests/tests/comment_view_tests.py +++ b/tests/regressiontests/comment_tests/tests/comment_view_tests.py @@ -101,13 +101,43 @@ class CommentViewTests(CommentTestCase): settings.DEBUG = olddebug def testCreateValidComment(self): + address = "1.2.3.4" a = Article.objects.get(pk=1) data = self.getValidData(a) - self.response = self.client.post("/post/", data, REMOTE_ADDR="1.2.3.4") + self.response = self.client.post("/post/", data, REMOTE_ADDR=address) self.assertEqual(self.response.status_code, 302) self.assertEqual(Comment.objects.count(), 1) c = Comment.objects.all()[0] - self.assertEqual(c.ip_address, "1.2.3.4") + self.assertEqual(c.ip_address, address) + self.assertEqual(c.comment, "This is my comment") + + def testCreateValidCommentIPv6(self): + """ + Test creating a valid comment with a long IPv6 address. + Note that this test should fail when Comment.ip_address is an IPAddress instead of a GenericIPAddress, + but does not do so on SQLite or PostgreSQL, because they use the TEXT and INET types, which already + allow storing an IPv6 address internally. + """ + address = "2a02::223:6cff:fe8a:2e8a" + a = Article.objects.get(pk=1) + data = self.getValidData(a) + self.response = self.client.post("/post/", data, REMOTE_ADDR=address) + self.assertEqual(self.response.status_code, 302) + self.assertEqual(Comment.objects.count(), 1) + c = Comment.objects.all()[0] + self.assertEqual(c.ip_address, address) + self.assertEqual(c.comment, "This is my comment") + + def testCreateValidCommentIPv6Unpack(self): + address = "::ffff:18.52.18.52" + a = Article.objects.get(pk=1) + data = self.getValidData(a) + self.response = self.client.post("/post/", data, REMOTE_ADDR=address) + self.assertEqual(self.response.status_code, 302) + self.assertEqual(Comment.objects.count(), 1) + c = Comment.objects.all()[0] + # We trim the '::ffff:' bit off because it is an IPv4 addr + self.assertEqual(c.ip_address, address[7:]) self.assertEqual(c.comment, "This is my comment") def testPostAsAuthenticatedUser(self): -- cgit v1.3 From 99edbe0e279166db82caaf545ef92d5446a6a07e Mon Sep 17 00:00:00 2001 From: Tomek Paczkowski Date: Sun, 24 Feb 2013 12:58:02 +0100 Subject: Fixed #19253 -- Extracted template cache key building logic Introduced a public function django.core.cache.utils.make_template_fragment_key Thanks @chrismedrela for fruitful cooperation. --- AUTHORS | 2 ++ django/core/cache/utils.py | 15 +++++++++++++++ django/templatetags/cache.py | 10 +++------- docs/topics/cache.txt | 17 +++++++++++++++++ tests/regressiontests/cache/tests.py | 23 +++++++++++++++++++++++ 5 files changed, 60 insertions(+), 7 deletions(-) create mode 100644 django/core/cache/utils.py (limited to 'docs') diff --git a/AUTHORS b/AUTHORS index 9089f7db90..5f9cb980c6 100644 --- a/AUTHORS +++ b/AUTHORS @@ -382,6 +382,7 @@ answer newbie questions, and generally made Django that much better: Paul McLanahan Tobias McNulty Andrews Medina + Christoph Mędrela Zain Memon Christian Metts michal@plovarna.cz @@ -418,6 +419,7 @@ answer newbie questions, and generally made Django that much better: Christian Oudard oggie rob oggy + Tomek Paczkowski Jens Page Jay Parlar Carlos Eduardo de Paula diff --git a/django/core/cache/utils.py b/django/core/cache/utils.py new file mode 100644 index 0000000000..4310825ad4 --- /dev/null +++ b/django/core/cache/utils.py @@ -0,0 +1,15 @@ +from __future__ import absolute_import, unicode_literals + +import hashlib +from django.utils.encoding import force_bytes +from django.utils.http import urlquote + +TEMPLATE_FRAGMENT_KEY_TEMPLATE = 'template.cache.%s.%s' + + +def make_template_fragment_key(fragment_name, vary_on=None): + if vary_on is None: + vary_on = () + key = ':'.join([urlquote(var) for var in vary_on]) + args = hashlib.md5(force_bytes(key)) + return TEMPLATE_FRAGMENT_KEY_TEMPLATE % (fragment_name, args.hexdigest()) diff --git a/django/templatetags/cache.py b/django/templatetags/cache.py index bb21b91c6a..8c061ca4c6 100644 --- a/django/templatetags/cache.py +++ b/django/templatetags/cache.py @@ -1,10 +1,8 @@ from __future__ import unicode_literals -import hashlib +from django.core.cache.utils import make_template_fragment_key from django.template import Library, Node, TemplateSyntaxError, VariableDoesNotExist from django.core.cache import cache -from django.utils.encoding import force_bytes -from django.utils.http import urlquote register = Library() @@ -24,10 +22,8 @@ class CacheNode(Node): expire_time = int(expire_time) except (ValueError, TypeError): raise TemplateSyntaxError('"cache" tag got a non-integer timeout value: %r' % expire_time) - # Build a key for this fragment and all vary-on's. - key = ':'.join([urlquote(var.resolve(context)) for var in self.vary_on]) - args = hashlib.md5(force_bytes(key)) - cache_key = 'template.cache.%s.%s' % (self.fragment_name, args.hexdigest()) + vary_on = [var.resolve(context) for var in self.vary_on] + cache_key = make_template_fragment_key(self.fragment_name, vary_on) value = cache.get(cache_key) if value is None: value = self.nodelist.render(context) diff --git a/docs/topics/cache.txt b/docs/topics/cache.txt index e345b89dcd..6b6d57511a 100644 --- a/docs/topics/cache.txt +++ b/docs/topics/cache.txt @@ -639,6 +639,23 @@ equivalent: This feature is useful in avoiding repetition in templates. You can set the timeout in a variable, in one place, and just reuse that value. +.. function:: django.core.cache.utils.make_template_fragment_key(fragment_name, vary_on=None) + +If you want to obtain the cache key used for a cached fragment, you can use +``make_template_fragment_key``. ``fragment_name`` is the same as second argument +to the ``cache`` template tag; ``vary_on`` is a list of all additional arguments +passed to the tag. This function can be useful for invalidating or overwriting +a cached item, for example: + +.. code-block:: python + + >>> from django.core.cache import cache + >>> from django.core.cache.utils import make_template_fragment_key + # cache key for {% cache 500 sidebar username %} + >>> key = make_template_fragment_key('sidebar', [username]) + >>> cache.delete(key) # invalidates cached template fragment + + The low-level cache API ======================= diff --git a/tests/regressiontests/cache/tests.py b/tests/regressiontests/cache/tests.py index 17d17f7fdd..d5d538319a 100644 --- a/tests/regressiontests/cache/tests.py +++ b/tests/regressiontests/cache/tests.py @@ -20,6 +20,7 @@ from django.core.cache import get_cache from django.core.cache.backends.base import (CacheKeyWarning, InvalidCacheBackendError) from django.db import router, transaction +from django.core.cache.utils import make_template_fragment_key from django.http import (HttpResponse, HttpRequest, StreamingHttpResponse, QueryDict) from django.middleware.cache import (FetchFromCacheMiddleware, @@ -1809,3 +1810,25 @@ class TestEtagWithAdmin(TestCase): response = self.client.get('/test_admin/admin/') self.assertEqual(response.status_code, 200) self.assertTrue(response.has_header('ETag')) + + +class TestMakeTemplateFragmentKey(TestCase): + def test_without_vary_on(self): + key = make_template_fragment_key('a.fragment') + self.assertEqual(key, 'template.cache.a.fragment.d41d8cd98f00b204e9800998ecf8427e') + + def test_with_one_vary_on(self): + key = make_template_fragment_key('foo', ['abc']) + self.assertEqual(key, + 'template.cache.foo.900150983cd24fb0d6963f7d28e17f72') + + def test_with_many_vary_on(self): + key = make_template_fragment_key('bar', ['abc', 'def']) + self.assertEqual(key, + 'template.cache.bar.4b35f12ab03cec09beec4c21b2d2fa88') + + def test_proper_escaping(self): + key = make_template_fragment_key('spam', ['abc:def%']) + self.assertEqual(key, + 'template.cache.spam.f27688177baec990cdf3fbd9d9c3f469') + -- cgit v1.3 From 0a8402eb052a5c35085baa5408aaf4ee36ebc0a6 Mon Sep 17 00:00:00 2001 From: Zbigniew Siciarz Date: Sun, 24 Feb 2013 15:00:34 +0100 Subject: Test case and docs for custom context data in feeds Thanks Paul Winkler for the initial patch. (Ref #18112). --- django/contrib/syndication/views.py | 16 ++++++- docs/ref/contrib/syndication.txt | 54 ++++++++++++++++++++++ docs/topics/class-based-views/generic-display.txt | 2 + tests/regressiontests/syndication/feeds.py | 13 ++++++ .../templates/syndication/description_context.html | 1 + .../templates/syndication/title_context.html | 1 + tests/regressiontests/syndication/tests.py | 16 +++++++ tests/regressiontests/syndication/urls.py | 1 + 8 files changed, 102 insertions(+), 2 deletions(-) create mode 100644 tests/regressiontests/syndication/templates/syndication/description_context.html create mode 100644 tests/regressiontests/syndication/templates/syndication/title_context.html (limited to 'docs') diff --git a/django/contrib/syndication/views.py b/django/contrib/syndication/views.py index a80b9d1fae..4abf1e53a9 100644 --- a/django/contrib/syndication/views.py +++ b/django/contrib/syndication/views.py @@ -100,6 +100,16 @@ class Feed(object): def get_object(self, request, *args, **kwargs): return None + def get_context_data(self, **kwargs): + """ + Returns a dictionary to use as extra context if either + ``self.description_template`` or ``self.item_template`` are used. + + Default implementation preserves the old behavior + of using {'obj': item, 'site': current_site} as the context. + """ + return {'obj': kwargs.get('item'), 'site': kwargs.get('site')} + def get_feed(self, obj, request): """ Returns a feedgenerator.DefaultFeed object, fully populated, for @@ -146,12 +156,14 @@ class Feed(object): pass for item in self.__get_dynamic_attr('items', obj): + context = self.get_context_data(item=item, site=current_site, + obj=obj, request=request) if title_tmp is not None: - title = title_tmp.render(RequestContext(request, {'obj': item, 'site': current_site})) + title = title_tmp.render(RequestContext(request, context)) else: title = self.__get_dynamic_attr('item_title', item) if description_tmp is not None: - description = description_tmp.render(RequestContext(request, {'obj': item, 'site': current_site})) + description = description_tmp.render(RequestContext(request, context)) else: description = self.__get_dynamic_attr('item_description', item) link = add_domain( diff --git a/docs/ref/contrib/syndication.txt b/docs/ref/contrib/syndication.txt index 65aa7b57b4..02159c415b 100644 --- a/docs/ref/contrib/syndication.txt +++ b/docs/ref/contrib/syndication.txt @@ -137,6 +137,51 @@ into those elements. See `a complex example`_ below that uses a description template. + There is also a way to pass additional information to title and description + templates, if you need to supply more than the two variables mentioned + before. You can provide your implementation of ``get_context_data`` method + in your Feed subclass. For example:: + + from mysite.models import Article + from django.contrib.syndication.views import Feed + + class ArticlesFeed(Feed): + title = "My articles" + description_template = "feeds/articles.html" + + def items(self): + return Article.objects.order_by('-pub_date')[:5] + + def get_context_data(self, **kwargs): + context = super(ArticlesFeed, self).get_context_data(**kwargs) + context['foo'] = 'bar' + return context + + And the template: + + .. code-block:: html+django + + Something about {{ foo }}: {{ obj.description }} + + This method will be called once per each item in the list returned by + ``items()`` with the following keyword arguments: + + * ``item``: the current item. For backward compatibility reasons, the name + of this context variable is ``{{ obj }}``. + + * ``obj``: the object returned by ``get_object()``. By default this is not + exposed to the templates to avoid confusion with ``{{ obj }}`` (see above), + but you can use it in your implementation of ``get_context_data()``. + + * ``site``: current site as described above. + + * ``request``: current request. + + The behavior of ``get_context_data()`` mimics that of + :ref:`generic views ` - you're supposed to call + ``super()`` to retrieve context data from parent class, add your data + and return the modified dictionary. + * To specify the contents of ````, you have two options. For each item in ``items()``, Django first tries calling the ``item_link()`` method on the @@ -599,6 +644,15 @@ This example illustrates all possible attributes and methods for a item_description = 'A description of the item.' # Hard-coded description. + def get_context_data(self, **kwargs): + """ + Returns a dictionary to use as extra context if either + description_template or item_template are used. + + Default implementation preserves the old behavior + of using {'obj': item, 'site': current_site} as the context. + """ + # ITEM LINK -- One of these three is required. The framework looks for # them in this order. diff --git a/docs/topics/class-based-views/generic-display.txt b/docs/topics/class-based-views/generic-display.txt index 8fe6cd0d65..8695af7fe6 100644 --- a/docs/topics/class-based-views/generic-display.txt +++ b/docs/topics/class-based-views/generic-display.txt @@ -188,6 +188,8 @@ Providing a useful ``context_object_name`` is always a good idea. Your coworkers who design templates will thank you. +.. _adding-extra-context: + Adding extra context -------------------- diff --git a/tests/regressiontests/syndication/feeds.py b/tests/regressiontests/syndication/feeds.py index 25757057b9..0956820bf0 100644 --- a/tests/regressiontests/syndication/feeds.py +++ b/tests/regressiontests/syndication/feeds.py @@ -97,6 +97,19 @@ class TemplateFeed(TestRss2Feed): return "Not in a template" +class TemplateContextFeed(TestRss2Feed): + """ + A feed to test custom context data in templates for title or description. + """ + title_template = 'syndication/title_context.html' + description_template = 'syndication/description_context.html' + + def get_context_data(self, **kwargs): + context = super(TemplateContextFeed, self).get_context_data(**kwargs) + context['foo'] = 'bar' + return context + + class NaiveDatesFeed(TestAtomFeed): """ A feed with naive (non-timezone-aware) dates. diff --git a/tests/regressiontests/syndication/templates/syndication/description_context.html b/tests/regressiontests/syndication/templates/syndication/description_context.html new file mode 100644 index 0000000000..319d84b1b0 --- /dev/null +++ b/tests/regressiontests/syndication/templates/syndication/description_context.html @@ -0,0 +1 @@ +{{ obj }} (foo is {{ foo }}) \ No newline at end of file diff --git a/tests/regressiontests/syndication/templates/syndication/title_context.html b/tests/regressiontests/syndication/templates/syndication/title_context.html new file mode 100644 index 0000000000..319d84b1b0 --- /dev/null +++ b/tests/regressiontests/syndication/templates/syndication/title_context.html @@ -0,0 +1 @@ +{{ obj }} (foo is {{ foo }}) \ No newline at end of file diff --git a/tests/regressiontests/syndication/tests.py b/tests/regressiontests/syndication/tests.py index 8885dc28c0..e8fc6be420 100644 --- a/tests/regressiontests/syndication/tests.py +++ b/tests/regressiontests/syndication/tests.py @@ -323,6 +323,22 @@ class SyndicationFeedTest(FeedTestCase): 'link': 'http://example.com/blog/1/', }) + def test_template_context_feed(self): + """ + Test that custom context data can be passed to templates for title + and description. + """ + response = self.client.get('/syndication/template_context/') + doc = minidom.parseString(response.content) + feed = doc.getElementsByTagName('rss')[0] + chan = feed.getElementsByTagName('channel')[0] + items = chan.getElementsByTagName('item') + + self.assertChildNodeContent(items[0], { + 'title': 'My first entry (foo is bar)', + 'description': 'My first entry (foo is bar)', + }) + def test_add_domain(self): """ Test add_domain() prefixes domains onto the correct URLs. diff --git a/tests/regressiontests/syndication/urls.py b/tests/regressiontests/syndication/urls.py index ec3c8cc596..1dd7e92332 100644 --- a/tests/regressiontests/syndication/urls.py +++ b/tests/regressiontests/syndication/urls.py @@ -21,4 +21,5 @@ urlpatterns = patterns('django.contrib.syndication.views', (r'^syndication/feedurl/$', feeds.TestFeedUrlFeed()), (r'^syndication/articles/$', feeds.ArticlesFeed()), (r'^syndication/template/$', feeds.TemplateFeed()), + (r'^syndication/template_context/$', feeds.TemplateContextFeed()), ) -- cgit v1.3 From c35f2e67c1d9d25ea5413a7db820ec7dcde3c39b Mon Sep 17 00:00:00 2001 From: Jacob Kaplan-Moss Date: Sun, 24 Feb 2013 08:32:52 -0600 Subject: Added a note about Feed.get_context_data to the 1.6 release notes. --- docs/releases/1.6.txt | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'docs') diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index c0eabde570..4847f6b035 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -97,6 +97,10 @@ Minor features * The jQuery library embedded in the admin has been upgraded to version 1.9.1. +* Syndication feeds (:module:`django.contrib.syndication`) can now pass extra + context through to feed templates using a new `Feed.get_context_data()` + callback. + Backwards incompatible changes in 1.6 ===================================== -- cgit v1.3 From a5733fcd7be7adb8b236825beff4ccda19900f9e Mon Sep 17 00:00:00 2001 From: Florian Apolloner Date: Sun, 24 Feb 2013 15:44:50 +0100 Subject: Fixed creation of html docs on python 3. Thanks to Alan Lu for the report and the patch. --- docs/_ext/djangodocs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/_ext/djangodocs.py b/docs/_ext/djangodocs.py index 6c0e1892f4..e539675786 100644 --- a/docs/_ext/djangodocs.py +++ b/docs/_ext/djangodocs.py @@ -204,7 +204,7 @@ class DjangoStandaloneHTMLBuilder(StandaloneHTMLBuilder): if t == "templatefilter" and l == "ref/templates/builtins"], } outfilename = os.path.join(self.outdir, "templatebuiltins.js") - with open(outfilename, 'wb') as fp: + with open(outfilename, 'w') as fp: fp.write('var django_template_builtins = ') json.dump(templatebuiltins, fp) fp.write(';\n') -- cgit v1.3 From d5462596478992075fd04705fedd6a3cca49fae8 Mon Sep 17 00:00:00 2001 From: Ben Konrath Date: Sun, 24 Feb 2013 15:43:56 +0100 Subject: Fixed #19394 --Added note about auth forms and custom user models. --- docs/topics/auth/customizing.txt | 2 ++ docs/topics/auth/default.txt | 8 ++++++++ 2 files changed, 10 insertions(+) (limited to 'docs') diff --git a/docs/topics/auth/customizing.txt b/docs/topics/auth/customizing.txt index 204c11765c..85124181c6 100644 --- a/docs/topics/auth/customizing.txt +++ b/docs/topics/auth/customizing.txt @@ -674,6 +674,8 @@ custom profile fields. This class provides the full implementation of the default :class:`~django.contrib.auth.models.User` as an :ref:`abstract model `. +.. _custom-users-and-the-built-in-auth-forms: + Custom users and the built-in auth forms ---------------------------------------- diff --git a/docs/topics/auth/default.txt b/docs/topics/auth/default.txt index d82731f73b..a38ee84841 100644 --- a/docs/topics/auth/default.txt +++ b/docs/topics/auth/default.txt @@ -926,6 +926,14 @@ If you don't want to use the built-in views, but want the convenience of not having to write forms for this functionality, the authentication system provides several built-in forms located in :mod:`django.contrib.auth.forms`: +.. note:: + The built-in authentication forms make certain assumptions about the user + model that they are working with. If you're using a :ref:`custom User model + `, it may be necessary to define your own forms for the + authentication system. For more information, refer to the documentation + about :ref:`using the built-in authentication forms with custom user models + `. + .. class:: AdminPasswordChangeForm A form used in the admin interface to change a user's password. -- cgit v1.3 From 6d8f59dab9caef8ab5c7d15d7ae848eceb041b9d Mon Sep 17 00:00:00 2001 From: Diederik van der Boor Date: Sun, 24 Feb 2013 17:02:10 +0100 Subject: Fix documentation :mod: role in Syndication feed text. --- docs/releases/1.6.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 4847f6b035..7e31327f79 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -97,7 +97,7 @@ Minor features * The jQuery library embedded in the admin has been upgraded to version 1.9.1. -* Syndication feeds (:module:`django.contrib.syndication`) can now pass extra +* Syndication feeds (:mod:`django.contrib.syndication`) can now pass extra context through to feed templates using a new `Feed.get_context_data()` callback. -- cgit v1.3 From b7ba4fc408c43ecee385d2ca3582697ec54ac8a6 Mon Sep 17 00:00:00 2001 From: Diederik van der Boor Date: Sun, 24 Feb 2013 17:31:26 +0100 Subject: Add column- classes to the admin list This simplifies CSS styling to set column widths. --- django/contrib/admin/templatetags/admin_list.py | 6 +++--- docs/ref/contrib/admin/index.txt | 7 +++++++ docs/releases/1.6.txt | 3 +++ 3 files changed, 13 insertions(+), 3 deletions(-) (limited to 'docs') diff --git a/django/contrib/admin/templatetags/admin_list.py b/django/contrib/admin/templatetags/admin_list.py index c5bcad342b..c08193d238 100644 --- a/django/contrib/admin/templatetags/admin_list.py +++ b/django/contrib/admin/templatetags/admin_list.py @@ -12,10 +12,9 @@ from django.db import models from django.utils import formats from django.utils.html import format_html from django.utils.safestring import mark_safe -from django.utils import six from django.utils.text import capfirst from django.utils.translation import ugettext as _ -from django.utils.encoding import smart_text, force_text +from django.utils.encoding import force_text from django.template import Library from django.template.loader import get_template from django.template.context import Context @@ -112,12 +111,13 @@ def result_headers(cl): # Not sortable yield { "text": text, + "class_attrib": format_html(' class="column-{0}"', field_name), "sortable": False, } continue # OK, it is sortable if we got this far - th_classes = ['sortable'] + th_classes = ['sortable', 'column-{0}'.format(field_name)] order_type = '' new_order_type = 'asc' sort_priority = 0 diff --git a/docs/ref/contrib/admin/index.txt b/docs/ref/contrib/admin/index.txt index 353c121cbc..67ed4231a2 100644 --- a/docs/ref/contrib/admin/index.txt +++ b/docs/ref/contrib/admin/index.txt @@ -543,6 +543,13 @@ subclass:: The above will tell Django to order by the ``first_name`` field when trying to sort by ``colored_first_name`` in the admin. + * .. versionadded:: 1.6 + + The field names in ``list_display`` will also appear as CSS classes in + the HTML output, in the form of ``column-`` on each ```` + element. This can be used to set column widths in a CSS file for example. + + .. attribute:: ModelAdmin.list_display_links Set ``list_display_links`` to control which fields in ``list_display`` diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 4847f6b035..2022a46c08 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -101,6 +101,9 @@ Minor features context through to feed templates using a new `Feed.get_context_data()` callback. +* The admin list columns have a ``column-`` class in the HTML + so the columns header can be styled with CSS, e.g. to set a column width. + Backwards incompatible changes in 1.6 ===================================== -- cgit v1.3 From 7e85ee8cd277d004a3b43e15a031fa6d9dc010c8 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Sun, 24 Feb 2013 21:09:45 +0100 Subject: Added missing versionadded for sqldropindexes command docs --- docs/ref/django-admin.txt | 2 ++ 1 file changed, 2 insertions(+) (limited to 'docs') diff --git a/docs/ref/django-admin.txt b/docs/ref/django-admin.txt index b8b81e42cd..c2034a8c40 100644 --- a/docs/ref/django-admin.txt +++ b/docs/ref/django-admin.txt @@ -868,6 +868,8 @@ sqldropindexes .. django-admin:: sqldropindexes +.. versionadded:: 1.6 + Prints the DROP INDEX SQL statements for the given app name(s). The :djadminopt:`--database` option can be used to specify the database for -- cgit v1.3 From 8f839aaa180fd7bfcbc933998c9d8e7e75ad09aa Mon Sep 17 00:00:00 2001 From: Carl Meyer Date: Mon, 25 Feb 2013 00:15:11 -0700 Subject: Minor edits to some recently-added admin docs. --- docs/ref/contrib/admin/index.txt | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'docs') diff --git a/docs/ref/contrib/admin/index.txt b/docs/ref/contrib/admin/index.txt index 67ed4231a2..9ab19846f6 100644 --- a/docs/ref/contrib/admin/index.txt +++ b/docs/ref/contrib/admin/index.txt @@ -186,10 +186,10 @@ subclass:: values defined in :attr:`ModelAdmin.readonly_fields` to be displayed as read-only. - The ``fields`` option, unlike :attr:`~ModelAdmin.list_display`, may contain - only field names of the model or the form specified by - :attr:`~ModelAdmin.form`, not callables. However it *can* contain callables - if they are defined in :attr:`~ModelAdmin.readonly_fields`. + The ``fields`` option, unlike :attr:`~ModelAdmin.list_display`, may only + contain names of fields on the model or the form specified by + :attr:`~ModelAdmin.form`. It may contain callables only if they are listed + in :attr:`~ModelAdmin.readonly_fields`. To display multiple fields on the same line, wrap those fields in their own tuple. In this example, the ``url`` and ``title`` fields will display on the @@ -258,10 +258,10 @@ subclass:: 'fields': ('first_name', 'last_name', 'address', 'city', 'state'), } - Just like with the :attr:`~ModelAdmin.fields` option, to display - multiple fields on the same line, wrap those fields in their own - tuple. In this example, the ``first_name`` and ``last_name`` fields - will display on the same line:: + As with the :attr:`~ModelAdmin.fields` option, to display multiple + fields on the same line, wrap those fields in their own tuple. In this + example, the ``first_name`` and ``last_name`` fields will display on + the same line:: { 'fields': (('first_name', 'last_name'), 'address', 'city', 'state'), @@ -270,9 +270,9 @@ subclass:: ``fields`` can contain values defined in :attr:`~ModelAdmin.readonly_fields` to be displayed as read-only. - If you add a callable name to ``fields``, the same rule applies as - with :attr:`~ModelAdmin.fields` option: the callable must be - specified in :attr:`~ModelAdmin.readonly_fields`. + If you add the name of a callable to ``fields``, the same rule applies + as with the :attr:`~ModelAdmin.fields` option: the callable must be + listed in :attr:`~ModelAdmin.readonly_fields`. * ``classes`` A list containing extra CSS classes to apply to the fieldset. -- cgit v1.3 From 906dc8522a1745e0e12c8061e4170540f7d0f486 Mon Sep 17 00:00:00 2001 From: Carl Meyer Date: Mon, 25 Feb 2013 10:14:42 -0700 Subject: Fixed #19854 -- Turn Django's own Selenium tests off by default. --- django/contrib/admin/tests.py | 4 ++-- docs/internals/contributing/writing-code/unit-tests.txt | 15 +++------------ tests/regressiontests/views/tests/i18n.py | 4 ++-- tests/runtests.py | 9 ++++----- 4 files changed, 11 insertions(+), 21 deletions(-) (limited to 'docs') diff --git a/django/contrib/admin/tests.py b/django/contrib/admin/tests.py index 30d63e4486..badf45b580 100644 --- a/django/contrib/admin/tests.py +++ b/django/contrib/admin/tests.py @@ -10,8 +10,8 @@ class AdminSeleniumWebDriverTestCase(LiveServerTestCase): @classmethod def setUpClass(cls): - if os.environ.get('DJANGO_SKIP_SELENIUM_TESTS', False): - raise SkipTest('Selenium tests skipped by explicit request') + if not os.environ.get('DJANGO_SELENIUM_TESTS', False): + raise SkipTest('Selenium tests not requested') try: cls.selenium = import_by_path(cls.webdriver_class)() except Exception as e: diff --git a/docs/internals/contributing/writing-code/unit-tests.txt b/docs/internals/contributing/writing-code/unit-tests.txt index 59f4c97c92..bd1aa5a96f 100644 --- a/docs/internals/contributing/writing-code/unit-tests.txt +++ b/docs/internals/contributing/writing-code/unit-tests.txt @@ -128,21 +128,12 @@ Running the Selenium tests Some admin tests require Selenium 2, Firefox and Python >= 2.6 to work via a real Web browser. To allow those tests to run and not be skipped, you must -install the selenium_ package (version > 2.13) into your Python path. - -Then, run the tests normally, for example: - -.. code-block:: bash - - ./runtests.py --settings=test_sqlite admin_inlines - -If you have Selenium installed but for some reason don't want to run these tests -(for example to speed up the test suite), use the ``--skip-selenium`` option -of the test runner. +install the selenium_ package (version > 2.13) into your Python path and run +the tests with the ``--selenium`` option: .. code-block:: bash - ./runtests.py --settings=test_sqlite --skip-selenium admin_inlines + ./runtests.py --settings=test_sqlite --selenium admin_inlines .. _running-unit-tests-dependencies: diff --git a/tests/regressiontests/views/tests/i18n.py b/tests/regressiontests/views/tests/i18n.py index 206cf3d256..33ffab59f2 100644 --- a/tests/regressiontests/views/tests/i18n.py +++ b/tests/regressiontests/views/tests/i18n.py @@ -177,10 +177,10 @@ class JsI18NTestsMultiPackage(TestCase): javascript_quote('este texto de app3 debe ser traducido')) -skip_selenium = os.environ.get('DJANGO_SKIP_SELENIUM_TESTS', False) +skip_selenium = not os.environ.get('DJANGO_SELENIUM_TESTS', False) -@unittest.skipIf(skip_selenium, 'Selenium tests skipped by explicit request') +@unittest.skipIf(skip_selenium, 'Selenium tests not requested') @unittest.skipUnless(firefox, 'Selenium not installed') class JavascriptI18nTests(LiveServerTestCase): urls = 'regressiontests.views.urls' diff --git a/tests/runtests.py b/tests/runtests.py index f2051a8ea6..800a3f0b93 100755 --- a/tests/runtests.py +++ b/tests/runtests.py @@ -302,10 +302,9 @@ if __name__ == "__main__": 'LiveServerTestCase) is expected to run from. The default value ' 'is localhost:8081.') parser.add_option( - '--skip-selenium', action='store_true', dest='skip_selenium', + '--selenium', action='store_true', dest='selenium', default=False, - help='Skip running Selenium tests even it Selenium itself is ' - 'installed. By default these tests are not skipped.') + help='Run the Selenium tests as well (if Selenium is installed)') options, args = parser.parse_args() if options.settings: os.environ['DJANGO_SETTINGS_MODULE'] = options.settings @@ -318,8 +317,8 @@ if __name__ == "__main__": if options.liveserver is not None: os.environ['DJANGO_LIVE_TEST_SERVER_ADDRESS'] = options.liveserver - if options.skip_selenium: - os.environ['DJANGO_SKIP_SELENIUM_TESTS'] = '1' + if options.selenium: + os.environ['DJANGO_SELENIUM_TESTS'] = '1' if options.bisect: bisect_tests(options.bisect, options, args) -- cgit v1.3 From 8e5fbebe020878cdce98f8efce50bc337968b2ca Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Mon, 25 Feb 2013 12:22:02 -0500 Subject: Fixed #19801 - Added brackets to input_formats. Thanks leandron85@ for the suggestion. --- docs/ref/forms/fields.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'docs') diff --git a/docs/ref/forms/fields.txt b/docs/ref/forms/fields.txt index 85650adcf4..c8b8044d26 100644 --- a/docs/ref/forms/fields.txt +++ b/docs/ref/forms/fields.txt @@ -398,21 +398,21 @@ For each field, we describe the default widget used if you don't specify If no ``input_formats`` argument is provided, the default input formats are:: - '%Y-%m-%d', # '2006-10-25' + ['%Y-%m-%d', # '2006-10-25' '%m/%d/%Y', # '10/25/2006' - '%m/%d/%y', # '10/25/06' + '%m/%d/%y'] # '10/25/06' Additionally, if you specify :setting:`USE_L10N=False` in your settings, the following will also be included in the default input formats:: - '%b %d %Y', # 'Oct 25 2006' + ['%b %d %Y', # 'Oct 25 2006' '%b %d, %Y', # 'Oct 25, 2006' '%d %b %Y', # '25 Oct 2006' '%d %b, %Y', # '25 Oct, 2006' '%B %d %Y', # 'October 25 2006' '%B %d, %Y', # 'October 25, 2006' '%d %B %Y', # '25 October 2006' - '%d %B, %Y', # '25 October, 2006' + '%d %B, %Y'] # '25 October, 2006' See also :ref:`format localization `. @@ -437,7 +437,7 @@ For each field, we describe the default widget used if you don't specify If no ``input_formats`` argument is provided, the default input formats are:: - '%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59' + ['%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59' '%Y-%m-%d %H:%M', # '2006-10-25 14:30' '%Y-%m-%d', # '2006-10-25' '%m/%d/%Y %H:%M:%S', # '10/25/2006 14:30:59' @@ -445,7 +445,7 @@ For each field, we describe the default widget used if you don't specify '%m/%d/%Y', # '10/25/2006' '%m/%d/%y %H:%M:%S', # '10/25/06 14:30:59' '%m/%d/%y %H:%M', # '10/25/06 14:30' - '%m/%d/%y', # '10/25/06' + '%m/%d/%y'] # '10/25/06' See also :ref:`format localization `. -- cgit v1.3 From 5d883589a8f6950e98538c9509a201d61573460d Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sun, 24 Feb 2013 11:38:34 +0100 Subject: Updated the release process docs to reflect the current practices. Fixed #17919. --- docs/internals/release-process.txt | 156 +++++++++++++++++++------------------ 1 file changed, 82 insertions(+), 74 deletions(-) (limited to 'docs') diff --git a/docs/internals/release-process.txt b/docs/internals/release-process.txt index 8affddb5e0..29ce3914b4 100644 --- a/docs/internals/release-process.txt +++ b/docs/internals/release-process.txt @@ -13,12 +13,12 @@ Since version 1.0, Django's release numbering works as follows: * ``A`` is the *major version* number, which is only incremented for major changes to Django, and these changes are not necessarily - backwards-compatible. That is, code you wrote for Django 1.2 may break + backwards-compatible. That is, code you wrote for Django 1.6 may break when we release Django 2.0. * ``B`` is the *minor version* number, which is incremented for large yet - backwards compatible changes. Code written for Django 1.2 will continue - to work under Django 1.3. Exceptions to this rule will be listed in the + backwards compatible changes. Code written for Django 1.6 will continue + to work under Django 1.7. Exceptions to this rule will be listed in the release notes. * ``C`` is the *micro version* number, which is incremented for bug and @@ -27,67 +27,62 @@ Since version 1.0, Django's release numbering works as follows: can't be fixed without breaking backwards-compatibility. If this happens, the release notes will provide detailed upgrade instructions. -* In some cases, we'll make alpha, beta, or release candidate releases. - These are of the form ``A.B alpha/beta/rc N``, which means the ``Nth`` - alpha/beta/release candidate of version ``A.B``. +* Before a new minor release, we'll make alpha, beta, and release candidate + releases. These are of the form ``A.B alpha/beta/rc N``, which means the + ``Nth`` alpha/beta/release candidate of version ``A.B``. -In git, each Django release will have a tag indicating its version -number, signed with the Django release key. Additionally, each release -series (X.Y) has its own branch, and bugfix/security releases will be +In git, each Django release will have a tag indicating its version number, +signed with the Django release key. Additionally, each release series has its +own branch, called ``stable/A.B.x``, and bugfix/security releases will be issued from those branches. -For more information about how the Django project issues new releases -for security purposes, please see :doc:`our security policies -`. +For more information about how the Django project issues new releases for +security purposes, please see :doc:`our security policies `. Major releases -------------- Major releases (1.0, 2.0, etc.) will happen very infrequently (think "years", -not "months"), and will probably represent major, sweeping changes to Django. +not "months"), and may represent major, sweeping changes to Django. Minor releases -------------- -Minor release (1.1, 1.2, etc.) will happen roughly every nine months -- see -`release process`_, below for details. +Minor release (1.5, 1.6, etc.) will happen roughly every nine months -- see +`release process`_, below for details. These releases will contain new +features, improvements to existing features, and such. .. _internal-release-deprecation-policy: -These releases will contain new features, improvements to existing features, and -such. A minor release may deprecate certain features from previous releases. If a -feature in version ``A.B`` is deprecated, it will continue to work in version -``A.B+1``. In version ``A.B+2``, use of the feature will raise a -``DeprecationWarning`` but will continue to work. Version ``A.B+3`` will -remove the feature entirely. +A minor release may deprecate certain features from previous releases. If a +feature is deprecated in version ``A.B``, it will continue to work in versions +``A.B`` and ``A.B+1`` but raise warnings. It will be removed in version +``A.B+2``. -So, for example, if we decided to remove a function that existed in Django 1.0: +So, for example, if we decided to start the deprecation of a function in +Django 1.5: -* Django 1.1 will contain a backwards-compatible replica of the function - which will raise a ``PendingDeprecationWarning``. This warning is silent - by default; you need to explicitly turn on display of these warnings. +* Django 1.5 will contain a backwards-compatible replica of the function which + will raise a ``PendingDeprecationWarning``. This warning is silent by + default; you can turn on display of these warnings with the ``-Wd`` option + of Python. -* Django 1.2 will contain the backwards-compatible replica, but the warning +* Django 1.6 will contain the backwards-compatible replica, but the warning will be promoted to a full-fledged ``DeprecationWarning``. This warning is *loud* by default, and will likely be quite annoying. -* Django 1.3 will remove the feature outright. +* Django 1.7 will remove the feature outright. Micro releases -------------- -Micro releases (1.0.1, 1.0.2, 1.1.1, etc.) will be issued at least once half-way -between minor releases, and probably more often as needed. +Micro releases (1.5.1, 1.6.2, 1.6.1, etc.) will be issued as needed, often to +fix security issues. These releases will be 100% compatible with the associated minor release, unless this is impossible for security reasons. So the answer to "should I upgrade to the latest micro release?" will always be "yes." -Each minor release of Django will have a "release maintainer" appointed. This -person will be responsible for making sure that bug fixes are applied to both -trunk and the maintained micro-release branch. This person will also work with -the release manager to decide when to release the micro releases. - .. _backwards-compatibility-policy: Supported versions @@ -96,10 +91,10 @@ Supported versions At any moment in time, Django's developer team will support a set of releases to varying levels: -* The current development trunk will get new features and bug fixes +* The current development master will get new features and bug fixes requiring major refactoring. -* Patches applied to the trunk will also be applied to the last minor +* Patches applied to the master branch must also be applied to the last minor release, to be released as the next micro release, when they fix critical problems: @@ -111,40 +106,42 @@ varying levels: * Major functionality bugs in newly-introduced features. - The rule of thumb is that fixes will be backported to the last minor - release for bugs that would have prevented a release in the first place. + The rule of thumb is that fixes will be backported to the last minor release + for bugs that would have prevented a release in the first place (release + blockers). -* Security fixes will be applied to the current trunk and the previous two +* Security fixes will be applied to the current master and the previous two minor releases. +* Committers may choose to backport bugfixes at their own discretion, + provided they do not introduce backwards incompatibilities. + * Documentation fixes generally will be more freely backported to the last - release branch, at the discretion of the committer, and they don't need to - meet the "critical fixes only" bar. That's because it's highly advantageous - to have the docs for the last release be up-to-date and correct, and the - downside of backporting (risk of introducing regressions) is much less of a - concern. + release branch. That's because it's highly advantageous to have the docs for + the last release be up-to-date and correct, and the risk of introducing + regressions is much less of a concern. As a concrete example, consider a moment in time halfway between the release of -Django 1.3 and 1.4. At this point in time: +Django 1.6 and 1.7. At this point in time: -* Features will be added to development trunk, to be released as Django 1.4. +* Features will be added to development master, to be released as Django 1.7. -* Critical bug fixes will be applied to a ``1.3.X`` branch, and released as - 1.3.1, 1.3.2, etc. +* Critical bug fixes will be applied to the ``stable/1.6.X`` branch, and + released as 1.6.1, 1.6.2, etc. -* Security fixes will be applied to trunk, a ``1.3.X`` branch and a - ``1.2.X`` branch. They will trigger the release of ``1.3.1``, ``1.2.1``, - etc. +* Security fixes will be applied to ``master``, to the ``stable/1.6.X`` + branch, and to the ``stable/1.5.X`` branch. They will trigger the release of + ``1.6.1``, ``1.5.1``, etc. -* Documentation fixes will be applied to trunk, and, if easily backported, to - the ``1.3.X`` branch. +* Documentation fixes will be applied to master, and, if easily backported, to + the ``1.6.X`` branch. Bugfixes may also be backported. .. _release-process: Release process =============== -Django uses a time-based release schedule, with minor (i.e. 1.1, 1.2, etc.) +Django uses a time-based release schedule, with minor (i.e. 1.6, 1.7, etc.) releases every nine months, or more, depending on features. After each release, and after a suitable cooling-off period of a few weeks, the @@ -190,45 +187,56 @@ At the end of phase two, any unfinished "maybe" features will be postponed until the next release. Though it shouldn't happen, any "must-have" features will extend phase two, and thus postpone the final release. -Phase two will culminate with an alpha release. +Phase two will culminate with an alpha release. At this point, the +``stable/A.B.x`` branch will be forked from ``master``. Phase three: bugfixes ~~~~~~~~~~~~~~~~~~~~~ The last third of a release is spent fixing bugs -- no new features will be -accepted during this time. We'll release a beta release about halfway through, -and an rc complete with string freeze two weeks before the end of the schedule. +accepted during this time. We'll try to release a beta release after one month +and a release candidate after two months. + +The release candidate marks the string freeze, and it happens at least two +weeks before the final release. After this point, new translatable strings +must not be added. + +During this phase, committers will be more and more conservative with +backports, to avoid introducing regressions. After the release candidate, only +release blockers and documentation fixes should be backported. + +In parallel to this phase, ``master`` can receive new features, to be released +in the ``A.B+1`` cycle. Bug-fix releases ---------------- -After a minor release (e.g. 1.1), the previous release will go into bugfix +After a minor release (e.g. 1.6), the previous release will go into bugfix mode. -A branch will be created of the form ``branches/releases/1.0.X`` to track -bugfixes to the previous release. Critical bugs fixed on trunk must -*also* be fixed on the bugfix branch; this means that commits need to cleanly -separate bug fixes from feature additions. The developer who commits a fix to -trunk will be responsible for also applying the fix to the current bugfix -branch. Each bugfix branch will have a maintainer who will work with the -committers to keep them honest on backporting bug fixes. +A branch will be created of the form ``stable/1.5.x`` to track bugfixes to the +previous release. Critical bugs fixed on master must *also* be fixed on the +bugfix branch; this means that commits need to cleanly separate bug fixes from +feature additions. The developer who commits a fix to master will be +responsible for also applying the fix to the current bugfix branch. How this all fits together -------------------------- Let's look at a hypothetical example for how this all first together. Imagine, -if you will, a point about halfway between 1.1 and 1.2. At this point, +if you will, a point about halfway between 1.5 and 1.6. At this point, development will be happening in a bunch of places: -* On trunk, development towards 1.2 proceeds with small additions, bugs +* On master, development towards 1.6 proceeds with small additions, bugs fixes, etc. being checked in daily. -* On the branch "branches/releases/1.1.X", fixes for critical bugs found in - the 1.1 release are checked in as needed. At some point, this branch will - be released as "1.1.1", "1.1.2", etc. +* On the branch ``stable/1.5.x``, fixes for critical bugs found in + the 1.5 release are checked in as needed. At some point, this branch will + be released as "1.5.1", "1.5.2", etc. -* On the branch "branches/releases/1.0.X", security fixes are made if - needed and released as "1.0.2", "1.0.3", etc. +* On the branch ``stable/1.4.x``, security fixes are made if + needed and released as "1.4.2", "1.4.3", etc. -* On feature branches, development of major features is done. These - branches will be merged into trunk before the end of phase two. +* Development of major features is done in branches in forks of the main + repository. These branches will be merged into ``master`` before "1.6 + alpha 1". -- cgit v1.3 From 0836670c5cd8bb17322504c46e07d3944add63c3 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Mon, 25 Feb 2013 22:29:38 +0100 Subject: Fixed #6195 -- Documented caching options for javascript_catalog. --- docs/topics/conditional-view-processing.txt | 2 +- docs/topics/i18n/translation.txt | 46 +++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/topics/conditional-view-processing.txt b/docs/topics/conditional-view-processing.txt index 1979e89c31..caa7376189 100644 --- a/docs/topics/conditional-view-processing.txt +++ b/docs/topics/conditional-view-processing.txt @@ -27,7 +27,7 @@ instead of a full response, telling the client that nothing has changed. When you need more fine-grained control you may use per-view conditional processing functions. -.. conditional-decorators: +.. _conditional-decorators: The ``condition`` decorator =========================== diff --git a/docs/topics/i18n/translation.txt b/docs/topics/i18n/translation.txt index 782a632456..3c53b2b70e 100644 --- a/docs/topics/i18n/translation.txt +++ b/docs/topics/i18n/translation.txt @@ -946,6 +946,52 @@ This isn't as fast as string interpolation in Python, so keep it to those cases where you really need it (for example, in conjunction with ``ngettext`` to produce proper pluralizations). +Note on performance +------------------- + +The :func:`~django.views.i18n.javascript_catalog` view generates the catalog +from ``.mo`` files on every request. Since its output is constant — at least +for a given version of a site — it's a good candidate for caching. + +Server-side caching will reduce CPU load. It's easily implemented with the +:func:`~django.views.decorators.cache.cache_page` decorator. To trigger cache +invalidation when your translations change, provide a version-dependant key +prefix, as shown in the example below, or map the view at a version-dependant +URL. + +.. code-block:: python + + from django.views.decorators.cache import cache_page + from django.views.i18n import javascript_catalog + + # The value returned by get_version() must change when translations change. + @cache_page(86400, key_prefix='js18n-%s' % get_version()) + def cached_javascript_catalog(request, domain='djangojs', packages=None): + return javascript_catalog(request, domain, packages) + +Client-side caching will save bandwidth and make your site load faster. If +you're using ETags (:setting:`USE_ETAGS = True `), you're already +covered. Otherwise, you can apply :ref:`conditional decorators +`. In the following example, the cache is invalidated +whenever your restart your application server. + +.. code-block:: python + + from django.utils import timezone + from django.views.decorators.http import last_modified + from django.views.i18n import javascript_catalog + + last_modified_date = timezone.now() + @last_modified(lambda req, **kw: last_modified_date) + def cached_javascript_catalog(request, domain='djangojs', packages=None): + return javascript_catalog(request, domain, packages) + +You can even pre-generate the javascript catalog as part of your deployment +procedure and serve it as a static file. This radical technique is implemented +in django-statici18n_. + +.. _django-statici18n: http://django-statici18n.readthedocs.org/en/latest/ + .. _url-internationalization: Internationalization: in URL patterns -- cgit v1.3 From 28e545c4b3c18fd1d3641b1194bf53699a7c868a Mon Sep 17 00:00:00 2001 From: Florian Apolloner Date: Tue, 26 Feb 2013 15:00:16 +0100 Subject: Updated docs to reflect new tests layout. Thanks to Ramiro Morales for the initial patch. --- docs/internals/contributing/writing-code/unit-tests.txt | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'docs') diff --git a/docs/internals/contributing/writing-code/unit-tests.txt b/docs/internals/contributing/writing-code/unit-tests.txt index bd1aa5a96f..f56bf1cdeb 100644 --- a/docs/internals/contributing/writing-code/unit-tests.txt +++ b/docs/internals/contributing/writing-code/unit-tests.txt @@ -7,10 +7,8 @@ code base. It's our policy to make sure all tests pass at all times. The tests cover: -* Models and the database API (``tests/modeltests``), -* Everything else in core Django code (``tests/regressiontests``), -* :ref:`contrib-apps` (``django/contrib//tests`` or - ``tests/regressiontests/_...``). +* Models, the database API and everything else in core Django core (``tests/``), +* :ref:`contrib-apps` (``django/contrib//tests`` or ``tests/_...``). We appreciate any and all contributions to the test suite! @@ -105,9 +103,9 @@ internationalization, type: ./runtests.py --settings=path.to.settings generic_relations i18n -How do you find out the names of individual tests? Look in -``tests/modeltests`` and ``tests/regressiontests`` — each directory name -there is the name of a test. Contrib app names are also valid test names. +How do you find out the names of individual tests? Look in ``tests/`` — each +directory name there is the name of a test. Contrib app names are also valid +test names. If you just want to run a particular class of tests, you can specify a list of paths to individual test classes. For example, to run the ``TranslationTests`` -- cgit v1.3 From 9ce1b6191b374421ed42a84ae5d4585f1d33f1fc Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 26 Feb 2013 15:12:28 -0500 Subject: Fixed #19922 - Typo in translation docs. Thanks amoebob for the report. --- docs/topics/i18n/translation.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/topics/i18n/translation.txt b/docs/topics/i18n/translation.txt index 3c53b2b70e..811425d229 100644 --- a/docs/topics/i18n/translation.txt +++ b/docs/topics/i18n/translation.txt @@ -691,7 +691,7 @@ or with the ``{#`` ... ``#}`` :ref:`one-line comment constructs {% trans "Go" %} {# Translators: This is a text of the base template #} - {% blocktrans %}Ambiguous translatable block of text{% endtransblock %} + {% blocktrans %}Ambiguous translatable block of text{% endblocktrans %} .. note:: Just for completeness, these are the corresponding fragments of the resulting ``.po`` file: -- cgit v1.3 From 9e6725c5eabfaf0f0153b4d40390b4916fd7d9eb Mon Sep 17 00:00:00 2001 From: Carl Meyer Date: Tue, 26 Feb 2013 13:46:32 -0700 Subject: Added note about updating default docs version in howto-release doc. --- docs/internals/howto-release-django.txt | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'docs') diff --git a/docs/internals/howto-release-django.txt b/docs/internals/howto-release-django.txt index fffdc9b869..118d09b575 100644 --- a/docs/internals/howto-release-django.txt +++ b/docs/internals/howto-release-django.txt @@ -260,6 +260,13 @@ Now you're ready to actually put the release out there. To do this: include links to both the announcement blog post and the release notes. *FIXME: make some templates with example text*. +#. For a new version release (e.g. 1.5, 1.6), update the default stable version + of the docs by flipping the ``is_default`` flag to ``True`` on the + appropriate ``DocumentRelease`` object in the ``docs.djangoproject.com`` + database (this will automatically flip it to ``False`` for all + others). *FIXME: I had to do this via fab managepy:shell,docs but we should + probably make it possible to do via the admin.* + Post-release ============ -- cgit v1.3 From fba6df19b5d7076e6858b3bd773911a529d60b30 Mon Sep 17 00:00:00 2001 From: Marti Raudsepp Date: Tue, 26 Feb 2013 23:28:47 +0200 Subject: [py3] str.decode does not exist; str.encode was intended --- docs/topics/python3.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/topics/python3.txt b/docs/topics/python3.txt index b1f3fa3277..2212a24131 100644 --- a/docs/topics/python3.txt +++ b/docs/topics/python3.txt @@ -238,7 +238,7 @@ under Python 3, use the :func:`str` builtin:: str('my string') In Python 3, there aren't any automatic conversions between ``str`` and -``bytes``, and the :mod:`codecs` module became more strict. :meth:`str.decode` +``bytes``, and the :mod:`codecs` module became more strict. :meth:`str.encode` always returns ``bytes``, and ``bytes.decode`` always returns ``str``. As a consequence, the following pattern is sometimes necessary:: -- cgit v1.3 From bd669e47d7331ee41f929486e48ed39ad7bec1a7 Mon Sep 17 00:00:00 2001 From: Carl Meyer Date: Tue, 26 Feb 2013 14:46:46 -0700 Subject: Added a note about creating new doc versions; update stable doc version before announcement. --- docs/internals/howto-release-django.txt | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'docs') diff --git a/docs/internals/howto-release-django.txt b/docs/internals/howto-release-django.txt index 118d09b575..9e8b64e356 100644 --- a/docs/internals/howto-release-django.txt +++ b/docs/internals/howto-release-django.txt @@ -255,11 +255,6 @@ Now you're ready to actually put the release out there. To do this: #. Make the blog post announcing the release live. -#. Post the release announcement to the django-announce, - django-developers and django-users mailing lists. This should - include links to both the announcement blog post and the release - notes. *FIXME: make some templates with example text*. - #. For a new version release (e.g. 1.5, 1.6), update the default stable version of the docs by flipping the ``is_default`` flag to ``True`` on the appropriate ``DocumentRelease`` object in the ``docs.djangoproject.com`` @@ -267,6 +262,11 @@ Now you're ready to actually put the release out there. To do this: others). *FIXME: I had to do this via fab managepy:shell,docs but we should probably make it possible to do via the admin.* +#. Post the release announcement to the django-announce, + django-developers and django-users mailing lists. This should + include links to both the announcement blog post and the release + notes. *FIXME: make some templates with example text*. + Post-release ============ @@ -277,6 +277,12 @@ You're almost done! All that's left to do now is: example, after releasing 1.2.1, update ``VERSION`` to report "1.2.2 pre-alpha". *FIXME: Is this correct? Do we still do this?* +#. For the first alpha release of a new version (when we create the + ``stable/1.?.x`` git branch), you'll want to create a new + ``DocumentRelease`` object in the ``docs.djangoproject.com`` database for + the new version's docs, and update the ``docs/fixtures/doc_releases.json`` + JSON fixture. *FIXME: what is the purpose of maintaining this fixture?* + Notes on setting the VERSION tuple ================================== -- cgit v1.3 From 210894167799780283101636c99d8010b30bf09c Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Wed, 27 Feb 2013 07:12:37 -0500 Subject: Fixed #16807 - Added a class-based views intro. Thanks Preston Holmes for the text. --- docs/topics/class-based-views/index.txt | 66 +------ docs/topics/class-based-views/intro.txt | 289 +++++++++++++++++++++++++++++++ docs/topics/class-based-views/mixins.txt | 1 - 3 files changed, 290 insertions(+), 66 deletions(-) create mode 100644 docs/topics/class-based-views/intro.txt (limited to 'docs') diff --git a/docs/topics/class-based-views/index.txt b/docs/topics/class-based-views/index.txt index 302f473eea..b2fa93e05f 100644 --- a/docs/topics/class-based-views/index.txt +++ b/docs/topics/class-based-views/index.txt @@ -14,6 +14,7 @@ reusable views which suits your use case. For full details, see the .. toctree:: :maxdepth: 1 + intro generic-display generic-editing mixins @@ -127,68 +128,3 @@ the client issues a ``HEAD`` request, the response has an empty body and the ``Last-Modified`` header indicates when the most recent book was published. Based on this information, the client may or may not download the full object list. - -Decorating class-based views -============================ - -.. highlightlang:: python - -Since class-based views aren't functions, decorating them works differently -depending on if you're using ``as_view`` or creating a subclass. - -Decorating in URLconf ---------------------- - -The simplest way of decorating class-based views is to decorate the -result of the :meth:`~django.views.generic.base.View.as_view` method. -The easiest place to do this is in the URLconf where you deploy your view:: - - from django.contrib.auth.decorators import login_required, permission_required - from django.views.generic import TemplateView - - from .views import VoteView - - urlpatterns = patterns('', - (r'^about/', login_required(TemplateView.as_view(template_name="secret.html"))), - (r'^vote/', permission_required('polls.can_vote')(VoteView.as_view())), - ) - -This approach applies the decorator on a per-instance basis. If you -want every instance of a view to be decorated, you need to take a -different approach. - -.. _decorating-class-based-views: - -Decorating the class --------------------- - -To decorate every instance of a class-based view, you need to decorate -the class definition itself. To do this you apply the decorator to the -:meth:`~django.views.generic.base.View.dispatch` method of the class. - -A method on a class isn't quite the same as a standalone function, so -you can't just apply a function decorator to the method -- you need to -transform it into a method decorator first. The ``method_decorator`` -decorator transforms a function decorator into a method decorator so -that it can be used on an instance method. For example:: - - from django.contrib.auth.decorators import login_required - from django.utils.decorators import method_decorator - from django.views.generic import TemplateView - - class ProtectedView(TemplateView): - template_name = 'secret.html' - - @method_decorator(login_required) - def dispatch(self, *args, **kwargs): - return super(ProtectedView, self).dispatch(*args, **kwargs) - -In this example, every instance of ``ProtectedView`` will have -login protection. - -.. note:: - - ``method_decorator`` passes ``*args`` and ``**kwargs`` - as parameters to the decorated method on the class. If your method - does not accept a compatible set of parameters it will raise a - ``TypeError`` exception. diff --git a/docs/topics/class-based-views/intro.txt b/docs/topics/class-based-views/intro.txt new file mode 100644 index 0000000000..5868b6be03 --- /dev/null +++ b/docs/topics/class-based-views/intro.txt @@ -0,0 +1,289 @@ +================================= +Introduction to Class-based views +================================= + +Class-based views provide an alternative way to implement views as Python +objects instead of functions. They do not replace function-based views, but +have certain differences and advantages when compared to function-based views: + +* Organization of code related to specific HTTP methods (``GET``, ``POST``, + etc) can be addressed by separate methods instead of conditional branching. + +* Object oriented techniques such as mixins (multiple inheritance) can be + used to factor code into reusable components. + +The relationship and history of generic views, class-based views, and class-based generic views +=============================================================================================== + +In the beginning there was only the view function contract, Django passed your +function an :class:`~django.http.HttpRequest` and expected back an +:class:`~django.http.HttpResponse`. This was the extent of what Django provided. + +Early on it was recognized that there were common idioms and patterns found in +view development. Function-based generic views were introduced to abstract +these patterns and ease view development for the common cases. + +The problem with function-based generic views is that while they covered the +simple cases well, there was no way to extend or customize them beyond some +simple configuration options, limiting their usefulness in many real-world +applications. + +Class-based generic views were created with the same objective as +function-based generic views, to make view development easier. However, the way +the solution is implemented, through the use of mixins, provides a toolkit that +results in class-based generic views being more extensible and flexible than +their function-based counterparts. + +If you have tried function based generic views in the past and found them +lacking, you should not think of class-based generic views as simply a +class-based equivalent, but rather as a fresh approach to solving the original +problems that generic views were meant to solve. + +The toolkit of base classes and mixins that Django uses to build class-based +generic views are built for maximum flexibility, and as such have many hooks in +the form of default method implementations and attributes that you are unlikely +to be concerned with in the simplest use cases. For example, instead of +limiting you to a class based attribute for ``form_class``, the implementation +uses a ``get_form`` method, which calls a ``get_form_class`` method, which in +its default implementation just returns the ``form_class`` attribute of the +class. This gives you several options for specifying what form to use, from a +simple attribute, to a fully dynamic, callable hook. These options seem to add +hollow complexity for simple situations, but without them, more advanced +designs would be limited. + +Using class-based views +======================= + +At its core, a class-based view allows you to respond to different HTTP request +methods with different class instance methods, instead of with conditionally +branching code inside a single view function. + +So where the code to handle HTTP ``GET`` in a view function would look +something like:: + + from django.http import HttpResponse + + def my_view(request): + if request.method == 'GET': + # + return HttpResponse('result') + +In a class-based view, this would become:: + + from django.http import HttpResponse + from django.views.base import View + + class MyView(View): + def get(self, request): + # + return HttpResponse('result') + +Because Django's URL resolver expects to send the request and associated +arguments to a callable function, not a class, class-based views have an +:meth:`~django.views.generic.base.View.as_view` class method which serves as +the callable entry point to your class. The ``as_view`` entry point creates an +instance of your class and calls its +:meth:`~django.views.generic.base.View.dispatch` method. ``dispatch`` looks at +the request to determine whether it is a ``GET``, ``POST``, etc, and relays the +request to a matching method if one is defined, or raises +:class:`~django.http.HttpResponseNotAllowed` if not:: + + # urls.py + from django.conf.urls import patterns + from myapp.views import MyView + + urlpatterns = patterns('', + (r'^about/', MyView.as_view()), + ) + + +It is worth noting that what your method returns is identical to what you +return from a function-based view, namely some form of +:class:`~django.http.HttpResponse`. This means that +:doc:`http shortcuts ` or +:class:`~django.template.response.TemplateResponse` objects are valid to use +inside a class-based view. + +While a minimal class-based view does not require any class attributes to +perform its job, class attributes are useful in many class-based designs, +and there are two ways to configure or set class attributes. + +The first is the standard Python way of subclassing and overriding attributes +and methods in the subclass. So that if your parent class had an attribute +``greeting`` like this:: + + from django.http import HttpResponse + from django.views.base import View + + class GreetingView(View): + greeting = "Good Day" + + def get(self, request): + return HttpResponse(self.greeting) + +You can override that in a subclass:: + + class MorningGreetingView(MyView): + greeting = "Morning to ya" + +Another option is to configure class attributes as keyword arguments to the +:meth:`~django.views.generic.base.View.as_view` call in the URLconf:: + + urlpatterns = patterns('', + (r'^about/', MyView.as_view(greeting="G'day")), + ) + +.. note:: + + While your class is instantiated for each request dispatched to it, class + attributes set through the + :meth:`~django.views.generic.base.View.as_view` entry point are + configured only once at the time your URLs are imported. + +Using mixins +============ + +Mixins are a form of multiple inheritance where behaviors and attributes of +multiple parent classes can be combined. + +For example, in the generic class-based views there is a mixin called +:class:`~django.views.generic.base.TemplateResponseMixin` whose primary purpose +is to define the method +:meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`. +When combined with the behavior of the :class:`~django.views.generic.base.View` +base class, the result is a :class:`~django.views.generic.base.TemplateView` +class that will dispatch requests to the appropriate matching methods (a +behavior defined in the ``View`` base class), and that has a +:meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response` +method that uses a +:attr:`~django.views.generic.base.TemplateResponseMixin.template_name` +attribute to return a :class:`~django.template.response.TemplateResponse` +object (a behavior defined in the ``TemplateResponseMixin``). + +Mixins are an excellent way of reusing code across multiple classes, but they +come with some cost. The more your code is scattered among mixins, the harder +it will be to read a child class and know what exactly it is doing, and the +harder it will be to know which methods from which mixins to override if you +are subclassing something that has a deep inheritance tree. + +Note also that you can only inherit from one generic view - that is, only one +parent class may inherit from :class:`~django.views.generic.base.View` and +the rest (if any) should be mixins. Trying to inherit from more than one class +that inherits from ``View`` - for example, trying to use a form at the top of a +list and combining :class:`~django.views.generic.edit.ProcessFormView` and +:class:`~django.views.generic.list.ListView` - won't work as expected. + +Handling forms with class-based views +===================================== + +A basic function-based view that handles forms may look something like this:: + + from django.http import HttpResponseRedirect + from django.shortcuts import render + + from .forms import MyForm + + def myview(request): + if request.method == "POST": + form = MyForm(request.POST) + if form.is_valid(): + # + return HttpResponseRedirect('/success/') + else: + form = MyForm(initial={'key': 'value'}) + + return render(request, 'form_template.html', {'form': form}) + +A similar class-based view might look like:: + + from django.http import HttpResponseRedirect + from django.shortcuts import render + + from .forms import MyForm + + class MyFormView(View): + form_class = MyForm + initial = {'key': 'value'} + template_name = 'form_template.html' + + def get(self, request, *args, **kwargs): + form = self.form_class(initial=self.initial) + return render(request, self.template_name, {'form': form}) + + def post(self, request, *args, **kwargs): + form = self.form_class(request.POST) + if form.is_valid(): + # + return HttpResponseRedirect('/success/') + + return render(request, self.template_name, {'form': form}) + +This is a very simple case, but you can see that you would then have the option +of customizing this view by overriding any of the class attributes, e.g. +``form_class``, via URLconf configuration, or subclassing and overriding one or +more of the methods (or both!). + +Decorating class-based views +============================ + +The extension of class-based views isn't limited to using mixins. You +can use also use decorators. Since class-based views aren't functions, +decorating them works differently depending on if you're using ``as_view`` or +creating a subclass. + +Decorating in URLconf +--------------------- + +The simplest way of decorating class-based views is to decorate the +result of the :meth:`~django.views.generic.base.View.as_view` method. +The easiest place to do this is in the URLconf where you deploy your view:: + + from django.contrib.auth.decorators import login_required, permission_required + from django.views.generic import TemplateView + + from .views import VoteView + + urlpatterns = patterns('', + (r'^about/', login_required(TemplateView.as_view(template_name="secret.html"))), + (r'^vote/', permission_required('polls.can_vote')(VoteView.as_view())), + ) + +This approach applies the decorator on a per-instance basis. If you +want every instance of a view to be decorated, you need to take a +different approach. + +.. _decorating-class-based-views: + +Decorating the class +-------------------- + +To decorate every instance of a class-based view, you need to decorate +the class definition itself. To do this you apply the decorator to the +:meth:`~django.views.generic.base.View.dispatch` method of the class. + +A method on a class isn't quite the same as a standalone function, so +you can't just apply a function decorator to the method -- you need to +transform it into a method decorator first. The ``method_decorator`` +decorator transforms a function decorator into a method decorator so +that it can be used on an instance method. For example:: + + from django.contrib.auth.decorators import login_required + from django.utils.decorators import method_decorator + from django.views.generic import TemplateView + + class ProtectedView(TemplateView): + template_name = 'secret.html' + + @method_decorator(login_required) + def dispatch(self, *args, **kwargs): + return super(ProtectedView, self).dispatch(*args, **kwargs) + +In this example, every instance of ``ProtectedView`` will have +login protection. + +.. note:: + + ``method_decorator`` passes ``*args`` and ``**kwargs`` + as parameters to the decorated method on the class. If your method + does not accept a compatible set of parameters it will raise a + ``TypeError`` exception. diff --git a/docs/topics/class-based-views/mixins.txt b/docs/topics/class-based-views/mixins.txt index 4941ea9755..2adbd406c7 100644 --- a/docs/topics/class-based-views/mixins.txt +++ b/docs/topics/class-based-views/mixins.txt @@ -32,7 +32,6 @@ Two central mixins are provided that help in providing a consistent interface to working with templates in class-based views. :class:`~django.views.generic.base.TemplateResponseMixin` - Every built in view which returns a :class:`~django.template.response.TemplateResponse` will call the :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response` -- cgit v1.3 From 50328f0a618674b7143d86acaa7016c5293e9774 Mon Sep 17 00:00:00 2001 From: Anssi Kääriäinen Date: Wed, 20 Feb 2013 03:11:54 +0200 Subject: Fixed #19861 -- Transaction ._dirty flag improvement There were a couple of errors in ._dirty flag handling: * It started as None, but was never reset to None. * The _dirty flag was sometimes used to indicate if the connection was inside transaction management, but this was not done consistently. This also meant the flag had three separate values. * The None value had a special meaning, causing for example inability to commit() on new connection unless enter/leave tx management was done. * The _dirty was tracking "connection in transaction" state, but only in managed transactions. * Some tests never reset the transaction state of the used connection. * And some additional less important changes. This commit has some potential for regressions, but as the above list shows, the current situation isn't perfect either. --- django/db/backends/__init__.py | 43 ++++---- django/db/backends/creation.py | 2 +- django/db/backends/postgresql_psycopg2/base.py | 9 ++ django/db/backends/postgresql_psycopg2/creation.py | 2 + django/db/backends/util.py | 10 +- django/db/models/sql/compiler.py | 5 - docs/ref/models/querysets.txt | 5 - tests/delete_regress/tests.py | 4 +- tests/middleware/tests.py | 13 ++- tests/select_for_update/tests.py | 23 ++--- tests/transactions/tests.py | 2 - tests/transactions_regress/tests.py | 112 ++++++++++++++++++++- 12 files changed, 161 insertions(+), 69 deletions(-) (limited to 'docs') diff --git a/django/db/backends/__init__.py b/django/db/backends/__init__.py index b77455e6e1..46db1910f9 100644 --- a/django/db/backends/__init__.py +++ b/django/db/backends/__init__.py @@ -41,7 +41,10 @@ class BaseDatabaseWrapper(object): # Transaction related attributes self.transaction_state = [] self.savepoint_state = 0 - self._dirty = None + # Tracks if the connection is believed to be in transaction. This is + # set somewhat aggressively, as the DBAPI doesn't make it easy to + # deduce if the connection is in transaction or not. + self._dirty = False self._thread_ident = thread.get_ident() self.allow_thread_sharing = allow_thread_sharing @@ -118,8 +121,7 @@ class BaseDatabaseWrapper(object): stack. """ if self._dirty: - self._rollback() - self._dirty = False + self.rollback() while self.transaction_state: self.leave_transaction_management() @@ -137,9 +139,6 @@ class BaseDatabaseWrapper(object): self.transaction_state.append(self.transaction_state[-1]) else: self.transaction_state.append(settings.TRANSACTIONS_MANAGED) - - if self._dirty is None: - self._dirty = False self._enter_transaction_management(managed) def leave_transaction_management(self): @@ -153,14 +152,16 @@ class BaseDatabaseWrapper(object): else: raise TransactionManagementError( "This code isn't under transaction management") + # The _leave_transaction_management hook can change the dirty flag, + # so memoize it. + dirty = self._dirty # We will pass the next status (after leaving the previous state # behind) to subclass hook. self._leave_transaction_management(self.is_managed()) - if self._dirty: + if dirty: self.rollback() raise TransactionManagementError( "Transaction managed block ended with pending COMMIT/ROLLBACK") - self._dirty = False def validate_thread_sharing(self): """ @@ -190,11 +191,7 @@ class BaseDatabaseWrapper(object): to decide in a managed block of code to decide whether there are open changes waiting for commit. """ - if self._dirty is not None: - self._dirty = True - else: - raise TransactionManagementError("This code isn't under transaction " - "management") + self._dirty = True def set_clean(self): """ @@ -202,10 +199,7 @@ class BaseDatabaseWrapper(object): to decide in a managed block of code to decide whether a commit or rollback should happen. """ - if self._dirty is not None: - self._dirty = False - else: - raise TransactionManagementError("This code isn't under transaction management") + self._dirty = False self.clean_savepoints() def clean_savepoints(self): @@ -233,8 +227,7 @@ class BaseDatabaseWrapper(object): if top: top[-1] = flag if not flag and self.is_dirty(): - self._commit() - self.set_clean() + self.commit() else: raise TransactionManagementError("This code isn't under transaction " "management") @@ -245,7 +238,7 @@ class BaseDatabaseWrapper(object): """ self.validate_thread_sharing() if not self.is_managed(): - self._commit() + self.commit() self.clean_savepoints() else: self.set_dirty() @@ -256,7 +249,7 @@ class BaseDatabaseWrapper(object): """ self.validate_thread_sharing() if not self.is_managed(): - self._rollback() + self.rollback() else: self.set_dirty() @@ -343,6 +336,7 @@ class BaseDatabaseWrapper(object): if self.connection is not None: self.connection.close() self.connection = None + self.set_clean() def cursor(self): self.validate_thread_sharing() @@ -485,14 +479,13 @@ class BaseDatabaseFeatures(object): self.connection.managed(True) cursor = self.connection.cursor() cursor.execute('CREATE TABLE ROLLBACK_TEST (X INT)') - self.connection._commit() + self.connection.commit() cursor.execute('INSERT INTO ROLLBACK_TEST (X) VALUES (8)') - self.connection._rollback() + self.connection.rollback() cursor.execute('SELECT COUNT(X) FROM ROLLBACK_TEST') count, = cursor.fetchone() cursor.execute('DROP TABLE ROLLBACK_TEST') - self.connection._commit() - self.connection._dirty = False + self.connection.commit() finally: self.connection.leave_transaction_management() return count == 0 diff --git a/django/db/backends/creation.py b/django/db/backends/creation.py index 77c9e6c9e6..70c24bc820 100644 --- a/django/db/backends/creation.py +++ b/django/db/backends/creation.py @@ -385,8 +385,8 @@ class BaseDatabaseCreation(object): # Create the test database and connect to it. We need to autocommit # if the database supports it because PostgreSQL doesn't allow # CREATE/DROP DATABASE statements within transactions. - cursor = self.connection.cursor() self._prepare_for_test_db_ddl() + cursor = self.connection.cursor() try: cursor.execute( "CREATE DATABASE %s %s" % (qn(test_database_name), suffix)) diff --git a/django/db/backends/postgresql_psycopg2/base.py b/django/db/backends/postgresql_psycopg2/base.py index 85a0991402..bf129c0758 100644 --- a/django/db/backends/postgresql_psycopg2/base.py +++ b/django/db/backends/postgresql_psycopg2/base.py @@ -149,6 +149,8 @@ class DatabaseWrapper(BaseDatabaseWrapper): exc_info=sys.exc_info() ) raise + finally: + self.set_clean() @cached_property def pg_version(self): @@ -233,10 +235,17 @@ class DatabaseWrapper(BaseDatabaseWrapper): try: if self.connection is not None: self.connection.set_isolation_level(level) + if level == psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT: + self.set_clean() finally: self.isolation_level = level self.features.uses_savepoints = bool(level) + def set_dirty(self): + if ((self.transaction_state and self.transaction_state[-1]) or + not self.features.uses_autocommit): + super(DatabaseWrapper, self).set_dirty() + def _commit(self): if self.connection is not None: try: diff --git a/django/db/backends/postgresql_psycopg2/creation.py b/django/db/backends/postgresql_psycopg2/creation.py index 88afd5f52f..d977939f41 100644 --- a/django/db/backends/postgresql_psycopg2/creation.py +++ b/django/db/backends/postgresql_psycopg2/creation.py @@ -82,6 +82,8 @@ class DatabaseCreation(BaseDatabaseCreation): def _prepare_for_test_db_ddl(self): """Rollback and close the active transaction.""" + # Make sure there is an open connection. + self.connection.cursor() self.connection.connection.rollback() self.connection.connection.set_isolation_level( psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT) diff --git a/django/db/backends/util.py b/django/db/backends/util.py index 1ba23060e0..ebab982a04 100644 --- a/django/db/backends/util.py +++ b/django/db/backends/util.py @@ -19,13 +19,9 @@ class CursorWrapper(object): self.cursor = cursor self.db = db - def set_dirty(self): - if self.db.is_managed(): - self.db.set_dirty() - def __getattr__(self, attr): if attr in ('execute', 'executemany', 'callproc'): - self.set_dirty() + self.db.set_dirty() return getattr(self.cursor, attr) def __iter__(self): @@ -35,7 +31,7 @@ class CursorWrapper(object): class CursorDebugWrapper(CursorWrapper): def execute(self, sql, params=()): - self.set_dirty() + self.db.set_dirty() start = time() try: return self.cursor.execute(sql, params) @@ -52,7 +48,7 @@ class CursorDebugWrapper(CursorWrapper): ) def executemany(self, sql, param_list): - self.set_dirty() + self.db.set_dirty() start = time() try: return self.cursor.executemany(sql, param_list) diff --git a/django/db/models/sql/compiler.py b/django/db/models/sql/compiler.py index 22d025ecb2..b9d25d98a1 100644 --- a/django/db/models/sql/compiler.py +++ b/django/db/models/sql/compiler.py @@ -687,11 +687,6 @@ class SQLCompiler(object): resolve_columns = hasattr(self, 'resolve_columns') fields = None has_aggregate_select = bool(self.query.aggregate_select) - # Set transaction dirty if we're using SELECT FOR UPDATE to ensure - # a subsequent commit/rollback is executed, so any database locks - # are released. - if self.query.select_for_update and transaction.is_managed(self.using): - transaction.set_dirty(self.using) for rows in self.execute_sql(MULTI): for row in rows: if resolve_columns: diff --git a/docs/ref/models/querysets.txt b/docs/ref/models/querysets.txt index f77f87dd8e..0fa8b8e361 100644 --- a/docs/ref/models/querysets.txt +++ b/docs/ref/models/querysets.txt @@ -1249,11 +1249,6 @@ make the call non-blocking. If a conflicting lock is already acquired by another transaction, :exc:`~django.db.DatabaseError` will be raised when the queryset is evaluated. -Note that using ``select_for_update()`` will cause the current transaction to be -considered dirty, if under transaction management. This is to ensure that -Django issues a ``COMMIT`` or ``ROLLBACK``, releasing any locks held by the -``SELECT FOR UPDATE``. - Currently, the ``postgresql_psycopg2``, ``oracle``, and ``mysql`` database backends support ``select_for_update()``. However, MySQL has no support for the ``nowait`` argument. Obviously, users of external third-party backends should diff --git a/tests/delete_regress/tests.py b/tests/delete_regress/tests.py index e007ebdd76..9fcc19ba71 100644 --- a/tests/delete_regress/tests.py +++ b/tests/delete_regress/tests.py @@ -23,11 +23,13 @@ class DeleteLockingTest(TransactionTestCase): # Put both DB connections into managed transaction mode transaction.enter_transaction_management() transaction.managed(True) - self.conn2._enter_transaction_management(True) + self.conn2.enter_transaction_management() + self.conn2.managed(True) def tearDown(self): # Close down the second connection. transaction.leave_transaction_management() + self.conn2.abort() self.conn2.close() @skipUnlessDBFeature('test_db_allows_multiple_connections') diff --git a/tests/middleware/tests.py b/tests/middleware/tests.py index e6512e4ace..4e5fd8ea6b 100644 --- a/tests/middleware/tests.py +++ b/tests/middleware/tests.py @@ -683,6 +683,9 @@ class TransactionMiddlewareTest(TransactionTestCase): self.response = HttpResponse() self.response.status_code = 200 + def tearDown(self): + transaction.abort() + def test_request(self): TransactionMiddleware().process_request(self.request) self.assertTrue(transaction.is_managed()) @@ -697,10 +700,14 @@ class TransactionMiddlewareTest(TransactionTestCase): self.assertEqual(Band.objects.count(), 1) def test_unmanaged_response(self): + transaction.enter_transaction_management() transaction.managed(False) + self.assertEqual(Band.objects.count(), 0) TransactionMiddleware().process_response(self.request, self.response) self.assertFalse(transaction.is_managed()) - self.assertFalse(transaction.is_dirty()) + # The transaction middleware doesn't commit/rollback if management + # has been disabled. + self.assertTrue(transaction.is_dirty()) def test_exception(self): transaction.enter_transaction_management() @@ -708,8 +715,8 @@ class TransactionMiddlewareTest(TransactionTestCase): Band.objects.create(name='The Beatles') self.assertTrue(transaction.is_dirty()) TransactionMiddleware().process_exception(self.request, None) - self.assertEqual(Band.objects.count(), 0) self.assertFalse(transaction.is_dirty()) + self.assertEqual(Band.objects.count(), 0) def test_failing_commit(self): # It is possible that connection.commit() fails. Check that @@ -724,8 +731,8 @@ class TransactionMiddlewareTest(TransactionTestCase): self.assertTrue(transaction.is_dirty()) with self.assertRaises(IntegrityError): TransactionMiddleware().process_response(self.request, None) - self.assertEqual(Band.objects.count(), 0) self.assertFalse(transaction.is_dirty()) + self.assertEqual(Band.objects.count(), 0) self.assertFalse(transaction.is_managed()) finally: del connections[DEFAULT_DB_ALIAS].commit diff --git a/tests/select_for_update/tests.py b/tests/select_for_update/tests.py index e3e4d9e7e2..c5a04881c9 100644 --- a/tests/select_for_update/tests.py +++ b/tests/select_for_update/tests.py @@ -24,7 +24,7 @@ requires_threading = unittest.skipUnless(threading, 'requires threading') class SelectForUpdateTests(TransactionTestCase): def setUp(self): - transaction.enter_transaction_management(True) + transaction.enter_transaction_management() transaction.managed(True) self.person = Person.objects.create(name='Reinhardt') @@ -48,9 +48,8 @@ class SelectForUpdateTests(TransactionTestCase): try: # We don't really care if this fails - some of the tests will set # this in the course of their run. - transaction.managed(False) - transaction.leave_transaction_management() - self.new_connection.leave_transaction_management() + transaction.abort() + self.new_connection.abort() except transaction.TransactionManagementError: pass self.new_connection.close() @@ -73,7 +72,7 @@ class SelectForUpdateTests(TransactionTestCase): def end_blocking_transaction(self): # Roll back the blocking transaction. - self.new_connection._rollback() + self.new_connection.rollback() def has_for_update_sql(self, tested_connection, nowait=False): # Examine the SQL that was executed to determine whether it @@ -119,6 +118,7 @@ class SelectForUpdateTests(TransactionTestCase): """ self.start_blocking_transaction() status = [] + thread = threading.Thread( target=self.run_select_for_update, args=(status,), @@ -164,7 +164,7 @@ class SelectForUpdateTests(TransactionTestCase): try: # We need to enter transaction management again, as this is done on # per-thread basis - transaction.enter_transaction_management(True) + transaction.enter_transaction_management() transaction.managed(True) people = list( Person.objects.all().select_for_update(nowait=nowait) @@ -177,6 +177,7 @@ class SelectForUpdateTests(TransactionTestCase): finally: # This method is run in a separate thread. It uses its own # database connection. Close it without waiting for the GC. + transaction.abort() connection.close() @requires_threading @@ -271,13 +272,3 @@ class SelectForUpdateTests(TransactionTestCase): """ people = list(Person.objects.select_for_update()) self.assertTrue(transaction.is_dirty()) - - @skipUnlessDBFeature('has_select_for_update') - def test_transaction_not_dirty_unmanaged(self): - """ If we're not under txn management, the txn will never be - marked as dirty. - """ - transaction.managed(False) - transaction.leave_transaction_management() - people = list(Person.objects.select_for_update()) - self.assertFalse(transaction.is_dirty()) diff --git a/tests/transactions/tests.py b/tests/transactions/tests.py index f3246eef2a..a1edf53fcb 100644 --- a/tests/transactions/tests.py +++ b/tests/transactions/tests.py @@ -165,7 +165,6 @@ class TransactionRollbackTests(TransactionTestCase): def execute_bad_sql(self): cursor = connection.cursor() cursor.execute("INSERT INTO transactions_reporter (first_name, last_name) VALUES ('Douglas', 'Adams');") - transaction.set_dirty() @skipUnlessDBFeature('requires_rollback_on_dirty_transaction') def test_bad_sql(self): @@ -306,5 +305,4 @@ class TransactionContextManagerTests(TransactionTestCase): with transaction.commit_on_success(): cursor = connection.cursor() cursor.execute("INSERT INTO transactions_reporter (first_name, last_name) VALUES ('Douglas', 'Adams');") - transaction.set_dirty() transaction.rollback() diff --git a/tests/transactions_regress/tests.py b/tests/transactions_regress/tests.py index e76208d72c..8cc68b7e0d 100644 --- a/tests/transactions_regress/tests.py +++ b/tests/transactions_regress/tests.py @@ -138,7 +138,8 @@ class TestTransactionClosing(TransactionTestCase): @transaction.commit_on_success def create_system_user(): "Create a user in a transaction" - user = User.objects.create_user(username='system', password='iamr00t', email='root@SITENAME.com') + user = User.objects.create_user(username='system', password='iamr00t', + email='root@SITENAME.com') # Redundant, just makes sure the user id was read back from DB Mod.objects.create(fld=user.pk) @@ -161,6 +162,83 @@ class TestTransactionClosing(TransactionTestCase): """ self.test_failing_query_transaction_closed() +@skipIf(connection.vendor == 'sqlite' and + (connection.settings_dict['NAME'] == ':memory:' or + not connection.settings_dict['NAME']), + 'Test uses multiple connections, but in-memory sqlite does not support this') +class TestNewConnection(TransactionTestCase): + """ + Check that new connections don't have special behaviour. + """ + def setUp(self): + self._old_backend = connections[DEFAULT_DB_ALIAS] + settings = self._old_backend.settings_dict.copy() + opts = settings['OPTIONS'].copy() + if 'autocommit' in opts: + opts['autocommit'] = False + settings['OPTIONS'] = opts + new_backend = self._old_backend.__class__(settings, DEFAULT_DB_ALIAS) + connections[DEFAULT_DB_ALIAS] = new_backend + + def tearDown(self): + try: + connections[DEFAULT_DB_ALIAS].abort() + except Exception: + import ipdb; ipdb.set_trace() + finally: + connections[DEFAULT_DB_ALIAS].close() + connections[DEFAULT_DB_ALIAS] = self._old_backend + + def test_commit(self): + """ + Users are allowed to commit and rollback connections. + """ + # The starting value is False, not None. + self.assertIs(connection._dirty, False) + list(Mod.objects.all()) + self.assertTrue(connection.is_dirty()) + connection.commit() + self.assertFalse(connection.is_dirty()) + list(Mod.objects.all()) + self.assertTrue(connection.is_dirty()) + connection.rollback() + self.assertFalse(connection.is_dirty()) + + def test_enter_exit_management(self): + orig_dirty = connection._dirty + connection.enter_transaction_management() + connection.leave_transaction_management() + self.assertEqual(orig_dirty, connection._dirty) + + def test_commit_unless_managed(self): + cursor = connection.cursor() + cursor.execute("INSERT into transactions_regress_mod (fld) values (2)") + connection.commit_unless_managed() + self.assertFalse(connection.is_dirty()) + self.assertEqual(len(Mod.objects.all()), 1) + self.assertTrue(connection.is_dirty()) + connection.commit_unless_managed() + self.assertFalse(connection.is_dirty()) + + def test_commit_unless_managed_in_managed(self): + cursor = connection.cursor() + connection.enter_transaction_management() + transaction.managed(True) + cursor.execute("INSERT into transactions_regress_mod (fld) values (2)") + connection.commit_unless_managed() + self.assertTrue(connection.is_dirty()) + connection.rollback() + self.assertFalse(connection.is_dirty()) + self.assertEqual(len(Mod.objects.all()), 0) + connection.commit() + connection.leave_transaction_management() + self.assertFalse(connection.is_dirty()) + self.assertEqual(len(Mod.objects.all()), 0) + self.assertTrue(connection.is_dirty()) + connection.commit_unless_managed() + self.assertFalse(connection.is_dirty()) + self.assertEqual(len(Mod.objects.all()), 0) + @skipUnless(connection.vendor == 'postgresql', "This test only valid for PostgreSQL") @@ -171,9 +249,11 @@ class TestPostgresAutocommit(TransactionTestCase): """ def setUp(self): from psycopg2.extensions import (ISOLATION_LEVEL_AUTOCOMMIT, - ISOLATION_LEVEL_READ_COMMITTED) + ISOLATION_LEVEL_READ_COMMITTED, + TRANSACTION_STATUS_IDLE) self._autocommit = ISOLATION_LEVEL_AUTOCOMMIT self._read_committed = ISOLATION_LEVEL_READ_COMMITTED + self._idle = TRANSACTION_STATUS_IDLE # We want a clean backend with autocommit = True, so # first we need to do a bit of work to have that. @@ -186,7 +266,11 @@ class TestPostgresAutocommit(TransactionTestCase): connections[DEFAULT_DB_ALIAS] = new_backend def tearDown(self): - connections[DEFAULT_DB_ALIAS] = self._old_backend + try: + connections[DEFAULT_DB_ALIAS].abort() + finally: + connections[DEFAULT_DB_ALIAS].close() + connections[DEFAULT_DB_ALIAS] = self._old_backend def test_initial_autocommit_state(self): self.assertTrue(connection.features.uses_autocommit) @@ -214,6 +298,26 @@ class TestPostgresAutocommit(TransactionTestCase): transaction.leave_transaction_management() self.assertEqual(connection.isolation_level, self._autocommit) + def test_enter_autocommit(self): + transaction.enter_transaction_management() + transaction.managed(True) + self.assertEqual(connection.isolation_level, self._read_committed) + list(Mod.objects.all()) + self.assertTrue(transaction.is_dirty()) + # Enter autocommit mode again. + transaction.enter_transaction_management(False) + transaction.managed(False) + self.assertFalse(transaction.is_dirty()) + self.assertEqual( + connection.connection.get_transaction_status(), + self._idle) + list(Mod.objects.all()) + self.assertFalse(transaction.is_dirty()) + transaction.leave_transaction_management() + self.assertEqual(connection.isolation_level, self._read_committed) + transaction.leave_transaction_management() + self.assertEqual(connection.isolation_level, self._autocommit) + class TestManyToManyAddTransaction(TransactionTestCase): def test_manyrelated_add_commit(self): @@ -247,7 +351,7 @@ class SavepointTest(TransactionTestCase): work() - @skipIf(connection.vendor == 'mysql' and \ + @skipIf(connection.vendor == 'mysql' and connection.features._mysql_storage_engine == 'MyISAM', "MyISAM MySQL storage engine doesn't support savepoints") @skipUnlessDBFeature('uses_savepoints') -- cgit v1.3 From 59a352087591a26023412cbcb830cd1d34fc9b99 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Tue, 26 Feb 2013 14:53:34 +0100 Subject: Refactored database exceptions wrapping. Squashed commit of the following: commit 2181d833ed1a2e422494738dcef311164c4e097e Author: Aymeric Augustin Date: Wed Feb 27 14:28:39 2013 +0100 Fixed #15901 -- Wrapped all PEP-249 exceptions. commit 5476a5d93c19aa2f928c497d39ce6e33f52694e2 Author: Aymeric Augustin Date: Tue Feb 26 17:26:52 2013 +0100 Added PEP 3134 exception chaining. Thanks Jacob Kaplan-Moss for the suggestion. commit 9365fad0a650328002fb424457d675a273c95802 Author: Aymeric Augustin Date: Tue Feb 26 17:13:49 2013 +0100 Improved API for wrapping database errors. Thanks Alex Gaynor for the proposal. commit 1b463b765f2826f73a8d9266795cd5da4f8d5e9e Author: Aymeric Augustin Date: Tue Feb 26 15:00:39 2013 +0100 Removed redundant exception wrapping. This is now taken care of by the cursor wrapper. commit 524bc7345a724bf526bdd2dd1bcf5ede67d6bb5c Author: Aymeric Augustin Date: Tue Feb 26 14:55:10 2013 +0100 Wrapped database exceptions in the base backend. This covers the most common PEP-249 APIs: - Connection APIs: close(), commit(), rollback(), cursor() - Cursor APIs: callproc(), close(), execute(), executemany(), fetchone(), fetchmany(), fetchall(), nextset(). Fixed #19920. commit a66746bb5f0839f35543222787fce3b6a0d0a3ea Author: Aymeric Augustin Date: Tue Feb 26 14:53:34 2013 +0100 Added a wrap_database_exception context manager and decorator. It re-throws backend-specific exceptions using Django's common wrappers. --- django/db/__init__.py | 7 ++- django/db/backends/__init__.py | 33 +++++++---- django/db/backends/mysql/base.py | 14 ++--- django/db/backends/oracle/base.py | 16 ++---- django/db/backends/postgresql_psycopg2/base.py | 45 +-------------- django/db/backends/sqlite3/base.py | 19 ++---- django/db/backends/util.py | 13 ++++- django/db/utils.py | 80 ++++++++++++++++++++++++-- docs/ref/exceptions.txt | 18 ++++-- docs/releases/1.6.txt | 2 + 10 files changed, 147 insertions(+), 100 deletions(-) (limited to 'docs') diff --git a/django/db/__init__.py b/django/db/__init__.py index 32e42bbfe9..e76c6c3268 100644 --- a/django/db/__init__.py +++ b/django/db/__init__.py @@ -1,8 +1,11 @@ from django.conf import settings from django.core import signals from django.core.exceptions import ImproperlyConfigured -from django.db.utils import (ConnectionHandler, ConnectionRouter, - load_backend, DEFAULT_DB_ALIAS, DatabaseError, IntegrityError) +from django.db.utils import (DEFAULT_DB_ALIAS, + DataError, OperationalError, IntegrityError, InternalError, + ProgrammingError, NotSupportedError, DatabaseError, + InterfaceError, Error, + load_backend, ConnectionHandler, ConnectionRouter) __all__ = ('backend', 'connection', 'connections', 'router', 'DatabaseError', 'IntegrityError', 'DEFAULT_DB_ALIAS') diff --git a/django/db/backends/__init__.py b/django/db/backends/__init__.py index 46db1910f9..49e07cfa9e 100644 --- a/django/db/backends/__init__.py +++ b/django/db/backends/__init__.py @@ -14,6 +14,7 @@ from django.db import DEFAULT_DB_ALIAS from django.db.backends.signals import connection_created from django.db.backends import util from django.db.transaction import TransactionManagementError +from django.db.utils import DatabaseErrorWrapper from django.utils.functional import cached_property from django.utils.importlib import import_module from django.utils import six @@ -57,6 +58,9 @@ class BaseDatabaseWrapper(object): def __hash__(self): return hash(self.alias) + def wrap_database_errors(self): + return DatabaseErrorWrapper(self.Database) + def get_connection_params(self): raise NotImplementedError @@ -70,20 +74,28 @@ class BaseDatabaseWrapper(object): raise NotImplementedError def _cursor(self): - if self.connection is None: - conn_params = self.get_connection_params() - self.connection = self.get_new_connection(conn_params) - self.init_connection_state() - connection_created.send(sender=self.__class__, connection=self) - return self.create_cursor() + with self.wrap_database_errors(): + if self.connection is None: + conn_params = self.get_connection_params() + self.connection = self.get_new_connection(conn_params) + self.init_connection_state() + connection_created.send(sender=self.__class__, connection=self) + return self.create_cursor() def _commit(self): if self.connection is not None: - return self.connection.commit() + with self.wrap_database_errors(): + return self.connection.commit() def _rollback(self): if self.connection is not None: - return self.connection.rollback() + with self.wrap_database_errors(): + return self.connection.rollback() + + def _close(self): + if self.connection is not None: + with self.wrap_database_errors(): + return self.connection.close() def _enter_transaction_management(self, managed): """ @@ -333,8 +345,9 @@ class BaseDatabaseWrapper(object): def close(self): self.validate_thread_sharing() - if self.connection is not None: - self.connection.close() + try: + self._close() + finally: self.connection = None self.set_clean() diff --git a/django/db/backends/mysql/base.py b/django/db/backends/mysql/base.py index fc2ff31581..4bfd3c4481 100644 --- a/django/db/backends/mysql/base.py +++ b/django/db/backends/mysql/base.py @@ -116,30 +116,22 @@ class CursorWrapper(object): def execute(self, query, args=None): try: return self.cursor.execute(query, args) - except Database.IntegrityError as e: - six.reraise(utils.IntegrityError, utils.IntegrityError(*tuple(e.args)), sys.exc_info()[2]) except Database.OperationalError as e: # Map some error codes to IntegrityError, since they seem to be # misclassified and Django would prefer the more logical place. if e[0] in self.codes_for_integrityerror: six.reraise(utils.IntegrityError, utils.IntegrityError(*tuple(e.args)), sys.exc_info()[2]) - six.reraise(utils.DatabaseError, utils.DatabaseError(*tuple(e.args)), sys.exc_info()[2]) - except Database.DatabaseError as e: - six.reraise(utils.DatabaseError, utils.DatabaseError(*tuple(e.args)), sys.exc_info()[2]) + raise def executemany(self, query, args): try: return self.cursor.executemany(query, args) - except Database.IntegrityError as e: - six.reraise(utils.IntegrityError, utils.IntegrityError(*tuple(e.args)), sys.exc_info()[2]) except Database.OperationalError as e: # Map some error codes to IntegrityError, since they seem to be # misclassified and Django would prefer the more logical place. if e[0] in self.codes_for_integrityerror: six.reraise(utils.IntegrityError, utils.IntegrityError(*tuple(e.args)), sys.exc_info()[2]) - six.reraise(utils.DatabaseError, utils.DatabaseError(*tuple(e.args)), sys.exc_info()[2]) - except Database.DatabaseError as e: - six.reraise(utils.DatabaseError, utils.DatabaseError(*tuple(e.args)), sys.exc_info()[2]) + raise def __getattr__(self, attr): if attr in self.__dict__: @@ -391,6 +383,8 @@ class DatabaseWrapper(BaseDatabaseWrapper): 'iendswith': 'LIKE %s', } + Database = Database + def __init__(self, *args, **kwargs): super(DatabaseWrapper, self).__init__(*args, **kwargs) diff --git a/django/db/backends/oracle/base.py b/django/db/backends/oracle/base.py index 3c799f01c1..d35e814d1f 100644 --- a/django/db/backends/oracle/base.py +++ b/django/db/backends/oracle/base.py @@ -501,6 +501,8 @@ class DatabaseWrapper(BaseDatabaseWrapper): 'iendswith': "LIKEC UPPER(%s) ESCAPE '\\'", }) + Database = Database + def __init__(self, *args, **kwargs): super(DatabaseWrapper, self).__init__(*args, **kwargs) @@ -604,10 +606,6 @@ class DatabaseWrapper(BaseDatabaseWrapper): if self.connection is not None: try: return self.connection.commit() - except Database.IntegrityError as e: - # In case cx_Oracle implements (now or in a future version) - # raising this specific exception - six.reraise(utils.IntegrityError, utils.IntegrityError(*tuple(e.args)), sys.exc_info()[2]) except Database.DatabaseError as e: # cx_Oracle 5.0.4 raises a cx_Oracle.DatabaseError exception # with the following attributes and values: @@ -620,7 +618,7 @@ class DatabaseWrapper(BaseDatabaseWrapper): if hasattr(x, 'code') and hasattr(x, 'message') \ and x.code == 2091 and 'ORA-02291' in x.message: six.reraise(utils.IntegrityError, utils.IntegrityError(*tuple(e.args)), sys.exc_info()[2]) - six.reraise(utils.DatabaseError, utils.DatabaseError(*tuple(e.args)), sys.exc_info()[2]) + raise @cached_property def oracle_version(self): @@ -760,13 +758,11 @@ class FormatStylePlaceholderCursor(object): self._guess_input_sizes([params]) try: return self.cursor.execute(query, self._param_generator(params)) - except Database.IntegrityError as e: - six.reraise(utils.IntegrityError, utils.IntegrityError(*tuple(e.args)), sys.exc_info()[2]) except Database.DatabaseError as e: # cx_Oracle <= 4.4.0 wrongly raises a DatabaseError for ORA-01400. if hasattr(e.args[0], 'code') and e.args[0].code == 1400 and not isinstance(e, IntegrityError): six.reraise(utils.IntegrityError, utils.IntegrityError(*tuple(e.args)), sys.exc_info()[2]) - six.reraise(utils.DatabaseError, utils.DatabaseError(*tuple(e.args)), sys.exc_info()[2]) + raise def executemany(self, query, params=None): # cx_Oracle doesn't support iterators, convert them to lists @@ -789,13 +785,11 @@ class FormatStylePlaceholderCursor(object): try: return self.cursor.executemany(query, [self._param_generator(p) for p in formatted]) - except Database.IntegrityError as e: - six.reraise(utils.IntegrityError, utils.IntegrityError(*tuple(e.args)), sys.exc_info()[2]) except Database.DatabaseError as e: # cx_Oracle <= 4.4.0 wrongly raises a DatabaseError for ORA-01400. if hasattr(e.args[0], 'code') and e.args[0].code == 1400 and not isinstance(e, IntegrityError): six.reraise(utils.IntegrityError, utils.IntegrityError(*tuple(e.args)), sys.exc_info()[2]) - six.reraise(utils.DatabaseError, utils.DatabaseError(*tuple(e.args)), sys.exc_info()[2]) + raise def fetchone(self): row = self.cursor.fetchone() diff --git a/django/db/backends/postgresql_psycopg2/base.py b/django/db/backends/postgresql_psycopg2/base.py index bf129c0758..fb04072494 100644 --- a/django/db/backends/postgresql_psycopg2/base.py +++ b/django/db/backends/postgresql_psycopg2/base.py @@ -40,40 +40,6 @@ def utc_tzinfo_factory(offset): raise AssertionError("database connection isn't set to UTC") return utc -class CursorWrapper(object): - """ - A thin wrapper around psycopg2's normal cursor class so that we can catch - particular exception instances and reraise them with the right types. - """ - - def __init__(self, cursor): - self.cursor = cursor - - def execute(self, query, args=None): - try: - return self.cursor.execute(query, args) - except Database.IntegrityError as e: - six.reraise(utils.IntegrityError, utils.IntegrityError(*tuple(e.args)), sys.exc_info()[2]) - except Database.DatabaseError as e: - six.reraise(utils.DatabaseError, utils.DatabaseError(*tuple(e.args)), sys.exc_info()[2]) - - def executemany(self, query, args): - try: - return self.cursor.executemany(query, args) - except Database.IntegrityError as e: - six.reraise(utils.IntegrityError, utils.IntegrityError(*tuple(e.args)), sys.exc_info()[2]) - except Database.DatabaseError as e: - six.reraise(utils.DatabaseError, utils.DatabaseError(*tuple(e.args)), sys.exc_info()[2]) - - def __getattr__(self, attr): - if attr in self.__dict__: - return self.__dict__[attr] - else: - return getattr(self.cursor, attr) - - def __iter__(self): - return iter(self.cursor) - class DatabaseFeatures(BaseDatabaseFeatures): needs_datetime_string_cast = False can_return_id_from_insert = True @@ -106,6 +72,8 @@ class DatabaseWrapper(BaseDatabaseWrapper): 'iendswith': 'LIKE UPPER(%s)', } + Database = Database + def __init__(self, *args, **kwargs): super(DatabaseWrapper, self).__init__(*args, **kwargs) @@ -207,7 +175,7 @@ class DatabaseWrapper(BaseDatabaseWrapper): def create_cursor(self): cursor = self.connection.cursor() cursor.tzinfo_factory = utc_tzinfo_factory if settings.USE_TZ else None - return CursorWrapper(cursor) + return cursor def _enter_transaction_management(self, managed): """ @@ -245,10 +213,3 @@ class DatabaseWrapper(BaseDatabaseWrapper): if ((self.transaction_state and self.transaction_state[-1]) or not self.features.uses_autocommit): super(DatabaseWrapper, self).set_dirty() - - def _commit(self): - if self.connection is not None: - try: - return self.connection.commit() - except Database.IntegrityError as e: - six.reraise(utils.IntegrityError, utils.IntegrityError(*tuple(e.args)), sys.exc_info()[2]) diff --git a/django/db/backends/sqlite3/base.py b/django/db/backends/sqlite3/base.py index 7ddaaf8fe3..6bf1ffc469 100644 --- a/django/db/backends/sqlite3/base.py +++ b/django/db/backends/sqlite3/base.py @@ -10,7 +10,6 @@ import datetime import decimal import warnings import re -import sys from django.db import utils from django.db.backends import * @@ -291,6 +290,8 @@ class DatabaseWrapper(BaseDatabaseWrapper): 'iendswith': "LIKE %s ESCAPE '\\'", } + Database = Database + def __init__(self, *args, **kwargs): super(DatabaseWrapper, self).__init__(*args, **kwargs) @@ -398,24 +399,14 @@ class SQLiteCursorWrapper(Database.Cursor): """ def execute(self, query, params=()): query = self.convert_query(query) - try: - return Database.Cursor.execute(self, query, params) - except Database.IntegrityError as e: - six.reraise(utils.IntegrityError, utils.IntegrityError(*tuple(e.args)), sys.exc_info()[2]) - except Database.DatabaseError as e: - six.reraise(utils.DatabaseError, utils.DatabaseError(*tuple(e.args)), sys.exc_info()[2]) + return Database.Cursor.execute(self, query, params) def executemany(self, query, param_list): query = self.convert_query(query) - try: - return Database.Cursor.executemany(self, query, param_list) - except Database.IntegrityError as e: - six.reraise(utils.IntegrityError, utils.IntegrityError(*tuple(e.args)), sys.exc_info()[2]) - except Database.DatabaseError as e: - six.reraise(utils.DatabaseError, utils.DatabaseError(*tuple(e.args)), sys.exc_info()[2]) + return Database.Cursor.executemany(self, query, param_list) def convert_query(self, query): - return FORMAT_QMARK_REGEX.sub('?', query).replace('%%','%') + return FORMAT_QMARK_REGEX.sub('?', query).replace('%%', '%') def _sqlite_date_extract(lookup_type, dt): if dt is None: diff --git a/django/db/backends/util.py b/django/db/backends/util.py index ebab982a04..5eb6626fc7 100644 --- a/django/db/backends/util.py +++ b/django/db/backends/util.py @@ -22,7 +22,12 @@ class CursorWrapper(object): def __getattr__(self, attr): if attr in ('execute', 'executemany', 'callproc'): self.db.set_dirty() - return getattr(self.cursor, attr) + cursor_attr = getattr(self.cursor, attr) + if attr in ('callproc', 'close', 'execute', 'executemany', + 'fetchone', 'fetchmany', 'fetchall', 'nextset'): + return self.db.wrap_database_errors()(cursor_attr) + else: + return cursor_attr def __iter__(self): return iter(self.cursor) @@ -34,7 +39,8 @@ class CursorDebugWrapper(CursorWrapper): self.db.set_dirty() start = time() try: - return self.cursor.execute(sql, params) + with self.db.wrap_database_errors(): + return self.cursor.execute(sql, params) finally: stop = time() duration = stop - start @@ -51,7 +57,8 @@ class CursorDebugWrapper(CursorWrapper): self.db.set_dirty() start = time() try: - return self.cursor.executemany(sql, param_list) + with self.db.wrap_database_errors(): + return self.cursor.executemany(sql, param_list) finally: stop = time() duration = stop - start diff --git a/django/db/utils.py b/django/db/utils.py index 91fa774ed4..c841e06f3e 100644 --- a/django/db/utils.py +++ b/django/db/utils.py @@ -1,3 +1,4 @@ +from functools import wraps import os import pkgutil from threading import local @@ -12,16 +13,87 @@ from django.utils import six DEFAULT_DB_ALIAS = 'default' -# Define some exceptions that mirror the PEP249 interface. -# We will rethrow any backend-specific errors using these -# common wrappers -class DatabaseError(Exception): + +class Error(StandardError): + pass + + +class InterfaceError(Error): + pass + + +class DatabaseError(Error): pass + +class DataError(DatabaseError): + pass + + +class OperationalError(DatabaseError): + pass + + class IntegrityError(DatabaseError): pass +class InternalError(DatabaseError): + pass + + +class ProgrammingError(DatabaseError): + pass + + +class NotSupportedError(DatabaseError): + pass + + +class DatabaseErrorWrapper(object): + """ + Context manager and decorator that re-throws backend-specific database + exceptions using Django's common wrappers. + """ + + def __init__(self, database): + """ + database is a module defining PEP-249 exceptions. + """ + self.database = database + + def __enter__(self): + pass + + def __exit__(self, exc_type, exc_value, traceback): + if exc_type is None: + return + for dj_exc_type in ( + DataError, + OperationalError, + IntegrityError, + InternalError, + ProgrammingError, + NotSupportedError, + DatabaseError, + InterfaceError, + Error, + ): + db_exc_type = getattr(self.database, dj_exc_type.__name__) + if issubclass(exc_type, db_exc_type): + dj_exc_value = dj_exc_type(*tuple(exc_value.args)) + if six.PY3: + dj_exc_value.__cause__ = exc_value + six.reraise(dj_exc_type, dj_exc_value, traceback) + + def __call__(self, func): + @wraps(func) + def inner(*args, **kwargs): + with self: + return func(*args, **kwargs) + return inner + + def load_backend(backend_name): # Look for a fully qualified database backend name try: diff --git a/docs/ref/exceptions.txt b/docs/ref/exceptions.txt index f123ae2e59..93bb9ed251 100644 --- a/docs/ref/exceptions.txt +++ b/docs/ref/exceptions.txt @@ -119,18 +119,28 @@ NoReverseMatch Database Exceptions =================== -Django wraps the standard database exceptions :exc:`DatabaseError` and -:exc:`IntegrityError` so that your Django code has a guaranteed common -implementation of these classes. These database exceptions are -provided in :mod:`django.db`. +Django wraps the standard database exceptions so that your Django code has a +guaranteed common implementation of these classes. These database exceptions +are provided in :mod:`django.db`. +.. exception:: Error +.. exception:: InterfaceError .. exception:: DatabaseError +.. exception:: DataError +.. exception:: OperationalError .. exception:: IntegrityError +.. exception:: InternalError +.. exception:: ProgrammingError +.. exception:: NotSupportedError The Django wrappers for database exceptions behave exactly the same as the underlying database exceptions. See :pep:`249`, the Python Database API Specification v2.0, for further information. +.. versionchanged:: 1.6 + Previous version of Django only wrapped ``DatabaseError`` and + ``IntegrityError``. + .. exception:: models.ProtectedError Raised to prevent deletion of referenced objects when using diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 1083d4d515..c6a4fb2d5d 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -60,6 +60,8 @@ Minor features * In addition to :lookup:`year`, :lookup:`month` and :lookup:`day`, the ORM now supports :lookup:`hour`, :lookup:`minute` and :lookup:`second` lookups. +* Django now wraps all PEP-249 exceptions. + * The default widgets for :class:`~django.forms.EmailField`, :class:`~django.forms.URLField`, :class:`~django.forms.IntegerField`, :class:`~django.forms.FloatField` and :class:`~django.forms.DecimalField` use -- cgit v1.3 From b0ba21db0721a9dbc6b98e1760fad64c7c86ff91 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Wed, 27 Feb 2013 21:28:55 +0100 Subject: Fixed #19926 -- Fixed a link to code example in queries docs Thanks Randy Salvo for the report. --- docs/topics/db/queries.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/topics/db/queries.txt b/docs/topics/db/queries.txt index f3a8709a51..91cd4fa871 100644 --- a/docs/topics/db/queries.txt +++ b/docs/topics/db/queries.txt @@ -824,7 +824,7 @@ precede the definition of any keyword arguments. For example:: The `OR lookups examples`_ in the Django unit tests show some possible uses of ``Q``. - .. _OR lookups examples: https://github.com/django/django/blob/master/tests/modeltests/or_lookups/tests.py + .. _OR lookups examples: https://github.com/django/django/blob/master/tests/or_lookups/tests.py Comparing objects ================= -- cgit v1.3 From ab1c25f674f8fdaa06897ce5ce65e559c0a6de1b Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Thu, 28 Feb 2013 10:26:47 +0100 Subject: Added a Trac-related item to the release checklist. --- docs/internals/howto-release-django.txt | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'docs') diff --git a/docs/internals/howto-release-django.txt b/docs/internals/howto-release-django.txt index 9e8b64e356..83b6a8c9be 100644 --- a/docs/internals/howto-release-django.txt +++ b/docs/internals/howto-release-django.txt @@ -283,6 +283,10 @@ You're almost done! All that's left to do now is: the new version's docs, and update the ``docs/fixtures/doc_releases.json`` JSON fixture. *FIXME: what is the purpose of maintaining this fixture?* +#. Add the release in `Trac's versions list`_. + +.. _Trac's versions list: https://code.djangoproject.com/admin/ticket/versions + Notes on setting the VERSION tuple ================================== -- cgit v1.3 From 481f3f13b54a5cacc5b67b32c4ada267fc709d21 Mon Sep 17 00:00:00 2001 From: Florian Apolloner Date: Thu, 28 Feb 2013 11:05:26 +0100 Subject: 1.5 is no longer "UNDER DEVELOPMENT". Thanks to Bruno Renie for reporting. --- docs/releases/1.5-alpha-1.txt | 6 +++--- docs/releases/1.5.txt | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'docs') diff --git a/docs/releases/1.5-alpha-1.txt b/docs/releases/1.5-alpha-1.txt index c2ad691a76..bb3f32a3be 100644 --- a/docs/releases/1.5-alpha-1.txt +++ b/docs/releases/1.5-alpha-1.txt @@ -1,6 +1,6 @@ -============================================ -Django 1.5 release notes - UNDER DEVELOPMENT -============================================ +============================== +Django 1.5 alpha release notes +============================== October 25, 2012. diff --git a/docs/releases/1.5.txt b/docs/releases/1.5.txt index 73986d226f..75d2ed0b46 100644 --- a/docs/releases/1.5.txt +++ b/docs/releases/1.5.txt @@ -1,6 +1,6 @@ -============================================ -Django 1.5 release notes - UNDER DEVELOPMENT -============================================ +======================== +Django 1.5 release notes +======================== Welcome to Django 1.5! -- cgit v1.3 From d009ffe436410f6935798d910b0e489d53411dfa Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Thu, 28 Feb 2013 06:59:35 -0500 Subject: Fixed #19937 - Typo in class-based views intro. --- docs/topics/class-based-views/intro.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/topics/class-based-views/intro.txt b/docs/topics/class-based-views/intro.txt index 5868b6be03..11d1f84ffe 100644 --- a/docs/topics/class-based-views/intro.txt +++ b/docs/topics/class-based-views/intro.txt @@ -123,7 +123,7 @@ and methods in the subclass. So that if your parent class had an attribute You can override that in a subclass:: - class MorningGreetingView(MyView): + class MorningGreetingView(GreetingView): greeting = "Morning to ya" Another option is to configure class attributes as keyword arguments to the -- cgit v1.3 From 2ee21d9f0d9eaed0494f3b9cd4b5bc9beffffae5 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Mon, 18 Feb 2013 11:37:26 +0100 Subject: Implemented persistent database connections. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thanks Anssi Kääriäinen and Karen Tracey for their inputs. --- django/contrib/auth/handlers/modwsgi.py | 4 +- django/db/__init__.py | 21 ++++++--- django/db/backends/__init__.py | 32 ++++++++++++- django/db/backends/mysql/base.py | 8 ++++ django/db/backends/oracle/base.py | 12 +++++ django/db/backends/postgresql_psycopg2/base.py | 9 ++++ django/db/backends/sqlite3/base.py | 3 ++ django/db/utils.py | 15 +++++-- django/test/client.py | 12 ++--- docs/internals/deprecation.txt | 2 + docs/ref/databases.txt | 62 ++++++++++++++++++++++++++ docs/ref/settings.txt | 13 ++++++ docs/releases/1.6.txt | 21 +++++++++ tests/handlers/tests.py | 17 ++++--- tests/httpwrappers/tests.py | 6 +-- tests/wsgi/tests.py | 8 ++++ 16 files changed, 220 insertions(+), 25 deletions(-) (limited to 'docs') diff --git a/django/contrib/auth/handlers/modwsgi.py b/django/contrib/auth/handlers/modwsgi.py index df20f1283a..f14afcf290 100644 --- a/django/contrib/auth/handlers/modwsgi.py +++ b/django/contrib/auth/handlers/modwsgi.py @@ -25,7 +25,7 @@ def check_password(environ, username, password): return None return user.check_password(password) finally: - db.close_connection() + db.close_old_connections() def groups_for_user(environ, username): """ @@ -44,4 +44,4 @@ def groups_for_user(environ, username): return [] return [force_bytes(group.name) for group in user.groups.all()] finally: - db.close_connection() + db.close_old_connections() diff --git a/django/db/__init__.py b/django/db/__init__.py index e76c6c3268..5e630392e7 100644 --- a/django/db/__init__.py +++ b/django/db/__init__.py @@ -42,9 +42,10 @@ class DefaultConnectionProxy(object): connection = DefaultConnectionProxy() backend = load_backend(connection.settings_dict['ENGINE']) -# Register an event that closes the database connection -# when a Django request is finished. def close_connection(**kwargs): + warnings.warn( + "close_connection is superseded by close_old_connections.", + PendingDeprecationWarning, stacklevel=2) # Avoid circular imports from django.db import transaction for conn in connections: @@ -53,15 +54,25 @@ def close_connection(**kwargs): # connection state will be cleaned up. transaction.abort(conn) connections[conn].close() -signals.request_finished.connect(close_connection) -# Register an event that resets connection.queries -# when a Django request is started. +# Register an event to reset saved queries when a Django request is started. def reset_queries(**kwargs): for conn in connections.all(): conn.queries = [] signals.request_started.connect(reset_queries) +# Register an event to reset transaction state and close connections past +# their lifetime. NB: abort() doesn't do anything outside of a transaction. +def close_old_connections(**kwargs): + for conn in connections.all(): + try: + conn.abort() + except DatabaseError: + pass + conn.close_if_unusable_or_obsolete() +signals.request_started.connect(close_old_connections) +signals.request_finished.connect(close_old_connections) + # Register an event that rolls back the connections # when a Django request has an exception. def _rollback_on_exception(**kwargs): diff --git a/django/db/backends/__init__.py b/django/db/backends/__init__.py index 49e07cfa9e..9fb2b23644 100644 --- a/django/db/backends/__init__.py +++ b/django/db/backends/__init__.py @@ -1,4 +1,5 @@ import datetime +import time from django.db.utils import DatabaseError @@ -49,6 +50,10 @@ class BaseDatabaseWrapper(object): self._thread_ident = thread.get_ident() self.allow_thread_sharing = allow_thread_sharing + # Connection termination related attributes + self.close_at = None + self.errors_occurred = False + def __eq__(self, other): return self.alias == other.alias @@ -59,7 +64,7 @@ class BaseDatabaseWrapper(object): return hash(self.alias) def wrap_database_errors(self): - return DatabaseErrorWrapper(self.Database) + return DatabaseErrorWrapper(self) def get_connection_params(self): raise NotImplementedError @@ -76,6 +81,11 @@ class BaseDatabaseWrapper(object): def _cursor(self): with self.wrap_database_errors(): if self.connection is None: + # Reset parameters defining when to close the connection + max_age = self.settings_dict['CONN_MAX_AGE'] + self.close_at = None if max_age is None else time.time() + max_age + self.errors_occurred = False + # Establish the connection conn_params = self.get_connection_params() self.connection = self.get_new_connection(conn_params) self.init_connection_state() @@ -351,6 +361,26 @@ class BaseDatabaseWrapper(object): self.connection = None self.set_clean() + def close_if_unusable_or_obsolete(self): + if self.connection is not None: + if self.errors_occurred: + if self.is_usable(): + self.errors_occurred = False + else: + self.close() + return + if self.close_at is not None and time.time() >= self.close_at: + self.close() + return + + def is_usable(self): + """ + Test if the database connection is usable. + + This function may assume that self.connection is not None. + """ + raise NotImplementedError + def cursor(self): self.validate_thread_sharing() if (self.use_debug_cursor or diff --git a/django/db/backends/mysql/base.py b/django/db/backends/mysql/base.py index 4bfd3c4481..6b2ecaead1 100644 --- a/django/db/backends/mysql/base.py +++ b/django/db/backends/mysql/base.py @@ -439,6 +439,14 @@ class DatabaseWrapper(BaseDatabaseWrapper): cursor = self.connection.cursor() return CursorWrapper(cursor) + def is_usable(self): + try: + self.connection.ping() + except DatabaseError: + return False + else: + return True + def _rollback(self): try: BaseDatabaseWrapper._rollback(self) diff --git a/django/db/backends/oracle/base.py b/django/db/backends/oracle/base.py index d35e814d1f..478124f5df 100644 --- a/django/db/backends/oracle/base.py +++ b/django/db/backends/oracle/base.py @@ -598,6 +598,18 @@ class DatabaseWrapper(BaseDatabaseWrapper): # stmtcachesize is available only in 4.3.2 and up. pass + def is_usable(self): + try: + if hasattr(self.connection, 'ping'): # Oracle 10g R2 and higher + self.connection.ping() + else: + # Use a cx_Oracle cursor directly, bypassing Django's utilities. + self.connection.cursor().execute("SELECT 1 FROM DUAL") + except DatabaseError: + return False + else: + return True + # Oracle doesn't support savepoint commits. Ignore them. def _savepoint_commit(self, sid): pass diff --git a/django/db/backends/postgresql_psycopg2/base.py b/django/db/backends/postgresql_psycopg2/base.py index fb04072494..db4b5ade05 100644 --- a/django/db/backends/postgresql_psycopg2/base.py +++ b/django/db/backends/postgresql_psycopg2/base.py @@ -177,6 +177,15 @@ class DatabaseWrapper(BaseDatabaseWrapper): cursor.tzinfo_factory = utc_tzinfo_factory if settings.USE_TZ else None return cursor + def is_usable(self): + try: + # Use a psycopg cursor directly, bypassing Django's utilities. + self.connection.cursor().execute("SELECT 1") + except DatabaseError: + return False + else: + return True + def _enter_transaction_management(self, managed): """ Switch the isolation level when needing transaction support, so that diff --git a/django/db/backends/sqlite3/base.py b/django/db/backends/sqlite3/base.py index 6bf1ffc469..ad54af46ad 100644 --- a/django/db/backends/sqlite3/base.py +++ b/django/db/backends/sqlite3/base.py @@ -347,6 +347,9 @@ class DatabaseWrapper(BaseDatabaseWrapper): def create_cursor(self): return self.connection.cursor(factory=SQLiteCursorWrapper) + def is_usable(self): + return True + def check_constraints(self, table_names=None): """ Checks each table name in `table_names` for rows with invalid foreign key references. This method is diff --git a/django/db/utils.py b/django/db/utils.py index 0c98cc23fd..cc17b3e7a3 100644 --- a/django/db/utils.py +++ b/django/db/utils.py @@ -56,11 +56,13 @@ class DatabaseErrorWrapper(object): exceptions using Django's common wrappers. """ - def __init__(self, database): + def __init__(self, wrapper): """ - database is a module defining PEP-249 exceptions. + wrapper is a database wrapper. + + It must have a Database attribute defining PEP-249 exceptions. """ - self.database = database + self.wrapper = wrapper def __enter__(self): pass @@ -79,7 +81,7 @@ class DatabaseErrorWrapper(object): InterfaceError, Error, ): - db_exc_type = getattr(self.database, dj_exc_type.__name__) + db_exc_type = getattr(self.wrapper.Database, dj_exc_type.__name__) if issubclass(exc_type, db_exc_type): # Under Python 2.6, exc_value can still be a string. try: @@ -89,6 +91,10 @@ class DatabaseErrorWrapper(object): dj_exc_value = dj_exc_type(*args) if six.PY3: dj_exc_value.__cause__ = exc_value + # Only set the 'errors_occurred' flag for errors that may make + # the connection unusable. + if dj_exc_type not in (DataError, IntegrityError): + self.wrapper.errors_occurred = True six.reraise(dj_exc_type, dj_exc_value, traceback) def __call__(self, func): @@ -155,6 +161,7 @@ class ConnectionHandler(object): conn.setdefault('ENGINE', 'django.db.backends.dummy') if conn['ENGINE'] == 'django.db.backends.' or not conn['ENGINE']: conn['ENGINE'] = 'django.db.backends.dummy' + conn.setdefault('CONN_MAX_AGE', 600) conn.setdefault('OPTIONS', {}) conn.setdefault('TIME_ZONE', 'UTC' if settings.USE_TZ else settings.TIME_ZONE) for setting in ['NAME', 'USER', 'PASSWORD', 'HOST', 'PORT']: diff --git a/django/test/client.py b/django/test/client.py index 2506437023..46f55d7cdc 100644 --- a/django/test/client.py +++ b/django/test/client.py @@ -18,7 +18,7 @@ from django.core.handlers.base import BaseHandler from django.core.handlers.wsgi import WSGIRequest from django.core.signals import (request_started, request_finished, got_request_exception) -from django.db import close_connection +from django.db import close_old_connections from django.http import SimpleCookie, HttpRequest, QueryDict from django.template import TemplateDoesNotExist from django.test import signals @@ -78,9 +78,9 @@ def closing_iterator_wrapper(iterable, close): for item in iterable: yield item finally: - request_finished.disconnect(close_connection) + request_finished.disconnect(close_old_connections) close() # will fire request_finished - request_finished.connect(close_connection) + request_finished.connect(close_old_connections) class ClientHandler(BaseHandler): @@ -101,7 +101,9 @@ class ClientHandler(BaseHandler): if self._request_middleware is None: self.load_middleware() + request_started.disconnect(close_old_connections) request_started.send(sender=self.__class__) + request_started.connect(close_old_connections) request = WSGIRequest(environ) # sneaky little hack so that we can easily get round # CsrfViewMiddleware. This makes life easier, and is probably @@ -115,9 +117,9 @@ class ClientHandler(BaseHandler): response.streaming_content = closing_iterator_wrapper( response.streaming_content, response.close) else: - request_finished.disconnect(close_connection) + request_finished.disconnect(close_old_connections) response.close() # will fire request_finished - request_finished.connect(close_connection) + request_finished.connect(close_old_connections) return response diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt index f1ae1338df..3a9cbd195d 100644 --- a/docs/internals/deprecation.txt +++ b/docs/internals/deprecation.txt @@ -339,6 +339,8 @@ these changes. * ``Model._meta.module_name`` was renamed to ``model_name``. +* The private API ``django.db.close_connection`` will be removed. + 2.0 --- diff --git a/docs/ref/databases.txt b/docs/ref/databases.txt index e933ee350d..34f60e99ac 100644 --- a/docs/ref/databases.txt +++ b/docs/ref/databases.txt @@ -11,6 +11,68 @@ This file describes some of the features that might be relevant to Django usage. Of course, it is not intended as a replacement for server-specific documentation or reference manuals. +General notes +============= + +.. _persistent-database-connections: + +Persistent connections +---------------------- + +.. versionadded:: 1.6 + +Persistent connections avoid the overhead of re-establishing a connection to +the database in each request. By default, connections are kept open for up 10 +minutes — if not specified, :setting:`CONN_MAX_AGE` defaults to 600 seconds. + +Django 1.5 and earlier didn't have persistent connections. To restore the +legacy behavior of closing the connection at the end of every request, set +:setting:`CONN_MAX_AGE` to ``0``. + +For unlimited persistent connections, set :setting:`CONN_MAX_AGE` to ``None``. + +Connection management +~~~~~~~~~~~~~~~~~~~~~ + +Django opens a connection to the database when it first makes a database +query. It keeps this connection open and reuses it in subsequent requests. +Django closes the connection once it exceeds the maximum age defined by +:setting:`CONN_MAX_AGE` or when it isn't usable any longer. + +In detail, Django automatically opens a connection to the database whenever it +needs one and doesn't have one already — either because this is the first +connection, or because the previous connection was closed. + +At the beginning of each request, Django closes the connection if it has +reached its maximum age. If your database terminates idle connections after +some time, you should set :setting:`CONN_MAX_AGE` to a lower value, so that +Django doesn't attempt to use a connection that has been terminated by the +database server. (This problem may only affect very low traffic sites.) + +At the end of each request, Django closes the connection if it has reached its +maximum age or if it is in an unrecoverable error state. If any database +errors have occurred while processing the requests, Django checks whether the +connection still works, and closes it if it doesn't. Thus, database errors +affect at most one request; if the connection becomes unusable, the next +request gets a fresh connection. + +Caveats +~~~~~~~ + +Since each thread maintains its own connection, your database must support at +least as many simultaneous connections as you have worker threads. + +Sometimes a database won't be accessed by the majority of your views, for +example because it's the database of an external system, or thanks to caching. +In such cases, you should set :setting:`CONN_MAX_AGE` to a lower value, or +even ``0``, because it doesn't make sense to maintain a connection that's +unlikely to be reused. This will help keep the number of simultaneous +connections to this database small. + + +The development server creates a new thread for each request it handles, +negating the effect of persistent connections. + .. _postgresql-notes: PostgreSQL notes diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt index bba936d837..baeb02c32d 100644 --- a/docs/ref/settings.txt +++ b/docs/ref/settings.txt @@ -464,6 +464,19 @@ The name of the database to use. For SQLite, it's the full path to the database file. When specifying the path, always use forward slashes, even on Windows (e.g. ``C:/homes/user/mysite/sqlite3.db``). +.. setting:: CONN_MAX_AGE + +CONN_MAX_AGE +~~~~~~~~~~~~ + +.. versionadded:: 1.6 + +Default: ``600`` + +The lifetime of a database connection, in seconds. Use ``0`` to close database +connections at the end of each request — Django's historical behavior — and +``None`` for unlimited persistent connections. + .. setting:: OPTIONS OPTIONS diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index c6a4fb2d5d..34fa687290 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -30,6 +30,19 @@ prevention ` are turned on. If the default templates don't suit your tastes, you can use :ref:`custom project and app templates `. +Persistent database connections +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Django now supports reusing the same database connection for several requests. +This avoids the overhead of re-establishing a connection at the beginning of +each request. + +By default, database connections will kept open for 10 minutes. This behavior +is controlled by the :setting:`CONN_MAX_AGE` setting. To restore the previous +behavior of closing the connection at the end of each request, set +:setting:`CONN_MAX_AGE` to ``0``. See :ref:`persistent-database-connections` +for details. + Time zone aware aggregation ~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -136,6 +149,14 @@ Backwards incompatible changes in 1.6 * Model fields named ``hour``, ``minute`` or ``second`` may clash with the new lookups. Append an explicit :lookup:`exact` lookup if this is an issue. +* When Django establishes a connection to the database, it sets up appropriate + parameters, depending on the backend being used. Since `persistent database + connections `_ are enabled by default in + Django 1.6, this setup isn't repeated at every request any more. If you + modifiy parameters such as the connection's isolation level or time zone, + you should either restore Django's defaults at the end of each request, or + force an appropriate value at the beginning of each request. + * If your CSS/Javascript code used to access HTML input widgets by type, you should review it as ``type='text'`` widgets might be now output as ``type='email'``, ``type='url'`` or ``type='number'`` depending on their diff --git a/tests/handlers/tests.py b/tests/handlers/tests.py index f647bf199b..6eb9bd23fe 100644 --- a/tests/handlers/tests.py +++ b/tests/handlers/tests.py @@ -1,5 +1,6 @@ from django.core.handlers.wsgi import WSGIHandler -from django.core import signals +from django.core.signals import request_started, request_finished +from django.db import close_old_connections from django.test import RequestFactory, TestCase from django.test.utils import override_settings from django.utils import six @@ -7,6 +8,12 @@ from django.utils import six class HandlerTests(TestCase): + def setUp(self): + request_started.disconnect(close_old_connections) + + def tearDown(self): + request_started.connect(close_old_connections) + # Mangle settings so the handler will fail @override_settings(MIDDLEWARE_CLASSES=42) def test_lock_safety(self): @@ -35,12 +42,12 @@ class SignalsTests(TestCase): def setUp(self): self.signals = [] - signals.request_started.connect(self.register_started) - signals.request_finished.connect(self.register_finished) + request_started.connect(self.register_started) + request_finished.connect(self.register_finished) def tearDown(self): - signals.request_started.disconnect(self.register_started) - signals.request_finished.disconnect(self.register_finished) + request_started.disconnect(self.register_started) + request_finished.disconnect(self.register_finished) def register_started(self, **kwargs): self.signals.append('started') diff --git a/tests/httpwrappers/tests.py b/tests/httpwrappers/tests.py index 2964a86034..194232e92f 100644 --- a/tests/httpwrappers/tests.py +++ b/tests/httpwrappers/tests.py @@ -8,7 +8,7 @@ import warnings from django.core.exceptions import SuspiciousOperation from django.core.signals import request_finished -from django.db import close_connection +from django.db import close_old_connections from django.http import (QueryDict, HttpResponse, HttpResponseRedirect, HttpResponsePermanentRedirect, HttpResponseNotAllowed, HttpResponseNotModified, StreamingHttpResponse, @@ -490,10 +490,10 @@ class FileCloseTests(TestCase): def setUp(self): # Disable the request_finished signal during this test # to avoid interfering with the database connection. - request_finished.disconnect(close_connection) + request_finished.disconnect(close_old_connections) def tearDown(self): - request_finished.connect(close_connection) + request_finished.connect(close_old_connections) def test_response(self): filename = os.path.join(os.path.dirname(upath(__file__)), 'abc.txt') diff --git a/tests/wsgi/tests.py b/tests/wsgi/tests.py index 9b7ee68afd..a66258d4eb 100644 --- a/tests/wsgi/tests.py +++ b/tests/wsgi/tests.py @@ -2,7 +2,9 @@ from __future__ import unicode_literals from django.core.exceptions import ImproperlyConfigured from django.core.servers.basehttp import get_internal_wsgi_application +from django.core.signals import request_started from django.core.wsgi import get_wsgi_application +from django.db import close_old_connections from django.test import TestCase from django.test.client import RequestFactory from django.test.utils import override_settings @@ -12,6 +14,12 @@ from django.utils import six, unittest class WSGITest(TestCase): urls = "wsgi.urls" + def setUp(self): + request_started.disconnect(close_old_connections) + + def tearDown(self): + request_started.connect(close_old_connections) + def test_get_wsgi_application(self): """ Verify that ``get_wsgi_application`` returns a functioning WSGI -- cgit v1.3 From 0c82b1dfc48b4870e8fbcfb782ae02cdca821e1f Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Thu, 28 Feb 2013 17:35:13 +0100 Subject: Fixed #19929 -- Improved error when MySQL doesn't have TZ definitions. Thanks tomas_00 for the report. --- django/db/models/sql/compiler.py | 4 ++++ docs/ref/contrib/admin/index.txt | 7 +++++++ 2 files changed, 11 insertions(+) (limited to 'docs') diff --git a/django/db/models/sql/compiler.py b/django/db/models/sql/compiler.py index b9d25d98a1..7ddee9785c 100644 --- a/django/db/models/sql/compiler.py +++ b/django/db/models/sql/compiler.py @@ -1057,6 +1057,10 @@ class SQLDateTimeCompiler(SQLCompiler): # Datetimes are artifically returned in UTC on databases that # don't support time zone. Restore the zone used in the query. if settings.USE_TZ: + if datetime is None: + raise ValueError("Database returned an invalid value " + "in QuerySet.dates(). Are time zone " + "definitions installed?") datetime = datetime.replace(tzinfo=None) datetime = timezone.make_aware(datetime, self.query.tzinfo) yield datetime diff --git a/docs/ref/contrib/admin/index.txt b/docs/ref/contrib/admin/index.txt index 9ab19846f6..9a0f3ca7f8 100644 --- a/docs/ref/contrib/admin/index.txt +++ b/docs/ref/contrib/admin/index.txt @@ -142,6 +142,13 @@ subclass:: e.g. if all the dates are in one month, it'll show the day-level drill-down only. + .. note:: + + ``date_hierarchy`` uses :meth:`QuerySet.datetimes() + ` internally. Please refer + to its documentation for some caveats when time zone support is + enabled (:setting:`USE_TZ = True `). + .. attribute:: ModelAdmin.exclude This attribute, if given, should be a list of field names to exclude from -- cgit v1.3 From 6d3b0c33dcb38cdb3e72531c447250e76cd3e486 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Fri, 1 Mar 2013 22:15:23 +0100 Subject: Fixed #19960 -- Fixed sentence in contrib.auth signals docs Thanks edd at slipszenko.net for the report. --- docs/ref/contrib/auth.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/ref/contrib/auth.txt b/docs/ref/contrib/auth.txt index 9bd7fe79b7..6ec6af607a 100644 --- a/docs/ref/contrib/auth.txt +++ b/docs/ref/contrib/auth.txt @@ -341,8 +341,8 @@ Login and logout signals .. module:: django.contrib.auth.signals -The auth framework uses two :doc:`signals ` that can be used -for notification when a user logs in or out. +The auth framework uses the following :doc:`signals ` that +can be used for notification when a user logs in or out. .. function:: user_logged_in -- cgit v1.3 From 8ee1eddb7e148de89aebde9e68da495633fc1ec9 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Thu, 13 Dec 2012 22:11:06 +0100 Subject: Add a BinaryField model field Thanks Michael Jung, Charl Botha and Florian Apolloner for review and help on the patch. --- django/db/backends/mysql/creation.py | 1 + django/db/backends/oracle/creation.py | 1 + django/db/backends/postgresql_psycopg2/creation.py | 1 + django/db/backends/sqlite3/creation.py | 1 + django/db/models/fields/__init__.py | 27 ++++++++++++++++++++++ django/utils/six.py | 4 ++++ docs/ref/models/fields.txt | 16 +++++++++++++ docs/releases/1.6.txt | 6 +++++ tests/model_fields/models.py | 4 ++++ tests/model_fields/tests.py | 26 +++++++++++++++++++-- 10 files changed, 85 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/django/db/backends/mysql/creation.py b/django/db/backends/mysql/creation.py index 01efe8d35b..3a57c29479 100644 --- a/django/db/backends/mysql/creation.py +++ b/django/db/backends/mysql/creation.py @@ -7,6 +7,7 @@ class DatabaseCreation(BaseDatabaseCreation): # If a column type is set to None, it won't be included in the output. data_types = { 'AutoField': 'integer AUTO_INCREMENT', + 'BinaryField': 'longblob', 'BooleanField': 'bool', 'CharField': 'varchar(%(max_length)s)', 'CommaSeparatedIntegerField': 'varchar(%(max_length)s)', diff --git a/django/db/backends/oracle/creation.py b/django/db/backends/oracle/creation.py index 1cc3957232..aaca74e8d1 100644 --- a/django/db/backends/oracle/creation.py +++ b/django/db/backends/oracle/creation.py @@ -17,6 +17,7 @@ class DatabaseCreation(BaseDatabaseCreation): data_types = { 'AutoField': 'NUMBER(11)', + 'BinaryField': 'BLOB', 'BooleanField': 'NUMBER(1) CHECK (%(qn_column)s IN (0,1))', 'CharField': 'NVARCHAR2(%(max_length)s)', 'CommaSeparatedIntegerField': 'VARCHAR2(%(max_length)s)', diff --git a/django/db/backends/postgresql_psycopg2/creation.py b/django/db/backends/postgresql_psycopg2/creation.py index d977939f41..b19926b440 100644 --- a/django/db/backends/postgresql_psycopg2/creation.py +++ b/django/db/backends/postgresql_psycopg2/creation.py @@ -11,6 +11,7 @@ class DatabaseCreation(BaseDatabaseCreation): # If a column type is set to None, it won't be included in the output. data_types = { 'AutoField': 'serial', + 'BinaryField': 'bytea', 'BooleanField': 'boolean', 'CharField': 'varchar(%(max_length)s)', 'CommaSeparatedIntegerField': 'varchar(%(max_length)s)', diff --git a/django/db/backends/sqlite3/creation.py b/django/db/backends/sqlite3/creation.py index 9dacac72e1..c90a697e35 100644 --- a/django/db/backends/sqlite3/creation.py +++ b/django/db/backends/sqlite3/creation.py @@ -9,6 +9,7 @@ class DatabaseCreation(BaseDatabaseCreation): # schema inspection is more useful. data_types = { 'AutoField': 'integer', + 'BinaryField': 'BLOB', 'BooleanField': 'bool', 'CharField': 'varchar(%(max_length)s)', 'CommaSeparatedIntegerField': 'varchar(%(max_length)s)', diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py index 2702876397..8302aaceaa 100644 --- a/django/db/models/fields/__init__.py +++ b/django/db/models/fields/__init__.py @@ -1291,3 +1291,30 @@ class URLField(CharField): } defaults.update(kwargs) return super(URLField, self).formfield(**defaults) + +class BinaryField(Field): + description = _("Raw binary data") + + def __init__(self, *args, **kwargs): + kwargs['editable'] = False + super(BinaryField, self).__init__(*args, **kwargs) + if self.max_length is not None: + self.validators.append(validators.MaxLengthValidator(self.max_length)) + + def get_internal_type(self): + return "BinaryField" + + def get_default(self): + if self.has_default() and not callable(self.default): + return self.default + default = super(BinaryField, self).get_default() + if default == '': + return b'' + return default + + def get_db_prep_value(self, value, connection, prepared=False): + value = super(BinaryField, self + ).get_db_prep_value(value, connection, prepared) + if value is not None: + return connection.Database.Binary(value) + return value diff --git a/django/utils/six.py b/django/utils/six.py index b93dc5b164..208c5c1112 100644 --- a/django/utils/six.py +++ b/django/utils/six.py @@ -394,10 +394,14 @@ if PY3: _iterlists = "lists" _assertRaisesRegex = "assertRaisesRegex" _assertRegex = "assertRegex" + memoryview = memoryview else: _iterlists = "iterlists" _assertRaisesRegex = "assertRaisesRegexp" _assertRegex = "assertRegexpMatches" + # memoryview and buffer are not stricly equivalent, but should be fine for + # django core usage (mainly BinaryField) + memoryview = buffer def iterlists(d): diff --git a/docs/ref/models/fields.txt b/docs/ref/models/fields.txt index 1a0f93cf9d..1dbc8c3998 100644 --- a/docs/ref/models/fields.txt +++ b/docs/ref/models/fields.txt @@ -347,6 +347,22 @@ A 64 bit integer, much like an :class:`IntegerField` except that it is guaranteed to fit numbers from -9223372036854775808 to 9223372036854775807. The default form widget for this field is a :class:`~django.forms.TextInput`. +``BinaryField`` +------------------- + +.. class:: BinaryField([**options]) + +.. versionadded:: 1.6 + +A field to store raw binary data. It only supports ``bytes`` assignment. Be +aware that this field has limited functionality. For example, it is not possible +to filter a queryset on a ``BinaryField`` value. + +.. admonition:: Abusing ``BinaryField`` + + Although you might think about storing files in the database, consider that + it is bad design in 99% of the cases. This field is *not* a replacement for + proper :ref.`static files handling. ``BooleanField`` ---------------- diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 34fa687290..89e7ff17ee 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -53,6 +53,12 @@ UTC. This limitation was lifted in Django 1.6. Use :meth:`QuerySet.datetimes() ` to perform time zone aware aggregation on a :class:`~django.db.models.DateTimeField`. +``BinaryField`` model field +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +A new :class:`django.db.models.BinaryField` model field allows to store raw +binary data in the database. + Minor features ~~~~~~~~~~~~~~ diff --git a/tests/model_fields/models.py b/tests/model_fields/models.py index 1d20f44fae..c3b2f7fccb 100644 --- a/tests/model_fields/models.py +++ b/tests/model_fields/models.py @@ -106,6 +106,10 @@ class VerboseNameField(models.Model): class DecimalLessThanOne(models.Model): d = models.DecimalField(max_digits=3, decimal_places=3) +class DataModel(models.Model): + short_data = models.BinaryField(max_length=10, default=b'\x08') + data = models.BinaryField() + ############################################################################### # FileField diff --git a/tests/model_fields/tests.py b/tests/model_fields/tests.py index 8c596ed4f5..eaf84773e3 100644 --- a/tests/model_fields/tests.py +++ b/tests/model_fields/tests.py @@ -12,8 +12,8 @@ from django.utils import six from django.utils import unittest from .models import (Foo, Bar, Whiz, BigD, BigS, Image, BigInt, Post, - NullBooleanModel, BooleanModel, Document, RenamedField, VerboseNameField, - FksToBooleans) + NullBooleanModel, BooleanModel, DataModel, Document, RenamedField, + VerboseNameField, FksToBooleans) from .imagefield import (ImageFieldTests, ImageFieldTwoDimensionsTests, TwoImageFieldTests, ImageFieldNoDimensionsTests, @@ -424,3 +424,25 @@ class FileFieldTests(unittest.TestCase): field = d._meta.get_field('myfile') field.save_form_data(d, 'else.txt') self.assertEqual(d.myfile, 'else.txt') + + +class BinaryFieldTests(test.TestCase): + binary_data = b'\x00\x46\xFE' + + def test_set_and_retrieve(self): + data_set = (self.binary_data, six.memoryview(self.binary_data)) + for bdata in data_set: + dm = DataModel(data=bdata) + dm.save() + dm = DataModel.objects.get(pk=dm.pk) + self.assertEqual(bytes(dm.data), bytes(bdata)) + # Resave (=update) + dm.save() + dm = DataModel.objects.get(pk=dm.pk) + self.assertEqual(bytes(dm.data), bytes(bdata)) + # Test default value + self.assertEqual(bytes(dm.short_data), b'\x08') + + def test_max_length(self): + dm = DataModel(short_data=self.binary_data*4) + self.assertRaises(ValidationError, dm.full_clean) -- cgit v1.3 From e0449316ebacaa550e9c529f8c9cb9a9b44e3765 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sat, 2 Mar 2013 15:00:28 +0100 Subject: Fixed #18130 -- Made the isolation level configurable on PostgreSQL. Thanks limscoder for the report and niwi for the draft patch. --- django/db/backends/postgresql_psycopg2/base.py | 9 +++++-- docs/ref/databases.txt | 35 ++++++++++++++++++++++++-- docs/releases/1.6.txt | 2 ++ tests/transactions_regress/tests.py | 24 ++++++++++-------- 4 files changed, 55 insertions(+), 15 deletions(-) (limited to 'docs') diff --git a/django/db/backends/postgresql_psycopg2/base.py b/django/db/backends/postgresql_psycopg2/base.py index d5b6f13696..f9af507311 100644 --- a/django/db/backends/postgresql_psycopg2/base.py +++ b/django/db/backends/postgresql_psycopg2/base.py @@ -83,7 +83,8 @@ class DatabaseWrapper(BaseDatabaseWrapper): if autocommit: level = psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT else: - level = psycopg2.extensions.ISOLATION_LEVEL_READ_COMMITTED + level = self.settings_dict["OPTIONS"].get('isolation_level', + psycopg2.extensions.ISOLATION_LEVEL_READ_COMMITTED) self._set_isolation_level(level) self.ops = DatabaseOperations(self) self.client = DatabaseClient(self) @@ -104,6 +105,8 @@ class DatabaseWrapper(BaseDatabaseWrapper): conn_params.update(settings_dict['OPTIONS']) if 'autocommit' in conn_params: del conn_params['autocommit'] + if 'isolation_level' in conn_params: + del conn_params['isolation_level'] if settings_dict['USER']: conn_params['user'] = settings_dict['USER'] if settings_dict['PASSWORD']: @@ -170,7 +173,9 @@ class DatabaseWrapper(BaseDatabaseWrapper): the same transaction is visible across all the queries. """ if self.features.uses_autocommit and managed and not self.isolation_level: - self._set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_READ_COMMITTED) + level = self.settings_dict["OPTIONS"].get('isolation_level', + psycopg2.extensions.ISOLATION_LEVEL_READ_COMMITTED) + self._set_isolation_level(level) def _leave_transaction_management(self, managed): """ diff --git a/docs/ref/databases.txt b/docs/ref/databases.txt index 34f60e99ac..4e435949a2 100644 --- a/docs/ref/databases.txt +++ b/docs/ref/databases.txt @@ -143,8 +143,11 @@ autocommit behavior is enabled by setting the ``autocommit`` key in the :setting:`OPTIONS` part of your database configuration in :setting:`DATABASES`:: - 'OPTIONS': { - 'autocommit': True, + DATABASES = { + # ... + 'OPTIONS': { + 'autocommit': True, + }, } In this configuration, Django still ensures that :ref:`delete() @@ -168,6 +171,34 @@ You should also audit your existing code for any instances of this behavior before enabling this feature. It's faster, but it provides less automatic protection for multi-call operations. +Isolation level +~~~~~~~~~~~~~~~ + +.. versionadded:: 1.6 + +Like PostgreSQL itself, Django defaults to the ``READ COMMITTED`` `isolation +level `_. If you need a higher isolation level +such as ``REPEATABLE READ`` or ``SERIALIZABLE``, set it in the +:setting:`OPTIONS` part of your database configuration in +:setting:`DATABASES`:: + + import psycopg2.extensions + + DATABASES = { + # ... + 'OPTIONS': { + 'isolation_level': psycopg2.extensions.ISOLATION_LEVEL_SERIALIZABLE, + }, + } + +.. note:: + + Under higher isolation levels, your application should be prepared to + handle exceptions raised on serialization failures. This option is + designed for advanced uses. + +.. _postgresql-isolation-levels: http://www.postgresql.org/docs/devel/static/transaction-iso.html + Indexes for ``varchar`` and ``text`` columns ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 89e7ff17ee..74941a4fb3 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -125,6 +125,8 @@ Minor features * The admin list columns have a ``column-`` class in the HTML so the columns header can be styled with CSS, e.g. to set a column width. +* The isolation level can be customized under PostgreSQL. + Backwards incompatible changes in 1.6 ===================================== diff --git a/tests/transactions_regress/tests.py b/tests/transactions_regress/tests.py index 8cc68b7e0d..6ba04892cd 100644 --- a/tests/transactions_regress/tests.py +++ b/tests/transactions_regress/tests.py @@ -242,17 +242,18 @@ class TestNewConnection(TransactionTestCase): @skipUnless(connection.vendor == 'postgresql', "This test only valid for PostgreSQL") -class TestPostgresAutocommit(TransactionTestCase): +class TestPostgresAutocommitAndIsolation(TransactionTestCase): """ - Tests to make sure psycopg2's autocommit mode is restored after entering - and leaving transaction management. Refs #16047. + Tests to make sure psycopg2's autocommit mode and isolation level + is restored after entering and leaving transaction management. + Refs #16047, #18130. """ def setUp(self): from psycopg2.extensions import (ISOLATION_LEVEL_AUTOCOMMIT, - ISOLATION_LEVEL_READ_COMMITTED, + ISOLATION_LEVEL_SERIALIZABLE, TRANSACTION_STATUS_IDLE) self._autocommit = ISOLATION_LEVEL_AUTOCOMMIT - self._read_committed = ISOLATION_LEVEL_READ_COMMITTED + self._serializable = ISOLATION_LEVEL_SERIALIZABLE self._idle = TRANSACTION_STATUS_IDLE # We want a clean backend with autocommit = True, so @@ -261,6 +262,7 @@ class TestPostgresAutocommit(TransactionTestCase): settings = self._old_backend.settings_dict.copy() opts = settings['OPTIONS'].copy() opts['autocommit'] = True + opts['isolation_level'] = ISOLATION_LEVEL_SERIALIZABLE settings['OPTIONS'] = opts new_backend = self._old_backend.__class__(settings, DEFAULT_DB_ALIAS) connections[DEFAULT_DB_ALIAS] = new_backend @@ -279,7 +281,7 @@ class TestPostgresAutocommit(TransactionTestCase): def test_transaction_management(self): transaction.enter_transaction_management() transaction.managed(True) - self.assertEqual(connection.isolation_level, self._read_committed) + self.assertEqual(connection.isolation_level, self._serializable) transaction.leave_transaction_management() self.assertEqual(connection.isolation_level, self._autocommit) @@ -287,13 +289,13 @@ class TestPostgresAutocommit(TransactionTestCase): def test_transaction_stacking(self): transaction.enter_transaction_management() transaction.managed(True) - self.assertEqual(connection.isolation_level, self._read_committed) + self.assertEqual(connection.isolation_level, self._serializable) transaction.enter_transaction_management() - self.assertEqual(connection.isolation_level, self._read_committed) + self.assertEqual(connection.isolation_level, self._serializable) transaction.leave_transaction_management() - self.assertEqual(connection.isolation_level, self._read_committed) + self.assertEqual(connection.isolation_level, self._serializable) transaction.leave_transaction_management() self.assertEqual(connection.isolation_level, self._autocommit) @@ -301,7 +303,7 @@ class TestPostgresAutocommit(TransactionTestCase): def test_enter_autocommit(self): transaction.enter_transaction_management() transaction.managed(True) - self.assertEqual(connection.isolation_level, self._read_committed) + self.assertEqual(connection.isolation_level, self._serializable) list(Mod.objects.all()) self.assertTrue(transaction.is_dirty()) # Enter autocommit mode again. @@ -314,7 +316,7 @@ class TestPostgresAutocommit(TransactionTestCase): list(Mod.objects.all()) self.assertFalse(transaction.is_dirty()) transaction.leave_transaction_management() - self.assertEqual(connection.isolation_level, self._read_committed) + self.assertEqual(connection.isolation_level, self._serializable) transaction.leave_transaction_management() self.assertEqual(connection.isolation_level, self._autocommit) -- cgit v1.3 From fe5d9fe5fec2617b9eb8564df77ba5324834cadc Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sat, 2 Mar 2013 10:11:23 -0500 Subject: Fixed #19962 - Added a note about SESSION_EXPIRE_AT_BROWSER_CLOSE and browsers that persist sessions. Thanks David Sanders. --- docs/topics/http/sessions.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'docs') diff --git a/docs/topics/http/sessions.txt b/docs/topics/http/sessions.txt index 41ae0cafa9..f21c3a497e 100644 --- a/docs/topics/http/sessions.txt +++ b/docs/topics/http/sessions.txt @@ -474,6 +474,16 @@ This setting is a global default and can be overwritten at a per-session level by explicitly calling the :meth:`~backends.base.SessionBase.set_expiry` method of ``request.session`` as described above in `using sessions in views`_. +.. note:: + + Some browsers (Chrome, for example) provide settings that allow users to + continue browsing sessions after closing and re-opening the browser. In + some cases, this can interfere with the + :setting:`SESSION_EXPIRE_AT_BROWSER_CLOSE` setting and prevent sessions + from expiring on browser close. Please be aware of this while testing + Django applications which have the + :setting:`SESSION_EXPIRE_AT_BROWSER_CLOSE` setting enabled. + Clearing the session store ========================== -- cgit v1.3 From 384c180e414a982a6cc5ccabc675bcfb4fd80988 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Sat, 2 Mar 2013 18:01:24 +0100 Subject: Fixed #19917 -- Added microseconds in default TIME_INPUT_FORMATS Thanks minddust for the report. --- django/conf/global_settings.py | 1 + django/utils/formats.py | 2 +- docs/ref/settings.txt | 5 +++++ tests/forms_tests/tests/input_formats.py | 7 ++++++- 4 files changed, 13 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/django/conf/global_settings.py b/django/conf/global_settings.py index 13213d0cbb..42df4b601a 100644 --- a/django/conf/global_settings.py +++ b/django/conf/global_settings.py @@ -365,6 +365,7 @@ DATE_INPUT_FORMATS = ( # * Note that these format strings are different from the ones to display dates TIME_INPUT_FORMATS = ( '%H:%M:%S', # '14:30:59' + '%H:%M:%S.%f', # '14:30:59.000200' '%H:%M', # '14:30' ) diff --git a/django/utils/formats.py b/django/utils/formats.py index f0abdc2f7b..cc66149026 100644 --- a/django/utils/formats.py +++ b/django/utils/formats.py @@ -19,7 +19,7 @@ _format_modules_cache = {} ISO_INPUT_FORMATS = { 'DATE_INPUT_FORMATS': ('%Y-%m-%d',), - 'TIME_INPUT_FORMATS': ('%H:%M:%S', '%H:%M'), + 'TIME_INPUT_FORMATS': ('%H:%M:%S', '%H:%M:%S.%f', '%H:%M'), 'DATETIME_INPUT_FORMATS': ( '%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt index baeb02c32d..0cd141bcef 100644 --- a/docs/ref/settings.txt +++ b/docs/ref/settings.txt @@ -1731,6 +1731,7 @@ Default:: ( '%H:%M:%S', # '14:30:59' + '%H:%M:%S.%f', # '14:30:59.000200' '%H:%M', # '14:30' ) @@ -1744,6 +1745,10 @@ precedence and will be applied instead. See also :setting:`DATE_INPUT_FORMATS` and :setting:`DATETIME_INPUT_FORMATS`. +.. versionchanged:: 1.6 + +Input format with microseconds has been added. + .. _datetime: http://docs.python.org/library/datetime.html#strftime-strptime-behavior .. setting:: TIME_ZONE diff --git a/tests/forms_tests/tests/input_formats.py b/tests/forms_tests/tests/input_formats.py index 7a305dbc2b..eb0e8dcad8 100644 --- a/tests/forms_tests/tests/input_formats.py +++ b/tests/forms_tests/tests/input_formats.py @@ -9,7 +9,8 @@ from django.test import SimpleTestCase @override_settings(TIME_INPUT_FORMATS=["%I:%M:%S %p", "%I:%M %p"], USE_L10N=True) class LocalizedTimeTests(SimpleTestCase): def setUp(self): - # nl/formats.py has customized TIME_INPUT_FORMATS + # nl/formats.py has customized TIME_INPUT_FORMATS: + # ('%H:%M:%S', '%H.%M:%S', '%H.%M', '%H:%M') activate('nl') def tearDown(self): @@ -37,6 +38,10 @@ class LocalizedTimeTests(SimpleTestCase): text = f.widget._format_value(result) self.assertEqual(text, "13:30:00") + # ISO formats are accepted, even if not specified in formats.py + result = f.clean('13:30:05.000155') + self.assertEqual(result, time(13,30,5,155)) + def test_localized_timeField(self): "Localized TimeFields act as unlocalized widgets" f = forms.TimeField(localize=True) -- cgit v1.3 From 97afc49bb0cca34cb83b371c5f83d74cb3974b91 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sun, 3 Mar 2013 16:07:38 +0100 Subject: Removed unnecessary imports. --- docs/topics/db/examples/one_to_one.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/topics/db/examples/one_to_one.txt b/docs/topics/db/examples/one_to_one.txt index 4c8e0ecfcc..09634c84c7 100644 --- a/docs/topics/db/examples/one_to_one.txt +++ b/docs/topics/db/examples/one_to_one.txt @@ -10,7 +10,7 @@ In this example, a ``Place`` optionally can be a ``Restaurant``: .. code-block:: python - from django.db import models, transaction, IntegrityError + from django.db import models class Place(models.Model): name = models.CharField(max_length=50) -- cgit v1.3 From df7668a9e47100bc2ac58a3b0fec4665d4aadb48 Mon Sep 17 00:00:00 2001 From: Tobias Carlander Date: Sun, 3 Mar 2013 22:34:10 +0400 Subject: Fix Typo explicitly. Fixes #19971 --- docs/topics/class-based-views/generic-display.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/topics/class-based-views/generic-display.txt b/docs/topics/class-based-views/generic-display.txt index 8695af7fe6..64b998770f 100644 --- a/docs/topics/class-based-views/generic-display.txt +++ b/docs/topics/class-based-views/generic-display.txt @@ -230,7 +230,7 @@ more:: get_context_data on the super class. When no two classes try to define the same key, this will give the expected results. However if any class attempts to override a key after parent classes have set it (after the call - to super), any children of that class will also need to explictly set it + to super), any children of that class will also need to explicitly set it after super if they want to be sure to override all parents. If you're having trouble, review the method resolution order of your view. -- cgit v1.3 From b01381072a3eaa7e7ace5cf3efa3c825854c452f Mon Sep 17 00:00:00 2001 From: Ramiro Morales Date: Sun, 3 Mar 2013 16:44:44 -0300 Subject: Release notes blurb for 804366327d728d23a9f7a25ff77a6eed3c9f9323. --- docs/releases/1.6.txt | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'docs') diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 74941a4fb3..609557073e 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -127,6 +127,10 @@ Minor features * The isolation level can be customized under PostgreSQL. +* The :ttag:`blocktrans` template tag now respects + :setting:`TEMPLATE_STRING_IF_INVALID` for variables not present in the + context, just like other template constructs. + Backwards incompatible changes in 1.6 ===================================== -- cgit v1.3 From 3bbcec0aba81b626a26c19736dbac49999007d6c Mon Sep 17 00:00:00 2001 From: Ramiro Morales Date: Sun, 3 Mar 2013 17:03:11 -0300 Subject: Removed mentions of regressiontests. --- django/contrib/gis/tests/geoapp/test_feeds.py | 2 +- django/contrib/gis/tests/geoapp/test_sitemaps.py | 2 +- docs/intro/contributing.txt | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) (limited to 'docs') diff --git a/django/contrib/gis/tests/geoapp/test_feeds.py b/django/contrib/gis/tests/geoapp/test_feeds.py index 85e777ae78..c9cf6362c1 100644 --- a/django/contrib/gis/tests/geoapp/test_feeds.py +++ b/django/contrib/gis/tests/geoapp/test_feeds.py @@ -22,7 +22,7 @@ class GeoFeedTest(TestCase): Site._meta.installed = self.old_Site_meta_installed def assertChildNodes(self, elem, expected): - "Taken from regressiontests/syndication/tests.py." + "Taken from syndication/tests.py." actual = set([n.nodeName for n in elem.childNodes]) expected = set(expected) self.assertEqual(actual, expected) diff --git a/django/contrib/gis/tests/geoapp/test_sitemaps.py b/django/contrib/gis/tests/geoapp/test_sitemaps.py index 5f063dfba3..aa2d97032c 100644 --- a/django/contrib/gis/tests/geoapp/test_sitemaps.py +++ b/django/contrib/gis/tests/geoapp/test_sitemaps.py @@ -24,7 +24,7 @@ class GeoSitemapTest(TestCase): Site._meta.installed = self.old_Site_meta_installed def assertChildNodes(self, elem, expected): - "Taken from regressiontests/syndication/tests.py." + "Taken from syndication/tests.py." actual = set([n.nodeName for n in elem.childNodes]) expected = set(expected) self.assertEqual(actual, expected) diff --git a/docs/intro/contributing.txt b/docs/intro/contributing.txt index f9fb451b39..0078435601 100644 --- a/docs/intro/contributing.txt +++ b/docs/intro/contributing.txt @@ -238,7 +238,7 @@ widget. Before we make those changes though, we're going to write a couple tests to verify that our modification functions correctly and continues to function correctly in the future. -Navigate to Django's ``tests/regressiontests/admin_widgets/`` folder and +Navigate to Django's ``tests/admin_widgets/`` folder and open the ``tests.py`` file. Add the following code on line 269 right before the ``AdminFileWidgetTest`` class:: @@ -468,10 +468,10 @@ This patch file contains all your changes and should look this: Relationship fields =================== - diff --git a/tests/regressiontests/admin_widgets/tests.py b/tests/regressiontests/admin_widgets/tests.py + diff --git a/tests/admin_widgets/tests.py b/tests/admin_widgets/tests.py index 4b11543..94acc6d 100644 - --- a/tests/regressiontests/admin_widgets/tests.py - +++ b/tests/regressiontests/admin_widgets/tests.py + --- a/tests/admin_widgets/tests.py + +++ b/tests/admin_widgets/tests.py @@ -265,6 +265,35 @@ class AdminSplitDateTimeWidgetTest(DjangoTestCase): '

    Datum:
    Zeit:

    ', ) -- cgit v1.3 From d1a5fe07ed96794864d9aa69502ed056bb7a561b Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Wed, 6 Mar 2013 11:40:33 +0100 Subject: Fixed #19994 -- Typo. Thanks akshar for the report. --- docs/howto/deployment/wsgi/index.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/howto/deployment/wsgi/index.txt b/docs/howto/deployment/wsgi/index.txt index 738774462b..b062036652 100644 --- a/docs/howto/deployment/wsgi/index.txt +++ b/docs/howto/deployment/wsgi/index.txt @@ -62,7 +62,7 @@ If this variable isn't set, the default :file:`wsgi.py` sets it to run multiple Django sites in the same process. This happens with mod_wsgi. To avoid this problem, use mod_wsgi's daemon mode with each site in its - own daemon process, or override the value from the environnemnt by + own daemon process, or override the value from the environment by enforcing ``os.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings"`` in your :file:`wsgi.py`. -- cgit v1.3 From bb998c9fecb31db875418efb0b46a20bfa2ddea7 Mon Sep 17 00:00:00 2001 From: Michael Manfre Date: Wed, 6 Mar 2013 12:12:42 -0500 Subject: Update link to django-mssql project --- docs/topics/install.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/topics/install.txt b/docs/topics/install.txt index 0c3767d3e1..1c99dc5d5a 100644 --- a/docs/topics/install.txt +++ b/docs/topics/install.txt @@ -148,7 +148,7 @@ database queries, Django will need permission to create a test database. .. _Oracle: http://www.oracle.com/ .. _Sybase SQL Anywhere: http://code.google.com/p/sqlany-django/ .. _IBM DB2: http://code.google.com/p/ibm-db/ -.. _Microsoft SQL Server 2005: http://code.google.com/p/django-mssql/ +.. _Microsoft SQL Server 2005: https://bitbucket.org/Manfre/django-mssql/ .. _Firebird: http://code.google.com/p/django-firebird/ .. _ODBC: http://code.google.com/p/django-pyodbc/ .. _removing-old-versions-of-django: -- cgit v1.3 From 0ea5bf88dddd7fbdef7fe8d00162c9753565f5c0 Mon Sep 17 00:00:00 2001 From: Preston Holmes Date: Wed, 6 Mar 2013 16:00:05 -0800 Subject: Fixed #19543 -- implemented SimpleLazyObject.__repr__ Thanks to Florian Hahn for the patch --- django/utils/functional.py | 9 +++++++++ docs/releases/1.6.txt | 3 +++ tests/utils_tests/simplelazyobject.py | 16 ++++++++++++---- 3 files changed, 24 insertions(+), 4 deletions(-) (limited to 'docs') diff --git a/django/utils/functional.py b/django/utils/functional.py index 69a32b101a..3e58674501 100644 --- a/django/utils/functional.py +++ b/django/utils/functional.py @@ -305,6 +305,15 @@ class SimpleLazyObject(LazyObject): def __reduce__(self): return (self.__newobj__, (self.__class__,), self.__getstate__()) + # Return a meaningful representation of the lazy object for debugging + # without evaluating the wrapped object. + def __repr__(self): + if self._wrapped is empty: + repr_attr = self._setupfunc + else: + repr_attr = self._wrapped + return '' % repr_attr + # Need to pretend to be the wrapped class, for the sake of objects that care # about this (especially in equality tests) __class__ = property(new_method_proxy(operator.attrgetter("__class__"))) diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 609557073e..599da6847c 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -131,6 +131,9 @@ Minor features :setting:`TEMPLATE_STRING_IF_INVALID` for variables not present in the context, just like other template constructs. +* SimpleLazyObjects will now present more helpful representations in shell + debugging situations. + Backwards incompatible changes in 1.6 ===================================== diff --git a/tests/utils_tests/simplelazyobject.py b/tests/utils_tests/simplelazyobject.py index 3f81e8f608..dd52857c03 100644 --- a/tests/utils_tests/simplelazyobject.py +++ b/tests/utils_tests/simplelazyobject.py @@ -59,10 +59,18 @@ class TestUtilsSimpleLazyObject(TestCase): hash(SimpleLazyObject(complex_object))) def test_repr(self): - # For debugging, it will really confuse things if there is no clue that - # SimpleLazyObject is actually a proxy object. So we don't - # proxy __repr__ - self.assertTrue("SimpleLazyObject" in repr(SimpleLazyObject(complex_object))) + # First, for an unevaluated SimpleLazyObject + x = SimpleLazyObject(complex_object) + # __repr__ contains __repr__ of setup function and does not evaluate + # the SimpleLazyObject + self.assertEqual("" % complex_object, repr(x)) + self.assertEqual(empty, x._wrapped) + + # Second, for an evaluated SimpleLazyObject + name = x.name # evaluate + self.assertTrue(isinstance(x._wrapped, _ComplexObject)) + # __repr__ contains __repr__ of wrapped object + self.assertEqual("" % x._wrapped, repr(x)) def test_bytes(self): self.assertEqual(b"I am _ComplexObject('joe')", -- cgit v1.3 From 4cccb85e292fea01b3459cd97d751ed35179a7b7 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Thu, 7 Mar 2013 09:21:59 +0100 Subject: Fixed #19997 -- Added custom EMPTY_VALUES to form fields Thanks Loic Bistuer for the report and the patch. --- AUTHORS | 1 + django/forms/fields.py | 45 ++++++++++++++++++++-------------------- django/forms/models.py | 7 +++---- django/test/testcases.py | 5 ++--- docs/topics/testing/overview.txt | 2 +- tests/forms_tests/tests/forms.py | 20 ++++++++++++++++++ 6 files changed, 50 insertions(+), 30 deletions(-) (limited to 'docs') diff --git a/AUTHORS b/AUTHORS index a7adc5a9ed..c6d7bf0414 100644 --- a/AUTHORS +++ b/AUTHORS @@ -98,6 +98,7 @@ answer newbie questions, and generally made Django that much better: Natalia Bidart Mark Biggers Paul Bissex + Loic Bistuer Simon Blanchard Craig Blaszczyk David Blewett diff --git a/django/forms/fields.py b/django/forms/fields.py index c7ed085b16..bc3770150a 100644 --- a/django/forms/fields.py +++ b/django/forms/fields.py @@ -53,6 +53,7 @@ class Field(object): 'required': _('This field is required.'), 'invalid': _('Enter a valid value.'), } + empty_values = list(validators.EMPTY_VALUES) # Tracks each time a Field instance is created. Used to retain order. creation_counter = 0 @@ -125,11 +126,11 @@ class Field(object): return value def validate(self, value): - if value in validators.EMPTY_VALUES and self.required: + if value in self.empty_values and self.required: raise ValidationError(self.error_messages['required']) def run_validators(self, value): - if value in validators.EMPTY_VALUES: + if value in self.empty_values: return errors = [] for v in self.validators: @@ -210,7 +211,7 @@ class CharField(Field): def to_python(self, value): "Returns a Unicode object." - if value in validators.EMPTY_VALUES: + if value in self.empty_values: return '' return smart_text(value) @@ -244,7 +245,7 @@ class IntegerField(Field): of int(). Returns None for empty values. """ value = super(IntegerField, self).to_python(value) - if value in validators.EMPTY_VALUES: + if value in self.empty_values: return None if self.localize: value = formats.sanitize_separators(value) @@ -275,7 +276,7 @@ class FloatField(IntegerField): of float(). Returns None for empty values. """ value = super(IntegerField, self).to_python(value) - if value in validators.EMPTY_VALUES: + if value in self.empty_values: return None if self.localize: value = formats.sanitize_separators(value) @@ -311,7 +312,7 @@ class DecimalField(IntegerField): than max_digits in the number, and no more than decimal_places digits after the decimal point. """ - if value in validators.EMPTY_VALUES: + if value in self.empty_values: return None if self.localize: value = formats.sanitize_separators(value) @@ -324,7 +325,7 @@ class DecimalField(IntegerField): def validate(self, value): super(DecimalField, self).validate(value) - if value in validators.EMPTY_VALUES: + if value in self.empty_values: return # Check for NaN, Inf and -Inf values. We can't compare directly for NaN, # since it is never equal to itself. However, NaN is the only value that @@ -401,7 +402,7 @@ class DateField(BaseTemporalField): Validates that the input can be converted to a date. Returns a Python datetime.date object. """ - if value in validators.EMPTY_VALUES: + if value in self.empty_values: return None if isinstance(value, datetime.datetime): return value.date() @@ -425,7 +426,7 @@ class TimeField(BaseTemporalField): Validates that the input can be converted to a time. Returns a Python datetime.time object. """ - if value in validators.EMPTY_VALUES: + if value in self.empty_values: return None if isinstance(value, datetime.time): return value @@ -451,7 +452,7 @@ class DateTimeField(BaseTemporalField): Validates that the input can be converted to a datetime. Returns a Python datetime.datetime object. """ - if value in validators.EMPTY_VALUES: + if value in self.empty_values: return None if isinstance(value, datetime.datetime): return from_current_timezone(value) @@ -463,7 +464,7 @@ class DateTimeField(BaseTemporalField): # components: date and time. if len(value) != 2: raise ValidationError(self.error_messages['invalid']) - if value[0] in validators.EMPTY_VALUES and value[1] in validators.EMPTY_VALUES: + if value[0] in self.empty_values and value[1] in self.empty_values: return None value = '%s %s' % tuple(value) result = super(DateTimeField, self).to_python(value) @@ -531,7 +532,7 @@ class FileField(Field): super(FileField, self).__init__(*args, **kwargs) def to_python(self, data): - if data in validators.EMPTY_VALUES: + if data in self.empty_values: return None # UploadedFile objects should have name and size attributes. @@ -562,7 +563,7 @@ class FileField(Field): return False # If the field is required, clearing is not possible (the widget # shouldn't return False data in that case anyway). False is not - # in validators.EMPTY_VALUES; if a False value makes it this far + # in self.empty_value; if a False value makes it this far # it should be validated from here on out as None (so it will be # caught by the required check). data = None @@ -763,7 +764,7 @@ class ChoiceField(Field): def to_python(self, value): "Returns a Unicode object." - if value in validators.EMPTY_VALUES: + if value in self.empty_values: return '' return smart_text(value) @@ -801,7 +802,7 @@ class TypedChoiceField(ChoiceField): """ value = super(TypedChoiceField, self).to_python(value) super(TypedChoiceField, self).validate(value) - if value == self.empty_value or value in validators.EMPTY_VALUES: + if value == self.empty_value or value in self.empty_values: return self.empty_value try: value = self.coerce(value) @@ -864,7 +865,7 @@ class TypedMultipleChoiceField(MultipleChoiceField): """ value = super(TypedMultipleChoiceField, self).to_python(value) super(TypedMultipleChoiceField, self).validate(value) - if value == self.empty_value or value in validators.EMPTY_VALUES: + if value == self.empty_value or value in self.empty_values: return self.empty_value new_value = [] for choice in value: @@ -945,7 +946,7 @@ class MultiValueField(Field): clean_data = [] errors = ErrorList() if not value or isinstance(value, (list, tuple)): - if not value or not [v for v in value if v not in validators.EMPTY_VALUES]: + if not value or not [v for v in value if v not in self.empty_values]: if self.required: raise ValidationError(self.error_messages['required']) else: @@ -957,7 +958,7 @@ class MultiValueField(Field): field_value = value[i] except IndexError: field_value = None - if self.required and field_value in validators.EMPTY_VALUES: + if self.required and field_value in self.empty_values: raise ValidationError(self.error_messages['required']) try: clean_data.append(field.clean(field_value)) @@ -1071,9 +1072,9 @@ class SplitDateTimeField(MultiValueField): if data_list: # Raise a validation error if time or date is empty # (possible if SplitDateTimeField has required=False). - if data_list[0] in validators.EMPTY_VALUES: + if data_list[0] in self.empty_values: raise ValidationError(self.error_messages['invalid_date']) - if data_list[1] in validators.EMPTY_VALUES: + if data_list[1] in self.empty_values: raise ValidationError(self.error_messages['invalid_time']) result = datetime.datetime.combine(*data_list) return from_current_timezone(result) @@ -1087,7 +1088,7 @@ class IPAddressField(CharField): default_validators = [validators.validate_ipv4_address] def to_python(self, value): - if value in EMPTY_VALUES: + if value in self.empty_values: return '' return value.strip() @@ -1103,7 +1104,7 @@ class GenericIPAddressField(CharField): super(GenericIPAddressField, self).__init__(*args, **kwargs) def to_python(self, value): - if value in validators.EMPTY_VALUES: + if value in self.empty_values: return '' value = value.strip() if value and ':' in value: diff --git a/django/forms/models.py b/django/forms/models.py index 87fd546f2a..7609bb7227 100644 --- a/django/forms/models.py +++ b/django/forms/models.py @@ -6,7 +6,6 @@ and database field objects. from __future__ import absolute_import, unicode_literals from django.core.exceptions import ValidationError, NON_FIELD_ERRORS, FieldError -from django.core.validators import EMPTY_VALUES from django.forms.fields import Field, ChoiceField from django.forms.forms import BaseForm, get_declared_fields from django.forms.formsets import BaseFormSet, formset_factory @@ -301,7 +300,7 @@ class BaseModelForm(BaseForm): else: form_field = self.fields[field] field_value = self.cleaned_data.get(field, None) - if not f.blank and not form_field.required and field_value in EMPTY_VALUES: + if not f.blank and not form_field.required and field_value in form_field.empty_values: exclude.append(f.name) return exclude @@ -880,7 +879,7 @@ class InlineForeignKeyField(Field): super(InlineForeignKeyField, self).__init__(*args, **kwargs) def clean(self, value): - if value in EMPTY_VALUES: + if value in self.empty_values: if self.pk_field: return None # if there is no value act as we did before. @@ -1000,7 +999,7 @@ class ModelChoiceField(ChoiceField): return super(ModelChoiceField, self).prepare_value(value) def to_python(self, value): - if value in EMPTY_VALUES: + if value in self.empty_values: return None try: key = self.to_field_name or 'pk' diff --git a/django/test/testcases.py b/django/test/testcases.py index 345e4b191b..44ddb624d6 100644 --- a/django/test/testcases.py +++ b/django/test/testcases.py @@ -27,7 +27,6 @@ from django.core.management.color import no_style from django.core.servers.basehttp import (WSGIRequestHandler, WSGIServer, WSGIServerException) from django.core.urlresolvers import clear_url_caches -from django.core.validators import EMPTY_VALUES from django.db import connection, connections, DEFAULT_DB_ALIAS, transaction from django.forms.fields import CharField from django.http import QueryDict @@ -322,7 +321,7 @@ class SimpleTestCase(ut2.TestCase): raised error messages. field_args: the args passed to instantiate the field field_kwargs: the kwargs passed to instantiate the field - empty_value: the expected clean output for inputs in EMPTY_VALUES + empty_value: the expected clean output for inputs in empty_values """ if field_args is None: @@ -347,7 +346,7 @@ class SimpleTestCase(ut2.TestCase): self.assertEqual(context_manager.exception.messages, errors) # test required inputs error_required = [force_text(required.error_messages['required'])] - for e in EMPTY_VALUES: + for e in required.empty_values: with self.assertRaises(ValidationError) as context_manager: required.clean(e) self.assertEqual(context_manager.exception.messages, diff --git a/docs/topics/testing/overview.txt b/docs/topics/testing/overview.txt index 3b2babd302..b917086e06 100644 --- a/docs/topics/testing/overview.txt +++ b/docs/topics/testing/overview.txt @@ -1480,7 +1480,7 @@ your test suite. error messages. :param field_args: the args passed to instantiate the field. :param field_kwargs: the kwargs passed to instantiate the field. - :param empty_value: the expected clean output for inputs in ``EMPTY_VALUES``. + :param empty_value: the expected clean output for inputs in ``empty_values``. For example, the following code tests that an ``EmailField`` accepts "a@a.com" as a valid email address, but rejects "aaa" with a reasonable diff --git a/tests/forms_tests/tests/forms.py b/tests/forms_tests/tests/forms.py index f856e30d33..9cf217b86b 100644 --- a/tests/forms_tests/tests/forms.py +++ b/tests/forms_tests/tests/forms.py @@ -1797,3 +1797,23 @@ class FormsTestCase(TestCase): form = NameForm(data={'name' : ['fname', 'lname']}) self.assertTrue(form.is_valid()) self.assertEqual(form.cleaned_data, {'name' : 'fname lname'}) + + def test_custom_empty_values(self): + """ + Test that form fields can customize what is considered as an empty value + for themselves (#19997). + """ + class CustomJSONField(CharField): + empty_values = [None, ''] + def to_python(self, value): + # Fake json.loads + if value == '{}': + return {} + return super(CustomJSONField, self).to_python(value) + + class JSONForm(forms.Form): + json = CustomJSONField() + + form = JSONForm(data={'json': '{}'}); + form.full_clean() + self.assertEqual(form.cleaned_data, {'json' : {}}) -- cgit v1.3 From bbbd698c7a4dd19e6394660bece7e6e907b0a824 Mon Sep 17 00:00:00 2001 From: Alex Gaynor Date: Thu, 7 Mar 2013 11:24:51 -0800 Subject: Added a ManyToManyField(db_constraint=False) option, this allows not creating constraints on the intermediary models. --- django/db/models/fields/related.py | 17 +++++++++----- docs/ref/models/fields.txt | 14 ++++++++++++ docs/releases/1.6.txt | 4 ++-- tests/backends/models.py | 5 +++- tests/backends/tests.py | 47 +++++++++++++++++++++++++++----------- 5 files changed, 65 insertions(+), 22 deletions(-) (limited to 'docs') diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py index 01b8a550d1..399d16600c 100644 --- a/django/db/models/fields/related.py +++ b/django/db/models/fields/related.py @@ -955,7 +955,9 @@ class OneToOneRel(ManyToOneRel): class ManyToManyRel(object): def __init__(self, to, related_name=None, limit_choices_to=None, - symmetrical=True, through=None): + symmetrical=True, through=None, db_constraint=True): + if through and not db_constraint: + raise ValueError("Can't supply a through model and db_constraint=False") self.to = to self.related_name = related_name if limit_choices_to is None: @@ -964,6 +966,7 @@ class ManyToManyRel(object): self.symmetrical = symmetrical self.multiple = True self.through = through + self.db_constraint = db_constraint def is_hidden(self): "Should the related object be hidden?" @@ -1196,15 +1199,15 @@ def create_many_to_many_intermediary_model(field, klass): return type(name, (models.Model,), { 'Meta': meta, '__module__': klass.__module__, - from_: models.ForeignKey(klass, related_name='%s+' % name, db_tablespace=field.db_tablespace), - to: models.ForeignKey(to_model, related_name='%s+' % name, db_tablespace=field.db_tablespace) + from_: models.ForeignKey(klass, related_name='%s+' % name, db_tablespace=field.db_tablespace, db_constraint=field.rel.db_constraint), + to: models.ForeignKey(to_model, related_name='%s+' % name, db_tablespace=field.db_tablespace, db_constraint=field.rel.db_constraint) }) class ManyToManyField(RelatedField, Field): description = _("Many-to-many relationship") - def __init__(self, to, **kwargs): + def __init__(self, to, db_constraint=True, **kwargs): try: assert not to._meta.abstract, "%s cannot define a relation with abstract class %s" % (self.__class__.__name__, to._meta.object_name) except AttributeError: # to._meta doesn't exist, so it must be RECURSIVE_RELATIONSHIP_CONSTANT @@ -1219,13 +1222,15 @@ class ManyToManyField(RelatedField, Field): related_name=kwargs.pop('related_name', None), limit_choices_to=kwargs.pop('limit_choices_to', None), symmetrical=kwargs.pop('symmetrical', to == RECURSIVE_RELATIONSHIP_CONSTANT), - through=kwargs.pop('through', None)) + through=kwargs.pop('through', None), + db_constraint=db_constraint, + ) self.db_table = kwargs.pop('db_table', None) if kwargs['rel'].through is not None: assert self.db_table is None, "Cannot specify a db_table if an intermediary model is used." - Field.__init__(self, **kwargs) + super(ManyToManyField, self).__init__(**kwargs) msg = _('Hold down "Control", or "Command" on a Mac, to select more than one.') self.help_text = string_concat(self.help_text, ' ', msg) diff --git a/docs/ref/models/fields.txt b/docs/ref/models/fields.txt index 1dbc8c3998..1b80196183 100644 --- a/docs/ref/models/fields.txt +++ b/docs/ref/models/fields.txt @@ -1227,6 +1227,20 @@ that control how the relationship functions. the table for the model defining the relationship and the name of the field itself. +.. attribute:: ManyToManyField.db_constraint + + Controls whether or not constraints should be created in the database for + the foreign keys in the intermediary table. The default is ``True``, and + that's almost certainly what you want; setting this to ``False`` can be + very bad for data integrity. That said, here are some scenarios where you + might want to do this: + + * You have legacy data that is not valid. + * You're sharding your database. + + It is an error to pass both ``db_constraint`` and ``through``. + + .. _ref-onetoone: ``OneToOneField`` diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 599da6847c..81b1e48d25 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -113,8 +113,8 @@ Minor features * The ``MemcachedCache`` cache backend now uses the latest :mod:`pickle` protocol available. -* Added the :attr:`django.db.models.ForeignKey.db_constraint` - option. +* Added the :attr:`django.db.models.ForeignKey.db_constraint` and + :attr:`django.db.models.ManyToManyField.db_constraint` options. * The jQuery library embedded in the admin has been upgraded to version 1.9.1. diff --git a/tests/backends/models.py b/tests/backends/models.py index 5876cbe52d..94be36cfaf 100644 --- a/tests/backends/models.py +++ b/tests/backends/models.py @@ -90,7 +90,10 @@ class Item(models.Model): @python_2_unicode_compatible class Object(models.Model): - pass + related_objects = models.ManyToManyField("self", db_constraint=False, symmetrical=False) + + def __str__(self): + return str(self.id) @python_2_unicode_compatible diff --git a/tests/backends/tests.py b/tests/backends/tests.py index 7c68863f0b..103a44684e 100644 --- a/tests/backends/tests.py +++ b/tests/backends/tests.py @@ -12,13 +12,12 @@ from django.db import (backend, connection, connections, DEFAULT_DB_ALIAS, from django.db.backends.signals import connection_created from django.db.backends.postgresql_psycopg2 import version as pg_version from django.db.models import Sum, Avg, Variance, StdDev -from django.db.utils import ConnectionHandler, DatabaseError +from django.db.utils import ConnectionHandler from django.test import (TestCase, skipUnlessDBFeature, skipIfDBFeature, TransactionTestCase) from django.test.utils import override_settings, str_prefix -from django.utils import six +from django.utils import six, unittest from django.utils.six.moves import xrange -from django.utils import unittest from . import models @@ -52,7 +51,7 @@ class OracleChecks(unittest.TestCase): convert_unicode = backend.convert_unicode cursor = connection.cursor() cursor.callproc(convert_unicode('DBMS_SESSION.SET_IDENTIFIER'), - [convert_unicode('_django_testing!'),]) + [convert_unicode('_django_testing!')]) @unittest.skipUnless(connection.vendor == 'oracle', "No need to check Oracle cursor semantics") @@ -72,7 +71,7 @@ class OracleChecks(unittest.TestCase): c = connection.cursor() c.execute('CREATE TABLE ltext ("TEXT" NCLOB)') long_str = ''.join([six.text_type(x) for x in xrange(4000)]) - c.execute('INSERT INTO ltext VALUES (%s)',[long_str]) + c.execute('INSERT INTO ltext VALUES (%s)', [long_str]) c.execute('SELECT text FROM ltext') row = c.fetchone() self.assertEqual(long_str, row[0].read()) @@ -99,6 +98,7 @@ class OracleChecks(unittest.TestCase): c.execute(query) self.assertEqual(c.fetchone()[0], 1) + class MySQLTests(TestCase): @unittest.skipUnless(connection.vendor == 'mysql', "Test valid only for MySQL") @@ -117,7 +117,7 @@ class MySQLTests(TestCase): found_reset = False for sql in statements: found_reset = found_reset or 'ALTER TABLE' in sql - if connection.mysql_version < (5,0,13): + if connection.mysql_version < (5, 0, 13): self.assertTrue(found_reset) else: self.assertFalse(found_reset) @@ -182,6 +182,7 @@ class LastExecutedQueryTest(TestCase): self.assertEqual(connection.queries[-1]['sql'], str_prefix("QUERY = %(_)s\"SELECT strftime('%%Y', 'now');\" - PARAMS = ()")) + class ParameterHandlingTest(TestCase): def test_bad_parameter_count(self): "An executemany call with too many/not enough parameters will raise an exception (Refs #12612)" @@ -191,8 +192,9 @@ class ParameterHandlingTest(TestCase): connection.ops.quote_name('root'), connection.ops.quote_name('square') )) - self.assertRaises(Exception, cursor.executemany, query, [(1,2,3),]) - self.assertRaises(Exception, cursor.executemany, query, [(1,),]) + self.assertRaises(Exception, cursor.executemany, query, [(1, 2, 3)]) + self.assertRaises(Exception, cursor.executemany, query, [(1,)]) + # Unfortunately, the following tests would be a good test to run on all # backends, but it breaks MySQL hard. Until #13711 is fixed, it can't be run @@ -240,6 +242,7 @@ class LongNameTest(TestCase): for statement in connection.ops.sql_flush(no_style(), tables, sequences): cursor.execute(statement) + class SequenceResetTest(TestCase): def test_generic_relation(self): "Sequence names are correct when resetting generic relations (Ref #13941)" @@ -257,6 +260,7 @@ class SequenceResetTest(TestCase): obj = models.Post.objects.create(name='New post', text='goodbye world') self.assertTrue(obj.pk > 10) + class PostgresVersionTest(TestCase): def assert_parses(self, version_string, version): self.assertEqual(pg_version._parse_version(version_string), version) @@ -291,6 +295,7 @@ class PostgresVersionTest(TestCase): conn = OlderConnectionMock() self.assertEqual(pg_version.get_version(conn), 80300) + class PostgresNewConnectionTest(TestCase): """ #17062: PostgreSQL shouldn't roll back SET TIME ZONE, even if the first @@ -338,17 +343,18 @@ class ConnectionCreatedSignalTest(TestCase): @skipUnlessDBFeature('test_db_allows_multiple_connections') def test_signal(self): data = {} + def receiver(sender, connection, **kwargs): data["connection"] = connection connection_created.connect(receiver) connection.close() - cursor = connection.cursor() + connection.cursor() self.assertTrue(data["connection"].connection is connection.connection) connection_created.disconnect(receiver) data.clear() - cursor = connection.cursor() + connection.cursor() self.assertTrue(data == {}) @@ -443,7 +449,7 @@ class BackendTestCase(TestCase): old_password = connection.settings_dict['PASSWORD'] connection.settings_dict['PASSWORD'] = "françois" try: - cursor = connection.cursor() + connection.cursor() except DatabaseError: # As password is probably wrong, a database exception is expected pass @@ -470,6 +476,7 @@ class BackendTestCase(TestCase): with self.assertRaises(DatabaseError): cursor.execute(query) + # We don't make these tests conditional because that means we would need to # check and differentiate between: # * MySQL+InnoDB, MySQL+MYISAM (something we currently can't do). @@ -477,7 +484,6 @@ class BackendTestCase(TestCase): # on or not, something that would be controlled by runtime support and user # preference. # verify if its type is django.database.db.IntegrityError. - class FkConstraintsTests(TransactionTestCase): def setUp(self): @@ -581,6 +587,7 @@ class ThreadTests(TestCase): connections_dict = {} connection.cursor() connections_dict[id(connection)] = connection + def runner(): # Passing django.db.connection between threads doesn't work while # connections[DEFAULT_DB_ALIAS] does. @@ -602,7 +609,7 @@ class ThreadTests(TestCase): # Finish by closing the connections opened by the other threads (the # connection opened in the main thread will automatically be closed on # teardown). - for conn in connections_dict.values() : + for conn in connections_dict.values(): if conn is not connection: conn.close() @@ -616,6 +623,7 @@ class ThreadTests(TestCase): connections_dict = {} for conn in connections.all(): connections_dict[id(conn)] = conn + def runner(): from django.db import connections for conn in connections.all(): @@ -682,6 +690,7 @@ class ThreadTests(TestCase): """ # First, without explicitly enabling the connection for sharing. exceptions = set() + def runner1(): def runner2(other_thread_connection): try: @@ -699,6 +708,7 @@ class ThreadTests(TestCase): # Then, with explicitly enabling the connection for sharing. exceptions = set() + def runner1(): def runner2(other_thread_connection): try: @@ -746,3 +756,14 @@ class DBConstraintTestCase(TransactionTestCase): with self.assertRaises(models.Object.DoesNotExist): ref.obj + + def test_many_to_many(self): + obj = models.Object.objects.create() + obj.related_objects.create() + self.assertEqual(models.Object.objects.count(), 2) + self.assertEqual(obj.related_objects.count(), 1) + + intermediary_model = models.Object._meta.get_field_by_name("related_objects")[0].rel.through + intermediary_model.objects.create(from_object_id=obj.id, to_object_id=12345) + self.assertEqual(obj.related_objects.count(), 1) + self.assertEqual(intermediary_model.objects.count(), 2) -- cgit v1.3 From 1b81f328f4fb74d35a8397385fbc18aef03ac297 Mon Sep 17 00:00:00 2001 From: Alex Gaynor Date: Thu, 7 Mar 2013 12:05:06 -0800 Subject: Adde two "versionadded" markers, thanks to mYk for noticing. --- docs/ref/models/fields.txt | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'docs') diff --git a/docs/ref/models/fields.txt b/docs/ref/models/fields.txt index 1b80196183..f29f41c11e 100644 --- a/docs/ref/models/fields.txt +++ b/docs/ref/models/fields.txt @@ -1069,6 +1069,8 @@ define the details of how the relation works. .. attribute:: ForeignKey.db_constraint + .. versionadded:: 1.6 + Controls whether or not a constraint should be created in the database for this foreign key. The default is ``True``, and that's almost certainly what you want; setting this to ``False`` can be very bad for data integrity. @@ -1229,6 +1231,8 @@ that control how the relationship functions. .. attribute:: ManyToManyField.db_constraint + .. versionadded:: 1.6 + Controls whether or not constraints should be created in the database for the foreign keys in the intermediary table. The default is ``True``, and that's almost certainly what you want; setting this to ``False`` can be -- cgit v1.3 From 6983a1a540a6e6c3bd941fa15ddd8cb49f9ec74e Mon Sep 17 00:00:00 2001 From: Loic Bistuer Date: Fri, 8 Mar 2013 09:15:23 -0500 Subject: Fixed #15363 -- Renamed and normalized to `get_queryset` the methods that return a QuerySet. --- AUTHORS | 2 +- django/contrib/admin/options.py | 31 +++-- django/contrib/admin/templatetags/admin_list.py | 10 +- django/contrib/admin/views/main.py | 39 ++++-- django/contrib/auth/admin.py | 2 +- django/contrib/comments/managers.py | 4 +- django/contrib/comments/templatetags/comments.py | 17 ++- django/contrib/contenttypes/generic.py | 20 ++- django/contrib/gis/db/models/manager.py | 62 ++++----- django/contrib/sites/managers.py | 4 +- django/core/serializers/__init__.py | 2 +- django/db/models/fields/related.py | 46 ++++--- django/db/models/manager.py | 84 ++++++------ django/db/models/query.py | 14 +- django/forms/models.py | 6 +- django/utils/deprecation.py | 62 +++++++++ docs/faq/admin.txt | 2 +- docs/internals/deprecation.txt | 9 ++ docs/ref/contrib/admin/index.txt | 15 ++- docs/ref/models/querysets.txt | 18 +-- docs/releases/1.6.txt | 6 + docs/topics/db/managers.txt | 25 ++-- docs/topics/db/multi-db.txt | 16 +-- tests/admin_changelist/admin.py | 8 +- tests/admin_changelist/models.py | 4 +- tests/admin_changelist/tests.py | 14 +- tests/admin_filters/tests.py | 50 +++---- tests/admin_ordering/tests.py | 20 +-- tests/admin_views/admin.py | 36 +++--- tests/admin_views/customadmin.py | 4 +- tests/admin_views/tests.py | 12 +- tests/admin_widgets/models.py | 4 +- tests/custom_managers/models.py | 10 +- tests/custom_managers_regress/models.py | 4 +- tests/deprecation/__init__.py | 0 tests/deprecation/models.py | 0 tests/deprecation/tests.py | 158 +++++++++++++++++++++++ tests/fixtures/models.py | 4 +- tests/generic_relations/models.py | 4 +- tests/get_object_or_404/models.py | 4 +- tests/managers_regress/models.py | 12 +- tests/modeladmin/tests.py | 4 +- tests/prefetch_related/models.py | 4 +- tests/proxy_models/models.py | 8 +- tests/queries/models.py | 8 +- tests/reverse_single_related/models.py | 4 +- 46 files changed, 588 insertions(+), 284 deletions(-) create mode 100644 django/utils/deprecation.py create mode 100644 tests/deprecation/__init__.py create mode 100644 tests/deprecation/models.py create mode 100644 tests/deprecation/tests.py (limited to 'docs') diff --git a/AUTHORS b/AUTHORS index c6d7bf0414..35a316d4c2 100644 --- a/AUTHORS +++ b/AUTHORS @@ -98,7 +98,7 @@ answer newbie questions, and generally made Django that much better: Natalia Bidart Mark Biggers Paul Bissex - Loic Bistuer + Loïc Bistuer Simon Blanchard Craig Blaszczyk David Blewett diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py index 567f7cf990..de7614ff24 100644 --- a/django/contrib/admin/options.py +++ b/django/contrib/admin/options.py @@ -29,6 +29,7 @@ from django.utils.datastructures import SortedDict from django.utils.html import escape, escapejs from django.utils.safestring import mark_safe from django.utils import six +from django.utils.deprecation import RenameMethodsBase from django.utils.text import capfirst, get_text_list from django.utils.translation import ugettext as _ from django.utils.translation import ungettext @@ -64,7 +65,13 @@ FORMFIELD_FOR_DBFIELD_DEFAULTS = { csrf_protect_m = method_decorator(csrf_protect) -class BaseModelAdmin(six.with_metaclass(forms.MediaDefiningClass)): +class RenameBaseModelAdminMethods(forms.MediaDefiningClass, RenameMethodsBase): + renamed_methods = ( + ('queryset', 'get_queryset', PendingDeprecationWarning), + ) + + +class BaseModelAdmin(six.with_metaclass(RenameBaseModelAdminMethods)): """Functionality common to both ModelAdmin and InlineAdmin.""" raw_id_fields = () @@ -239,12 +246,12 @@ class BaseModelAdmin(six.with_metaclass(forms.MediaDefiningClass)): """ return self.prepopulated_fields - def queryset(self, request): + def get_queryset(self, request): """ Returns a QuerySet of all model instances that can be edited by the admin site. This is used by changelist_view. """ - qs = self.model._default_manager.get_query_set() + qs = self.model._default_manager.get_queryset() # TODO: this should be handled by some parameter to the ChangeList. ordering = self.get_ordering(request) if ordering: @@ -496,7 +503,7 @@ class ModelAdmin(BaseModelAdmin): returned if no match is found (or the object_id failed validation against the primary key field). """ - queryset = self.queryset(request) + queryset = self.get_queryset(request) model = queryset.model try: object_id = model._meta.pk.to_python(object_id) @@ -1008,7 +1015,7 @@ class ModelAdmin(BaseModelAdmin): formset = FormSet(data=request.POST, files=request.FILES, instance=new_object, save_as_new="_saveasnew" in request.POST, - prefix=prefix, queryset=inline.queryset(request)) + prefix=prefix, queryset=inline.get_queryset(request)) formsets.append(formset) if all_valid(formsets) and form_validated: self.save_model(request, new_object, form, False) @@ -1034,7 +1041,7 @@ class ModelAdmin(BaseModelAdmin): if prefixes[prefix] != 1 or not prefix: prefix = "%s-%s" % (prefix, prefixes[prefix]) formset = FormSet(instance=self.model(), prefix=prefix, - queryset=inline.queryset(request)) + queryset=inline.get_queryset(request)) formsets.append(formset) adminForm = helpers.AdminForm(form, list(self.get_fieldsets(request)), @@ -1104,7 +1111,7 @@ class ModelAdmin(BaseModelAdmin): prefix = "%s-%s" % (prefix, prefixes[prefix]) formset = FormSet(request.POST, request.FILES, instance=new_object, prefix=prefix, - queryset=inline.queryset(request)) + queryset=inline.get_queryset(request)) formsets.append(formset) @@ -1124,7 +1131,7 @@ class ModelAdmin(BaseModelAdmin): if prefixes[prefix] != 1 or not prefix: prefix = "%s-%s" % (prefix, prefixes[prefix]) formset = FormSet(instance=obj, prefix=prefix, - queryset=inline.queryset(request)) + queryset=inline.get_queryset(request)) formsets.append(formset) adminForm = helpers.AdminForm(form, self.get_fieldsets(request, obj), @@ -1209,7 +1216,7 @@ class ModelAdmin(BaseModelAdmin): if (actions and request.method == 'POST' and 'index' in request.POST and '_save' not in request.POST): if selected: - response = self.response_action(request, queryset=cl.get_query_set(request)) + response = self.response_action(request, queryset=cl.get_queryset(request)) if response: return response else: @@ -1225,7 +1232,7 @@ class ModelAdmin(BaseModelAdmin): helpers.ACTION_CHECKBOX_NAME in request.POST and 'index' not in request.POST and '_save' not in request.POST): if selected: - response = self.response_action(request, queryset=cl.get_query_set(request)) + response = self.response_action(request, queryset=cl.get_queryset(request)) if response: return response else: @@ -1521,8 +1528,8 @@ class InlineModelAdmin(BaseModelAdmin): fields = list(form.base_fields) + list(self.get_readonly_fields(request, obj)) return [(None, {'fields': fields})] - def queryset(self, request): - queryset = super(InlineModelAdmin, self).queryset(request) + def get_queryset(self, request): + queryset = super(InlineModelAdmin, self).get_queryset(request) if not self.has_change_permission(request): queryset = queryset.none() return queryset diff --git a/django/contrib/admin/templatetags/admin_list.py b/django/contrib/admin/templatetags/admin_list.py index c08193d238..18a45a006f 100644 --- a/django/contrib/admin/templatetags/admin_list.py +++ b/django/contrib/admin/templatetags/admin_list.py @@ -306,8 +306,8 @@ def date_hierarchy(cl): if not (year_lookup or month_lookup or day_lookup): # select appropriate start level - date_range = cl.query_set.aggregate(first=models.Min(field_name), - last=models.Max(field_name)) + date_range = cl.queryset.aggregate(first=models.Min(field_name), + last=models.Max(field_name)) if date_range['first'] and date_range['last']: if date_range['first'].year == date_range['last'].year: year_lookup = date_range['first'].year @@ -325,7 +325,7 @@ def date_hierarchy(cl): 'choices': [{'title': capfirst(formats.date_format(day, 'MONTH_DAY_FORMAT'))}] } elif year_lookup and month_lookup: - days = cl.query_set.filter(**{year_field: year_lookup, month_field: month_lookup}) + days = cl.queryset.filter(**{year_field: year_lookup, month_field: month_lookup}) days = getattr(days, dates_or_datetimes)(field_name, 'day') return { 'show': True, @@ -339,7 +339,7 @@ def date_hierarchy(cl): } for day in days] } elif year_lookup: - months = cl.query_set.filter(**{year_field: year_lookup}) + months = cl.queryset.filter(**{year_field: year_lookup}) months = getattr(months, dates_or_datetimes)(field_name, 'month') return { 'show': True, @@ -353,7 +353,7 @@ def date_hierarchy(cl): } for month in months] } else: - years = getattr(cl.query_set, dates_or_datetimes)(field_name, 'year') + years = getattr(cl.queryset, dates_or_datetimes)(field_name, 'year') return { 'show': True, 'choices': [{ diff --git a/django/contrib/admin/views/main.py b/django/contrib/admin/views/main.py index 8bda323d83..b7bf85ef9d 100644 --- a/django/contrib/admin/views/main.py +++ b/django/contrib/admin/views/main.py @@ -1,4 +1,5 @@ import operator +import warnings from functools import reduce from django.core.exceptions import SuspiciousOperation, ImproperlyConfigured @@ -6,7 +7,9 @@ from django.core.paginator import InvalidPage from django.core.urlresolvers import reverse from django.db import models from django.db.models.fields import FieldDoesNotExist +from django.utils import six from django.utils.datastructures import SortedDict +from django.utils.deprecation import RenameMethodsBase from django.utils.encoding import force_str, force_text from django.utils.translation import ugettext, ugettext_lazy from django.utils.http import urlencode @@ -33,14 +36,20 @@ IGNORED_PARAMS = ( EMPTY_CHANGELIST_VALUE = ugettext_lazy('(None)') -class ChangeList(object): +class RenameChangeListMethods(RenameMethodsBase): + renamed_methods = ( + ('get_query_set', 'get_queryset', PendingDeprecationWarning), + ) + + +class ChangeList(six.with_metaclass(RenameChangeListMethods)): def __init__(self, request, model, list_display, list_display_links, list_filter, date_hierarchy, search_fields, list_select_related, list_per_page, list_max_show_all, list_editable, model_admin): self.model = model self.opts = model._meta self.lookup_opts = self.opts - self.root_query_set = model_admin.queryset(request) + self.root_queryset = model_admin.get_queryset(request) self.list_display = list_display self.list_display_links = list_display_links self.list_filter = list_filter @@ -70,7 +79,7 @@ class ChangeList(object): else: self.list_editable = list_editable self.query = request.GET.get(SEARCH_VAR, '') - self.query_set = self.get_query_set(request) + self.queryset = self.get_queryset(request) self.get_results(request) if self.is_popup: title = ugettext('Select %s') @@ -79,6 +88,20 @@ class ChangeList(object): self.title = title % force_text(self.opts.verbose_name) self.pk_attname = self.lookup_opts.pk.attname + @property + def root_query_set(self): + warnings.warn("`ChangeList.root_query_set` is deprecated, " + "use `root_queryset` instead.", + PendingDeprecationWarning, 2) + return self.root_queryset + + @property + def query_set(self): + warnings.warn("`ChangeList.query_set` is deprecated, " + "use `queryset` instead.", + PendingDeprecationWarning, 2) + return self.queryset + def get_filters_params(self, params=None): """ Returns all params except IGNORED_PARAMS @@ -169,7 +192,7 @@ class ChangeList(object): return '?%s' % urlencode(sorted(p.items())) def get_results(self, request): - paginator = self.model_admin.get_paginator(request, self.query_set, self.list_per_page) + paginator = self.model_admin.get_paginator(request, self.queryset, self.list_per_page) # Get the number of objects, with admin filters applied. result_count = paginator.count @@ -178,7 +201,7 @@ class ChangeList(object): # full_result_count is equal to paginator.count if no filters # were applied if self.get_filters_params(): - full_result_count = self.root_query_set.count() + full_result_count = self.root_queryset.count() else: full_result_count = result_count can_show_all = result_count <= self.list_max_show_all @@ -186,7 +209,7 @@ class ChangeList(object): # Get the list of objects to display on this page. if (self.show_all and can_show_all) or not multi_page: - result_list = self.query_set._clone() + result_list = self.queryset._clone() else: try: result_list = paginator.page(self.page_num+1).object_list @@ -304,13 +327,13 @@ class ChangeList(object): ordering_fields[idx] = 'desc' if pfx == '-' else 'asc' return ordering_fields - def get_query_set(self, request): + def get_queryset(self, request): # First, we collect all the declared list filters. (self.filter_specs, self.has_filters, remaining_lookup_params, use_distinct) = self.get_filters(request) # Then, we let every list filter modify the queryset to its liking. - qs = self.root_query_set + qs = self.root_queryset for filter_spec in self.filter_specs: new_qs = filter_spec.queryset(request, qs) if new_qs is not None: diff --git a/django/contrib/auth/admin.py b/django/contrib/auth/admin.py index 7b816674d3..0abc361a41 100644 --- a/django/contrib/auth/admin.py +++ b/django/contrib/auth/admin.py @@ -118,7 +118,7 @@ class UserAdmin(admin.ModelAdmin): def user_change_password(self, request, id, form_url=''): if not self.has_change_permission(request): raise PermissionDenied - user = get_object_or_404(self.queryset(request), pk=id) + user = get_object_or_404(self.get_queryset(request), pk=id) if request.method == 'POST': form = self.change_password_form(user, request.POST) if form.is_valid(): diff --git a/django/contrib/comments/managers.py b/django/contrib/comments/managers.py index bc0fc5f332..656200437b 100644 --- a/django/contrib/comments/managers.py +++ b/django/contrib/comments/managers.py @@ -8,7 +8,7 @@ class CommentManager(models.Manager): """ QuerySet for all comments currently in the moderation queue. """ - return self.get_query_set().filter(is_public=False, is_removed=False) + return self.get_queryset().filter(is_public=False, is_removed=False) def for_model(self, model): """ @@ -16,7 +16,7 @@ class CommentManager(models.Manager): a class). """ ct = ContentType.objects.get_for_model(model) - qs = self.get_query_set().filter(content_type=ct) + qs = self.get_queryset().filter(content_type=ct) if isinstance(model, models.Model): qs = qs.filter(object_pk=force_text(model._get_pk_val())) return qs diff --git a/django/contrib/comments/templatetags/comments.py b/django/contrib/comments/templatetags/comments.py index b5266d9bb3..d8eed76ad6 100644 --- a/django/contrib/comments/templatetags/comments.py +++ b/django/contrib/comments/templatetags/comments.py @@ -3,11 +3,20 @@ from django.template.loader import render_to_string from django.conf import settings from django.contrib.contenttypes.models import ContentType from django.contrib import comments +from django.utils import six +from django.utils.deprecation import RenameMethodsBase from django.utils.encoding import smart_text register = template.Library() -class BaseCommentNode(template.Node): + +class RenameBaseCommentNodeMethods(RenameMethodsBase): + renamed_methods = ( + ('get_query_set', 'get_queryset', PendingDeprecationWarning), + ) + + +class BaseCommentNode(six.with_metaclass(RenameBaseCommentNodeMethods, template.Node)): """ Base helper class (abstract) for handling the get_comment_* template tags. Looks a bit strange, but the subclasses below should make this a bit more @@ -64,11 +73,11 @@ class BaseCommentNode(template.Node): self.comment = comment def render(self, context): - qs = self.get_query_set(context) + qs = self.get_queryset(context) context[self.as_varname] = self.get_context_value_from_queryset(context, qs) return '' - def get_query_set(self, context): + def get_queryset(self, context): ctype, object_pk = self.get_target_ctype_pk(context) if not object_pk: return self.comment_model.objects.none() @@ -205,7 +214,7 @@ class RenderCommentListNode(CommentListNode): "comments/%s/list.html" % ctype.app_label, "comments/list.html" ] - qs = self.get_query_set(context) + qs = self.get_queryset(context) context.push() liststr = render_to_string(template_search_list, { "comment_list" : self.get_context_value_from_queryset(context, qs) diff --git a/django/contrib/contenttypes/generic.py b/django/contrib/contenttypes/generic.py index 20ff7042bc..fdb05a626a 100644 --- a/django/contrib/contenttypes/generic.py +++ b/django/contrib/contenttypes/generic.py @@ -16,10 +16,18 @@ from django.forms import ModelForm from django.forms.models import BaseModelFormSet, modelformset_factory, save_instance from django.contrib.admin.options import InlineModelAdmin, flatten_fieldsets from django.contrib.contenttypes.models import ContentType +from django.utils import six +from django.utils.deprecation import RenameMethodsBase from django.utils.encoding import smart_text -class GenericForeignKey(object): +class RenameGenericForeignKeyMethods(RenameMethodsBase): + renamed_methods = ( + ('get_prefetch_query_set', 'get_prefetch_queryset', PendingDeprecationWarning), + ) + + +class GenericForeignKey(six.with_metaclass(RenameGenericForeignKeyMethods)): """ Provides a generic relation to any object through content-type/object-id fields. @@ -60,7 +68,7 @@ class GenericForeignKey(object): # This should never happen. I love comments like this, don't you? raise Exception("Impossible arguments to GFK.get_content_type!") - def get_prefetch_query_set(self, instances): + def get_prefetch_queryset(self, instances): # For efficiency, group the instances by content type and then do one # query per model fk_dict = defaultdict(set) @@ -316,21 +324,21 @@ def create_generic_related_manager(superclass): '%s__exact' % object_id_field_name: instance._get_pk_val(), } - def get_query_set(self): + def get_queryset(self): try: return self.instance._prefetched_objects_cache[self.prefetch_cache_name] except (AttributeError, KeyError): db = self._db or router.db_for_read(self.model, instance=self.instance) - return super(GenericRelatedObjectManager, self).get_query_set().using(db).filter(**self.core_filters) + return super(GenericRelatedObjectManager, self).get_queryset().using(db).filter(**self.core_filters) - def get_prefetch_query_set(self, instances): + def get_prefetch_queryset(self, instances): db = self._db or router.db_for_read(self.model, instance=instances[0]) query = { '%s__pk' % self.content_type_field_name: self.content_type.id, '%s__in' % self.object_id_field_name: set(obj._get_pk_val() for obj in instances) } - qs = super(GenericRelatedObjectManager, self).get_query_set().using(db).filter(**query) + qs = super(GenericRelatedObjectManager, self).get_queryset().using(db).filter(**query) # We (possibly) need to convert object IDs to the type of the # instances' PK in order to match up instances: object_id_converter = instances[0]._meta.pk.to_python diff --git a/django/contrib/gis/db/models/manager.py b/django/contrib/gis/db/models/manager.py index 61fb82132b..aa57e3a507 100644 --- a/django/contrib/gis/db/models/manager.py +++ b/django/contrib/gis/db/models/manager.py @@ -9,95 +9,95 @@ class GeoManager(Manager): # properly. use_for_related_fields = True - def get_query_set(self): + def get_queryset(self): return GeoQuerySet(self.model, using=self._db) def area(self, *args, **kwargs): - return self.get_query_set().area(*args, **kwargs) + return self.get_queryset().area(*args, **kwargs) def centroid(self, *args, **kwargs): - return self.get_query_set().centroid(*args, **kwargs) + return self.get_queryset().centroid(*args, **kwargs) def collect(self, *args, **kwargs): - return self.get_query_set().collect(*args, **kwargs) + return self.get_queryset().collect(*args, **kwargs) def difference(self, *args, **kwargs): - return self.get_query_set().difference(*args, **kwargs) + return self.get_queryset().difference(*args, **kwargs) def distance(self, *args, **kwargs): - return self.get_query_set().distance(*args, **kwargs) + return self.get_queryset().distance(*args, **kwargs) def envelope(self, *args, **kwargs): - return self.get_query_set().envelope(*args, **kwargs) + return self.get_queryset().envelope(*args, **kwargs) def extent(self, *args, **kwargs): - return self.get_query_set().extent(*args, **kwargs) + return self.get_queryset().extent(*args, **kwargs) def extent3d(self, *args, **kwargs): - return self.get_query_set().extent3d(*args, **kwargs) + return self.get_queryset().extent3d(*args, **kwargs) def force_rhr(self, *args, **kwargs): - return self.get_query_set().force_rhr(*args, **kwargs) + return self.get_queryset().force_rhr(*args, **kwargs) def geohash(self, *args, **kwargs): - return self.get_query_set().geohash(*args, **kwargs) + return self.get_queryset().geohash(*args, **kwargs) def geojson(self, *args, **kwargs): - return self.get_query_set().geojson(*args, **kwargs) + return self.get_queryset().geojson(*args, **kwargs) def gml(self, *args, **kwargs): - return self.get_query_set().gml(*args, **kwargs) + return self.get_queryset().gml(*args, **kwargs) def intersection(self, *args, **kwargs): - return self.get_query_set().intersection(*args, **kwargs) + return self.get_queryset().intersection(*args, **kwargs) def kml(self, *args, **kwargs): - return self.get_query_set().kml(*args, **kwargs) + return self.get_queryset().kml(*args, **kwargs) def length(self, *args, **kwargs): - return self.get_query_set().length(*args, **kwargs) + return self.get_queryset().length(*args, **kwargs) def make_line(self, *args, **kwargs): - return self.get_query_set().make_line(*args, **kwargs) + return self.get_queryset().make_line(*args, **kwargs) def mem_size(self, *args, **kwargs): - return self.get_query_set().mem_size(*args, **kwargs) + return self.get_queryset().mem_size(*args, **kwargs) def num_geom(self, *args, **kwargs): - return self.get_query_set().num_geom(*args, **kwargs) + return self.get_queryset().num_geom(*args, **kwargs) def num_points(self, *args, **kwargs): - return self.get_query_set().num_points(*args, **kwargs) + return self.get_queryset().num_points(*args, **kwargs) def perimeter(self, *args, **kwargs): - return self.get_query_set().perimeter(*args, **kwargs) + return self.get_queryset().perimeter(*args, **kwargs) def point_on_surface(self, *args, **kwargs): - return self.get_query_set().point_on_surface(*args, **kwargs) + return self.get_queryset().point_on_surface(*args, **kwargs) def reverse_geom(self, *args, **kwargs): - return self.get_query_set().reverse_geom(*args, **kwargs) + return self.get_queryset().reverse_geom(*args, **kwargs) def scale(self, *args, **kwargs): - return self.get_query_set().scale(*args, **kwargs) + return self.get_queryset().scale(*args, **kwargs) def snap_to_grid(self, *args, **kwargs): - return self.get_query_set().snap_to_grid(*args, **kwargs) + return self.get_queryset().snap_to_grid(*args, **kwargs) def svg(self, *args, **kwargs): - return self.get_query_set().svg(*args, **kwargs) + return self.get_queryset().svg(*args, **kwargs) def sym_difference(self, *args, **kwargs): - return self.get_query_set().sym_difference(*args, **kwargs) + return self.get_queryset().sym_difference(*args, **kwargs) def transform(self, *args, **kwargs): - return self.get_query_set().transform(*args, **kwargs) + return self.get_queryset().transform(*args, **kwargs) def translate(self, *args, **kwargs): - return self.get_query_set().translate(*args, **kwargs) + return self.get_queryset().translate(*args, **kwargs) def union(self, *args, **kwargs): - return self.get_query_set().union(*args, **kwargs) + return self.get_queryset().union(*args, **kwargs) def unionagg(self, *args, **kwargs): - return self.get_query_set().unionagg(*args, **kwargs) + return self.get_queryset().unionagg(*args, **kwargs) diff --git a/django/contrib/sites/managers.py b/django/contrib/sites/managers.py index 3df485a040..becb35b404 100644 --- a/django/contrib/sites/managers.py +++ b/django/contrib/sites/managers.py @@ -35,7 +35,7 @@ class CurrentSiteManager(models.Manager): (self.__class__.__name__, self.__field_name, self.model._meta.object_name)) self.__is_validated = True - def get_query_set(self): + def get_queryset(self): if not self.__is_validated: self._validate_field_name() - return super(CurrentSiteManager, self).get_query_set().filter(**{self.__field_name + '__id__exact': settings.SITE_ID}) + return super(CurrentSiteManager, self).get_queryset().filter(**{self.__field_name + '__id__exact': settings.SITE_ID}) diff --git a/django/core/serializers/__init__.py b/django/core/serializers/__init__.py index cf7e66190f..c48050415d 100644 --- a/django/core/serializers/__init__.py +++ b/django/core/serializers/__init__.py @@ -4,7 +4,7 @@ Interfaces for serializing Django objects. Usage:: from django.core import serializers - json = serializers.serialize("json", some_query_set) + json = serializers.serialize("json", some_queryset) objects = list(serializers.deserialize("json", json)) To add your own serializers, use the SERIALIZATION_MODULES setting:: diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py index 399d16600c..3b47eb86bb 100644 --- a/django/db/models/fields/related.py +++ b/django/db/models/fields/related.py @@ -11,6 +11,7 @@ from django.db.models.query_utils import QueryWrapper from django.db.models.deletion import CASCADE from django.utils.encoding import smart_text from django.utils import six +from django.utils.deprecation import RenameMethodsBase from django.utils.translation import ugettext_lazy as _, string_concat from django.utils.functional import curry, cached_property from django.core import exceptions @@ -225,7 +226,14 @@ class RelatedField(object): return self.rel.related_name or self.opts.model_name -class SingleRelatedObjectDescriptor(object): +class RenameRelatedObjectDescriptorMethods(RenameMethodsBase): + renamed_methods = ( + ('get_query_set', 'get_queryset', PendingDeprecationWarning), + ('get_prefetch_query_set', 'get_prefetch_queryset', PendingDeprecationWarning), + ) + + +class SingleRelatedObjectDescriptor(six.with_metaclass(RenameRelatedObjectDescriptorMethods)): # This class provides the functionality that makes the related-object # managers available as attributes on a model class, for fields that have # a single "remote" value, on the class pointed to by a related field. @@ -238,16 +246,16 @@ class SingleRelatedObjectDescriptor(object): def is_cached(self, instance): return hasattr(instance, self.cache_name) - def get_query_set(self, **db_hints): + def get_queryset(self, **db_hints): db = router.db_for_read(self.related.model, **db_hints) return self.related.model._base_manager.using(db) - def get_prefetch_query_set(self, instances): + def get_prefetch_queryset(self, instances): rel_obj_attr = attrgetter(self.related.field.attname) instance_attr = lambda obj: obj._get_pk_val() instances_dict = dict((instance_attr(inst), inst) for inst in instances) params = {'%s__pk__in' % self.related.field.name: list(instances_dict)} - qs = self.get_query_set(instance=instances[0]).filter(**params) + qs = self.get_queryset(instance=instances[0]).filter(**params) # Since we're going to assign directly in the cache, # we must manage the reverse relation cache manually. rel_obj_cache_name = self.related.field.get_cache_name() @@ -268,7 +276,7 @@ class SingleRelatedObjectDescriptor(object): else: params = {'%s__pk' % self.related.field.name: related_pk} try: - rel_obj = self.get_query_set(instance=instance).get(**params) + rel_obj = self.get_queryset(instance=instance).get(**params) except self.related.model.DoesNotExist: rel_obj = None else: @@ -321,7 +329,7 @@ class SingleRelatedObjectDescriptor(object): setattr(value, self.related.field.get_cache_name(), instance) -class ReverseSingleRelatedObjectDescriptor(object): +class ReverseSingleRelatedObjectDescriptor(six.with_metaclass(RenameRelatedObjectDescriptorMethods)): # This class provides the functionality that makes the related-object # managers available as attributes on a model class, for fields that have # a single "remote" value, on the class that defines the related field. @@ -334,7 +342,7 @@ class ReverseSingleRelatedObjectDescriptor(object): def is_cached(self, instance): return hasattr(instance, self.cache_name) - def get_query_set(self, **db_hints): + def get_queryset(self, **db_hints): db = router.db_for_read(self.field.rel.to, **db_hints) rel_mgr = self.field.rel.to._default_manager # If the related manager indicates that it should be used for @@ -344,7 +352,7 @@ class ReverseSingleRelatedObjectDescriptor(object): else: return QuerySet(self.field.rel.to).using(db) - def get_prefetch_query_set(self, instances): + def get_prefetch_queryset(self, instances): other_field = self.field.rel.get_related_field() rel_obj_attr = attrgetter(other_field.attname) instance_attr = attrgetter(self.field.attname) @@ -353,7 +361,7 @@ class ReverseSingleRelatedObjectDescriptor(object): params = {'%s__pk__in' % self.field.rel.field_name: list(instances_dict)} else: params = {'%s__in' % self.field.rel.field_name: list(instances_dict)} - qs = self.get_query_set(instance=instances[0]).filter(**params) + qs = self.get_queryset(instance=instances[0]).filter(**params) # Since we're going to assign directly in the cache, # we must manage the reverse relation cache manually. if not self.field.rel.multiple: @@ -378,7 +386,7 @@ class ReverseSingleRelatedObjectDescriptor(object): params = {'%s__%s' % (self.field.rel.field_name, other_field.rel.field_name): val} else: params = {'%s__exact' % self.field.rel.field_name: val} - qs = self.get_query_set(instance=instance) + qs = self.get_queryset(instance=instance) # Assuming the database enforces foreign keys, this won't fail. rel_obj = qs.get(**params) if not self.field.rel.multiple: @@ -490,26 +498,26 @@ class ForeignRelatedObjectsDescriptor(object): } self.model = rel_model - def get_query_set(self): + def get_queryset(self): try: return self.instance._prefetched_objects_cache[rel_field.related_query_name()] except (AttributeError, KeyError): db = self._db or router.db_for_read(self.model, instance=self.instance) - qs = super(RelatedManager, self).get_query_set().using(db).filter(**self.core_filters) + qs = super(RelatedManager, self).get_queryset().using(db).filter(**self.core_filters) val = getattr(self.instance, attname) if val is None or val == '' and connections[db].features.interprets_empty_strings_as_nulls: return qs.none() qs._known_related_objects = {rel_field: {self.instance.pk: self.instance}} return qs - def get_prefetch_query_set(self, instances): + def get_prefetch_queryset(self, instances): rel_obj_attr = attrgetter(rel_field.attname) instance_attr = attrgetter(attname) instances_dict = dict((instance_attr(inst), inst) for inst in instances) db = self._db or router.db_for_read(self.model, instance=instances[0]) query = {'%s__%s__in' % (rel_field.name, attname): list(instances_dict)} - qs = super(RelatedManager, self).get_query_set().using(db).filter(**query) - # Since we just bypassed this class' get_query_set(), we must manage + qs = super(RelatedManager, self).get_queryset().using(db).filter(**query) + # Since we just bypassed this class' get_queryset(), we must manage # the reverse relation manually. for rel_obj in qs: instance = instances_dict[rel_obj_attr(rel_obj)] @@ -603,20 +611,20 @@ def create_many_related_manager(superclass, rel): else: return obj.pk - def get_query_set(self): + def get_queryset(self): try: return self.instance._prefetched_objects_cache[self.prefetch_cache_name] except (AttributeError, KeyError): db = self._db or router.db_for_read(self.instance.__class__, instance=self.instance) - return super(ManyRelatedManager, self).get_query_set().using(db)._next_is_sticky().filter(**self.core_filters) + return super(ManyRelatedManager, self).get_queryset().using(db)._next_is_sticky().filter(**self.core_filters) - def get_prefetch_query_set(self, instances): + def get_prefetch_queryset(self, instances): instance = instances[0] from django.db import connections db = self._db or router.db_for_read(instance.__class__, instance=instance) query = {'%s__pk__in' % self.query_field_name: set(obj._get_pk_val() for obj in instances)} - qs = super(ManyRelatedManager, self).get_query_set().using(db)._next_is_sticky().filter(**query) + qs = super(ManyRelatedManager, self).get_queryset().using(db)._next_is_sticky().filter(**query) # M2M: need to annotate the query in order to get the primary model # that the secondary model was actually related to. We know that diff --git a/django/db/models/manager.py b/django/db/models/manager.py index b1f2e10735..43a8264f11 100644 --- a/django/db/models/manager.py +++ b/django/db/models/manager.py @@ -3,7 +3,8 @@ from django.db import router from django.db.models.query import QuerySet, insert_query, RawQuerySet from django.db.models import signals from django.db.models.fields import FieldDoesNotExist - +from django.utils import six +from django.utils.deprecation import RenameMethodsBase def ensure_default_manager(sender, **kwargs): """ @@ -47,7 +48,14 @@ def ensure_default_manager(sender, **kwargs): signals.class_prepared.connect(ensure_default_manager) -class Manager(object): +class RenameManagerMethods(RenameMethodsBase): + renamed_methods = ( + ('get_query_set', 'get_queryset', PendingDeprecationWarning), + ('get_prefetch_query_set', 'get_prefetch_queryset', PendingDeprecationWarning), + ) + + +class Manager(six.with_metaclass(RenameManagerMethods)): # Tracks each time a Manager instance is created. Used to retain order. creation_counter = 0 @@ -112,113 +120,113 @@ class Manager(object): # PROXIES TO QUERYSET # ####################### - def get_query_set(self): + def get_queryset(self): """Returns a new QuerySet object. Subclasses can override this method to easily customize the behavior of the Manager. """ return QuerySet(self.model, using=self._db) def none(self): - return self.get_query_set().none() + return self.get_queryset().none() def all(self): - return self.get_query_set() + return self.get_queryset() def count(self): - return self.get_query_set().count() + return self.get_queryset().count() def dates(self, *args, **kwargs): - return self.get_query_set().dates(*args, **kwargs) + return self.get_queryset().dates(*args, **kwargs) def datetimes(self, *args, **kwargs): - return self.get_query_set().datetimes(*args, **kwargs) + return self.get_queryset().datetimes(*args, **kwargs) def distinct(self, *args, **kwargs): - return self.get_query_set().distinct(*args, **kwargs) + return self.get_queryset().distinct(*args, **kwargs) def extra(self, *args, **kwargs): - return self.get_query_set().extra(*args, **kwargs) + return self.get_queryset().extra(*args, **kwargs) def get(self, *args, **kwargs): - return self.get_query_set().get(*args, **kwargs) + return self.get_queryset().get(*args, **kwargs) def get_or_create(self, **kwargs): - return self.get_query_set().get_or_create(**kwargs) + return self.get_queryset().get_or_create(**kwargs) def create(self, **kwargs): - return self.get_query_set().create(**kwargs) + return self.get_queryset().create(**kwargs) def bulk_create(self, *args, **kwargs): - return self.get_query_set().bulk_create(*args, **kwargs) + return self.get_queryset().bulk_create(*args, **kwargs) def filter(self, *args, **kwargs): - return self.get_query_set().filter(*args, **kwargs) + return self.get_queryset().filter(*args, **kwargs) def aggregate(self, *args, **kwargs): - return self.get_query_set().aggregate(*args, **kwargs) + return self.get_queryset().aggregate(*args, **kwargs) def annotate(self, *args, **kwargs): - return self.get_query_set().annotate(*args, **kwargs) + return self.get_queryset().annotate(*args, **kwargs) def complex_filter(self, *args, **kwargs): - return self.get_query_set().complex_filter(*args, **kwargs) + return self.get_queryset().complex_filter(*args, **kwargs) def exclude(self, *args, **kwargs): - return self.get_query_set().exclude(*args, **kwargs) + return self.get_queryset().exclude(*args, **kwargs) def in_bulk(self, *args, **kwargs): - return self.get_query_set().in_bulk(*args, **kwargs) + return self.get_queryset().in_bulk(*args, **kwargs) def iterator(self, *args, **kwargs): - return self.get_query_set().iterator(*args, **kwargs) + return self.get_queryset().iterator(*args, **kwargs) def earliest(self, *args, **kwargs): - return self.get_query_set().earliest(*args, **kwargs) + return self.get_queryset().earliest(*args, **kwargs) def latest(self, *args, **kwargs): - return self.get_query_set().latest(*args, **kwargs) + return self.get_queryset().latest(*args, **kwargs) def order_by(self, *args, **kwargs): - return self.get_query_set().order_by(*args, **kwargs) + return self.get_queryset().order_by(*args, **kwargs) def select_for_update(self, *args, **kwargs): - return self.get_query_set().select_for_update(*args, **kwargs) + return self.get_queryset().select_for_update(*args, **kwargs) def select_related(self, *args, **kwargs): - return self.get_query_set().select_related(*args, **kwargs) + return self.get_queryset().select_related(*args, **kwargs) def prefetch_related(self, *args, **kwargs): - return self.get_query_set().prefetch_related(*args, **kwargs) + return self.get_queryset().prefetch_related(*args, **kwargs) def values(self, *args, **kwargs): - return self.get_query_set().values(*args, **kwargs) + return self.get_queryset().values(*args, **kwargs) def values_list(self, *args, **kwargs): - return self.get_query_set().values_list(*args, **kwargs) + return self.get_queryset().values_list(*args, **kwargs) def update(self, *args, **kwargs): - return self.get_query_set().update(*args, **kwargs) + return self.get_queryset().update(*args, **kwargs) def reverse(self, *args, **kwargs): - return self.get_query_set().reverse(*args, **kwargs) + return self.get_queryset().reverse(*args, **kwargs) def defer(self, *args, **kwargs): - return self.get_query_set().defer(*args, **kwargs) + return self.get_queryset().defer(*args, **kwargs) def only(self, *args, **kwargs): - return self.get_query_set().only(*args, **kwargs) + return self.get_queryset().only(*args, **kwargs) def using(self, *args, **kwargs): - return self.get_query_set().using(*args, **kwargs) + return self.get_queryset().using(*args, **kwargs) def exists(self, *args, **kwargs): - return self.get_query_set().exists(*args, **kwargs) + return self.get_queryset().exists(*args, **kwargs) def _insert(self, objs, fields, **kwargs): return insert_query(self.model, objs, fields, **kwargs) def _update(self, values, **kwargs): - return self.get_query_set()._update(values, **kwargs) + return self.get_queryset()._update(values, **kwargs) def raw(self, raw_query, params=None, *args, **kwargs): return RawQuerySet(raw_query=raw_query, model=self.model, params=params, using=self._db, *args, **kwargs) @@ -265,5 +273,5 @@ class EmptyManager(Manager): super(EmptyManager, self).__init__() self.model = model - def get_query_set(self): - return super(EmptyManager, self).get_query_set().none() + def get_queryset(self): + return super(EmptyManager, self).get_queryset().none() diff --git a/django/db/models/query.py b/django/db/models/query.py index ec35f8aba3..30be30ca43 100644 --- a/django/db/models/query.py +++ b/django/db/models/query.py @@ -1733,9 +1733,9 @@ def prefetch_related_objects(result_cache, related_lookups): def get_prefetcher(instance, attr): """ For the attribute 'attr' on the given instance, finds - an object that has a get_prefetch_query_set(). + an object that has a get_prefetch_queryset(). Returns a 4 tuple containing: - (the object with get_prefetch_query_set (or None), + (the object with get_prefetch_queryset (or None), the descriptor object representing this relationship (or None), a boolean that is False if the attribute was not found at all, a boolean that is True if the attribute has already been fetched) @@ -1758,8 +1758,8 @@ def get_prefetcher(instance, attr): attr_found = True if rel_obj_descriptor: # singly related object, descriptor object has the - # get_prefetch_query_set() method. - if hasattr(rel_obj_descriptor, 'get_prefetch_query_set'): + # get_prefetch_queryset() method. + if hasattr(rel_obj_descriptor, 'get_prefetch_queryset'): prefetcher = rel_obj_descriptor if rel_obj_descriptor.is_cached(instance): is_fetched = True @@ -1768,7 +1768,7 @@ def get_prefetcher(instance, attr): # the attribute on the instance rather than the class to # support many related managers rel_obj = getattr(instance, attr) - if hasattr(rel_obj, 'get_prefetch_query_set'): + if hasattr(rel_obj, 'get_prefetch_queryset'): prefetcher = rel_obj return prefetcher, rel_obj_descriptor, attr_found, is_fetched @@ -1784,7 +1784,7 @@ def prefetch_one_level(instances, prefetcher, attname): prefetches that must be done due to prefetch_related lookups found from default managers. """ - # prefetcher must have a method get_prefetch_query_set() which takes a list + # prefetcher must have a method get_prefetch_queryset() which takes a list # of instances, and returns a tuple: # (queryset of instances of self.model that are related to passed in instances, @@ -1797,7 +1797,7 @@ def prefetch_one_level(instances, prefetcher, attname): # in a dictionary. rel_qs, rel_obj_attr, instance_attr, single, cache_name =\ - prefetcher.get_prefetch_query_set(instances) + prefetcher.get_prefetch_queryset(instances) # We have to handle the possibility that the default manager itself added # prefetch_related lookups to the QuerySet we just got back. We don't want to # trigger the prefetch_related functionality by evaluating the query. diff --git a/django/forms/models.py b/django/forms/models.py index 7609bb7227..272f1ddee6 100644 --- a/django/forms/models.py +++ b/django/forms/models.py @@ -478,7 +478,7 @@ class BaseModelFormSet(BaseFormSet): if self.queryset is not None: qs = self.queryset else: - qs = self.model._default_manager.get_query_set() + qs = self.model._default_manager.get_queryset() # If the queryset isn't already ordered we need to add an # artificial ordering here to make sure that all formsets @@ -668,9 +668,9 @@ class BaseModelFormSet(BaseFormSet): except IndexError: pk_value = None if isinstance(pk, OneToOneField) or isinstance(pk, ForeignKey): - qs = pk.rel.to._default_manager.get_query_set() + qs = pk.rel.to._default_manager.get_queryset() else: - qs = self.model._default_manager.get_query_set() + qs = self.model._default_manager.get_queryset() qs = qs.using(form.instance._state.db) if form._meta.widgets: widget = form._meta.widgets.get(self._pk_field.name, HiddenInput) diff --git a/django/utils/deprecation.py b/django/utils/deprecation.py new file mode 100644 index 0000000000..edbb5ca5ea --- /dev/null +++ b/django/utils/deprecation.py @@ -0,0 +1,62 @@ +import inspect +import warnings + + +class warn_about_renamed_method(object): + def __init__(self, class_name, old_method_name, new_method_name, deprecation_warning): + self.class_name = class_name + self.old_method_name = old_method_name + self.new_method_name = new_method_name + self.deprecation_warning = deprecation_warning + + def __call__(self, f): + def wrapped(*args, **kwargs): + warnings.warn( + "`%s.%s` is deprecated, use `%s` instead." % + (self.class_name, self.old_method_name, self.new_method_name), + self.deprecation_warning, 2) + return f(*args, **kwargs) + return wrapped + + +class RenameMethodsBase(type): + """ + Handles the deprecation paths when renaming a method. + + It does the following: + 1) Define the new method if missing and complain about it. + 2) Define the old method if missing. + 3) Complain whenever an old method is called. + + See #15363 for more details. + """ + + renamed_methods = () + + def __new__(cls, name, bases, attrs): + new_class = super(RenameMethodsBase, cls).__new__(cls, name, bases, attrs) + + for base in inspect.getmro(new_class): + class_name = base.__name__ + for renamed_method in cls.renamed_methods: + old_method_name = renamed_method[0] + old_method = base.__dict__.get(old_method_name) + new_method_name = renamed_method[1] + new_method = base.__dict__.get(new_method_name) + deprecation_warning = renamed_method[2] + wrapper = warn_about_renamed_method(class_name, *renamed_method) + + # Define the new method if missing and complain about it + if not new_method and old_method: + warnings.warn( + "`%s.%s` method should be renamed `%s`." % + (class_name, old_method_name, new_method_name), + deprecation_warning, 2) + setattr(base, new_method_name, old_method) + setattr(base, old_method_name, wrapper(old_method)) + + # Define the old method as a wrapped call to the new method. + if not old_method and new_method: + setattr(base, old_method_name, wrapper(new_method)) + + return new_class diff --git a/docs/faq/admin.txt b/docs/faq/admin.txt index 30d452cbe2..1d9a7c7427 100644 --- a/docs/faq/admin.txt +++ b/docs/faq/admin.txt @@ -49,7 +49,7 @@ How do I limit admin access so that objects can only be edited by the users who The :class:`~django.contrib.admin.ModelAdmin` class also provides customization hooks that allow you to control the visibility and editability of objects in the admin. Using the same trick of extracting the user from the request, the -:meth:`~django.contrib.admin.ModelAdmin.queryset` and +:meth:`~django.contrib.admin.ModelAdmin.get_queryset` and :meth:`~django.contrib.admin.ModelAdmin.has_change_permission` can be used to control the visibility and editability of objects in the admin. diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt index 3a9cbd195d..b5173af298 100644 --- a/docs/internals/deprecation.txt +++ b/docs/internals/deprecation.txt @@ -341,6 +341,15 @@ these changes. * The private API ``django.db.close_connection`` will be removed. +* Remove the backward compatible shims introduced to rename ``get_query_set`` + and similar queryset methods. This affects the following classes: + ``BaseModelAdmin``, ``ChangeList``, ``BaseCommentNode``, + ``GenericForeignKey``, ``Manager``, ``SingleRelatedObjectDescriptor`` and + ``ReverseSingleRelatedObjectDescriptor``. + +* Remove the backward compatible shims introduced to rename the attributes + ``ChangeList.root_query_set`` and ``ChangeList.query_set``. + 2.0 --- diff --git a/docs/ref/contrib/admin/index.txt b/docs/ref/contrib/admin/index.txt index 9a0f3ca7f8..ae2ee44601 100644 --- a/docs/ref/contrib/admin/index.txt +++ b/docs/ref/contrib/admin/index.txt @@ -703,7 +703,7 @@ subclass:: Only show the lookups if there actually is anyone born in the corresponding decades. """ - qs = model_admin.queryset(request) + qs = model_admin.get_queryset(request) if qs.filter(birthday__gte=date(1980, 1, 1), birthday__lte=date(1989, 12, 31)).exists(): yield ('80s', _('in the eighties')) @@ -1326,20 +1326,23 @@ templates used by the :class:`ModelAdmin` views: be interpreted as meaning that the current user is not permitted to delete any object of this type). -.. method:: ModelAdmin.queryset(self, request) +.. method:: ModelAdmin.get_queryset(self, request) - The ``queryset`` method on a ``ModelAdmin`` returns a + The ``get_queryset`` method on a ``ModelAdmin`` returns a :class:`~django.db.models.query.QuerySet` of all model instances that can be edited by the admin site. One use case for overriding this method is to show objects owned by the logged-in user:: class MyModelAdmin(admin.ModelAdmin): - def queryset(self, request): - qs = super(MyModelAdmin, self).queryset(request) + def get_queryset(self, request): + qs = super(MyModelAdmin, self).get_queryset(request) if request.user.is_superuser: return qs return qs.filter(author=request.user) + .. versionchanged:: 1.6 + The ``get_queryset`` method was previously named ``queryset``. + .. method:: ModelAdmin.message_user(request, message, level=messages.INFO, extra_tags='', fail_silently=False) Sends a message to the user using the :mod:`django.contrib.messages` @@ -1549,7 +1552,7 @@ adds some of its own (the shared features are actually defined in the - :attr:`~ModelAdmin.filter_vertical` - :attr:`~ModelAdmin.ordering` - :attr:`~ModelAdmin.prepopulated_fields` -- :meth:`~ModelAdmin.queryset` +- :meth:`~ModelAdmin.get_queryset` - :attr:`~ModelAdmin.radio_fields` - :attr:`~ModelAdmin.readonly_fields` - :attr:`~InlineModelAdmin.raw_id_fields` diff --git a/docs/ref/models/querysets.txt b/docs/ref/models/querysets.txt index 0fa8b8e361..224c2427b0 100644 --- a/docs/ref/models/querysets.txt +++ b/docs/ref/models/querysets.txt @@ -1586,32 +1586,32 @@ The most efficient method of finding whether a model with a unique field (e.g. ``primary_key``) is a member of a :class:`.QuerySet` is:: entry = Entry.objects.get(pk=123) - if some_query_set.filter(pk=entry.pk).exists(): + if some_queryset.filter(pk=entry.pk).exists(): print("Entry contained in queryset") Which will be faster than the following which requires evaluating and iterating through the entire queryset:: - if entry in some_query_set: + if entry in some_queryset: print("Entry contained in QuerySet") And to find whether a queryset contains any items:: - if some_query_set.exists(): - print("There is at least one object in some_query_set") + if some_queryset.exists(): + print("There is at least one object in some_queryset") Which will be faster than:: - if some_query_set: - print("There is at least one object in some_query_set") + if some_queryset: + print("There is at least one object in some_queryset") ... but not by a large degree (hence needing a large queryset for efficiency gains). -Additionally, if a ``some_query_set`` has not yet been evaluated, but you know -that it will be at some point, then using ``some_query_set.exists()`` will do +Additionally, if a ``some_queryset`` has not yet been evaluated, but you know +that it will be at some point, then using ``some_queryset.exists()`` will do more overall work (one query for the existence check plus an extra one to later -retrieve the results) than simply using ``bool(some_query_set)``, which +retrieve the results) than simply using ``bool(some_queryset)``, which retrieves the results and then checks if any were returned. update diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 81b1e48d25..c8012ab7c2 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -289,3 +289,9 @@ on a widget, you should now define this method on the form field itself. ``Model._meta.module_name`` was renamed to ``model_name``. Despite being a private API, it will go through a regular deprecation path. + +``get_query_set`` and similar methods renamed to ``get_queryset`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Methods that return a ``QuerySet`` such as ``Manager.get_query_set`` or +``ModelAdmin.queryset`` have been renamed to ``get_queryset``. diff --git a/docs/topics/db/managers.txt b/docs/topics/db/managers.txt index a14616a17c..a8c0d17076 100644 --- a/docs/topics/db/managers.txt +++ b/docs/topics/db/managers.txt @@ -108,7 +108,7 @@ example, using this model:: ...the statement ``Book.objects.all()`` will return all books in the database. You can override a ``Manager``\'s base ``QuerySet`` by overriding the -``Manager.get_query_set()`` method. ``get_query_set()`` should return a +``Manager.get_queryset()`` method. ``get_queryset()`` should return a ``QuerySet`` with the properties you require. For example, the following model has *two* ``Manager``\s -- one that returns @@ -116,8 +116,8 @@ all objects, and one that returns only the books by Roald Dahl:: # First, define the Manager subclass. class DahlBookManager(models.Manager): - def get_query_set(self): - return super(DahlBookManager, self).get_query_set().filter(author='Roald Dahl') + def get_queryset(self): + return super(DahlBookManager, self).get_queryset().filter(author='Roald Dahl') # Then hook it into the Book model explicitly. class Book(models.Model): @@ -131,7 +131,7 @@ With this sample model, ``Book.objects.all()`` will return all books in the database, but ``Book.dahl_objects.all()`` will only return the ones written by Roald Dahl. -Of course, because ``get_query_set()`` returns a ``QuerySet`` object, you can +Of course, because ``get_queryset()`` returns a ``QuerySet`` object, you can use ``filter()``, ``exclude()`` and all the other ``QuerySet`` methods on it. So these statements are all legal:: @@ -147,12 +147,12 @@ models. For example:: class MaleManager(models.Manager): - def get_query_set(self): - return super(MaleManager, self).get_query_set().filter(sex='M') + def get_queryset(self): + return super(MaleManager, self).get_queryset().filter(sex='M') class FemaleManager(models.Manager): - def get_query_set(self): - return super(FemaleManager, self).get_query_set().filter(sex='F') + def get_queryset(self): + return super(FemaleManager, self).get_queryset().filter(sex='F') class Person(models.Model): first_name = models.CharField(max_length=50) @@ -172,9 +172,12 @@ the "default" ``Manager``, and several parts of Django (including :djadmin:`dumpdata`) will use that ``Manager`` exclusively for that model. As a result, it's a good idea to be careful in your choice of default manager in order to avoid a situation where overriding -``get_query_set()`` results in an inability to retrieve objects you'd like to +``get_queryset()`` results in an inability to retrieve objects you'd like to work with. +.. versionchanged:: 1.6 + The ``get_queryset`` method was previously named ``get_query_set``. + .. _managers-for-related-objects: Using managers for related object access @@ -379,9 +382,9 @@ to from some other model. In those situations, Django has to be able to see all the objects for the model it is fetching, so that *anything* which is referred to can be retrieved. -If you override the ``get_query_set()`` method and filter out any rows, Django +If you override the ``get_queryset()`` method and filter out any rows, Django will return incorrect results. Don't do that. A manager that filters results -in ``get_query_set()`` is not appropriate for use as an automatic manager. +in ``get_queryset()`` is not appropriate for use as an automatic manager. Set ``use_for_related_fields`` when you define the class ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/topics/db/multi-db.txt b/docs/topics/db/multi-db.txt index 8150e498de..ae23c3d9f3 100644 --- a/docs/topics/db/multi-db.txt +++ b/docs/topics/db/multi-db.txt @@ -506,19 +506,19 @@ solution is to use ``db_manager()``, like this:: ``db_manager()`` returns a copy of the manager bound to the database you specify. -Using ``get_query_set()`` with multiple databases +Using ``get_queryset()`` with multiple databases ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -If you're overriding ``get_query_set()`` on your manager, be sure to +If you're overriding ``get_queryset()`` on your manager, be sure to either call the method on the parent (using ``super()``) or do the appropriate handling of the ``_db`` attribute on the manager (a string containing the name of the database to use). For example, if you want to return a custom ``QuerySet`` class from -the ``get_query_set`` method, you could do this:: +the ``get_queryset`` method, you could do this:: class MyManager(models.Manager): - def get_query_set(self): + def get_queryset(self): qs = CustomQuerySet(self.model) if self._db is not None: qs = qs.using(self._db) @@ -548,9 +548,9 @@ multiple-database support:: # Tell Django to delete objects from the 'other' database obj.delete(using=self.using) - def queryset(self, request): + def get_queryset(self, request): # Tell Django to look for objects on the 'other' database. - return super(MultiDBModelAdmin, self).queryset(request).using(self.using) + return super(MultiDBModelAdmin, self).get_queryset(request).using(self.using) def formfield_for_foreignkey(self, db_field, request=None, **kwargs): # Tell Django to populate ForeignKey widgets using a query @@ -573,9 +573,9 @@ Inlines can be handled in a similar fashion. They require three customized metho class MultiDBTabularInline(admin.TabularInline): using = 'other' - def queryset(self, request): + def get_queryset(self, request): # Tell Django to look for inline objects on the 'other' database. - return super(MultiDBTabularInline, self).queryset(request).using(self.using) + return super(MultiDBTabularInline, self).get_queryset(request).using(self.using) def formfield_for_foreignkey(self, db_field, request=None, **kwargs): # Tell Django to populate ForeignKey widgets using a query diff --git a/tests/admin_changelist/admin.py b/tests/admin_changelist/admin.py index 5751d04bce..8387ba77a1 100644 --- a/tests/admin_changelist/admin.py +++ b/tests/admin_changelist/admin.py @@ -34,8 +34,8 @@ class ChildAdmin(admin.ModelAdmin): list_per_page = 10 list_filter = ['parent', 'age'] - def queryset(self, request): - return super(ChildAdmin, self).queryset(request).select_related("parent__name") + def get_queryset(self, request): + return super(ChildAdmin, self).get_queryset(request).select_related("parent__name") class CustomPaginationAdmin(ChildAdmin): @@ -46,8 +46,8 @@ class FilteredChildAdmin(admin.ModelAdmin): list_display = ['name', 'parent'] list_per_page = 10 - def queryset(self, request): - return super(FilteredChildAdmin, self).queryset(request).filter( + def get_queryset(self, request): + return super(FilteredChildAdmin, self).get_queryset(request).filter( name__contains='filtered') diff --git a/tests/admin_changelist/models.py b/tests/admin_changelist/models.py index 4ba2f9c503..786b4385aa 100644 --- a/tests/admin_changelist/models.py +++ b/tests/admin_changelist/models.py @@ -74,8 +74,8 @@ class UnorderedObject(models.Model): class OrderedObjectManager(models.Manager): - def get_query_set(self): - return super(OrderedObjectManager, self).get_query_set().order_by('number') + def get_queryset(self): + return super(OrderedObjectManager, self).get_queryset().order_by('number') class OrderedObject(models.Model): """ diff --git a/tests/admin_changelist/tests.py b/tests/admin_changelist/tests.py index bb39f22411..05cdcdb73d 100644 --- a/tests/admin_changelist/tests.py +++ b/tests/admin_changelist/tests.py @@ -39,15 +39,15 @@ class ChangeListTests(TestCase): def test_select_related_preserved(self): """ - Regression test for #10348: ChangeList.get_query_set() shouldn't - overwrite a custom select_related provided by ModelAdmin.queryset(). + Regression test for #10348: ChangeList.get_queryset() shouldn't + overwrite a custom select_related provided by ModelAdmin.get_queryset(). """ m = ChildAdmin(Child, admin.site) request = self.factory.get('/child/') cl = ChangeList(request, Child, m.list_display, m.list_display_links, m.list_filter, m.date_hierarchy, m.search_fields, m.list_select_related, m.list_per_page, m.list_max_show_all, m.list_editable, m) - self.assertEqual(cl.query_set.query.select_related, {'parent': {'name': {}}}) + self.assertEqual(cl.queryset.query.select_related, {'parent': {'name': {}}}) def test_result_list_empty_changelist_value(self): """ @@ -277,7 +277,7 @@ class ChangeListTests(TestCase): m.list_max_show_all, m.list_editable, m) # Make sure distinct() was called - self.assertEqual(cl.query_set.count(), 1) + self.assertEqual(cl.queryset.count(), 1) def test_distinct_for_non_unique_related_object_in_search_fields(self): """ @@ -297,7 +297,7 @@ class ChangeListTests(TestCase): m.list_max_show_all, m.list_editable, m) # Make sure distinct() was called - self.assertEqual(cl.query_set.count(), 1) + self.assertEqual(cl.queryset.count(), 1) def test_pagination(self): """ @@ -317,7 +317,7 @@ class ChangeListTests(TestCase): m.list_filter, m.date_hierarchy, m.search_fields, m.list_select_related, m.list_per_page, m.list_max_show_all, m.list_editable, m) - self.assertEqual(cl.query_set.count(), 60) + self.assertEqual(cl.queryset.count(), 60) self.assertEqual(cl.paginator.count, 60) self.assertEqual(list(cl.paginator.page_range), [1, 2, 3, 4, 5, 6]) @@ -327,7 +327,7 @@ class ChangeListTests(TestCase): m.list_filter, m.date_hierarchy, m.search_fields, m.list_select_related, m.list_per_page, m.list_max_show_all, m.list_editable, m) - self.assertEqual(cl.query_set.count(), 30) + self.assertEqual(cl.queryset.count(), 30) self.assertEqual(cl.paginator.count, 30) self.assertEqual(list(cl.paginator.page_range), [1, 2, 3]) diff --git a/tests/admin_filters/tests.py b/tests/admin_filters/tests.py index 11f792e07a..f05e8e2011 100644 --- a/tests/admin_filters/tests.py +++ b/tests/admin_filters/tests.py @@ -61,7 +61,7 @@ class DecadeListFilterWithFailingQueryset(DecadeListFilterWithTitleAndParameter) class DecadeListFilterWithQuerysetBasedLookups(DecadeListFilterWithTitleAndParameter): def lookups(self, request, model_admin): - qs = model_admin.queryset(request) + qs = model_admin.get_queryset(request) if qs.filter(year__gte=1980, year__lte=1989).exists(): yield ('the 80s', "the 1980's") if qs.filter(year__gte=1990, year__lte=1999).exists(): @@ -86,7 +86,7 @@ class DepartmentListFilterLookupWithNonStringValue(SimpleListFilter): return sorted(set([ (employee.department.id, # Intentionally not a string (Refs #19318) employee.department.code) - for employee in model_admin.queryset(request).all() + for employee in model_admin.get_queryset(request).all() ])) def queryset(self, request, queryset): @@ -183,7 +183,7 @@ class ListFiltersTests(TestCase): changelist = self.get_changelist(request, Book, modeladmin) # Make sure the correct queryset is returned - queryset = changelist.get_query_set(request) + queryset = changelist.get_queryset(request) self.assertEqual(list(queryset), [self.django_book, self.djangonaut_book]) # Make sure the correct choice is selected @@ -200,7 +200,7 @@ class ListFiltersTests(TestCase): changelist = self.get_changelist(request, Book, modeladmin) # Make sure the correct queryset is returned - queryset = changelist.get_query_set(request) + queryset = changelist.get_queryset(request) if (self.today.year, self.today.month) == (self.one_week_ago.year, self.one_week_ago.month): # In case one week ago is in the same month. self.assertEqual(list(queryset), [self.gipsy_book, self.django_book, self.djangonaut_book]) @@ -221,7 +221,7 @@ class ListFiltersTests(TestCase): changelist = self.get_changelist(request, Book, modeladmin) # Make sure the correct queryset is returned - queryset = changelist.get_query_set(request) + queryset = changelist.get_queryset(request) if self.today.year == self.one_week_ago.year: # In case one week ago is in the same year. self.assertEqual(list(queryset), [self.gipsy_book, self.django_book, self.djangonaut_book]) @@ -242,7 +242,7 @@ class ListFiltersTests(TestCase): changelist = self.get_changelist(request, Book, modeladmin) # Make sure the correct queryset is returned - queryset = changelist.get_query_set(request) + queryset = changelist.get_queryset(request) self.assertEqual(list(queryset), [self.gipsy_book, self.django_book, self.djangonaut_book]) # Make sure the correct choice is selected @@ -266,7 +266,7 @@ class ListFiltersTests(TestCase): changelist = self.get_changelist(request, Book, modeladmin) # Make sure the correct queryset is returned - queryset = changelist.get_query_set(request) + queryset = changelist.get_queryset(request) self.assertEqual(list(queryset), [self.django_book]) # Make sure the last choice is None and is selected @@ -293,7 +293,7 @@ class ListFiltersTests(TestCase): changelist = self.get_changelist(request, Book, modeladmin) # Make sure the correct queryset is returned - queryset = changelist.get_query_set(request) + queryset = changelist.get_queryset(request) self.assertEqual(list(queryset), [self.gipsy_book]) # Make sure the last choice is None and is selected @@ -321,7 +321,7 @@ class ListFiltersTests(TestCase): changelist = self.get_changelist(request, Book, modeladmin) # Make sure the correct queryset is returned - queryset = changelist.get_query_set(request) + queryset = changelist.get_queryset(request) self.assertEqual(list(queryset), [self.django_book, self.bio_book, self.djangonaut_book]) # Make sure the last choice is None and is selected @@ -349,7 +349,7 @@ class ListFiltersTests(TestCase): changelist = self.get_changelist(request, User, modeladmin) # Make sure the correct queryset is returned - queryset = changelist.get_query_set(request) + queryset = changelist.get_queryset(request) self.assertEqual(list(queryset), [self.lisa]) # Make sure the last choice is None and is selected @@ -374,7 +374,7 @@ class ListFiltersTests(TestCase): changelist = self.get_changelist(request, User, modeladmin) # Make sure the correct queryset is returned - queryset = changelist.get_query_set(request) + queryset = changelist.get_queryset(request) self.assertEqual(list(queryset), [self.alfred]) # Make sure the last choice is None and is selected @@ -410,7 +410,7 @@ class ListFiltersTests(TestCase): changelist = self.get_changelist(request, Book, modeladmin) # Make sure the correct queryset is returned - queryset = changelist.get_query_set(request) + queryset = changelist.get_queryset(request) self.assertEqual(list(queryset), [self.bio_book]) # Make sure the correct choice is selected @@ -424,7 +424,7 @@ class ListFiltersTests(TestCase): changelist = self.get_changelist(request, Book, modeladmin) # Make sure the correct queryset is returned - queryset = changelist.get_query_set(request) + queryset = changelist.get_queryset(request) self.assertEqual(list(queryset), [self.gipsy_book, self.djangonaut_book]) # Make sure the correct choice is selected @@ -438,7 +438,7 @@ class ListFiltersTests(TestCase): changelist = self.get_changelist(request, Book, modeladmin) # Make sure the correct queryset is returned - queryset = changelist.get_query_set(request) + queryset = changelist.get_queryset(request) self.assertEqual(list(queryset), [self.django_book]) # Make sure the correct choice is selected @@ -457,7 +457,7 @@ class ListFiltersTests(TestCase): changelist = self.get_changelist(request, Book, modeladmin) # Make sure the correct queryset is returned - queryset = changelist.get_query_set(request) + queryset = changelist.get_queryset(request) self.assertEqual(list(queryset), list(Book.objects.all().order_by('-id'))) # Make sure the correct choice is selected @@ -474,7 +474,7 @@ class ListFiltersTests(TestCase): changelist = self.get_changelist(request, Book, modeladmin) # Make sure the correct queryset is returned - queryset = changelist.get_query_set(request) + queryset = changelist.get_queryset(request) self.assertEqual(list(queryset), []) # Make sure the correct choice is selected @@ -491,7 +491,7 @@ class ListFiltersTests(TestCase): changelist = self.get_changelist(request, Book, modeladmin) # Make sure the correct queryset is returned - queryset = changelist.get_query_set(request) + queryset = changelist.get_queryset(request) self.assertEqual(list(queryset), [self.bio_book]) # Make sure the correct choice is selected @@ -508,7 +508,7 @@ class ListFiltersTests(TestCase): changelist = self.get_changelist(request, Book, modeladmin) # Make sure the correct queryset is returned - queryset = changelist.get_query_set(request) + queryset = changelist.get_queryset(request) self.assertEqual(list(queryset), [self.gipsy_book, self.djangonaut_book]) # Make sure the correct choice is selected @@ -525,7 +525,7 @@ class ListFiltersTests(TestCase): changelist = self.get_changelist(request, Book, modeladmin) # Make sure the correct queryset is returned - queryset = changelist.get_query_set(request) + queryset = changelist.get_queryset(request) self.assertEqual(list(queryset), [self.djangonaut_book]) # Make sure the correct choices are selected @@ -615,7 +615,7 @@ class ListFiltersTests(TestCase): changelist = self.get_changelist(request, Book, modeladmin) # Make sure the correct queryset is returned - queryset = changelist.get_query_set(request) + queryset = changelist.get_queryset(request) self.assertEqual(list(queryset), [self.bio_book]) filterspec = changelist.get_filters(request)[0][-1] @@ -637,7 +637,7 @@ class ListFiltersTests(TestCase): changelist = self.get_changelist(request, Book, modeladmin) # Make sure the correct queryset is returned - queryset = changelist.get_query_set(request) + queryset = changelist.get_queryset(request) self.assertEqual(list(queryset), [self.bio_book]) # Make sure the correct choice is selected @@ -654,7 +654,7 @@ class ListFiltersTests(TestCase): changelist = self.get_changelist(request, Book, modeladmin) # Make sure the correct queryset is returned - queryset = changelist.get_query_set(request) + queryset = changelist.get_queryset(request) self.assertEqual(list(queryset), [self.bio_book]) # Make sure the correct choice is selected @@ -676,7 +676,7 @@ class ListFiltersTests(TestCase): request = self.request_factory.get('/', {'department': self.john.pk}) changelist = self.get_changelist(request, Employee, modeladmin) - queryset = changelist.get_query_set(request) + queryset = changelist.get_queryset(request) self.assertEqual(list(queryset), [self.john]) @@ -698,7 +698,7 @@ class ListFiltersTests(TestCase): changelist = self.get_changelist(request, Employee, modeladmin) # Make sure the correct queryset is returned - queryset = changelist.get_query_set(request) + queryset = changelist.get_queryset(request) self.assertEqual(list(queryset), [self.jack, self.john]) filterspec = changelist.get_filters(request)[0][-1] @@ -723,7 +723,7 @@ class ListFiltersTests(TestCase): changelist = self.get_changelist(request, Employee, modeladmin) # Make sure the correct queryset is returned - queryset = changelist.get_query_set(request) + queryset = changelist.get_queryset(request) self.assertEqual(list(queryset), [self.john]) filterspec = changelist.get_filters(request)[0][-1] diff --git a/tests/admin_ordering/tests.py b/tests/admin_ordering/tests.py index 10faa9533f..6655ad37ad 100644 --- a/tests/admin_ordering/tests.py +++ b/tests/admin_ordering/tests.py @@ -22,8 +22,8 @@ request.user = MockSuperUser() class TestAdminOrdering(TestCase): """ - Let's make sure that ModelAdmin.queryset uses the ordering we define in - ModelAdmin rather that ordering defined in the model's inner Meta + Let's make sure that ModelAdmin.get_queryset uses the ordering we define + in ModelAdmin rather that ordering defined in the model's inner Meta class. """ @@ -42,7 +42,7 @@ class TestAdminOrdering(TestCase): class. """ ma = ModelAdmin(Band, None) - names = [b.name for b in ma.queryset(request)] + names = [b.name for b in ma.get_queryset(request)] self.assertEqual(['Aerosmith', 'Radiohead', 'Van Halen'], names) def test_specified_ordering(self): @@ -53,7 +53,7 @@ class TestAdminOrdering(TestCase): class BandAdmin(ModelAdmin): ordering = ('rank',) # default ordering is ('name',) ma = BandAdmin(Band, None) - names = [b.name for b in ma.queryset(request)] + names = [b.name for b in ma.get_queryset(request)] self.assertEqual(['Radiohead', 'Van Halen', 'Aerosmith'], names) def test_dynamic_ordering(self): @@ -65,17 +65,17 @@ class TestAdminOrdering(TestCase): request = self.request_factory.get('/') request.user = super_user ma = DynOrderingBandAdmin(Band, None) - names = [b.name for b in ma.queryset(request)] + names = [b.name for b in ma.get_queryset(request)] self.assertEqual(['Radiohead', 'Van Halen', 'Aerosmith'], names) request.user = other_user - names = [b.name for b in ma.queryset(request)] + names = [b.name for b in ma.get_queryset(request)] self.assertEqual(['Aerosmith', 'Radiohead', 'Van Halen'], names) class TestInlineModelAdminOrdering(TestCase): """ - Let's make sure that InlineModelAdmin.queryset uses the ordering we define - in InlineModelAdmin. + Let's make sure that InlineModelAdmin.get_queryset uses the ordering we + define in InlineModelAdmin. """ def setUp(self): @@ -95,7 +95,7 @@ class TestInlineModelAdminOrdering(TestCase): class. """ inline = SongInlineDefaultOrdering(self.b, None) - names = [s.name for s in inline.queryset(request)] + names = [s.name for s in inline.get_queryset(request)] self.assertEqual(['Dude (Looks Like a Lady)', 'Jaded', 'Pink'], names) def test_specified_ordering(self): @@ -103,7 +103,7 @@ class TestInlineModelAdminOrdering(TestCase): Let's check with ordering set to something different than the default. """ inline = SongInlineNewOrdering(self.b, None) - names = [s.name for s in inline.queryset(request)] + names = [s.name for s in inline.get_queryset(request)] self.assertEqual(['Jaded', 'Pink', 'Dude (Looks Like a Lady)'], names) diff --git a/tests/admin_views/admin.py b/tests/admin_views/admin.py index d4348968e0..cc7585cd2d 100644 --- a/tests/admin_views/admin.py +++ b/tests/admin_views/admin.py @@ -177,10 +177,10 @@ class PersonAdmin(admin.ModelAdmin): return super(PersonAdmin, self).get_changelist_formset(request, formset=BasePersonModelFormSet, **kwargs) - def queryset(self, request): + def get_queryset(self, request): # Order by a field that isn't in list display, to be able to test # whether ordering is preserved. - return super(PersonAdmin, self).queryset(request).order_by('age') + return super(PersonAdmin, self).get_queryset(request).order_by('age') class FooAccount(Account): @@ -283,8 +283,8 @@ class ParentAdmin(admin.ModelAdmin): class EmptyModelAdmin(admin.ModelAdmin): - def queryset(self, request): - return super(EmptyModelAdmin, self).queryset(request).filter(pk__gt=1) + def get_queryset(self, request): + return super(EmptyModelAdmin, self).get_queryset(request).filter(pk__gt=1) class OldSubscriberAdmin(admin.ModelAdmin): @@ -427,8 +427,8 @@ class PostAdmin(admin.ModelAdmin): class CustomChangeList(ChangeList): - def get_query_set(self, request): - return self.root_query_set.filter(pk=9999) # Does not exist + def get_queryset(self, request): + return self.root_queryset.filter(pk=9999) # Does not exist class GadgetAdmin(admin.ModelAdmin): @@ -452,52 +452,52 @@ class FoodDeliveryAdmin(admin.ModelAdmin): class CoverLetterAdmin(admin.ModelAdmin): """ - A ModelAdmin with a custom queryset() method that uses defer(), to test + A ModelAdmin with a custom get_queryset() method that uses defer(), to test verbose_name display in messages shown after adding/editing CoverLetter instances. Note that the CoverLetter model defines a __unicode__ method. For testing fix for ticket #14529. """ - def queryset(self, request): - return super(CoverLetterAdmin, self).queryset(request).defer('date_written') + def get_queryset(self, request): + return super(CoverLetterAdmin, self).get_queryset(request).defer('date_written') class PaperAdmin(admin.ModelAdmin): """ - A ModelAdmin with a custom queryset() method that uses only(), to test + A ModelAdmin with a custom get_queryset() method that uses only(), to test verbose_name display in messages shown after adding/editing Paper instances. For testing fix for ticket #14529. """ - def queryset(self, request): - return super(PaperAdmin, self).queryset(request).only('title') + def get_queryset(self, request): + return super(PaperAdmin, self).get_queryset(request).only('title') class ShortMessageAdmin(admin.ModelAdmin): """ - A ModelAdmin with a custom queryset() method that uses defer(), to test + A ModelAdmin with a custom get_queryset() method that uses defer(), to test verbose_name display in messages shown after adding/editing ShortMessage instances. For testing fix for ticket #14529. """ - def queryset(self, request): - return super(ShortMessageAdmin, self).queryset(request).defer('timestamp') + def get_queryset(self, request): + return super(ShortMessageAdmin, self).get_queryset(request).defer('timestamp') class TelegramAdmin(admin.ModelAdmin): """ - A ModelAdmin with a custom queryset() method that uses only(), to test + A ModelAdmin with a custom get_queryset() method that uses only(), to test verbose_name display in messages shown after adding/editing Telegram instances. Note that the Telegram model defines a __unicode__ method. For testing fix for ticket #14529. """ - def queryset(self, request): - return super(TelegramAdmin, self).queryset(request).only('title') + def get_queryset(self, request): + return super(TelegramAdmin, self).get_queryset(request).only('title') class StoryForm(forms.ModelForm): diff --git a/tests/admin_views/customadmin.py b/tests/admin_views/customadmin.py index d69d690af0..c204b81edd 100644 --- a/tests/admin_views/customadmin.py +++ b/tests/admin_views/customadmin.py @@ -35,8 +35,8 @@ class Admin2(admin.AdminSite): class UserLimitedAdmin(UserAdmin): # used for testing password change on a user not in queryset - def queryset(self, request): - qs = super(UserLimitedAdmin, self).queryset(request) + def get_queryset(self, request): + qs = super(UserLimitedAdmin, self).get_queryset(request) return qs.filter(is_superuser=False) diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py index ff2eb95745..53dc74fa88 100644 --- a/tests/admin_views/tests.py +++ b/tests/admin_views/tests.py @@ -291,7 +291,7 @@ class AdminViewBasicTest(TestCase): """ If no ordering is defined in `ModelAdmin.ordering` or in the query string, then the underlying order of the queryset should not be - changed, even if it is defined in `Modeladmin.queryset()`. + changed, even if it is defined in `Modeladmin.get_queryset()`. Refs #11868, #7309. """ p1 = Person.objects.create(name="Amy", gender=1, alive=True, age=80) @@ -440,7 +440,7 @@ class AdminViewBasicTest(TestCase): self.urlbit, query_string)) self.assertEqual(filtered_response.status_code, 200) # ensure changelist contains only valid objects - for obj in filtered_response.context['cl'].query_set.all(): + for obj in filtered_response.context['cl'].queryset.all(): self.assertTrue(params['test'](obj, value)) def testIncorrectLookupParameters(self): @@ -2583,7 +2583,7 @@ class AdminCustomQuerysetTest(TestCase): self.assertEqual(response.status_code, 404) def test_add_model_modeladmin_defer_qs(self): - # Test for #14529. defer() is used in ModelAdmin.queryset() + # Test for #14529. defer() is used in ModelAdmin.get_queryset() # model has __unicode__ method self.assertEqual(CoverLetter.objects.count(), 0) @@ -2622,7 +2622,7 @@ class AdminCustomQuerysetTest(TestCase): ) def test_add_model_modeladmin_only_qs(self): - # Test for #14529. only() is used in ModelAdmin.queryset() + # Test for #14529. only() is used in ModelAdmin.get_queryset() # model has __unicode__ method self.assertEqual(Telegram.objects.count(), 0) @@ -2661,7 +2661,7 @@ class AdminCustomQuerysetTest(TestCase): ) def test_edit_model_modeladmin_defer_qs(self): - # Test for #14529. defer() is used in ModelAdmin.queryset() + # Test for #14529. defer() is used in ModelAdmin.get_queryset() # model has __unicode__ method cl = CoverLetter.objects.create(author="John Doe") @@ -2708,7 +2708,7 @@ class AdminCustomQuerysetTest(TestCase): ) def test_edit_model_modeladmin_only_qs(self): - # Test for #14529. only() is used in ModelAdmin.queryset() + # Test for #14529. only() is used in ModelAdmin.get_queryset() # model has __unicode__ method t = Telegram.objects.create(title="Frist Telegram") diff --git a/tests/admin_widgets/models.py b/tests/admin_widgets/models.py index 2977b86f3e..ae19d58cc4 100644 --- a/tests/admin_widgets/models.py +++ b/tests/admin_widgets/models.py @@ -37,8 +37,8 @@ class Album(models.Model): return self.name class HiddenInventoryManager(models.Manager): - def get_query_set(self): - return super(HiddenInventoryManager, self).get_query_set().filter(hidden=False) + def get_queryset(self): + return super(HiddenInventoryManager, self).get_queryset().filter(hidden=False) @python_2_unicode_compatible class Inventory(models.Model): diff --git a/tests/custom_managers/models.py b/tests/custom_managers/models.py index de7c1772ed..2f5e62fc7a 100644 --- a/tests/custom_managers/models.py +++ b/tests/custom_managers/models.py @@ -30,11 +30,11 @@ class Person(models.Model): def __str__(self): return "%s %s" % (self.first_name, self.last_name) -# An example of a custom manager that sets get_query_set(). +# An example of a custom manager that sets get_queryset(). class PublishedBookManager(models.Manager): - def get_query_set(self): - return super(PublishedBookManager, self).get_query_set().filter(is_published=True) + def get_queryset(self): + return super(PublishedBookManager, self).get_queryset().filter(is_published=True) @python_2_unicode_compatible class Book(models.Model): @@ -50,8 +50,8 @@ class Book(models.Model): # An example of providing multiple custom managers. class FastCarManager(models.Manager): - def get_query_set(self): - return super(FastCarManager, self).get_query_set().filter(top_speed__gt=150) + def get_queryset(self): + return super(FastCarManager, self).get_queryset().filter(top_speed__gt=150) @python_2_unicode_compatible class Car(models.Model): diff --git a/tests/custom_managers_regress/models.py b/tests/custom_managers_regress/models.py index 71073f0fe7..95cf6e8ca1 100644 --- a/tests/custom_managers_regress/models.py +++ b/tests/custom_managers_regress/models.py @@ -10,8 +10,8 @@ class RestrictedManager(models.Manager): """ A manager that filters out non-public instances. """ - def get_query_set(self): - return super(RestrictedManager, self).get_query_set().filter(is_public=True) + def get_queryset(self): + return super(RestrictedManager, self).get_queryset().filter(is_public=True) @python_2_unicode_compatible class RelatedModel(models.Model): diff --git a/tests/deprecation/__init__.py b/tests/deprecation/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/deprecation/models.py b/tests/deprecation/models.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/deprecation/tests.py b/tests/deprecation/tests.py new file mode 100644 index 0000000000..df752b3149 --- /dev/null +++ b/tests/deprecation/tests.py @@ -0,0 +1,158 @@ +from __future__ import unicode_literals +import warnings + +from django.test.testcases import SimpleTestCase +from django.utils import six +from django.utils.deprecation import RenameMethodsBase + + +class RenameManagerMethods(RenameMethodsBase): + renamed_methods = ( + ('old', 'new', PendingDeprecationWarning), + ) + + +class RenameMethodsTests(SimpleTestCase): + """ + Tests the `RenameMethodsBase` type introduced to rename `get_query_set` + to `get_queryset` across the code base following #15363. + """ + + def test_class_definition_warnings(self): + """ + Ensure a warning is raised upon class definition to suggest renaming + the faulty method. + """ + with warnings.catch_warnings(record=True) as recorded: + warnings.simplefilter('always') + class Manager(six.with_metaclass(RenameManagerMethods)): + def old(self): + pass + self.assertEqual(len(recorded), 1) + msg = str(recorded[0].message) + self.assertEqual(msg, + '`Manager.old` method should be renamed `new`.') + + def test_get_new_defined(self): + """ + Ensure `old` complains and not `new` when only `new` is defined. + """ + with warnings.catch_warnings(record=True) as recorded: + warnings.simplefilter('ignore') + class Manager(six.with_metaclass(RenameManagerMethods)): + def new(self): + pass + warnings.simplefilter('always') + manager = Manager() + manager.new() + self.assertEqual(len(recorded), 0) + manager.old() + self.assertEqual(len(recorded), 1) + msg = str(recorded.pop().message) + self.assertEqual(msg, + '`Manager.old` is deprecated, use `new` instead.') + + def test_get_old_defined(self): + """ + Ensure `old` complains when only `old` is defined. + """ + with warnings.catch_warnings(record=True) as recorded: + warnings.simplefilter('ignore') + class Manager(six.with_metaclass(RenameManagerMethods)): + def old(self): + pass + warnings.simplefilter('always') + manager = Manager() + manager.new() + self.assertEqual(len(recorded), 0) + manager.old() + self.assertEqual(len(recorded), 1) + msg = str(recorded.pop().message) + self.assertEqual(msg, + '`Manager.old` is deprecated, use `new` instead.') + + def test_deprecated_subclass_renamed(self): + """ + Ensure the correct warnings are raised when a class that didn't rename + `old` subclass one that did. + """ + with warnings.catch_warnings(record=True) as recorded: + warnings.simplefilter('ignore') + class Renamed(six.with_metaclass(RenameManagerMethods)): + def new(self): + pass + class Deprecated(Renamed): + def old(self): + super(Deprecated, self).old() + warnings.simplefilter('always') + deprecated = Deprecated() + deprecated.new() + self.assertEqual(len(recorded), 1) + msg = str(recorded.pop().message) + self.assertEqual(msg, + '`Renamed.old` is deprecated, use `new` instead.') + recorded[:] = [] + deprecated.old() + self.assertEqual(len(recorded), 2) + msgs = [str(warning.message) for warning in recorded] + self.assertEqual(msgs, [ + '`Deprecated.old` is deprecated, use `new` instead.', + '`Renamed.old` is deprecated, use `new` instead.', + ]) + + def test_renamed_subclass_deprecated(self): + """ + Ensure the correct warnings are raised when a class that renamed + `old` subclass one that didn't. + """ + with warnings.catch_warnings(record=True) as recorded: + warnings.simplefilter('ignore') + class Deprecated(six.with_metaclass(RenameManagerMethods)): + def old(self): + pass + class Renamed(Deprecated): + def new(self): + super(Renamed, self).new() + warnings.simplefilter('always') + renamed = Renamed() + renamed.new() + self.assertEqual(len(recorded), 0) + renamed.old() + self.assertEqual(len(recorded), 1) + msg = str(recorded.pop().message) + self.assertEqual(msg, + '`Renamed.old` is deprecated, use `new` instead.') + + def test_deprecated_subclass_renamed_and_mixins(self): + """ + Ensure the correct warnings are raised when a subclass inherit from a + class that renamed `old` and mixins that may or may not have renamed + `new`. + """ + with warnings.catch_warnings(record=True) as recorded: + warnings.simplefilter('ignore') + class Renamed(six.with_metaclass(RenameManagerMethods)): + def new(self): + pass + class RenamedMixin(object): + def new(self): + super(RenamedMixin, self).new() + class DeprecatedMixin(object): + def old(self): + super(DeprecatedMixin, self).old() + class Deprecated(DeprecatedMixin, RenamedMixin, Renamed): + pass + warnings.simplefilter('always') + deprecated = Deprecated() + deprecated.new() + self.assertEqual(len(recorded), 1) + msg = str(recorded.pop().message) + self.assertEqual(msg, + '`RenamedMixin.old` is deprecated, use `new` instead.') + deprecated.old() + self.assertEqual(len(recorded), 2) + msgs = [str(warning.message) for warning in recorded] + self.assertEqual(msgs, [ + '`DeprecatedMixin.old` is deprecated, use `new` instead.', + '`RenamedMixin.old` is deprecated, use `new` instead.', + ]) diff --git a/tests/fixtures/models.py b/tests/fixtures/models.py index 8bd3501926..976716fdc9 100644 --- a/tests/fixtures/models.py +++ b/tests/fixtures/models.py @@ -78,8 +78,8 @@ class Person(models.Model): return (self.name,) class SpyManager(PersonManager): - def get_query_set(self): - return super(SpyManager, self).get_query_set().filter(cover_blown=False) + def get_queryset(self): + return super(SpyManager, self).get_queryset().filter(cover_blown=False) class Spy(Person): objects = SpyManager() diff --git a/tests/generic_relations/models.py b/tests/generic_relations/models.py index 18d7623971..34dc8d3a7d 100644 --- a/tests/generic_relations/models.py +++ b/tests/generic_relations/models.py @@ -88,8 +88,8 @@ class Mineral(models.Model): return self.name class GeckoManager(models.Manager): - def get_query_set(self): - return super(GeckoManager, self).get_query_set().filter(has_tail=True) + def get_queryset(self): + return super(GeckoManager, self).get_queryset().filter(has_tail=True) class Gecko(models.Model): has_tail = models.BooleanField() diff --git a/tests/get_object_or_404/models.py b/tests/get_object_or_404/models.py index bda060569e..bb9aa60383 100644 --- a/tests/get_object_or_404/models.py +++ b/tests/get_object_or_404/models.py @@ -22,8 +22,8 @@ class Author(models.Model): return self.name class ArticleManager(models.Manager): - def get_query_set(self): - return super(ArticleManager, self).get_query_set().filter(authors__name__icontains='sir') + def get_queryset(self): + return super(ArticleManager, self).get_queryset().filter(authors__name__icontains='sir') @python_2_unicode_compatible class Article(models.Model): diff --git a/tests/managers_regress/models.py b/tests/managers_regress/models.py index d72970d86e..d8dd22ec9a 100644 --- a/tests/managers_regress/models.py +++ b/tests/managers_regress/models.py @@ -7,18 +7,18 @@ from django.utils.encoding import python_2_unicode_compatible class OnlyFred(models.Manager): - def get_query_set(self): - return super(OnlyFred, self).get_query_set().filter(name='fred') + def get_queryset(self): + return super(OnlyFred, self).get_queryset().filter(name='fred') class OnlyBarney(models.Manager): - def get_query_set(self): - return super(OnlyBarney, self).get_query_set().filter(name='barney') + def get_queryset(self): + return super(OnlyBarney, self).get_queryset().filter(name='barney') class Value42(models.Manager): - def get_query_set(self): - return super(Value42, self).get_query_set().filter(value=42) + def get_queryset(self): + return super(Value42, self).get_queryset().filter(value=42) class AbstractBase1(models.Model): diff --git a/tests/modeladmin/tests.py b/tests/modeladmin/tests.py index b0a181218b..e5450ab8ff 100644 --- a/tests/modeladmin/tests.py +++ b/tests/modeladmin/tests.py @@ -69,7 +69,7 @@ class ModelAdminTests(TestCase): # If we specify the fields argument, fieldsets_add and fielsets_change should # just stick the fields into a formsets structure and return it. class BandAdmin(ModelAdmin): - fields = ['name'] + fields = ['name'] ma = BandAdmin(Band, self.site) @@ -1074,7 +1074,7 @@ class ValidationTests(unittest.TestCase): return 'awesomeness' def get_choices(self, request): return (('bit', 'A bit awesome'), ('very', 'Very awesome'), ) - def get_query_set(self, cl, qs): + def get_queryset(self, cl, qs): return qs class ValidationTestModelAdmin(ModelAdmin): diff --git a/tests/prefetch_related/models.py b/tests/prefetch_related/models.py index e58997d200..81c569844f 100644 --- a/tests/prefetch_related/models.py +++ b/tests/prefetch_related/models.py @@ -87,8 +87,8 @@ class Qualification(models.Model): class TeacherManager(models.Manager): - def get_query_set(self): - return super(TeacherManager, self).get_query_set().prefetch_related('qualifications') + def get_queryset(self): + return super(TeacherManager, self).get_queryset().prefetch_related('qualifications') @python_2_unicode_compatible diff --git a/tests/proxy_models/models.py b/tests/proxy_models/models.py index 6c962aadc8..ffb36657e1 100644 --- a/tests/proxy_models/models.py +++ b/tests/proxy_models/models.py @@ -10,12 +10,12 @@ from django.utils.encoding import python_2_unicode_compatible # A couple of managers for testing managing overriding in proxy model cases. class PersonManager(models.Manager): - def get_query_set(self): - return super(PersonManager, self).get_query_set().exclude(name="fred") + def get_queryset(self): + return super(PersonManager, self).get_queryset().exclude(name="fred") class SubManager(models.Manager): - def get_query_set(self): - return super(SubManager, self).get_query_set().exclude(name="wilma") + def get_queryset(self): + return super(SubManager, self).get_queryset().exclude(name="wilma") @python_2_unicode_compatible class Person(models.Model): diff --git a/tests/queries/models.py b/tests/queries/models.py index c8598371a6..f7f643d585 100644 --- a/tests/queries/models.py +++ b/tests/queries/models.py @@ -176,8 +176,8 @@ class LoopZ(models.Model): # A model and custom default manager combination. class CustomManager(models.Manager): - def get_query_set(self): - qs = super(CustomManager, self).get_query_set() + def get_queryset(self): + qs = super(CustomManager, self).get_queryset() return qs.filter(public=True, tag__name='t1') @python_2_unicode_compatible @@ -197,8 +197,8 @@ class Detail(models.Model): data = models.CharField(max_length=10) class MemberManager(models.Manager): - def get_query_set(self): - return super(MemberManager, self).get_query_set().select_related("details") + def get_queryset(self): + return super(MemberManager, self).get_queryset().select_related("details") class Member(models.Model): name = models.CharField(max_length=10) diff --git a/tests/reverse_single_related/models.py b/tests/reverse_single_related/models.py index 898be8411b..30ba345120 100644 --- a/tests/reverse_single_related/models.py +++ b/tests/reverse_single_related/models.py @@ -2,8 +2,8 @@ from django.db import models class SourceManager(models.Manager): - def get_query_set(self): - return super(SourceManager, self).get_query_set().filter(is_public=True) + def get_queryset(self): + return super(SourceManager, self).get_queryset().filter(is_public=True) class Source(models.Model): is_public = models.BooleanField() -- cgit v1.3 From 6a91b638423de954b7d96c38e2372100800139fb Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Sat, 9 Mar 2013 12:38:45 +0100 Subject: Fixed #19923 -- Display tracebacks for non-CommandError exceptions By default, show tracebacks for management command errors when the exception is not a CommandError. Thanks Jacob Radford for the report. --- django/core/management/base.py | 2 +- docs/ref/django-admin.txt | 9 +++++++-- tests/admin_scripts/tests.py | 20 ++++++++++++++++---- 3 files changed, 24 insertions(+), 7 deletions(-) (limited to 'docs') diff --git a/django/core/management/base.py b/django/core/management/base.py index bdaa5fa98a..e6a968bbad 100644 --- a/django/core/management/base.py +++ b/django/core/management/base.py @@ -241,7 +241,7 @@ class BaseCommand(object): except Exception as e: # self.stderr is not guaranteed to be set here stderr = getattr(self, 'stderr', OutputWrapper(sys.stderr, self.style.ERROR)) - if options.traceback: + if options.traceback or not isinstance(e, CommandError): stderr.write(traceback.format_exc()) else: stderr.write('%s: %s' % (e.__class__.__name__, e)) diff --git a/docs/ref/django-admin.txt b/docs/ref/django-admin.txt index c2034a8c40..d31e30a14d 100644 --- a/docs/ref/django-admin.txt +++ b/docs/ref/django-admin.txt @@ -1342,8 +1342,13 @@ Example usage:: django-admin.py syncdb --traceback By default, ``django-admin.py`` will show a simple error message whenever an -error occurs. If you specify ``--traceback``, ``django-admin.py`` will -output a full stack trace whenever an exception is raised. +:class:`~django.core.management.CommandError` occurs, but a full stack trace +for any other exception. If you specify ``--traceback``, ``django-admin.py`` +will also output a full stack trace when a ``CommandError`` is raised. + +.. versionchanged:: 1.6 + Previously, Django didn't show a full stack trace by default for exceptions + other than ``CommandError``. .. django-admin-option:: --verbosity diff --git a/tests/admin_scripts/tests.py b/tests/admin_scripts/tests.py index 42595982d9..90f77206cd 100644 --- a/tests/admin_scripts/tests.py +++ b/tests/admin_scripts/tests.py @@ -16,7 +16,7 @@ import codecs from django import conf, bin, get_version from django.conf import settings -from django.core.management import BaseCommand +from django.core.management import BaseCommand, CommandError from django.db import connection from django.test.simple import DjangoTestSuiteRunner from django.utils import unittest @@ -1297,22 +1297,34 @@ class CommandTypes(AdminScriptTestCase): Also test proper traceback display. """ command = BaseCommand() - command.execute = lambda args: args # This will trigger TypeError + def raise_command_error(*args, **kwargs): + raise CommandError("Custom error") old_stderr = sys.stderr sys.stderr = err = StringIO() try: + command.execute = lambda args: args # This will trigger TypeError with self.assertRaises(SystemExit): command.run_from_argv(['', '']) err_message = err.getvalue() - self.assertNotIn("Traceback", err_message) + # Exceptions other than CommandError automatically output the traceback + self.assertIn("Traceback", err_message) self.assertIn("TypeError", err_message) + command.execute = raise_command_error + err.truncate(0) + with self.assertRaises(SystemExit): + command.run_from_argv(['', '']) + err_message = err.getvalue() + self.assertNotIn("Traceback", err_message) + self.assertIn("CommandError", err_message) + + err.truncate(0) with self.assertRaises(SystemExit): command.run_from_argv(['', '', '--traceback']) err_message = err.getvalue() self.assertIn("Traceback (most recent call last)", err_message) - self.assertIn("TypeError", err_message) + self.assertIn("CommandError", err_message) finally: sys.stderr = old_stderr -- cgit v1.3 From e6f5b7eacd32afb892c486a5b0994f7f11170868 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Sat, 9 Mar 2013 16:01:33 +0100 Subject: Fixed #9806 -- Allowed editing GeometryField with OpenLayersWidget Thanks Paul Winkler for the initial patch. --- django/contrib/gis/admin/options.py | 1 + django/contrib/gis/admin/widgets.py | 3 ++- .../contrib/gis/templates/gis/admin/openlayers.js | 28 ++++++++++------------ docs/releases/1.6.txt | 3 +++ 4 files changed, 18 insertions(+), 17 deletions(-) (limited to 'docs') diff --git a/django/contrib/gis/admin/options.py b/django/contrib/gis/admin/options.py index 6bdceb7722..7e79be1860 100644 --- a/django/contrib/gis/admin/options.py +++ b/django/contrib/gis/admin/options.py @@ -94,6 +94,7 @@ class GeoModelAdmin(ModelAdmin): 'scrollable' : self.scrollable, 'layerswitcher' : self.layerswitcher, 'collection_type' : collection_type, + 'is_generic' : db_field.geom_type == 'GEOMETRY', 'is_linestring' : db_field.geom_type in ('LINESTRING', 'MULTILINESTRING'), 'is_polygon' : db_field.geom_type in ('POLYGON', 'MULTIPOLYGON'), 'is_point' : db_field.geom_type in ('POINT', 'MULTIPOINT'), diff --git a/django/contrib/gis/admin/widgets.py b/django/contrib/gis/admin/widgets.py index a06933660f..ceb8e9c9bd 100644 --- a/django/contrib/gis/admin/widgets.py +++ b/django/contrib/gis/admin/widgets.py @@ -40,7 +40,8 @@ class OpenLayersWidget(Textarea): ) value = None - if value and value.geom_type.upper() != self.geom_type: + if (value and value.geom_type.upper() != self.geom_type and + self.geom_type != 'GEOMETRY'): value = None # Constructing the dictionary of the map options. diff --git a/django/contrib/gis/templates/gis/admin/openlayers.js b/django/contrib/gis/templates/gis/admin/openlayers.js index 19b9192950..924621ea49 100644 --- a/django/contrib/gis/templates/gis/admin/openlayers.js +++ b/django/contrib/gis/templates/gis/admin/openlayers.js @@ -6,6 +6,7 @@ OpenLayers.Projection.addTransform("EPSG:4326", "EPSG:3857", OpenLayers.Layer.Sp {{ module }}.wkt_f = new OpenLayers.Format.WKT(); {{ module }}.is_collection = {{ is_collection|yesno:"true,false" }}; {{ module }}.collection_type = '{{ collection_type }}'; +{{ module }}.is_generic = {{ is_generic|yesno:"true,false" }}; {{ module }}.is_linestring = {{ is_linestring|yesno:"true,false" }}; {{ module }}.is_polygon = {{ is_polygon|yesno:"true,false" }}; {{ module }}.is_point = {{ is_point|yesno:"true,false" }}; @@ -89,24 +90,19 @@ OpenLayers.Projection.addTransform("EPSG:4326", "EPSG:3857", OpenLayers.Layer.Sp // Create an array of controls based on geometry type {{ module }}.getControls = function(lyr){ {{ module }}.panel = new OpenLayers.Control.Panel({'displayClass': 'olControlEditingToolbar'}); - var nav = new OpenLayers.Control.Navigation(); - var draw_ctl; - if ({{ module }}.is_linestring){ - draw_ctl = new OpenLayers.Control.DrawFeature(lyr, OpenLayers.Handler.Path, {'displayClass': 'olControlDrawFeaturePath'}); - } else if ({{ module }}.is_polygon){ - draw_ctl = new OpenLayers.Control.DrawFeature(lyr, OpenLayers.Handler.Polygon, {'displayClass': 'olControlDrawFeaturePolygon'}); - } else if ({{ module }}.is_point){ - draw_ctl = new OpenLayers.Control.DrawFeature(lyr, OpenLayers.Handler.Point, {'displayClass': 'olControlDrawFeaturePoint'}); + {{ module }}.controls = [new OpenLayers.Control.Navigation()]; + if (!{{ module }}.modifiable && lyr.features.length) return; + if ({{ module }}.is_linestring || {{ module }}.is_generic){ + {{ module }}.controls.push(new OpenLayers.Control.DrawFeature(lyr, OpenLayers.Handler.Path, {'displayClass': 'olControlDrawFeaturePath'})); + } + if ({{ module }}.is_polygon || {{ module }}.is_generic){ + {{ module }}.controls.push(new OpenLayers.Control.DrawFeature(lyr, OpenLayers.Handler.Polygon, {'displayClass': 'olControlDrawFeaturePolygon'})); + } + if ({{ module }}.is_point || {{ module }}.is_generic){ + {{ module }}.controls.push(new OpenLayers.Control.DrawFeature(lyr, OpenLayers.Handler.Point, {'displayClass': 'olControlDrawFeaturePoint'})); } if ({{ module }}.modifiable){ - var mod = new OpenLayers.Control.ModifyFeature(lyr, {'displayClass': 'olControlModifyFeature'}); - {{ module }}.controls = [nav, draw_ctl, mod]; - } else { - if(!lyr.features.length){ - {{ module }}.controls = [nav, draw_ctl]; - } else { - {{ module }}.controls = [nav]; - } + {{ module }}.controls.push(new OpenLayers.Control.ModifyFeature(lyr, {'displayClass': 'olControlModifyFeature'})); } }; {{ module }}.init = function(){ diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index c8012ab7c2..dd7a9a463e 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -134,6 +134,9 @@ Minor features * SimpleLazyObjects will now present more helpful representations in shell debugging situations. +* Generic :class:`~django.contrib.gis.db.models.GeometryField` is now editable + with the OpenLayers widget in the admin. + Backwards incompatible changes in 1.6 ===================================== -- cgit v1.3 From 63c52dcbcdd47cb1a47662846dfe4e1812d2444c Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Sun, 10 Mar 2013 15:57:51 +0100 Subject: Fixed #20008 -- Removed trailing slash in Wikipedia link Thanks senden9 at gmail.com for the report. --- docs/intro/tutorial05.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/intro/tutorial05.txt b/docs/intro/tutorial05.txt index 7af4eb3edb..7fb30fbb88 100644 --- a/docs/intro/tutorial05.txt +++ b/docs/intro/tutorial05.txt @@ -121,7 +121,7 @@ the next time you make a change, either when you add a new feature or fix a bug. So let's do that right away. -.. _test-driven development: http://en.wikipedia.org/wiki/Test-driven_development/ +.. _test-driven development: http://en.wikipedia.org/wiki/Test-driven_development Writing our first test ====================== -- cgit v1.3 From b3c6a20e715e9d4735d832adbffc1c274fbc117c Mon Sep 17 00:00:00 2001 From: Jonathan Loy Date: Sun, 10 Mar 2013 13:51:07 -0400 Subject: Fixed #20018: Added backtick to fix reference Fixed #20018 --- docs/ref/models/fields.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/ref/models/fields.txt b/docs/ref/models/fields.txt index f29f41c11e..7eed80e9c4 100644 --- a/docs/ref/models/fields.txt +++ b/docs/ref/models/fields.txt @@ -362,7 +362,7 @@ to filter a queryset on a ``BinaryField`` value. Although you might think about storing files in the database, consider that it is bad design in 99% of the cases. This field is *not* a replacement for - proper :ref.`static files handling. + proper :ref:`static files ` handling. ``BooleanField`` ---------------- -- cgit v1.3 From 9cec689e6a7e299b3416519ee075b2316ecc5a64 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Mon, 11 Mar 2013 12:04:29 +0100 Subject: Moved a warning in the 1.6 notes back to its expected location. --- docs/releases/1.6.txt | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'docs') diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index dd7a9a463e..d78d594c90 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -140,6 +140,14 @@ Minor features Backwards incompatible changes in 1.6 ===================================== +.. warning:: + + In addition to the changes outlined in this section, be sure to review the + :doc:`deprecation plan ` for any features that + have been removed. If you haven't updated your code within the + deprecation timeline for a given feature, its removal may appear as a + backwards incompatible change. + * The ``django.db.models.query.EmptyQuerySet`` can't be instantiated any more - it is only usable as a marker class for checking if :meth:`~django.db.models.query.QuerySet.none` has been called: @@ -223,15 +231,6 @@ Backwards incompatible changes in 1.6 are silently truncated; on Oracle, an exception is generated. No database change is needed for SQLite or PostgreSQL databases. - -.. warning:: - - In addition to the changes outlined in this section, be sure to review the - :doc:`deprecation plan ` for any features that - have been removed. If you haven't updated your code within the - deprecation timeline for a given feature, its removal may appear as a - backwards incompatible change. - Features deprecated in 1.6 ========================== -- cgit v1.3 From 7aacde84f2b499d9c35741cbfccb621af6b48903 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sat, 2 Mar 2013 20:25:25 +0100 Subject: Made transaction.managed a no-op and deprecated it. enter_transaction_management() was nearly always followed by managed(). In three places it wasn't, but they will all be refactored eventually. The "forced" keyword argument avoids introducing behavior changes until then. This is mostly backwards-compatible, except, of course, for managed itself. There's a minor difference in _enter_transaction_management: the top self.transaction_state now contains the new 'managed' state rather than the previous one. Django doesn't access self.transaction_state in _enter_transaction_management. --- django/core/management/commands/loaddata.py | 1 - django/db/backends/__init__.py | 29 +++++++---------------------- django/db/models/deletion.py | 2 +- django/db/models/query.py | 4 ++-- django/db/transaction.py | 18 ++++++------------ django/middleware/transaction.py | 1 - django/test/testcases.py | 4 ---- docs/internals/deprecation.txt | 6 ++++-- tests/delete_regress/tests.py | 4 +--- tests/middleware/tests.py | 6 +----- tests/requests/tests.py | 2 -- tests/select_for_update/tests.py | 3 --- tests/serializers/tests.py | 1 - tests/transactions_regress/tests.py | 5 ----- 14 files changed, 22 insertions(+), 64 deletions(-) (limited to 'docs') diff --git a/django/core/management/commands/loaddata.py b/django/core/management/commands/loaddata.py index ed47b8fbf1..77b9a44a43 100644 --- a/django/core/management/commands/loaddata.py +++ b/django/core/management/commands/loaddata.py @@ -75,7 +75,6 @@ class Command(BaseCommand): if commit: transaction.commit_unless_managed(using=self.using) transaction.enter_transaction_management(using=self.using) - transaction.managed(True, using=self.using) class SingleZipReader(zipfile.ZipFile): def __init__(self, *args, **kwargs): diff --git a/django/db/backends/__init__.py b/django/db/backends/__init__.py index fe26c98baf..f11ee35260 100644 --- a/django/db/backends/__init__.py +++ b/django/db/backends/__init__.py @@ -234,7 +234,7 @@ class BaseDatabaseWrapper(object): ##### Generic transaction management methods ##### - def enter_transaction_management(self, managed=True): + def enter_transaction_management(self, managed=True, forced=False): """ Enters transaction management for a running thread. It must be balanced with the appropriate leave_transaction_management call, since the actual state is @@ -243,12 +243,14 @@ class BaseDatabaseWrapper(object): The state and dirty flag are carried over from the surrounding block or from the settings, if there is no surrounding block (dirty is always false when no current block is running). + + If you switch off transaction management and there is a pending + commit/rollback, the data will be commited, unless "forced" is True. """ - if self.transaction_state: - self.transaction_state.append(self.transaction_state[-1]) - else: - self.transaction_state.append(settings.TRANSACTIONS_MANAGED) + self.transaction_state.append(managed) self._enter_transaction_management(managed) + if not managed and self.is_dirty() and not forced: + self.commit() def leave_transaction_management(self): """ @@ -314,22 +316,6 @@ class BaseDatabaseWrapper(object): return self.transaction_state[-1] return settings.TRANSACTIONS_MANAGED - def managed(self, flag=True): - """ - Puts the transaction manager into a manual state: managed transactions have - to be committed explicitly by the user. If you switch off transaction - management and there is a pending commit/rollback, the data will be - commited. - """ - top = self.transaction_state - if top: - top[-1] = flag - if not flag and self.is_dirty(): - self.commit() - else: - raise TransactionManagementError("This code isn't under transaction " - "management") - def commit_unless_managed(self): """ Commits changes if the system is not in managed transaction mode. @@ -574,7 +560,6 @@ class BaseDatabaseFeatures(object): # otherwise autocommit will cause the confimation to # fail. self.connection.enter_transaction_management() - self.connection.managed(True) cursor = self.connection.cursor() cursor.execute('CREATE TABLE ROLLBACK_TEST (X INT)') self.connection.commit() diff --git a/django/db/models/deletion.py b/django/db/models/deletion.py index 81f74923c2..93ef0006cb 100644 --- a/django/db/models/deletion.py +++ b/django/db/models/deletion.py @@ -54,7 +54,7 @@ def force_managed(func): @wraps(func) def decorated(self, *args, **kwargs): if not transaction.is_managed(using=self.using): - transaction.enter_transaction_management(using=self.using) + transaction.enter_transaction_management(using=self.using, forced=True) forced_managed = True else: forced_managed = False diff --git a/django/db/models/query.py b/django/db/models/query.py index 30be30ca43..b41007ee4f 100644 --- a/django/db/models/query.py +++ b/django/db/models/query.py @@ -443,7 +443,7 @@ class QuerySet(object): connection = connections[self.db] fields = self.model._meta.local_fields if not transaction.is_managed(using=self.db): - transaction.enter_transaction_management(using=self.db) + transaction.enter_transaction_management(using=self.db, forced=True) forced_managed = True else: forced_managed = False @@ -582,7 +582,7 @@ class QuerySet(object): query = self.query.clone(sql.UpdateQuery) query.add_update_values(kwargs) if not transaction.is_managed(using=self.db): - transaction.enter_transaction_management(using=self.db) + transaction.enter_transaction_management(using=self.db, forced=True) forced_managed = True else: forced_managed = False diff --git a/django/db/transaction.py b/django/db/transaction.py index 809f14f628..09ce2abbd2 100644 --- a/django/db/transaction.py +++ b/django/db/transaction.py @@ -12,6 +12,8 @@ Managed transactions don't do those commits, but will need some kind of manual or implicit commits or rollbacks. """ +import warnings + from functools import wraps from django.db import connections, DEFAULT_DB_ALIAS @@ -49,7 +51,7 @@ def abort(using=None): """ get_connection(using).abort() -def enter_transaction_management(managed=True, using=None): +def enter_transaction_management(managed=True, using=None, forced=False): """ Enters transaction management for a running thread. It must be balanced with the appropriate leave_transaction_management call, since the actual state is @@ -59,7 +61,7 @@ def enter_transaction_management(managed=True, using=None): from the settings, if there is no surrounding block (dirty is always false when no current block is running). """ - get_connection(using).enter_transaction_management(managed) + get_connection(using).enter_transaction_management(managed, forced) def leave_transaction_management(using=None): """ @@ -105,13 +107,8 @@ def is_managed(using=None): return get_connection(using).is_managed() def managed(flag=True, using=None): - """ - Puts the transaction manager into a manual state: managed transactions have - to be committed explicitly by the user. If you switch off transaction - management and there is a pending commit/rollback, the data will be - commited. - """ - get_connection(using).managed(flag) + warnings.warn("'managed' no longer serves a purpose.", + PendingDeprecationWarning, stacklevel=2) def commit_unless_managed(using=None): """ @@ -224,7 +221,6 @@ def autocommit(using=None): """ def entering(using): enter_transaction_management(managed=False, using=using) - managed(False, using=using) def exiting(exc_value, using): leave_transaction_management(using=using) @@ -240,7 +236,6 @@ def commit_on_success(using=None): """ def entering(using): enter_transaction_management(using=using) - managed(True, using=using) def exiting(exc_value, using): try: @@ -268,7 +263,6 @@ def commit_manually(using=None): """ def entering(using): enter_transaction_management(using=using) - managed(True, using=using) def exiting(exc_value, using): leave_transaction_management(using=using) diff --git a/django/middleware/transaction.py b/django/middleware/transaction.py index 4440f377a7..b5a07a02b7 100644 --- a/django/middleware/transaction.py +++ b/django/middleware/transaction.py @@ -10,7 +10,6 @@ class TransactionMiddleware(object): def process_request(self, request): """Enters transaction management""" transaction.enter_transaction_management() - transaction.managed(True) def process_exception(self, request, exception): """Rolls back the database and leaves transaction management""" diff --git a/django/test/testcases.py b/django/test/testcases.py index 44ddb624d6..7f6b1a49ba 100644 --- a/django/test/testcases.py +++ b/django/test/testcases.py @@ -67,7 +67,6 @@ real_commit = transaction.commit real_rollback = transaction.rollback real_enter_transaction_management = transaction.enter_transaction_management real_leave_transaction_management = transaction.leave_transaction_management -real_managed = transaction.managed real_abort = transaction.abort def nop(*args, **kwargs): @@ -78,7 +77,6 @@ def disable_transaction_methods(): transaction.rollback = nop transaction.enter_transaction_management = nop transaction.leave_transaction_management = nop - transaction.managed = nop transaction.abort = nop def restore_transaction_methods(): @@ -86,7 +84,6 @@ def restore_transaction_methods(): transaction.rollback = real_rollback transaction.enter_transaction_management = real_enter_transaction_management transaction.leave_transaction_management = real_leave_transaction_management - transaction.managed = real_managed transaction.abort = real_abort @@ -833,7 +830,6 @@ class TestCase(TransactionTestCase): for db_name in self._databases_names(): transaction.enter_transaction_management(using=db_name) - transaction.managed(True, using=db_name) disable_transaction_methods() from django.contrib.sites.models import Site diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt index b5173af298..296f908a5b 100644 --- a/docs/internals/deprecation.txt +++ b/docs/internals/deprecation.txt @@ -339,8 +339,6 @@ these changes. * ``Model._meta.module_name`` was renamed to ``model_name``. -* The private API ``django.db.close_connection`` will be removed. - * Remove the backward compatible shims introduced to rename ``get_query_set`` and similar queryset methods. This affects the following classes: ``BaseModelAdmin``, ``ChangeList``, ``BaseCommentNode``, @@ -350,6 +348,10 @@ these changes. * Remove the backward compatible shims introduced to rename the attributes ``ChangeList.root_query_set`` and ``ChangeList.query_set``. +* The private API ``django.db.close_connection`` will be removed. + +* The private API ``django.transaction.managed`` will be removed. + 2.0 --- diff --git a/tests/delete_regress/tests.py b/tests/delete_regress/tests.py index 9fcc19ba71..e88c95e229 100644 --- a/tests/delete_regress/tests.py +++ b/tests/delete_regress/tests.py @@ -22,9 +22,7 @@ class DeleteLockingTest(TransactionTestCase): self.conn2 = new_connections[DEFAULT_DB_ALIAS] # Put both DB connections into managed transaction mode transaction.enter_transaction_management() - transaction.managed(True) self.conn2.enter_transaction_management() - self.conn2.managed(True) def tearDown(self): # Close down the second connection. @@ -335,7 +333,7 @@ class Ticket19102Tests(TestCase): ).select_related('orgunit').delete() self.assertFalse(Login.objects.filter(pk=self.l1.pk).exists()) self.assertTrue(Login.objects.filter(pk=self.l2.pk).exists()) - + @skipUnlessDBFeature("update_can_self_select") def test_ticket_19102_defer(self): with self.assertNumQueries(1): diff --git a/tests/middleware/tests.py b/tests/middleware/tests.py index 4e5fd8ea6b..122371c02c 100644 --- a/tests/middleware/tests.py +++ b/tests/middleware/tests.py @@ -692,7 +692,6 @@ class TransactionMiddlewareTest(TransactionTestCase): def test_managed_response(self): transaction.enter_transaction_management() - transaction.managed(True) Band.objects.create(name='The Beatles') self.assertTrue(transaction.is_dirty()) TransactionMiddleware().process_response(self.request, self.response) @@ -700,8 +699,7 @@ class TransactionMiddlewareTest(TransactionTestCase): self.assertEqual(Band.objects.count(), 1) def test_unmanaged_response(self): - transaction.enter_transaction_management() - transaction.managed(False) + transaction.enter_transaction_management(False) self.assertEqual(Band.objects.count(), 0) TransactionMiddleware().process_response(self.request, self.response) self.assertFalse(transaction.is_managed()) @@ -711,7 +709,6 @@ class TransactionMiddlewareTest(TransactionTestCase): def test_exception(self): transaction.enter_transaction_management() - transaction.managed(True) Band.objects.create(name='The Beatles') self.assertTrue(transaction.is_dirty()) TransactionMiddleware().process_exception(self.request, None) @@ -726,7 +723,6 @@ class TransactionMiddlewareTest(TransactionTestCase): raise IntegrityError() connections[DEFAULT_DB_ALIAS].commit = raise_exception transaction.enter_transaction_management() - transaction.managed(True) Band.objects.create(name='The Beatles') self.assertTrue(transaction.is_dirty()) with self.assertRaises(IntegrityError): diff --git a/tests/requests/tests.py b/tests/requests/tests.py index 4fdc17618b..2803d7995b 100644 --- a/tests/requests/tests.py +++ b/tests/requests/tests.py @@ -576,7 +576,6 @@ class DatabaseConnectionHandlingTests(TransactionTestCase): # Make sure there is an open connection connection.cursor() connection.enter_transaction_management() - connection.managed(True) signals.request_finished.send(sender=response._handler_class) self.assertEqual(len(connection.transaction_state), 0) @@ -585,7 +584,6 @@ class DatabaseConnectionHandlingTests(TransactionTestCase): connection.settings_dict['CONN_MAX_AGE'] = 0 connection.enter_transaction_management() - connection.managed(True) connection.set_dirty() # Test that the rollback doesn't succeed (for example network failure # could cause this). diff --git a/tests/select_for_update/tests.py b/tests/select_for_update/tests.py index b9716bd797..c2fa22705a 100644 --- a/tests/select_for_update/tests.py +++ b/tests/select_for_update/tests.py @@ -25,7 +25,6 @@ class SelectForUpdateTests(TransactionTestCase): def setUp(self): transaction.enter_transaction_management() - transaction.managed(True) self.person = Person.objects.create(name='Reinhardt') # We have to commit here so that code in run_select_for_update can @@ -37,7 +36,6 @@ class SelectForUpdateTests(TransactionTestCase): new_connections = ConnectionHandler(settings.DATABASES) self.new_connection = new_connections[DEFAULT_DB_ALIAS] self.new_connection.enter_transaction_management() - self.new_connection.managed(True) # We need to set settings.DEBUG to True so we can capture # the output SQL to examine. @@ -162,7 +160,6 @@ class SelectForUpdateTests(TransactionTestCase): # We need to enter transaction management again, as this is done on # per-thread basis transaction.enter_transaction_management() - transaction.managed(True) people = list( Person.objects.all().select_for_update(nowait=nowait) ) diff --git a/tests/serializers/tests.py b/tests/serializers/tests.py index 34d0f5f1b1..a96a1af748 100644 --- a/tests/serializers/tests.py +++ b/tests/serializers/tests.py @@ -268,7 +268,6 @@ class SerializersTransactionTestBase(object): # within a transaction in order to test forward reference # handling. transaction.enter_transaction_management() - transaction.managed(True) objs = serializers.deserialize(self.serializer_name, self.fwd_ref_str) with connection.constraint_checks_disabled(): for obj in objs: diff --git a/tests/transactions_regress/tests.py b/tests/transactions_regress/tests.py index 6ba04892cd..0af7605339 100644 --- a/tests/transactions_regress/tests.py +++ b/tests/transactions_regress/tests.py @@ -223,7 +223,6 @@ class TestNewConnection(TransactionTestCase): def test_commit_unless_managed_in_managed(self): cursor = connection.cursor() connection.enter_transaction_management() - transaction.managed(True) cursor.execute("INSERT into transactions_regress_mod (fld) values (2)") connection.commit_unless_managed() self.assertTrue(connection.is_dirty()) @@ -280,7 +279,6 @@ class TestPostgresAutocommitAndIsolation(TransactionTestCase): def test_transaction_management(self): transaction.enter_transaction_management() - transaction.managed(True) self.assertEqual(connection.isolation_level, self._serializable) transaction.leave_transaction_management() @@ -288,7 +286,6 @@ class TestPostgresAutocommitAndIsolation(TransactionTestCase): def test_transaction_stacking(self): transaction.enter_transaction_management() - transaction.managed(True) self.assertEqual(connection.isolation_level, self._serializable) transaction.enter_transaction_management() @@ -302,13 +299,11 @@ class TestPostgresAutocommitAndIsolation(TransactionTestCase): def test_enter_autocommit(self): transaction.enter_transaction_management() - transaction.managed(True) self.assertEqual(connection.isolation_level, self._serializable) list(Mod.objects.all()) self.assertTrue(transaction.is_dirty()) # Enter autocommit mode again. transaction.enter_transaction_management(False) - transaction.managed(False) self.assertFalse(transaction.is_dirty()) self.assertEqual( connection.connection.get_transaction_status(), -- cgit v1.3 From f5156194945661d217523d6648dfb9b48707ec95 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sat, 2 Mar 2013 13:47:46 +0100 Subject: Added an API to control database-level autocommit. --- django/db/backends/__init__.py | 14 ++++++++++++++ django/db/backends/creation.py | 6 +++++- django/db/backends/dummy/base.py | 1 + django/db/backends/mysql/base.py | 3 +++ django/db/backends/oracle/base.py | 3 +++ django/db/backends/oracle/creation.py | 3 --- django/db/backends/postgresql_psycopg2/base.py | 8 ++++++++ django/db/backends/postgresql_psycopg2/creation.py | 3 --- django/db/backends/sqlite3/base.py | 11 +++++++++++ django/db/backends/sqlite3/creation.py | 3 --- django/db/transaction.py | 12 ++++++++++++ django/test/testcases.py | 3 +++ docs/internals/deprecation.txt | 7 ++++--- docs/topics/db/transactions.txt | 17 +++++++++++++++++ 14 files changed, 81 insertions(+), 13 deletions(-) (limited to 'docs') diff --git a/django/db/backends/__init__.py b/django/db/backends/__init__.py index f11ee35260..379416fad7 100644 --- a/django/db/backends/__init__.py +++ b/django/db/backends/__init__.py @@ -44,6 +44,7 @@ class BaseDatabaseWrapper(object): self.savepoint_state = 0 # Transaction management related attributes + self.autocommit = False self.transaction_state = [] # Tracks if the connection is believed to be in transaction. This is # set somewhat aggressively, as the DBAPI doesn't make it easy to @@ -232,6 +233,12 @@ class BaseDatabaseWrapper(object): """ pass + def _set_autocommit(self, autocommit): + """ + Backend-specific implementation to enable or disable autocommit. + """ + raise NotImplementedError + ##### Generic transaction management methods ##### def enter_transaction_management(self, managed=True, forced=False): @@ -274,6 +281,13 @@ class BaseDatabaseWrapper(object): raise TransactionManagementError( "Transaction managed block ended with pending COMMIT/ROLLBACK") + def set_autocommit(self, autocommit=True): + """ + Enable or disable autocommit. + """ + self._set_autocommit(autocommit) + self.autocommit = autocommit + def abort(self): """ Roll back any ongoing transaction and clean the transaction state diff --git a/django/db/backends/creation.py b/django/db/backends/creation.py index 70c24bc820..aa4fb82b12 100644 --- a/django/db/backends/creation.py +++ b/django/db/backends/creation.py @@ -1,6 +1,7 @@ import hashlib import sys import time +import warnings from django.conf import settings from django.db.utils import load_backend @@ -466,7 +467,10 @@ class BaseDatabaseCreation(object): anymore by Django code. Kept for compatibility with user code that might use it. """ - pass + warnings.warn( + "set_autocommit was moved from BaseDatabaseCreation to " + "BaseDatabaseWrapper.", PendingDeprecationWarning, stacklevel=2) + return self.connection.set_autocommit() def _prepare_for_test_db_ddl(self): """ diff --git a/django/db/backends/dummy/base.py b/django/db/backends/dummy/base.py index c59f037a27..a8c2d5bada 100644 --- a/django/db/backends/dummy/base.py +++ b/django/db/backends/dummy/base.py @@ -57,6 +57,7 @@ class DatabaseWrapper(BaseDatabaseWrapper): _savepoint_rollback = ignore _enter_transaction_management = complain _leave_transaction_management = ignore + _set_autocommit = complain set_dirty = complain set_clean = complain commit_unless_managed = complain diff --git a/django/db/backends/mysql/base.py b/django/db/backends/mysql/base.py index 400fe6cdac..39fd3695b7 100644 --- a/django/db/backends/mysql/base.py +++ b/django/db/backends/mysql/base.py @@ -445,6 +445,9 @@ class DatabaseWrapper(BaseDatabaseWrapper): except Database.NotSupportedError: pass + def _set_autocommit(self, autocommit): + self.connection.autocommit(autocommit) + def disable_constraint_checking(self): """ Disables foreign key checks, primarily for use in adding rows with forward references. Always returns True, diff --git a/django/db/backends/oracle/base.py b/django/db/backends/oracle/base.py index 60ee1ba632..d895c1583a 100644 --- a/django/db/backends/oracle/base.py +++ b/django/db/backends/oracle/base.py @@ -612,6 +612,9 @@ class DatabaseWrapper(BaseDatabaseWrapper): def _savepoint_commit(self, sid): pass + def _set_autocommit(self, autocommit): + self.connection.autocommit = autocommit + def check_constraints(self, table_names=None): """ To check constraints, we set constraints to immediate. Then, when, we're done we must ensure they diff --git a/django/db/backends/oracle/creation.py b/django/db/backends/oracle/creation.py index aaca74e8d1..5485830bf5 100644 --- a/django/db/backends/oracle/creation.py +++ b/django/db/backends/oracle/creation.py @@ -273,6 +273,3 @@ class DatabaseCreation(BaseDatabaseCreation): settings_dict['NAME'], self._test_database_user(), ) - - def set_autocommit(self): - self.connection.connection.autocommit = True diff --git a/django/db/backends/postgresql_psycopg2/base.py b/django/db/backends/postgresql_psycopg2/base.py index f9af507311..a14844433e 100644 --- a/django/db/backends/postgresql_psycopg2/base.py +++ b/django/db/backends/postgresql_psycopg2/base.py @@ -201,6 +201,14 @@ class DatabaseWrapper(BaseDatabaseWrapper): self.isolation_level = level self.features.uses_savepoints = bool(level) + def _set_autocommit(self, autocommit): + if autocommit: + level = psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT + else: + level = self.settings_dict["OPTIONS"].get('isolation_level', + psycopg2.extensions.ISOLATION_LEVEL_READ_COMMITTED) + self._set_isolation_level(level) + def set_dirty(self): if ((self.transaction_state and self.transaction_state[-1]) or not self.features.uses_autocommit): diff --git a/django/db/backends/postgresql_psycopg2/creation.py b/django/db/backends/postgresql_psycopg2/creation.py index b19926b440..e6400d79a1 100644 --- a/django/db/backends/postgresql_psycopg2/creation.py +++ b/django/db/backends/postgresql_psycopg2/creation.py @@ -78,9 +78,6 @@ class DatabaseCreation(BaseDatabaseCreation): ' text_pattern_ops')) return output - def set_autocommit(self): - self._prepare_for_test_db_ddl() - def _prepare_for_test_db_ddl(self): """Rollback and close the active transaction.""" # Make sure there is an open connection. diff --git a/django/db/backends/sqlite3/base.py b/django/db/backends/sqlite3/base.py index 416a6293f5..9a37dd17fe 100644 --- a/django/db/backends/sqlite3/base.py +++ b/django/db/backends/sqlite3/base.py @@ -355,6 +355,17 @@ class DatabaseWrapper(BaseDatabaseWrapper): if self.settings_dict['NAME'] != ":memory:": BaseDatabaseWrapper.close(self) + def _set_autocommit(self, autocommit): + if autocommit: + level = None + else: + # sqlite3's internal default is ''. It's different from None. + # See Modules/_sqlite/connection.c. + level = '' + # 'isolation_level' is a misleading API. + # SQLite always runs at the SERIALIZABLE isolation level. + self.connection.isolation_level = level + def check_constraints(self, table_names=None): """ Checks each table name in `table_names` for rows with invalid foreign key references. This method is diff --git a/django/db/backends/sqlite3/creation.py b/django/db/backends/sqlite3/creation.py index c90a697e35..a9fb273f7a 100644 --- a/django/db/backends/sqlite3/creation.py +++ b/django/db/backends/sqlite3/creation.py @@ -72,9 +72,6 @@ class DatabaseCreation(BaseDatabaseCreation): # Remove the SQLite database file os.remove(test_database_name) - def set_autocommit(self): - self.connection.connection.isolation_level = None - def test_db_signature(self): """ Returns a tuple that uniquely identifies a test database. diff --git a/django/db/transaction.py b/django/db/transaction.py index 09ce2abbd2..dd48e14bf4 100644 --- a/django/db/transaction.py +++ b/django/db/transaction.py @@ -39,6 +39,18 @@ def get_connection(using=None): using = DEFAULT_DB_ALIAS return connections[using] +def get_autocommit(using=None): + """ + Get the autocommit status of the connection. + """ + return get_connection(using).autocommit + +def set_autocommit(using=None, autocommit=True): + """ + Set the autocommit status of the connection. + """ + return get_connection(using).set_autocommit(autocommit) + def abort(using=None): """ Roll back any ongoing transactions and clean the transaction management diff --git a/django/test/testcases.py b/django/test/testcases.py index 7f6b1a49ba..4b9116e3bc 100644 --- a/django/test/testcases.py +++ b/django/test/testcases.py @@ -63,6 +63,7 @@ def to_list(value): value = [value] return value +real_set_autocommit = transaction.set_autocommit real_commit = transaction.commit real_rollback = transaction.rollback real_enter_transaction_management = transaction.enter_transaction_management @@ -73,6 +74,7 @@ def nop(*args, **kwargs): return def disable_transaction_methods(): + transaction.set_autocommit = nop transaction.commit = nop transaction.rollback = nop transaction.enter_transaction_management = nop @@ -80,6 +82,7 @@ def disable_transaction_methods(): transaction.abort = nop def restore_transaction_methods(): + transaction.set_autocommit = real_set_autocommit transaction.commit = real_commit transaction.rollback = real_rollback transaction.enter_transaction_management = real_enter_transaction_management diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt index 296f908a5b..74fbb563f0 100644 --- a/docs/internals/deprecation.txt +++ b/docs/internals/deprecation.txt @@ -348,9 +348,10 @@ these changes. * Remove the backward compatible shims introduced to rename the attributes ``ChangeList.root_query_set`` and ``ChangeList.query_set``. -* The private API ``django.db.close_connection`` will be removed. - -* The private API ``django.transaction.managed`` will be removed. +* The following private APIs will be removed: + - ``django.db.close_connection()`` + - ``django.db.backends.creation.BaseDatabaseCreation.set_autocommit()`` + - ``django.db.transaction.managed()`` 2.0 --- diff --git a/docs/topics/db/transactions.txt b/docs/topics/db/transactions.txt index 11755ff5c5..e145edf149 100644 --- a/docs/topics/db/transactions.txt +++ b/docs/topics/db/transactions.txt @@ -208,6 +208,23 @@ This applies to all database operations, not just write operations. Even if your transaction only reads from the database, the transaction must be committed or rolled back before you complete a request. +.. _managing-autocommit: + +Managing autocommit +=================== + +.. versionadded:: 1.6 + +Django provides a straightforward API to manage the autocommit state of each +database connection, if you need to. + +.. function:: get_autocommit(using=None) + +.. function:: set_autocommit(using=None, autocommit=True) + +These functions take a ``using`` argument which should be the name of a +database. If it isn't provided, Django uses the ``"default"`` database. + .. _deactivate-transaction-management: How to globally deactivate transaction management -- cgit v1.3 From 5e27debc5cba30c84f99151a84c5fd846a65b091 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sun, 3 Mar 2013 15:55:11 +0100 Subject: Enabled database-level autocommit for all backends. This is mostly a documentation change. It has the same backwards-incompatibility consequences as those described for PostgreSQL in a previous commit. --- django/db/backends/__init__.py | 2 + django/db/backends/postgresql_psycopg2/base.py | 1 - docs/ref/databases.txt | 58 ++----- docs/ref/request-response.txt | 4 +- docs/releases/1.6.txt | 22 +++ docs/topics/db/sql.txt | 61 +++---- docs/topics/db/transactions.txt | 230 +++++++++++++++++++------ 7 files changed, 238 insertions(+), 140 deletions(-) (limited to 'docs') diff --git a/django/db/backends/__init__.py b/django/db/backends/__init__.py index 26a84e6e60..4031e8f668 100644 --- a/django/db/backends/__init__.py +++ b/django/db/backends/__init__.py @@ -98,6 +98,8 @@ class BaseDatabaseWrapper(object): conn_params = self.get_connection_params() self.connection = self.get_new_connection(conn_params) self.init_connection_state() + if not settings.TRANSACTIONS_MANAGED: + self.set_autocommit() connection_created.send(sender=self.__class__, connection=self) def ensure_connection(self): diff --git a/django/db/backends/postgresql_psycopg2/base.py b/django/db/backends/postgresql_psycopg2/base.py index 6ea2dd3099..5c5f5e185a 100644 --- a/django/db/backends/postgresql_psycopg2/base.py +++ b/django/db/backends/postgresql_psycopg2/base.py @@ -136,7 +136,6 @@ class DatabaseWrapper(BaseDatabaseWrapper): self.connection.cursor().execute( self.ops.set_time_zone_sql(), [tz]) self.connection.set_isolation_level(self.isolation_level) - self.set_autocommit(not settings.TRANSACTIONS_MANAGED) def create_cursor(self): cursor = self.connection.cursor() diff --git a/docs/ref/databases.txt b/docs/ref/databases.txt index 4e435949a2..4dafb3774f 100644 --- a/docs/ref/databases.txt +++ b/docs/ref/databases.txt @@ -69,7 +69,6 @@ even ``0``, because it doesn't make sense to maintain a connection that's unlikely to be reused. This will help keep the number of simultaneous connections to this database small. - The development server creates a new thread for each request it handles, negating the effect of persistent connections. @@ -104,7 +103,8 @@ Optimizing PostgreSQL's configuration Django needs the following parameters for its database connections: - ``client_encoding``: ``'UTF8'``, -- ``default_transaction_isolation``: ``'read committed'``, +- ``default_transaction_isolation``: ``'read committed'`` by default, + or the value set in the connection options (see below), - ``timezone``: ``'UTC'`` when :setting:`USE_TZ` is ``True``, value of :setting:`TIME_ZONE` otherwise. @@ -118,30 +118,16 @@ will do some additional queries to set these parameters. .. _ALTER ROLE: http://www.postgresql.org/docs/current/interactive/sql-alterrole.html -Transaction handling ---------------------- - -:doc:`By default `, Django runs with an open -transaction which it commits automatically when any built-in, data-altering -model function is called. The PostgreSQL backends normally operate the same as -any other Django backend in this respect. - .. _postgresql-autocommit-mode: Autocommit mode -~~~~~~~~~~~~~~~ +--------------- -If your application is particularly read-heavy and doesn't make many -database writes, the overhead of a constantly open transaction can -sometimes be noticeable. For those situations, you can configure Django -to use *"autocommit"* behavior for the connection, meaning that each database -operation will normally be in its own transaction, rather than having -the transaction extend over multiple operations. In this case, you can -still manually start a transaction if you're doing something that -requires consistency across multiple database operations. The -autocommit behavior is enabled by setting the ``autocommit`` key in -the :setting:`OPTIONS` part of your database configuration in -:setting:`DATABASES`:: +.. versionchanged:: 1.6 + +In previous versions of Django, database-level autocommit could be enabled by +setting the ``autocommit`` key in the :setting:`OPTIONS` part of your database +configuration in :setting:`DATABASES`:: DATABASES = { # ... @@ -150,29 +136,11 @@ the :setting:`OPTIONS` part of your database configuration in }, } -In this configuration, Django still ensures that :ref:`delete() -` and :ref:`update() ` -queries run inside a single transaction, so that either all the affected -objects are changed or none of them are. - -.. admonition:: This is database-level autocommit - - This functionality is not the same as the :ref:`autocommit - ` decorator. That decorator is - a Django-level implementation that commits automatically after - data changing operations. The feature enabled using the - :setting:`OPTIONS` option provides autocommit behavior at the - database adapter level. It commits after *every* operation. - -If you are using this feature and performing an operation akin to delete or -updating that requires multiple operations, you are strongly recommended to -wrap you operations in manual transaction handling to ensure data consistency. -You should also audit your existing code for any instances of this behavior -before enabling this feature. It's faster, but it provides less automatic -protection for multi-call operations. +Since Django 1.6, autocommit is turned on by default. This configuration is +ignored and can be safely removed. Isolation level -~~~~~~~~~~~~~~~ +--------------- .. versionadded:: 1.6 @@ -200,7 +168,7 @@ such as ``REPEATABLE READ`` or ``SERIALIZABLE``, set it in the .. _postgresql-isolation-levels: http://www.postgresql.org/docs/devel/static/transaction-iso.html Indexes for ``varchar`` and ``text`` columns -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +-------------------------------------------- When specifying ``db_index=True`` on your model fields, Django typically outputs a single ``CREATE INDEX`` statement. However, if the database type @@ -457,7 +425,7 @@ Savepoints Both the Django ORM and MySQL (when using the InnoDB :ref:`storage engine `) support database :ref:`savepoints `, but this feature wasn't available in -Django until version 1.4 when such supports was added. +Django until version 1.4 when such support was added. If you use the MyISAM storage engine please be aware of the fact that you will receive database-generated errors if you try to use the :ref:`savepoint-related diff --git a/docs/ref/request-response.txt b/docs/ref/request-response.txt index 30f5e87100..6f620e17e2 100644 --- a/docs/ref/request-response.txt +++ b/docs/ref/request-response.txt @@ -814,8 +814,8 @@ generating large CSV files. .. admonition:: Performance considerations Django is designed for short-lived requests. Streaming responses will tie - a worker process and keep a database connection idle in transaction for - the entire duration of the response. This may result in poor performance. + a worker process for the entire duration of the response. This may result + in poor performance. Generally speaking, you should perform expensive tasks outside of the request-response cycle, rather than resorting to a streamed response. diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index d78d594c90..c55ef0ef38 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -30,6 +30,18 @@ prevention ` are turned on. If the default templates don't suit your tastes, you can use :ref:`custom project and app templates `. +Improved transaction management +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Django's transaction management was overhauled. Database-level autocommit is +now turned on by default. This makes transaction handling more explicit and +should improve performance. The existing APIs were deprecated, and new APIs +were introduced, as described in :doc:`/topics/db/transactions`. + +Please review carefully the list of :ref:`known backwards-incompatibilities +` to determine if you need to make changes in +your code. + Persistent database connections ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -148,6 +160,16 @@ Backwards incompatible changes in 1.6 deprecation timeline for a given feature, its removal may appear as a backwards incompatible change. +* Database-level autocommit is enabled by default in Django 1.6. While this + doesn't change the general spirit of Django's transaction management, there + are a few known backwards-incompatibities, described in the :ref:`transaction + management docs `. You should review your code + to determine if you're affected. + +* In previous versions, database-level autocommit was only an option for + PostgreSQL, and it was disabled by default. This option is now + :ref:`ignored `. + * The ``django.db.models.query.EmptyQuerySet`` can't be instantiated any more - it is only usable as a marker class for checking if :meth:`~django.db.models.query.QuerySet.none` has been called: diff --git a/docs/topics/db/sql.txt b/docs/topics/db/sql.txt index 6cc174a248..b2161fe65b 100644 --- a/docs/topics/db/sql.txt +++ b/docs/topics/db/sql.txt @@ -201,31 +201,32 @@ perform queries that don't map cleanly to models, or directly execute In these cases, you can always access the database directly, routing around the model layer entirely. -The object ``django.db.connection`` represents the -default database connection, and ``django.db.transaction`` represents the -default database transaction. To use the database connection, call -``connection.cursor()`` to get a cursor object. Then, call -``cursor.execute(sql, [params])`` to execute the SQL and ``cursor.fetchone()`` -or ``cursor.fetchall()`` to return the resulting rows. After performing a data -changing operation, you should then call -``transaction.commit_unless_managed()`` to ensure your changes are committed -to the database. If your query is purely a data retrieval operation, no commit -is required. For example:: +The object ``django.db.connection`` represents the default database +connection. To use the database connection, call ``connection.cursor()`` to +get a cursor object. Then, call ``cursor.execute(sql, [params])`` to execute +the SQL and ``cursor.fetchone()`` or ``cursor.fetchall()`` to return the +resulting rows. + +For example:: + + from django.db import connection def my_custom_sql(): - from django.db import connection, transaction cursor = connection.cursor() - # Data modifying operation - commit required cursor.execute("UPDATE bar SET foo = 1 WHERE baz = %s", [self.baz]) - transaction.commit_unless_managed() - # Data retrieval operation - no commit required cursor.execute("SELECT foo FROM bar WHERE baz = %s", [self.baz]) row = cursor.fetchone() return row +.. versionchanged:: 1.6 + In Django 1.5 and earlier, after performing a data changing operation, you + had to call ``transaction.commit_unless_managed()`` to ensure your changes + were committed to the database. Since Django now defaults to database-level + autocommit, this isn't necessary any longer. + If you are using :doc:`more than one database `, you can use ``django.db.connections`` to obtain the connection (and cursor) for a specific database. ``django.db.connections`` is a dictionary-like @@ -235,7 +236,6 @@ alias:: from django.db import connections cursor = connections['my_db_alias'].cursor() # Your code here... - transaction.commit_unless_managed(using='my_db_alias') By default, the Python DB API will return results without their field names, which means you end up with a ``list`` of values, rather than a @@ -260,27 +260,18 @@ Here is an example of the difference between the two:: >>> dictfetchall(cursor) [{'parent_id': None, 'id': 54360982L}, {'parent_id': None, 'id': 54360880L}] - -.. _transactions-and-raw-sql: - -Transactions and raw SQL ------------------------- - -When you make a raw SQL call, Django will automatically mark the -current transaction as dirty. You must then ensure that the -transaction containing those calls is closed correctly. See :ref:`the -notes on the requirements of Django's transaction handling -` for more details. - Connections and cursors ----------------------- ``connection`` and ``cursor`` mostly implement the standard Python DB-API -described in :pep:`249` (except when it comes to :doc:`transaction handling -`). If you're not familiar with the Python DB-API, note -that the SQL statement in ``cursor.execute()`` uses placeholders, ``"%s"``, -rather than adding parameters directly within the SQL. If you use this -technique, the underlying database library will automatically add quotes and -escaping to your parameter(s) as necessary. (Also note that Django expects the -``"%s"`` placeholder, *not* the ``"?"`` placeholder, which is used by the SQLite -Python bindings. This is for the sake of consistency and sanity.) +described in :pep:`249` — except when it comes to :doc:`transaction handling +`. + +If you're not familiar with the Python DB-API, note that the SQL statement in +``cursor.execute()`` uses placeholders, ``"%s"``, rather than adding +parameters directly within the SQL. If you use this technique, the underlying +database library will automatically escape your parameters as necessary. + +Also note that Django expects the ``"%s"`` placeholder, *not* the ``"?"`` +placeholder, which is used by the SQLite Python bindings. This is for the sake +of consistency and sanity. diff --git a/docs/topics/db/transactions.txt b/docs/topics/db/transactions.txt index e145edf149..93c4a3b11d 100644 --- a/docs/topics/db/transactions.txt +++ b/docs/topics/db/transactions.txt @@ -4,21 +4,24 @@ Managing database transactions .. module:: django.db.transaction -Django gives you a few ways to control how database transactions are managed, -if you're using a database that supports transactions. +Django gives you a few ways to control how database transactions are managed. Django's default transaction behavior ===================================== -Django's default behavior is to run with an open transaction which it -commits automatically when any built-in, data-altering model function is -called. For example, if you call ``model.save()`` or ``model.delete()``, the -change will be committed immediately. +Django's default behavior is to run in autocommit mode. Each query is +immediately committed to the database. :ref:`See below for details +`. -This is much like the auto-commit setting for most databases. As soon as you -perform an action that needs to write to the database, Django produces the -``INSERT``/``UPDATE``/``DELETE`` statements and then does the ``COMMIT``. -There's no implicit ``ROLLBACK``. +.. + Django uses transactions or savepoints automatically to guarantee the + integrity of ORM operations that require multiple queries, especially + :ref:`delete() ` and :ref:`update() + ` queries. + +.. versionchanged:: 1.6 + Previous version of Django featured :ref:`a more complicated default + behavior `. Tying transactions to HTTP requests =================================== @@ -26,7 +29,7 @@ Tying transactions to HTTP requests The recommended way to handle transactions in Web requests is to tie them to the request and response phases via Django's ``TransactionMiddleware``. -It works like this: When a request starts, Django starts a transaction. If the +It works like this. When a request starts, Django starts a transaction. If the response is produced without problems, Django commits any pending transactions. If the view function produces an exception, Django rolls back any pending transactions. @@ -47,11 +50,11 @@ view functions, but also for all middleware modules that come after it. So if you use the session middleware after the transaction middleware, session creation will be part of the transaction. -The various cache middlewares are an exception: -``CacheMiddleware``, :class:`~django.middleware.cache.UpdateCacheMiddleware`, -and :class:`~django.middleware.cache.FetchFromCacheMiddleware` are never -affected. Even when using database caching, Django's cache backend uses its own -database cursor (which is mapped to its own database connection internally). +The various cache middlewares are an exception: ``CacheMiddleware``, +:class:`~django.middleware.cache.UpdateCacheMiddleware`, and +:class:`~django.middleware.cache.FetchFromCacheMiddleware` are never affected. +Even when using database caching, Django's cache backend uses its own database +connection internally. .. note:: @@ -116,7 +119,7 @@ managers, too. .. function:: autocommit Use the ``autocommit`` decorator to switch a view function to Django's - default commit behavior, regardless of the global transaction setting. + default commit behavior. Example:: @@ -195,14 +198,14 @@ managers, too. Requirements for transaction handling ===================================== -Django requires that every transaction that is opened is closed before -the completion of a request. If you are using :func:`autocommit` (the -default commit mode) or :func:`commit_on_success`, this will be done -for you automatically (with the exception of :ref:`executing custom SQL -`). However, if you are manually managing -transactions (using the :func:`commit_manually` decorator), you must -ensure that the transaction is either committed or rolled back before -a request is completed. +Django requires that every transaction that is opened is closed before the +completion of a request. + +If you are using :func:`autocommit` (the default commit mode) or +:func:`commit_on_success`, this will be done for you automatically. However, +if you are manually managing transactions (using the :func:`commit_manually` +decorator), you must ensure that the transaction is either committed or rolled +back before a request is completed. This applies to all database operations, not just write operations. Even if your transaction only reads from the database, the transaction must @@ -231,17 +234,17 @@ How to globally deactivate transaction management ================================================= Control freaks can totally disable all transaction management by setting -:setting:`TRANSACTIONS_MANAGED` to ``True`` in the Django settings file. +:setting:`TRANSACTIONS_MANAGED` to ``True`` in the Django settings file. If +you do this, Django won't enable autocommit. You'll get the regular behavior +of the underlying database library. -If you do this, Django won't provide any automatic transaction management -whatsoever. Middleware will no longer implicitly commit transactions, and -you'll need to roll management yourself. This even requires you to commit -changes done by middleware somewhere else. +This requires you to commit explicitly every transaction, even those started +by Django or by third-party libraries. Thus, this is best used in situations +where you want to run your own transaction-controlling middleware or do +something really strange. -Thus, this is best used in situations where you want to run your own -transaction-controlling middleware or do something really strange. In almost -all situations, you'll be better off using the default behavior, or the -transaction middleware, and only modify selected functions as needed. +In almost all situations, you'll be better off using the default behavior, or +the transaction middleware, and only modify selected functions as needed. .. _topics-db-transactions-savepoints: @@ -308,8 +311,11 @@ The following example demonstrates the use of savepoints:: transaction.commit() +Database-specific notes +======================= + Transactions in MySQL -===================== +--------------------- If you're using MySQL, your tables may or may not support transactions; it depends on your MySQL version and the table types you're using. (By @@ -318,14 +324,14 @@ peculiarities are outside the scope of this article, but the MySQL site has `information on MySQL transactions`_. If your MySQL setup does *not* support transactions, then Django will function -in auto-commit mode: Statements will be executed and committed as soon as +in autocommit mode: Statements will be executed and committed as soon as they're called. If your MySQL setup *does* support transactions, Django will handle transactions as explained in this document. .. _information on MySQL transactions: http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-transactions.html Handling exceptions within PostgreSQL transactions -================================================== +-------------------------------------------------- When a call to a PostgreSQL cursor raises an exception (typically ``IntegrityError``), all subsequent SQL in the same transaction will fail with @@ -338,7 +344,7 @@ force_insert/force_update flag, or invoking custom SQL. There are several ways to recover from this sort of error. Transaction rollback --------------------- +~~~~~~~~~~~~~~~~~~~~ The first option is to roll back the entire transaction. For example:: @@ -355,7 +361,7 @@ made by ``a.save()`` would be lost, even though that operation raised no error itself. Savepoint rollback ------------------- +~~~~~~~~~~~~~~~~~~ If you are using PostgreSQL 8 or later, you can use :ref:`savepoints ` to control the extent of a rollback. @@ -375,25 +381,135 @@ offending operation, rather than the entire transaction. For example:: In this example, ``a.save()`` will not be undone in the case where ``b.save()`` raises an exception. -Database-level autocommit -------------------------- +Under the hood +============== -With PostgreSQL 8.2 or later, there is an advanced option to run PostgreSQL -with :doc:`database-level autocommit `. If you use this option, -there is no constantly open transaction, so it is always possible to continue -after catching an exception. For example:: +.. _autocommit-details: - a.save() # succeeds - try: - b.save() # Could throw exception - except IntegrityError: - pass - c.save() # succeeds +Details on autocommit +--------------------- -.. note:: +In the SQL standards, each SQL query starts a transaction, unless one is +already in progress. Such transactions must then be committed or rolled back. + +This isn't always convenient for application developers. To alleviate this +problem, most databases provide an autocommit mode. When autocommit is turned +on, each SQL query is wrapped in its own transaction. In other words, the +transaction is not only automatically started, but also automatically +committed. + +:pep:`249`, the Python Database API Specification v2.0, requires autocommit to +be initially turned off. Django overrides this default and turns autocommit +on. + +To avoid this, you can :ref:`deactivate the transaction management +`, but it isn't recommended. + +.. versionchanged:: 1.6 + Before Django 1.6, autocommit was turned off, and it was emulated by + forcing a commit after write operations in the ORM. + +.. warning:: + + If you're using the database API directly — for instance, you're running + SQL queries with ``cursor.execute()`` — be aware that autocommit is on, + and consider wrapping your operations in a transaction to ensure + consistency. + +.. _transaction-states: + +Transaction management states +----------------------------- + +At any time, each database connection is in one of these two states: + +- **auto mode**: autocommit is enabled; +- **managed mode**: autocommit is disabled. + +Django starts in auto mode. ``TransactionMiddleware``, +:func:`commit_on_success` and :func:`commit_manually` activate managed mode; +:func:`autocommit` activates auto mode. + +Internally, Django keeps a stack of states. Activations and deactivations must +be balanced. + +For example, at the beginning of each HTTP request, ``TransactionMiddleware`` +switches to managed mode; at the end of the request, it commits or rollbacks, +and switches back to auto mode. + +.. admonition:: Nesting decorators / context managers + + :func:`commit_on_success` has two effects: it changes the transaction + state, and defines an atomic transaction block. + + Nesting with :func:`autocommit` and :func:`commit_manually` will give the + expected results in terms of transaction state, but not in terms of + transaction semantics. Most often, the inner block will commit, breaking + the atomicity of the outer block. + +Django currently doesn't provide any APIs to create transactions in auto mode. + +.. _transactions-changes-from-1.5: + +Changes from Django 1.5 and earlier +=================================== + +Since version 1.6, Django uses database-level autocommit in auto mode. + +Previously, it implemented application-level autocommit by triggering a commit +after each ORM write. + +As a consequence, each database query (for instance, an +ORM read) started a transaction that lasted until the next ORM write. Such +"automatic transactions" no longer exist in Django 1.6. + +There are four known scenarios where this is backwards-incompatible. + +Note that managed mode isn't affected at all. This section assumes auto mode. +See the :ref:`description of modes ` above. + +Sequences of custom SQL queries +------------------------------- + +If you're executing several :ref:`custom SQL queries ` +in a row, each one now runs in its own transaction, instead of sharing the +same "automatic transaction". If you need to enforce atomicity, you must wrap +the sequence of queries in :func:`commit_on_success`. + +To check for this problem, look for calls to ``cursor.execute()``. They're +usually followed by a call to ``transaction.commit_unless_managed``, which +isn't necessary any more and should be removed. + +Select for update +----------------- + +If you were relying on "automatic transactions" to provide locking between +:meth:`~django.db.models.query.QuerySet.select_for_update` and a subsequent +write operation — an extremely fragile design, but nonetheless possible — you +must wrap the relevant code in :func:`commit_on_success`. + +Using a high isolation level +---------------------------- + +If you were using the "repeatable read" isolation level or higher, and if you +relied on "automatic transactions" to guarantee consistency between successive +reads, the new behavior is backwards-incompatible. To maintain consistency, +you must wrap such sequences in :func:`commit_on_success`. + +MySQL defaults to "repeatable read" and SQLite to "serializable"; they may be +affected by this problem. + +At the "read committed" isolation level or lower, "automatic transactions" +have no effect on the semantics of any sequence of ORM operations. + +PostgreSQL and Oracle default to "read committed" and aren't affected, unless +you changed the isolation level. + +Using unsupported database features +----------------------------------- - This is not the same as the :ref:`autocommit decorator - `. When using database level autocommit - there is no database transaction at all. The ``autocommit`` decorator - still uses transactions, automatically committing each transaction when - a database modifying operation occurs. +With triggers, views, or functions, it's possible to make ORM reads result in +database modifications. Django 1.5 and earlier doesn't deal with this case and +it's theoretically possible to observe a different behavior after upgrading to +Django 1.6 or later. In doubt, use :func:`commit_on_success` to enforce +integrity. -- cgit v1.3 From ba5138b1c0253fcf390b7509ad7b954117b3be88 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Mon, 4 Mar 2013 13:12:59 +0100 Subject: Deprecated transaction.commit/rollback_unless_managed. Since "unless managed" now means "if database-level autocommit", committing or rolling back doesn't have any effect. Restored transactional integrity in a few places that relied on automatically-started transactions with a transitory API. --- django/contrib/gis/utils/layermapping.py | 4 -- django/contrib/sessions/backends/db.py | 1 - django/core/cache/backends/db.py | 7 +- .../core/management/commands/createcachetable.py | 21 +++--- django/core/management/commands/flush.py | 9 ++- django/core/management/commands/loaddata.py | 1 - django/core/management/commands/syncdb.py | 77 ++++++++++---------- django/db/__init__.py | 11 --- django/db/backends/__init__.py | 21 ------ django/db/backends/dummy/base.py | 2 - django/db/models/base.py | 84 +++++++++++----------- django/db/models/deletion.py | 2 - django/db/models/query.py | 4 -- django/db/transaction.py | 27 ++++--- django/test/testcases.py | 19 +---- docs/internals/deprecation.txt | 2 + tests/transactions_regress/tests.py | 32 --------- 17 files changed, 116 insertions(+), 208 deletions(-) (limited to 'docs') diff --git a/django/contrib/gis/utils/layermapping.py b/django/contrib/gis/utils/layermapping.py index e4ea44d0d2..51f70f5350 100644 --- a/django/contrib/gis/utils/layermapping.py +++ b/django/contrib/gis/utils/layermapping.py @@ -555,10 +555,6 @@ class LayerMapping(object): except SystemExit: raise except Exception as msg: - if self.transaction_mode == 'autocommit': - # Rolling back the transaction so that other model saves - # will work. - transaction.rollback_unless_managed() if strict: # Bailing out if the `strict` keyword is set. if not silent: diff --git a/django/contrib/sessions/backends/db.py b/django/contrib/sessions/backends/db.py index 47e89b66e5..30da0b7a10 100644 --- a/django/contrib/sessions/backends/db.py +++ b/django/contrib/sessions/backends/db.py @@ -74,7 +74,6 @@ class SessionStore(SessionBase): @classmethod def clear_expired(cls): Session.objects.filter(expire_date__lt=timezone.now()).delete() - transaction.commit_unless_managed() # At bottom to avoid circular import diff --git a/django/core/cache/backends/db.py b/django/core/cache/backends/db.py index bb91d8cb05..53d7f4d22a 100644 --- a/django/core/cache/backends/db.py +++ b/django/core/cache/backends/db.py @@ -10,7 +10,7 @@ except ImportError: from django.conf import settings from django.core.cache.backends.base import BaseCache -from django.db import connections, router, transaction, DatabaseError +from django.db import connections, router, DatabaseError from django.utils import timezone, six from django.utils.encoding import force_bytes @@ -70,7 +70,6 @@ class DatabaseCache(BaseDatabaseCache): cursor = connections[db].cursor() cursor.execute("DELETE FROM %s " "WHERE cache_key = %%s" % table, [key]) - transaction.commit_unless_managed(using=db) return default value = connections[db].ops.process_clob(row[1]) return pickle.loads(base64.b64decode(force_bytes(value))) @@ -124,10 +123,8 @@ class DatabaseCache(BaseDatabaseCache): [key, b64encoded, connections[db].ops.value_to_db_datetime(exp)]) except DatabaseError: # To be threadsafe, updates/inserts are allowed to fail silently - transaction.rollback_unless_managed(using=db) return False else: - transaction.commit_unless_managed(using=db) return True def delete(self, key, version=None): @@ -139,7 +136,6 @@ class DatabaseCache(BaseDatabaseCache): cursor = connections[db].cursor() cursor.execute("DELETE FROM %s WHERE cache_key = %%s" % table, [key]) - transaction.commit_unless_managed(using=db) def has_key(self, key, version=None): key = self.make_key(key, version=version) @@ -184,7 +180,6 @@ class DatabaseCache(BaseDatabaseCache): table = connections[db].ops.quote_name(self._table) cursor = connections[db].cursor() cursor.execute('DELETE FROM %s' % table) - transaction.commit_unless_managed(using=db) # For backwards compatibility class CacheClass(DatabaseCache): diff --git a/django/core/management/commands/createcachetable.py b/django/core/management/commands/createcachetable.py index 411042ee76..94b6b09400 100644 --- a/django/core/management/commands/createcachetable.py +++ b/django/core/management/commands/createcachetable.py @@ -53,14 +53,13 @@ class Command(LabelCommand): for i, line in enumerate(table_output): full_statement.append(' %s%s' % (line, i < len(table_output)-1 and ',' or '')) full_statement.append(');') - curs = connection.cursor() - try: - curs.execute("\n".join(full_statement)) - except DatabaseError as e: - transaction.rollback_unless_managed(using=db) - raise CommandError( - "Cache table '%s' could not be created.\nThe error was: %s." % - (tablename, force_text(e))) - for statement in index_output: - curs.execute(statement) - transaction.commit_unless_managed(using=db) + with transaction.commit_on_success_unless_managed(): + curs = connection.cursor() + try: + curs.execute("\n".join(full_statement)) + except DatabaseError as e: + raise CommandError( + "Cache table '%s' could not be created.\nThe error was: %s." % + (tablename, force_text(e))) + for statement in index_output: + curs.execute(statement) diff --git a/django/core/management/commands/flush.py b/django/core/management/commands/flush.py index 3bf1e9c672..9bd65e735c 100644 --- a/django/core/management/commands/flush.py +++ b/django/core/management/commands/flush.py @@ -57,18 +57,17 @@ Are you sure you want to do this? if confirm == 'yes': try: - cursor = connection.cursor() - for sql in sql_list: - cursor.execute(sql) + with transaction.commit_on_success_unless_managed(): + cursor = connection.cursor() + for sql in sql_list: + cursor.execute(sql) except Exception as e: - transaction.rollback_unless_managed(using=db) raise CommandError("""Database %s couldn't be flushed. Possible reasons: * The database isn't running or isn't configured correctly. * At least one of the expected database tables doesn't exist. * The SQL was invalid. Hint: Look at the output of 'django-admin.py sqlflush'. That's the SQL this command wasn't able to run. The full error: %s""" % (connection.settings_dict['NAME'], e)) - transaction.commit_unless_managed(using=db) # Emit the post sync signal. This allows individual # applications to respond as if the database had been diff --git a/django/core/management/commands/loaddata.py b/django/core/management/commands/loaddata.py index 77b9a44a43..674e6be7b0 100644 --- a/django/core/management/commands/loaddata.py +++ b/django/core/management/commands/loaddata.py @@ -73,7 +73,6 @@ class Command(BaseCommand): # Start transaction management. All fixtures are installed in a # single transaction to ensure that all references are resolved. if commit: - transaction.commit_unless_managed(using=self.using) transaction.enter_transaction_management(using=self.using) class SingleZipReader(zipfile.ZipFile): diff --git a/django/core/management/commands/syncdb.py b/django/core/management/commands/syncdb.py index 4ce2910fb5..e7e11a8c90 100644 --- a/django/core/management/commands/syncdb.py +++ b/django/core/management/commands/syncdb.py @@ -83,26 +83,25 @@ class Command(NoArgsCommand): # Create the tables for each model if verbosity >= 1: self.stdout.write("Creating tables ...\n") - for app_name, model_list in manifest.items(): - for model in model_list: - # Create the model's database table, if it doesn't already exist. - if verbosity >= 3: - self.stdout.write("Processing %s.%s model\n" % (app_name, model._meta.object_name)) - sql, references = connection.creation.sql_create_model(model, self.style, seen_models) - seen_models.add(model) - created_models.add(model) - for refto, refs in references.items(): - pending_references.setdefault(refto, []).extend(refs) - if refto in seen_models: - sql.extend(connection.creation.sql_for_pending_references(refto, self.style, pending_references)) - sql.extend(connection.creation.sql_for_pending_references(model, self.style, pending_references)) - if verbosity >= 1 and sql: - self.stdout.write("Creating table %s\n" % model._meta.db_table) - for statement in sql: - cursor.execute(statement) - tables.append(connection.introspection.table_name_converter(model._meta.db_table)) - - transaction.commit_unless_managed(using=db) + with transaction.commit_on_success_unless_managed(using=db): + for app_name, model_list in manifest.items(): + for model in model_list: + # Create the model's database table, if it doesn't already exist. + if verbosity >= 3: + self.stdout.write("Processing %s.%s model\n" % (app_name, model._meta.object_name)) + sql, references = connection.creation.sql_create_model(model, self.style, seen_models) + seen_models.add(model) + created_models.add(model) + for refto, refs in references.items(): + pending_references.setdefault(refto, []).extend(refs) + if refto in seen_models: + sql.extend(connection.creation.sql_for_pending_references(refto, self.style, pending_references)) + sql.extend(connection.creation.sql_for_pending_references(model, self.style, pending_references)) + if verbosity >= 1 and sql: + self.stdout.write("Creating table %s\n" % model._meta.db_table) + for statement in sql: + cursor.execute(statement) + tables.append(connection.introspection.table_name_converter(model._meta.db_table)) # Send the post_syncdb signal, so individual apps can do whatever they need # to do at this point. @@ -122,17 +121,16 @@ class Command(NoArgsCommand): if custom_sql: if verbosity >= 2: self.stdout.write("Installing custom SQL for %s.%s model\n" % (app_name, model._meta.object_name)) - try: - for sql in custom_sql: - cursor.execute(sql) - except Exception as e: - self.stderr.write("Failed to install custom SQL for %s.%s model: %s\n" % \ - (app_name, model._meta.object_name, e)) - if show_traceback: - traceback.print_exc() - transaction.rollback_unless_managed(using=db) - else: - transaction.commit_unless_managed(using=db) + with transaction.commit_on_success_unless_managed(using=db): + try: + for sql in custom_sql: + cursor.execute(sql) + except Exception as e: + self.stderr.write("Failed to install custom SQL for %s.%s model: %s\n" % \ + (app_name, model._meta.object_name, e)) + if show_traceback: + traceback.print_exc() + raise else: if verbosity >= 3: self.stdout.write("No custom SQL for %s.%s model\n" % (app_name, model._meta.object_name)) @@ -147,15 +145,14 @@ class Command(NoArgsCommand): if index_sql: if verbosity >= 2: self.stdout.write("Installing index for %s.%s model\n" % (app_name, model._meta.object_name)) - try: - for sql in index_sql: - cursor.execute(sql) - except Exception as e: - self.stderr.write("Failed to install index for %s.%s model: %s\n" % \ - (app_name, model._meta.object_name, e)) - transaction.rollback_unless_managed(using=db) - else: - transaction.commit_unless_managed(using=db) + with transaction.commit_on_success_unless_managed(using=db): + try: + for sql in index_sql: + cursor.execute(sql) + except Exception as e: + self.stderr.write("Failed to install index for %s.%s model: %s\n" % \ + (app_name, model._meta.object_name, e)) + raise # Load initial_data fixtures (unless that has been disabled) if load_initial_data: diff --git a/django/db/__init__.py b/django/db/__init__.py index 60fe8f6ce2..13ba68ba7e 100644 --- a/django/db/__init__.py +++ b/django/db/__init__.py @@ -77,14 +77,3 @@ def close_old_connections(**kwargs): conn.close_if_unusable_or_obsolete() signals.request_started.connect(close_old_connections) signals.request_finished.connect(close_old_connections) - -# Register an event that rolls back the connections -# when a Django request has an exception. -def _rollback_on_exception(**kwargs): - from django.db import transaction - for conn in connections: - try: - transaction.rollback_unless_managed(using=conn) - except DatabaseError: - pass -signals.got_request_exception.connect(_rollback_on_exception) diff --git a/django/db/backends/__init__.py b/django/db/backends/__init__.py index 4031e8f668..848f6df2d6 100644 --- a/django/db/backends/__init__.py +++ b/django/db/backends/__init__.py @@ -339,27 +339,6 @@ class BaseDatabaseWrapper(object): return self.transaction_state[-1] return settings.TRANSACTIONS_MANAGED - def commit_unless_managed(self): - """ - Commits changes if the system is not in managed transaction mode. - """ - self.validate_thread_sharing() - if not self.is_managed(): - self.commit() - self.clean_savepoints() - else: - self.set_dirty() - - def rollback_unless_managed(self): - """ - Rolls back changes if the system is not in managed transaction mode. - """ - self.validate_thread_sharing() - if not self.is_managed(): - self.rollback() - else: - self.set_dirty() - ##### Foreign key constraints checks handling ##### @contextmanager diff --git a/django/db/backends/dummy/base.py b/django/db/backends/dummy/base.py index 02f0b6462d..9a220ffd8b 100644 --- a/django/db/backends/dummy/base.py +++ b/django/db/backends/dummy/base.py @@ -58,8 +58,6 @@ class DatabaseWrapper(BaseDatabaseWrapper): _set_autocommit = complain set_dirty = complain set_clean = complain - commit_unless_managed = complain - rollback_unless_managed = ignore def __init__(self, *args, **kwargs): super(DatabaseWrapper, self).__init__(*args, **kwargs) diff --git a/django/db/models/base.py b/django/db/models/base.py index 543cdfc165..ab0e42d461 100644 --- a/django/db/models/base.py +++ b/django/db/models/base.py @@ -609,48 +609,48 @@ class Model(six.with_metaclass(ModelBase)): if update_fields: non_pks = [f for f in non_pks if f.name in update_fields or f.attname in update_fields] - # First, try an UPDATE. If that doesn't update anything, do an INSERT. - pk_val = self._get_pk_val(meta) - pk_set = pk_val is not None - record_exists = True - manager = cls._base_manager - if pk_set: - # Determine if we should do an update (pk already exists, forced update, - # no force_insert) - if ((force_update or update_fields) or (not force_insert and - manager.using(using).filter(pk=pk_val).exists())): - if force_update or non_pks: - values = [(f, None, (raw and getattr(self, f.attname) or f.pre_save(self, False))) for f in non_pks] - if values: - rows = manager.using(using).filter(pk=pk_val)._update(values) - if force_update and not rows: - raise DatabaseError("Forced update did not affect any rows.") - if update_fields and not rows: - raise DatabaseError("Save with update_fields did not affect any rows.") - else: - record_exists = False - if not pk_set or not record_exists: - if meta.order_with_respect_to: - # If this is a model with an order_with_respect_to - # autopopulate the _order field - field = meta.order_with_respect_to - order_value = manager.using(using).filter(**{field.name: getattr(self, field.attname)}).count() - self._order = order_value - - fields = meta.local_fields - if not pk_set: - if force_update or update_fields: - raise ValueError("Cannot force an update in save() with no primary key.") - fields = [f for f in fields if not isinstance(f, AutoField)] + with transaction.commit_on_success_unless_managed(using=using): + # First, try an UPDATE. If that doesn't update anything, do an INSERT. + pk_val = self._get_pk_val(meta) + pk_set = pk_val is not None + record_exists = True + manager = cls._base_manager + if pk_set: + # Determine if we should do an update (pk already exists, forced update, + # no force_insert) + if ((force_update or update_fields) or (not force_insert and + manager.using(using).filter(pk=pk_val).exists())): + if force_update or non_pks: + values = [(f, None, (raw and getattr(self, f.attname) or f.pre_save(self, False))) for f in non_pks] + if values: + rows = manager.using(using).filter(pk=pk_val)._update(values) + if force_update and not rows: + raise DatabaseError("Forced update did not affect any rows.") + if update_fields and not rows: + raise DatabaseError("Save with update_fields did not affect any rows.") + else: + record_exists = False + if not pk_set or not record_exists: + if meta.order_with_respect_to: + # If this is a model with an order_with_respect_to + # autopopulate the _order field + field = meta.order_with_respect_to + order_value = manager.using(using).filter(**{field.name: getattr(self, field.attname)}).count() + self._order = order_value + + fields = meta.local_fields + if not pk_set: + if force_update or update_fields: + raise ValueError("Cannot force an update in save() with no primary key.") + fields = [f for f in fields if not isinstance(f, AutoField)] - record_exists = False + record_exists = False - update_pk = bool(meta.has_auto_field and not pk_set) - result = manager._insert([self], fields=fields, return_id=update_pk, using=using, raw=raw) + update_pk = bool(meta.has_auto_field and not pk_set) + result = manager._insert([self], fields=fields, return_id=update_pk, using=using, raw=raw) - if update_pk: - setattr(self, meta.pk.attname, result) - transaction.commit_unless_managed(using=using) + if update_pk: + setattr(self, meta.pk.attname, result) # Store the database on which the object was saved self._state.db = using @@ -963,9 +963,9 @@ def method_set_order(ordered_obj, self, id_list, using=None): order_name = ordered_obj._meta.order_with_respect_to.name # FIXME: It would be nice if there was an "update many" version of update # for situations like this. - for i, j in enumerate(id_list): - ordered_obj.objects.filter(**{'pk': j, order_name: rel_val}).update(_order=i) - transaction.commit_unless_managed(using=using) + with transaction.commit_on_success_unless_managed(using=using): + for i, j in enumerate(id_list): + ordered_obj.objects.filter(**{'pk': j, order_name: rel_val}).update(_order=i) def method_get_order(ordered_obj, self): diff --git a/django/db/models/deletion.py b/django/db/models/deletion.py index 93ef0006cb..26f63391d5 100644 --- a/django/db/models/deletion.py +++ b/django/db/models/deletion.py @@ -62,8 +62,6 @@ def force_managed(func): func(self, *args, **kwargs) if forced_managed: transaction.commit(using=self.using) - else: - transaction.commit_unless_managed(using=self.using) finally: if forced_managed: transaction.leave_transaction_management(using=self.using) diff --git a/django/db/models/query.py b/django/db/models/query.py index b41007ee4f..22f71c6aee 100644 --- a/django/db/models/query.py +++ b/django/db/models/query.py @@ -460,8 +460,6 @@ class QuerySet(object): self._batched_insert(objs_without_pk, fields, batch_size) if forced_managed: transaction.commit(using=self.db) - else: - transaction.commit_unless_managed(using=self.db) finally: if forced_managed: transaction.leave_transaction_management(using=self.db) @@ -590,8 +588,6 @@ class QuerySet(object): rows = query.get_compiler(self.db).execute_sql(None) if forced_managed: transaction.commit(using=self.db) - else: - transaction.commit_unless_managed(using=self.db) finally: if forced_managed: transaction.leave_transaction_management(using=self.db) diff --git a/django/db/transaction.py b/django/db/transaction.py index dd48e14bf4..a8e80c6c02 100644 --- a/django/db/transaction.py +++ b/django/db/transaction.py @@ -123,16 +123,12 @@ def managed(flag=True, using=None): PendingDeprecationWarning, stacklevel=2) def commit_unless_managed(using=None): - """ - Commits changes if the system is not in managed transaction mode. - """ - get_connection(using).commit_unless_managed() + warnings.warn("'commit_unless_managed' is now a no-op.", + PendingDeprecationWarning, stacklevel=2) def rollback_unless_managed(using=None): - """ - Rolls back changes if the system is not in managed transaction mode. - """ - get_connection(using).rollback_unless_managed() + warnings.warn("'rollback_unless_managed' is now a no-op.", + PendingDeprecationWarning, stacklevel=2) ############### # Public APIs # @@ -280,3 +276,18 @@ def commit_manually(using=None): leave_transaction_management(using=using) return _transaction_func(entering, exiting, using) + +def commit_on_success_unless_managed(using=None): + """ + Transitory API to preserve backwards-compatibility while refactoring. + """ + if is_managed(using): + def entering(using): + pass + + def exiting(exc_value, using): + set_dirty(using=using) + + return _transaction_func(entering, exiting, using) + else: + return commit_on_success(using) diff --git a/django/test/testcases.py b/django/test/testcases.py index 4b9116e3bc..55673dca25 100644 --- a/django/test/testcases.py +++ b/django/test/testcases.py @@ -157,14 +157,6 @@ class DocTestRunner(doctest.DocTestRunner): doctest.DocTestRunner.__init__(self, *args, **kwargs) self.optionflags = doctest.ELLIPSIS - def report_unexpected_exception(self, out, test, example, exc_info): - doctest.DocTestRunner.report_unexpected_exception(self, out, test, - example, exc_info) - # Rollback, in case of database errors. Otherwise they'd have - # side effects on other tests. - for conn in connections: - transaction.rollback_unless_managed(using=conn) - class _AssertNumQueriesContext(CaptureQueriesContext): def __init__(self, test_case, num, connection): @@ -490,14 +482,10 @@ class TransactionTestCase(SimpleTestCase): conn.ops.sequence_reset_by_name_sql(no_style(), conn.introspection.sequence_list()) if sql_list: - try: + with transaction.commit_on_success_unless_managed(using=db_name): cursor = conn.cursor() for sql in sql_list: cursor.execute(sql) - except Exception: - transaction.rollback_unless_managed(using=db_name) - raise - transaction.commit_unless_managed(using=db_name) def _fixture_setup(self): for db_name in self._databases_names(include_mirrors=False): @@ -537,11 +525,6 @@ class TransactionTestCase(SimpleTestCase): conn.close() def _fixture_teardown(self): - # Roll back any pending transactions in order to avoid a deadlock - # during flush when TEST_MIRROR is used (#18984). - for conn in connections.all(): - conn.rollback_unless_managed() - for db in self._databases_names(include_mirrors=False): call_command('flush', verbosity=0, interactive=False, database=db, skip_validation=True, reset_sequences=False) diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt index 74fbb563f0..a81b16278f 100644 --- a/docs/internals/deprecation.txt +++ b/docs/internals/deprecation.txt @@ -352,6 +352,8 @@ these changes. - ``django.db.close_connection()`` - ``django.db.backends.creation.BaseDatabaseCreation.set_autocommit()`` - ``django.db.transaction.managed()`` + - ``django.db.transaction.commit_unless_managed()`` + - ``django.db.transaction.rollback_unless_managed()`` 2.0 --- diff --git a/tests/transactions_regress/tests.py b/tests/transactions_regress/tests.py index e6750cddcf..3d571fba2f 100644 --- a/tests/transactions_regress/tests.py +++ b/tests/transactions_regress/tests.py @@ -208,38 +208,6 @@ class TestNewConnection(TransactionTestCase): connection.leave_transaction_management() self.assertEqual(orig_dirty, connection._dirty) - # TODO: update this test to account for database-level autocommit. - @expectedFailure - def test_commit_unless_managed(self): - cursor = connection.cursor() - cursor.execute("INSERT into transactions_regress_mod (fld) values (2)") - connection.commit_unless_managed() - self.assertFalse(connection.is_dirty()) - self.assertEqual(len(Mod.objects.all()), 1) - self.assertTrue(connection.is_dirty()) - connection.commit_unless_managed() - self.assertFalse(connection.is_dirty()) - - # TODO: update this test to account for database-level autocommit. - @expectedFailure - def test_commit_unless_managed_in_managed(self): - cursor = connection.cursor() - connection.enter_transaction_management() - cursor.execute("INSERT into transactions_regress_mod (fld) values (2)") - connection.commit_unless_managed() - self.assertTrue(connection.is_dirty()) - connection.rollback() - self.assertFalse(connection.is_dirty()) - self.assertEqual(len(Mod.objects.all()), 0) - connection.commit() - connection.leave_transaction_management() - self.assertFalse(connection.is_dirty()) - self.assertEqual(len(Mod.objects.all()), 0) - self.assertTrue(connection.is_dirty()) - connection.commit_unless_managed() - self.assertFalse(connection.is_dirty()) - self.assertEqual(len(Mod.objects.all()), 0) - @skipUnless(connection.vendor == 'postgresql', "This test only valid for PostgreSQL") -- cgit v1.3 From 3bdc7a6a70bb030324fdebe9b1dce1fa5358f0c6 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Mon, 4 Mar 2013 15:24:01 +0100 Subject: Deprecated transaction.is_managed(). It's synchronized with the autocommit flag. --- django/db/backends/__init__.py | 30 ++++++++++++------------------ django/db/models/deletion.py | 2 +- django/db/models/query.py | 4 ++-- django/db/transaction.py | 12 +++++------- django/middleware/transaction.py | 2 +- docs/internals/deprecation.txt | 1 + tests/middleware/tests.py | 2 +- 7 files changed, 23 insertions(+), 30 deletions(-) (limited to 'docs') diff --git a/django/db/backends/__init__.py b/django/db/backends/__init__.py index 848f6df2d6..499bc32113 100644 --- a/django/db/backends/__init__.py +++ b/django/db/backends/__init__.py @@ -256,11 +256,12 @@ class BaseDatabaseWrapper(object): """ self.transaction_state.append(managed) - if managed and self.autocommit: - self.set_autocommit(False) - if not managed and self.is_dirty() and not forced: self.commit() + self.set_clean() + + if managed == self.autocommit: + self.set_autocommit(not managed) def leave_transaction_management(self): """ @@ -274,19 +275,20 @@ class BaseDatabaseWrapper(object): raise TransactionManagementError( "This code isn't under transaction management") - # That's the next state -- we already left the previous state behind. - managed = self.is_managed() + if self.transaction_state: + managed = self.transaction_state[-1] + else: + managed = settings.TRANSACTIONS_MANAGED if self._dirty: self.rollback() - if not managed and not self.autocommit: - self.set_autocommit(True) + if managed == self.autocommit: + self.set_autocommit(not managed) raise TransactionManagementError( "Transaction managed block ended with pending COMMIT/ROLLBACK") - if not managed and not self.autocommit: - self.set_autocommit(True) - + if managed == self.autocommit: + self.set_autocommit(not managed) def set_autocommit(self, autocommit=True): """ @@ -331,14 +333,6 @@ class BaseDatabaseWrapper(object): self._dirty = False self.clean_savepoints() - def is_managed(self): - """ - Checks whether the transaction manager is in manual or in auto state. - """ - if self.transaction_state: - return self.transaction_state[-1] - return settings.TRANSACTIONS_MANAGED - ##### Foreign key constraints checks handling ##### @contextmanager diff --git a/django/db/models/deletion.py b/django/db/models/deletion.py index 26f63391d5..27184c9350 100644 --- a/django/db/models/deletion.py +++ b/django/db/models/deletion.py @@ -53,7 +53,7 @@ def DO_NOTHING(collector, field, sub_objs, using): def force_managed(func): @wraps(func) def decorated(self, *args, **kwargs): - if not transaction.is_managed(using=self.using): + if transaction.get_autocommit(using=self.using): transaction.enter_transaction_management(using=self.using, forced=True) forced_managed = True else: diff --git a/django/db/models/query.py b/django/db/models/query.py index 22f71c6aee..834fe363b4 100644 --- a/django/db/models/query.py +++ b/django/db/models/query.py @@ -442,7 +442,7 @@ class QuerySet(object): self._for_write = True connection = connections[self.db] fields = self.model._meta.local_fields - if not transaction.is_managed(using=self.db): + if transaction.get_autocommit(using=self.db): transaction.enter_transaction_management(using=self.db, forced=True) forced_managed = True else: @@ -579,7 +579,7 @@ class QuerySet(object): self._for_write = True query = self.query.clone(sql.UpdateQuery) query.add_update_values(kwargs) - if not transaction.is_managed(using=self.db): + if transaction.get_autocommit(using=self.db): transaction.enter_transaction_management(using=self.db, forced=True) forced_managed = True else: diff --git a/django/db/transaction.py b/django/db/transaction.py index a8e80c6c02..49b67f4122 100644 --- a/django/db/transaction.py +++ b/django/db/transaction.py @@ -113,10 +113,8 @@ def clean_savepoints(using=None): get_connection(using).clean_savepoints() def is_managed(using=None): - """ - Checks whether the transaction manager is in manual or in auto state. - """ - return get_connection(using).is_managed() + warnings.warn("'is_managed' is deprecated.", + PendingDeprecationWarning, stacklevel=2) def managed(flag=True, using=None): warnings.warn("'managed' no longer serves a purpose.", @@ -281,7 +279,9 @@ def commit_on_success_unless_managed(using=None): """ Transitory API to preserve backwards-compatibility while refactoring. """ - if is_managed(using): + if get_autocommit(using): + return commit_on_success(using) + else: def entering(using): pass @@ -289,5 +289,3 @@ def commit_on_success_unless_managed(using=None): set_dirty(using=using) return _transaction_func(entering, exiting, using) - else: - return commit_on_success(using) diff --git a/django/middleware/transaction.py b/django/middleware/transaction.py index b5a07a02b7..35f765d99f 100644 --- a/django/middleware/transaction.py +++ b/django/middleware/transaction.py @@ -23,7 +23,7 @@ class TransactionMiddleware(object): def process_response(self, request, response): """Commits and leaves transaction management.""" - if transaction.is_managed(): + if not transaction.get_autocommit(): if transaction.is_dirty(): # Note: it is possible that the commit fails. If the reason is # closed connection or some similar reason, then there is diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt index a81b16278f..1c8618713a 100644 --- a/docs/internals/deprecation.txt +++ b/docs/internals/deprecation.txt @@ -351,6 +351,7 @@ these changes. * The following private APIs will be removed: - ``django.db.close_connection()`` - ``django.db.backends.creation.BaseDatabaseCreation.set_autocommit()`` + - ``django.db.transaction.is_managed()`` - ``django.db.transaction.managed()`` - ``django.db.transaction.commit_unless_managed()`` - ``django.db.transaction.rollback_unless_managed()`` diff --git a/tests/middleware/tests.py b/tests/middleware/tests.py index 17751dd158..e704fce342 100644 --- a/tests/middleware/tests.py +++ b/tests/middleware/tests.py @@ -689,7 +689,7 @@ class TransactionMiddlewareTest(TransactionTestCase): def test_request(self): TransactionMiddleware().process_request(self.request) - self.assertTrue(transaction.is_managed()) + self.assertFalse(transaction.get_autocommit()) def test_managed_response(self): transaction.enter_transaction_management() -- cgit v1.3 From 4b31a6a9e698a26e3e359e2ccf3da1505d114cf1 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Mon, 4 Mar 2013 15:57:04 +0100 Subject: Added support for savepoints in SQLite. Technically speaking they aren't usable yet. --- django/db/backends/sqlite3/base.py | 10 ++++++++++ docs/ref/databases.txt | 3 +-- docs/topics/db/transactions.txt | 35 +++++++++++++++++++++++++---------- tests/transactions_regress/tests.py | 4 ++++ 4 files changed, 40 insertions(+), 12 deletions(-) (limited to 'docs') diff --git a/django/db/backends/sqlite3/base.py b/django/db/backends/sqlite3/base.py index 9a37dd17fe..f537860a53 100644 --- a/django/db/backends/sqlite3/base.py +++ b/django/db/backends/sqlite3/base.py @@ -100,6 +100,10 @@ class DatabaseFeatures(BaseDatabaseFeatures): has_bulk_insert = True can_combine_inserts_with_and_without_auto_increment_pk = False + @cached_property + def uses_savepoints(self): + return Database.sqlite_version_info >= (3, 6, 8) + @cached_property def supports_stddev(self): """Confirm support for STDDEV and related stats functions @@ -355,6 +359,12 @@ class DatabaseWrapper(BaseDatabaseWrapper): if self.settings_dict['NAME'] != ":memory:": BaseDatabaseWrapper.close(self) + def _savepoint_allowed(self): + # When 'isolation_level' is None, Django doesn't provide a way to + # create a transaction (yet) so savepoints can't be created. When it + # isn't, sqlite3 commits before each savepoint -- it's a bug. + return False + def _set_autocommit(self, autocommit): if autocommit: level = None diff --git a/docs/ref/databases.txt b/docs/ref/databases.txt index 4dafb3774f..78c1bb3dda 100644 --- a/docs/ref/databases.txt +++ b/docs/ref/databases.txt @@ -424,8 +424,7 @@ Savepoints Both the Django ORM and MySQL (when using the InnoDB :ref:`storage engine `) support database :ref:`savepoints -`, but this feature wasn't available in -Django until version 1.4 when such support was added. +`. If you use the MyISAM storage engine please be aware of the fact that you will receive database-generated errors if you try to use the :ref:`savepoint-related diff --git a/docs/topics/db/transactions.txt b/docs/topics/db/transactions.txt index 93c4a3b11d..e2c8e4e3f5 100644 --- a/docs/topics/db/transactions.txt +++ b/docs/topics/db/transactions.txt @@ -251,11 +251,11 @@ the transaction middleware, and only modify selected functions as needed. Savepoints ========== -A savepoint is a marker within a transaction that enables you to roll back part -of a transaction, rather than the full transaction. Savepoints are available -with the PostgreSQL 8, Oracle and MySQL (when using the InnoDB storage engine) -backends. Other backends provide the savepoint functions, but they're empty -operations -- they don't actually do anything. +A savepoint is a marker within a transaction that enables you to roll back +part of a transaction, rather than the full transaction. Savepoints are +available with the SQLite (≥ 3.6.8), PostgreSQL, Oracle and MySQL (when using +the InnoDB storage engine) backends. Other backends provide the savepoint +functions, but they're empty operations -- they don't actually do anything. Savepoints aren't especially useful if you are using the default ``autocommit`` behavior of Django. However, if you are using @@ -314,6 +314,21 @@ The following example demonstrates the use of savepoints:: Database-specific notes ======================= +Savepoints in SQLite +-------------------- + +While SQLite ≥ 3.6.8 supports savepoints, a flaw in the design of the +:mod:`sqlite3` makes them hardly usable. + +When autocommit is enabled, savepoints don't make sense. When it's disabled, +:mod:`sqlite3` commits implicitly before savepoint-related statement. (It +commits before any statement other than ``SELECT``, ``INSERT``, ``UPDATE``, +``DELETE`` and ``REPLACE``.) + +As a consequence, savepoints are only usable if you start a transaction +manually while in autocommit mode, and Django doesn't provide an API to +achieve that. + Transactions in MySQL --------------------- @@ -363,11 +378,11 @@ itself. Savepoint rollback ~~~~~~~~~~~~~~~~~~ -If you are using PostgreSQL 8 or later, you can use :ref:`savepoints -` to control the extent of a rollback. -Before performing a database operation that could fail, you can set or update -the savepoint; that way, if the operation fails, you can roll back the single -offending operation, rather than the entire transaction. For example:: +You can use :ref:`savepoints ` to control +the extent of a rollback. Before performing a database operation that could +fail, you can set or update the savepoint; that way, if the operation fails, +you can roll back the single offending operation, rather than the entire +transaction. For example:: a.save() # Succeeds, and never undone by savepoint rollback try: diff --git a/tests/transactions_regress/tests.py b/tests/transactions_regress/tests.py index 3d571fba2f..e86db4d0aa 100644 --- a/tests/transactions_regress/tests.py +++ b/tests/transactions_regress/tests.py @@ -309,6 +309,8 @@ class TestManyToManyAddTransaction(TransactionTestCase): class SavepointTest(TransactionTestCase): + @skipIf(connection.vendor == 'sqlite', + "SQLite doesn't support savepoints in managed mode") @skipUnlessDBFeature('uses_savepoints') def test_savepoint_commit(self): @commit_manually @@ -324,6 +326,8 @@ class SavepointTest(TransactionTestCase): work() + @skipIf(connection.vendor == 'sqlite', + "SQLite doesn't support savepoints in managed mode") @skipIf(connection.vendor == 'mysql' and connection.features._mysql_storage_engine == 'MyISAM', "MyISAM MySQL storage engine doesn't support savepoints") -- cgit v1.3 From d7bc4fbc94df6c231d71dffa45cf337ff13512ee Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Mon, 4 Mar 2013 22:17:35 +0100 Subject: Implemented an 'atomic' decorator and context manager. Currently it only works in autocommit mode. Based on @xact by Christophe Pettus. --- AUTHORS | 1 + django/db/backends/__init__.py | 23 +++++- django/db/backends/sqlite3/base.py | 19 ++++- django/db/transaction.py | 157 +++++++++++++++++++++++++++++++++++-- docs/topics/db/transactions.txt | 97 +++++++++++++++++++++-- tests/transactions/models.py | 2 +- tests/transactions/tests.py | 154 +++++++++++++++++++++++++++++++++++- 7 files changed, 430 insertions(+), 23 deletions(-) (limited to 'docs') diff --git a/AUTHORS b/AUTHORS index 35a316d4c2..3c1cd81639 100644 --- a/AUTHORS +++ b/AUTHORS @@ -434,6 +434,7 @@ answer newbie questions, and generally made Django that much better: Andreas Pelme permonik@mesias.brnonet.cz peter@mymart.com + Christophe Pettus pgross@thoughtworks.com phaedo phil@produxion.net diff --git a/django/db/backends/__init__.py b/django/db/backends/__init__.py index 48190d3c62..818850bf43 100644 --- a/django/db/backends/__init__.py +++ b/django/db/backends/__init__.py @@ -50,6 +50,12 @@ class BaseDatabaseWrapper(object): # set somewhat aggressively, as the DBAPI doesn't make it easy to # deduce if the connection is in transaction or not. self._dirty = False + # Tracks if the connection is in a transaction managed by 'atomic' + self.in_atomic_block = False + # List of savepoints created by 'atomic' + self.savepoint_ids = [] + # Hack to provide compatibility with legacy transaction management + self._atomic_forced_unmanaged = False # Connection termination related attributes self.close_at = None @@ -148,7 +154,7 @@ class BaseDatabaseWrapper(object): def commit(self): """ - Does the commit itself and resets the dirty flag. + Commits a transaction and resets the dirty flag. """ self.validate_thread_sharing() self._commit() @@ -156,7 +162,7 @@ class BaseDatabaseWrapper(object): def rollback(self): """ - Does the rollback itself and resets the dirty flag. + Rolls back a transaction and resets the dirty flag. """ self.validate_thread_sharing() self._rollback() @@ -447,6 +453,12 @@ class BaseDatabaseWrapper(object): if must_close: self.close() + def _start_transaction_under_autocommit(self): + """ + Only required when autocommits_when_autocommit_is_off = True. + """ + raise NotImplementedError + class BaseDatabaseFeatures(object): allows_group_by_pk = False @@ -549,6 +561,10 @@ class BaseDatabaseFeatures(object): # Support for the DISTINCT ON clause can_distinct_on_fields = False + # Does the backend decide to commit before SAVEPOINT statements + # when autocommit is disabled? http://bugs.python.org/issue8145#msg109965 + autocommits_when_autocommit_is_off = False + def __init__(self, connection): self.connection = connection @@ -931,6 +947,9 @@ class BaseDatabaseOperations(object): return "BEGIN;" def end_transaction_sql(self, success=True): + """ + Returns the SQL statement required to end a transaction. + """ if not success: return "ROLLBACK;" return "COMMIT;" diff --git a/django/db/backends/sqlite3/base.py b/django/db/backends/sqlite3/base.py index f537860a53..f70c3872a8 100644 --- a/django/db/backends/sqlite3/base.py +++ b/django/db/backends/sqlite3/base.py @@ -99,6 +99,7 @@ class DatabaseFeatures(BaseDatabaseFeatures): supports_mixed_date_datetime_comparisons = False has_bulk_insert = True can_combine_inserts_with_and_without_auto_increment_pk = False + autocommits_when_autocommit_is_off = True @cached_property def uses_savepoints(self): @@ -360,10 +361,12 @@ class DatabaseWrapper(BaseDatabaseWrapper): BaseDatabaseWrapper.close(self) def _savepoint_allowed(self): - # When 'isolation_level' is None, Django doesn't provide a way to - # create a transaction (yet) so savepoints can't be created. When it - # isn't, sqlite3 commits before each savepoint -- it's a bug. - return False + # When 'isolation_level' is not None, sqlite3 commits before each + # savepoint; it's a bug. When it is None, savepoints don't make sense + # because autocommit is enabled. The only exception is inside atomic + # blocks. To work around that bug, on SQLite, atomic starts a + # transaction explicitly rather than simply disable autocommit. + return self.in_atomic_block def _set_autocommit(self, autocommit): if autocommit: @@ -413,6 +416,14 @@ class DatabaseWrapper(BaseDatabaseWrapper): def is_usable(self): return True + def _start_transaction_under_autocommit(self): + """ + Start a transaction explicitly in autocommit mode. + + Staying in autocommit mode works around a bug of sqlite3 that breaks + savepoints when autocommit is disabled. + """ + self.cursor().execute("BEGIN") FORMAT_QMARK_REGEX = re.compile(r'(?`. Tying transactions to HTTP requests -=================================== +----------------------------------- The recommended way to handle transactions in Web requests is to tie them to the request and response phases via Django's ``TransactionMiddleware``. @@ -63,6 +66,85 @@ connection internally. multiple databases and want transaction control over databases other than "default", you will need to write your own transaction middleware. +Controlling transactions explicitly +----------------------------------- + +.. versionadded:: 1.6 + +Django provides a single API to control database transactions. + +.. function:: atomic(using=None) + + This function creates an atomic block for writes to the database. + (Atomicity is the defining property of database transactions.) + + When the block completes successfully, the changes are committed to the + database. When it raises an exception, the changes are rolled back. + + ``atomic`` can be nested. In this case, when an inner block completes + successfully, its effects can still be rolled back if an exception is + raised in the outer block at a later point. + + ``atomic`` takes a ``using`` argument which should be the name of a + database. If this argument isn't provided, Django uses the ``"default"`` + database. + + ``atomic`` is usable both as a decorator:: + + from django.db import transaction + + @transaction.atomic + def viewfunc(request): + # This code executes inside a transaction. + do_stuff() + + and as a context manager:: + + from django.db import transaction + + def viewfunc(request): + # This code executes in autocommit mode (Django's default). + do_stuff() + + with transaction.atomic(): + # This code executes inside a transaction. + do_more_stuff() + + Wrapping ``atomic`` in a try/except block allows for natural handling of + integrity errors:: + + from django.db import IntegrityError, transaction + + @transaction.atomic + def viewfunc(request): + do_stuff() + + try: + with transaction.atomic(): + do_stuff_that_could_fail() + except IntegrityError: + handle_exception() + + do_more_stuff() + + In this example, even if ``do_stuff_that_could_fail()`` causes a database + error by breaking an integrity constraint, you can execute queries in + ``do_more_stuff()``, and the changes from ``do_stuff()`` are still there. + + In order to guarantee atomicity, ``atomic`` disables some APIs. Attempting + to commit, roll back, or change the autocommit state of the database + connection within an ``atomic`` block will raise an exception. + + ``atomic`` can only be used in autocommit mode. It will raise an exception + if autocommit is turned off. + + Under the hood, Django's transaction management code: + + - opens a transaction when entering the outermost ``atomic`` block; + - creates a savepoint when entering an inner ``atomic`` block; + - releases or rolls back to the savepoint when exiting an inner block; + - commits or rolls back the transaction when exiting the outermost block. + .. _transaction-management-functions: Controlling transaction management in views @@ -325,9 +407,8 @@ When autocommit is enabled, savepoints don't make sense. When it's disabled, commits before any statement other than ``SELECT``, ``INSERT``, ``UPDATE``, ``DELETE`` and ``REPLACE``.) -As a consequence, savepoints are only usable if you start a transaction -manually while in autocommit mode, and Django doesn't provide an API to -achieve that. +As a consequence, savepoints are only usable inside a transaction ie. inside +an :func:`atomic` block. Transactions in MySQL --------------------- diff --git a/tests/transactions/models.py b/tests/transactions/models.py index 0f8d6b16ec..6c2bcfd23f 100644 --- a/tests/transactions/models.py +++ b/tests/transactions/models.py @@ -22,4 +22,4 @@ class Reporter(models.Model): ordering = ('first_name', 'last_name') def __str__(self): - return "%s %s" % (self.first_name, self.last_name) + return ("%s %s" % (self.first_name, self.last_name)).strip() diff --git a/tests/transactions/tests.py b/tests/transactions/tests.py index a1edf53fcb..14252dd6dc 100644 --- a/tests/transactions/tests.py +++ b/tests/transactions/tests.py @@ -1,11 +1,163 @@ from __future__ import absolute_import +import sys + from django.db import connection, transaction, IntegrityError -from django.test import TransactionTestCase, skipUnlessDBFeature +from django.test import TestCase, TransactionTestCase, skipUnlessDBFeature +from django.utils import six +from django.utils.unittest import skipUnless from .models import Reporter +@skipUnless(connection.features.uses_savepoints, + "'atomic' requires transactions and savepoints.") +class AtomicTests(TransactionTestCase): + """ + Tests for the atomic decorator and context manager. + + The tests make assertions on internal attributes because there isn't a + robust way to ask the database for its current transaction state. + + Since the decorator syntax is converted into a context manager (see the + implementation), there are only a few basic tests with the decorator + syntax and the bulk of the tests use the context manager syntax. + """ + + def test_decorator_syntax_commit(self): + @transaction.atomic + def make_reporter(): + Reporter.objects.create(first_name="Tintin") + make_reporter() + self.assertQuerysetEqual(Reporter.objects.all(), ['']) + + def test_decorator_syntax_rollback(self): + @transaction.atomic + def make_reporter(): + Reporter.objects.create(first_name="Haddock") + raise Exception("Oops, that's his last name") + with six.assertRaisesRegex(self, Exception, "Oops"): + make_reporter() + self.assertQuerysetEqual(Reporter.objects.all(), []) + + def test_alternate_decorator_syntax_commit(self): + @transaction.atomic() + def make_reporter(): + Reporter.objects.create(first_name="Tintin") + make_reporter() + self.assertQuerysetEqual(Reporter.objects.all(), ['']) + + def test_alternate_decorator_syntax_rollback(self): + @transaction.atomic() + def make_reporter(): + Reporter.objects.create(first_name="Haddock") + raise Exception("Oops, that's his last name") + with six.assertRaisesRegex(self, Exception, "Oops"): + make_reporter() + self.assertQuerysetEqual(Reporter.objects.all(), []) + + def test_commit(self): + with transaction.atomic(): + Reporter.objects.create(first_name="Tintin") + self.assertQuerysetEqual(Reporter.objects.all(), ['']) + + def test_rollback(self): + with six.assertRaisesRegex(self, Exception, "Oops"): + with transaction.atomic(): + Reporter.objects.create(first_name="Haddock") + raise Exception("Oops, that's his last name") + self.assertQuerysetEqual(Reporter.objects.all(), []) + + def test_nested_commit_commit(self): + with transaction.atomic(): + Reporter.objects.create(first_name="Tintin") + with transaction.atomic(): + Reporter.objects.create(first_name="Archibald", last_name="Haddock") + self.assertQuerysetEqual(Reporter.objects.all(), + ['', '']) + + def test_nested_commit_rollback(self): + with transaction.atomic(): + Reporter.objects.create(first_name="Tintin") + with six.assertRaisesRegex(self, Exception, "Oops"): + with transaction.atomic(): + Reporter.objects.create(first_name="Haddock") + raise Exception("Oops, that's his last name") + self.assertQuerysetEqual(Reporter.objects.all(), ['']) + + def test_nested_rollback_commit(self): + with six.assertRaisesRegex(self, Exception, "Oops"): + with transaction.atomic(): + Reporter.objects.create(last_name="Tintin") + with transaction.atomic(): + Reporter.objects.create(last_name="Haddock") + raise Exception("Oops, that's his first name") + self.assertQuerysetEqual(Reporter.objects.all(), []) + + def test_nested_rollback_rollback(self): + with six.assertRaisesRegex(self, Exception, "Oops"): + with transaction.atomic(): + Reporter.objects.create(last_name="Tintin") + with six.assertRaisesRegex(self, Exception, "Oops"): + with transaction.atomic(): + Reporter.objects.create(first_name="Haddock") + raise Exception("Oops, that's his last name") + raise Exception("Oops, that's his first name") + self.assertQuerysetEqual(Reporter.objects.all(), []) + + def test_reuse_commit_commit(self): + atomic = transaction.atomic() + with atomic: + Reporter.objects.create(first_name="Tintin") + with atomic: + Reporter.objects.create(first_name="Archibald", last_name="Haddock") + self.assertQuerysetEqual(Reporter.objects.all(), + ['', '']) + + def test_reuse_commit_rollback(self): + atomic = transaction.atomic() + with atomic: + Reporter.objects.create(first_name="Tintin") + with six.assertRaisesRegex(self, Exception, "Oops"): + with atomic: + Reporter.objects.create(first_name="Haddock") + raise Exception("Oops, that's his last name") + self.assertQuerysetEqual(Reporter.objects.all(), ['']) + + def test_reuse_rollback_commit(self): + atomic = transaction.atomic() + with six.assertRaisesRegex(self, Exception, "Oops"): + with atomic: + Reporter.objects.create(last_name="Tintin") + with atomic: + Reporter.objects.create(last_name="Haddock") + raise Exception("Oops, that's his first name") + self.assertQuerysetEqual(Reporter.objects.all(), []) + + def test_reuse_rollback_rollback(self): + atomic = transaction.atomic() + with six.assertRaisesRegex(self, Exception, "Oops"): + with atomic: + Reporter.objects.create(last_name="Tintin") + with six.assertRaisesRegex(self, Exception, "Oops"): + with atomic: + Reporter.objects.create(first_name="Haddock") + raise Exception("Oops, that's his last name") + raise Exception("Oops, that's his first name") + self.assertQuerysetEqual(Reporter.objects.all(), []) + + +class AtomicInsideTransactionTests(AtomicTests): + """All basic tests for atomic should also pass within an existing transaction.""" + + def setUp(self): + self.atomic = transaction.atomic() + self.atomic.__enter__() + + def tearDown(self): + self.atomic.__exit__(*sys.exc_info()) + + class TransactionTests(TransactionTestCase): def create_a_reporter_then_fail(self, first, last): a = Reporter(first_name=first, last_name=last) -- cgit v1.3 From 7c46c8d5f27fe305507359588ca0635b6d87c59a Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Mon, 4 Mar 2013 23:26:31 +0100 Subject: Added some assertions to enforce the atomicity of atomic. --- django/db/__init__.py | 1 + django/db/backends/__init__.py | 15 ++ django/db/transaction.py | 18 +- docs/internals/deprecation.txt | 4 + docs/releases/1.3-alpha-1.txt | 6 +- docs/releases/1.3.txt | 6 +- docs/releases/1.6.txt | 17 +- docs/topics/db/transactions.txt | 439 +++++++++++++++------------------- tests/backends/tests.py | 15 +- tests/fixtures_model_package/tests.py | 11 +- tests/fixtures_regress/tests.py | 7 +- tests/middleware/tests.py | 6 +- tests/transactions/tests.py | 71 +++++- tests/transactions_regress/tests.py | 12 +- 14 files changed, 359 insertions(+), 269 deletions(-) (limited to 'docs') diff --git a/django/db/__init__.py b/django/db/__init__.py index 13ba68ba7e..08c901ab7b 100644 --- a/django/db/__init__.py +++ b/django/db/__init__.py @@ -70,6 +70,7 @@ signals.request_started.connect(reset_queries) # their lifetime. NB: abort() doesn't do anything outside of a transaction. def close_old_connections(**kwargs): for conn in connections.all(): + # Remove this when the legacy transaction management goes away. try: conn.abort() except DatabaseError: diff --git a/django/db/backends/__init__.py b/django/db/backends/__init__.py index 818850bf43..346d10198d 100644 --- a/django/db/backends/__init__.py +++ b/django/db/backends/__init__.py @@ -157,6 +157,7 @@ class BaseDatabaseWrapper(object): Commits a transaction and resets the dirty flag. """ self.validate_thread_sharing() + self.validate_no_atomic_block() self._commit() self.set_clean() @@ -165,6 +166,7 @@ class BaseDatabaseWrapper(object): Rolls back a transaction and resets the dirty flag. """ self.validate_thread_sharing() + self.validate_no_atomic_block() self._rollback() self.set_clean() @@ -265,6 +267,8 @@ class BaseDatabaseWrapper(object): If you switch off transaction management and there is a pending commit/rollback, the data will be commited, unless "forced" is True. """ + self.validate_no_atomic_block() + self.transaction_state.append(managed) if not managed and self.is_dirty() and not forced: @@ -280,6 +284,8 @@ class BaseDatabaseWrapper(object): over to the surrounding block, as a commit will commit all changes, even those from outside. (Commits are on connection level.) """ + self.validate_no_atomic_block() + if self.transaction_state: del self.transaction_state[-1] else: @@ -305,10 +311,19 @@ class BaseDatabaseWrapper(object): """ Enable or disable autocommit. """ + self.validate_no_atomic_block() self.ensure_connection() self._set_autocommit(autocommit) self.autocommit = autocommit + def validate_no_atomic_block(self): + """ + Raise an error if an atomic block is active. + """ + if self.in_atomic_block: + raise TransactionManagementError( + "This is forbidden when an 'atomic' block is active.") + def abort(self): """ Roll back any ongoing transaction and clean the transaction state diff --git a/django/db/transaction.py b/django/db/transaction.py index 8126c18a70..eb9d85e274 100644 --- a/django/db/transaction.py +++ b/django/db/transaction.py @@ -367,6 +367,9 @@ def autocommit(using=None): this decorator is useful if you globally activated transaction management in your settings file and want the default behavior in some view functions. """ + warnings.warn("autocommit is deprecated in favor of set_autocommit.", + PendingDeprecationWarning, stacklevel=2) + def entering(using): enter_transaction_management(managed=False, using=using) @@ -382,6 +385,9 @@ def commit_on_success(using=None): a rollback is made. This is one of the most common ways to do transaction control in Web apps. """ + warnings.warn("commit_on_success is deprecated in favor of atomic.", + PendingDeprecationWarning, stacklevel=2) + def entering(using): enter_transaction_management(using=using) @@ -409,6 +415,9 @@ def commit_manually(using=None): own -- it's up to the user to call the commit and rollback functions themselves. """ + warnings.warn("commit_manually is deprecated in favor of set_autocommit.", + PendingDeprecationWarning, stacklevel=2) + def entering(using): enter_transaction_management(using=using) @@ -420,10 +429,15 @@ def commit_manually(using=None): def commit_on_success_unless_managed(using=None): """ Transitory API to preserve backwards-compatibility while refactoring. + + Once the legacy transaction management is fully deprecated, this should + simply be replaced by atomic. Until then, it's necessary to avoid making a + commit where Django didn't use to, since entering atomic in managed mode + triggers a commmit. """ connection = get_connection(using) - if connection.autocommit and not connection.in_atomic_block: - return commit_on_success(using) + if connection.autocommit or connection.in_atomic_block: + return atomic(using) else: def entering(using): pass diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt index 1c8618713a..6c13af7ae4 100644 --- a/docs/internals/deprecation.txt +++ b/docs/internals/deprecation.txt @@ -329,6 +329,10 @@ these changes. 1.8 --- +* The decorators and context managers ``django.db.transaction.autocommit``, + ``commit_on_success`` and ``commit_manually`` will be removed. See + :ref:`transactions-upgrading-from-1.5`. + * The :ttag:`cycle` and :ttag:`firstof` template tags will auto-escape their arguments. In 1.6 and 1.7, this behavior is provided by the version of these tags in the ``future`` template tag library. diff --git a/docs/releases/1.3-alpha-1.txt b/docs/releases/1.3-alpha-1.txt index ba8a4fc557..53d38a006b 100644 --- a/docs/releases/1.3-alpha-1.txt +++ b/docs/releases/1.3-alpha-1.txt @@ -105,16 +105,14 @@ you just won't get any of the nice new unittest2 features. Transaction context managers ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Users of Python 2.5 and above may now use :ref:`transaction management functions -` as `context managers`_. For example:: +Users of Python 2.5 and above may now use transaction management functions as +`context managers`_. For example:: with transaction.autocommit(): # ... .. _context managers: http://docs.python.org/glossary.html#term-context-manager -For more information, see :ref:`transaction-management-functions`. - Configurable delete-cascade ~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/releases/1.3.txt b/docs/releases/1.3.txt index 4c8dd2f81f..582bceffca 100644 --- a/docs/releases/1.3.txt +++ b/docs/releases/1.3.txt @@ -148,16 +148,14 @@ you just won't get any of the nice new unittest2 features. Transaction context managers ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Users of Python 2.5 and above may now use :ref:`transaction management functions -` as `context managers`_. For example:: +Users of Python 2.5 and above may now use transaction management functions as +`context managers`_. For example:: with transaction.autocommit(): # ... .. _context managers: http://docs.python.org/glossary.html#term-context-manager -For more information, see :ref:`transaction-management-functions`. - Configurable delete-cascade ~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index c55ef0ef38..cc3bf94ef5 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -39,7 +39,7 @@ should improve performance. The existing APIs were deprecated, and new APIs were introduced, as described in :doc:`/topics/db/transactions`. Please review carefully the list of :ref:`known backwards-incompatibilities -` to determine if you need to make changes in +` to determine if you need to make changes in your code. Persistent database connections @@ -163,7 +163,7 @@ Backwards incompatible changes in 1.6 * Database-level autocommit is enabled by default in Django 1.6. While this doesn't change the general spirit of Django's transaction management, there are a few known backwards-incompatibities, described in the :ref:`transaction - management docs `. You should review your code + management docs `. You should review your code to determine if you're affected. * In previous versions, database-level autocommit was only an option for @@ -256,6 +256,19 @@ Backwards incompatible changes in 1.6 Features deprecated in 1.6 ========================== +Transaction management APIs +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Transaction management was completely overhauled in Django 1.6, and the +current APIs are deprecated: + +- :func:`django.db.transaction.autocommit` +- :func:`django.db.transaction.commit_on_success` +- :func:`django.db.transaction.commit_manually` + +The reasons for this change and the upgrade path are described in the +:ref:`transactions documentation `. + Changes to :ttag:`cycle` and :ttag:`firstof` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/topics/db/transactions.txt b/docs/topics/db/transactions.txt index 2a4cd306c6..91b2cf41b3 100644 --- a/docs/topics/db/transactions.txt +++ b/docs/topics/db/transactions.txt @@ -24,7 +24,7 @@ immediately committed to the database. :ref:`See below for details .. versionchanged:: 1.6 Previous version of Django featured :ref:`a more complicated default - behavior `. + behavior `. Tying transactions to HTTP requests ----------------------------------- @@ -89,7 +89,7 @@ Django provides a single API to control database transactions. database. If this argument isn't provided, Django uses the ``"default"`` database. - ``atomic`` is usable both as a decorator:: + ``atomic`` is usable both as a `decorator`_:: from django.db import transaction @@ -98,7 +98,7 @@ Django provides a single API to control database transactions. # This code executes inside a transaction. do_stuff() - and as a context manager:: + and as a `context manager`_:: from django.db import transaction @@ -110,6 +110,9 @@ Django provides a single API to control database transactions. # This code executes inside a transaction. do_more_stuff() + .. _decorator: http://docs.python.org/glossary.html#term-decorator + .. _context manager: http://docs.python.org/glossary.html#term-context-manager + Wrapping ``atomic`` in a try/except block allows for natural handling of integrity errors:: @@ -145,158 +148,116 @@ Django provides a single API to control database transactions. - releases or rolls back to the savepoint when exiting an inner block; - commits or rolls back the transaction when exiting the outermost block. -.. _transaction-management-functions: - -Controlling transaction management in views -=========================================== - -For most people, implicit request-based transactions work wonderfully. However, -if you need more fine-grained control over how transactions are managed, you can -use a set of functions in ``django.db.transaction`` to control transactions on a -per-function or per-code-block basis. - -These functions, described in detail below, can be used in two different ways: - -* As a decorator_ on a particular function. For example:: - - from django.db import transaction - - @transaction.commit_on_success - def viewfunc(request): - # ... - # this code executes inside a transaction - # ... - -* As a `context manager`_ around a particular block of code:: - - from django.db import transaction - - def viewfunc(request): - # ... - # this code executes using default transaction management - # ... - - with transaction.commit_on_success(): - # ... - # this code executes inside a transaction - # ... - -Both techniques work with all supported version of Python. +.. _topics-db-transactions-savepoints: -.. _decorator: http://docs.python.org/glossary.html#term-decorator -.. _context manager: http://docs.python.org/glossary.html#term-context-manager +Savepoints +========== -For maximum compatibility, all of the examples below show transactions using the -decorator syntax, but all of the follow functions may be used as context -managers, too. +A savepoint is a marker within a transaction that enables you to roll back +part of a transaction, rather than the full transaction. Savepoints are +available with the SQLite (≥ 3.6.8), PostgreSQL, Oracle and MySQL (when using +the InnoDB storage engine) backends. Other backends provide the savepoint +functions, but they're empty operations -- they don't actually do anything. -.. note:: +Savepoints aren't especially useful if you are using autocommit, the default +behavior of Django. However, once you open a transaction with :func:`atomic`, +you build up a series of database operations awaiting a commit or rollback. If +you issue a rollback, the entire transaction is rolled back. Savepoints +provide the ability to perform a fine-grained rollback, rather than the full +rollback that would be performed by ``transaction.rollback()``. - Although the examples below use view functions as examples, these - decorators and context managers can be used anywhere in your code - that you need to deal with transactions. +.. versionchanged:: 1.6 -.. _topics-db-transactions-autocommit: +When the :func:`atomic` decorator is nested, it creates a savepoint to allow +partial commit or rollback. You're strongly encouraged to use :func:`atomic` +rather than the functions described below, but they're still part of the +public API, and there's no plan to deprecate them. -.. function:: autocommit +Each of these functions takes a ``using`` argument which should be the name of +a database for which the behavior applies. If no ``using`` argument is +provided then the ``"default"`` database is used. - Use the ``autocommit`` decorator to switch a view function to Django's - default commit behavior. +Savepoints are controlled by three methods on the transaction object: - Example:: +.. method:: transaction.savepoint(using=None) - from django.db import transaction + Creates a new savepoint. This marks a point in the transaction that + is known to be in a "good" state. - @transaction.autocommit - def viewfunc(request): - .... + Returns the savepoint ID (sid). - @transaction.autocommit(using="my_other_database") - def viewfunc2(request): - .... +.. method:: transaction.savepoint_commit(sid, using=None) - Within ``viewfunc()``, transactions will be committed as soon as you call - ``model.save()``, ``model.delete()``, or any other function that writes to - the database. ``viewfunc2()`` will have this same behavior, but for the - ``"my_other_database"`` connection. + Updates the savepoint to include any operations that have been performed + since the savepoint was created, or since the last commit. -.. function:: commit_on_success +.. method:: transaction.savepoint_rollback(sid, using=None) - Use the ``commit_on_success`` decorator to use a single transaction for all - the work done in a function:: + Rolls the transaction back to the last point at which the savepoint was + committed. - from django.db import transaction +The following example demonstrates the use of savepoints:: - @transaction.commit_on_success - def viewfunc(request): - .... + from django.db import transaction - @transaction.commit_on_success(using="my_other_database") - def viewfunc2(request): - .... + # open a transaction + @transaction.atomic + def viewfunc(request): - If the function returns successfully, then Django will commit all work done - within the function at that point. If the function raises an exception, - though, Django will roll back the transaction. + a.save() + # transaction now contains a.save() -.. function:: commit_manually + sid = transaction.savepoint() - Use the ``commit_manually`` decorator if you need full control over - transactions. It tells Django you'll be managing the transaction on your - own. + b.save() + # transaction now contains a.save() and b.save() - Whether you are writing or simply reading from the database, you must - ``commit()`` or ``rollback()`` explicitly or Django will raise a - :exc:`TransactionManagementError` exception. This is required when reading - from the database because ``SELECT`` statements may call functions which - modify tables, and thus it is impossible to know if any data has been - modified. + if want_to_keep_b: + transaction.savepoint_commit(sid) + # open transaction still contains a.save() and b.save() + else: + transaction.savepoint_rollback(sid) + # open transaction now contains only a.save() - Manual transaction management looks like this:: +Autocommit +========== - from django.db import transaction +.. _autocommit-details: - @transaction.commit_manually - def viewfunc(request): - ... - # You can commit/rollback however and whenever you want - transaction.commit() - ... +Why Django uses autocommit +-------------------------- - # But you've got to remember to do it yourself! - try: - ... - except: - transaction.rollback() - else: - transaction.commit() +In the SQL standards, each SQL query starts a transaction, unless one is +already in progress. Such transactions must then be committed or rolled back. - @transaction.commit_manually(using="my_other_database") - def viewfunc2(request): - .... +This isn't always convenient for application developers. To alleviate this +problem, most databases provide an autocommit mode. When autocommit is turned +on, each SQL query is wrapped in its own transaction. In other words, the +transaction is not only automatically started, but also automatically +committed. -.. _topics-db-transactions-requirements: +:pep:`249`, the Python Database API Specification v2.0, requires autocommit to +be initially turned off. Django overrides this default and turns autocommit +on. -Requirements for transaction handling -===================================== +To avoid this, you can :ref:`deactivate the transaction management +`, but it isn't recommended. -Django requires that every transaction that is opened is closed before the -completion of a request. +.. versionchanged:: 1.6 + Before Django 1.6, autocommit was turned off, and it was emulated by + forcing a commit after write operations in the ORM. -If you are using :func:`autocommit` (the default commit mode) or -:func:`commit_on_success`, this will be done for you automatically. However, -if you are manually managing transactions (using the :func:`commit_manually` -decorator), you must ensure that the transaction is either committed or rolled -back before a request is completed. +.. warning:: -This applies to all database operations, not just write operations. Even -if your transaction only reads from the database, the transaction must -be committed or rolled back before you complete a request. + If you're using the database API directly — for instance, you're running + SQL queries with ``cursor.execute()`` — be aware that autocommit is on, + and consider wrapping your operations in a transaction, with + :func:`atomic`, to ensure consistency. .. _managing-autocommit: Managing autocommit -=================== +------------------- .. versionadded:: 1.6 @@ -310,10 +271,17 @@ database connection, if you need to. These functions take a ``using`` argument which should be the name of a database. If it isn't provided, Django uses the ``"default"`` database. +Autocommit is initially turned on. If you turn it off, it's your +responsibility to restore it. + +:func:`atomic` requires autocommit to be turned on; it will raise an exception +if autocommit is off. Django will also refuse to turn autocommit off when an +:func:`atomic` block is active, because that would break atomicity. + .. _deactivate-transaction-management: -How to globally deactivate transaction management -================================================= +Deactivating transaction management +----------------------------------- Control freaks can totally disable all transaction management by setting :setting:`TRANSACTIONS_MANAGED` to ``True`` in the Django settings file. If @@ -328,71 +296,6 @@ something really strange. In almost all situations, you'll be better off using the default behavior, or the transaction middleware, and only modify selected functions as needed. -.. _topics-db-transactions-savepoints: - -Savepoints -========== - -A savepoint is a marker within a transaction that enables you to roll back -part of a transaction, rather than the full transaction. Savepoints are -available with the SQLite (≥ 3.6.8), PostgreSQL, Oracle and MySQL (when using -the InnoDB storage engine) backends. Other backends provide the savepoint -functions, but they're empty operations -- they don't actually do anything. - -Savepoints aren't especially useful if you are using the default -``autocommit`` behavior of Django. However, if you are using -``commit_on_success`` or ``commit_manually``, each open transaction will build -up a series of database operations, awaiting a commit or rollback. If you -issue a rollback, the entire transaction is rolled back. Savepoints provide -the ability to perform a fine-grained rollback, rather than the full rollback -that would be performed by ``transaction.rollback()``. - -Each of these functions takes a ``using`` argument which should be the name of -a database for which the behavior applies. If no ``using`` argument is -provided then the ``"default"`` database is used. - -Savepoints are controlled by three methods on the transaction object: - -.. method:: transaction.savepoint(using=None) - - Creates a new savepoint. This marks a point in the transaction that - is known to be in a "good" state. - - Returns the savepoint ID (sid). - -.. method:: transaction.savepoint_commit(sid, using=None) - - Updates the savepoint to include any operations that have been performed - since the savepoint was created, or since the last commit. - -.. method:: transaction.savepoint_rollback(sid, using=None) - - Rolls the transaction back to the last point at which the savepoint was - committed. - -The following example demonstrates the use of savepoints:: - - from django.db import transaction - - @transaction.commit_manually - def viewfunc(request): - - a.save() - # open transaction now contains a.save() - sid = transaction.savepoint() - - b.save() - # open transaction now contains a.save() and b.save() - - if want_to_keep_b: - transaction.savepoint_commit(sid) - # open transaction still contains a.save() and b.save() - else: - transaction.savepoint_rollback(sid) - # open transaction now contains only a.save() - - transaction.commit() - Database-specific notes ======================= @@ -477,45 +380,57 @@ transaction. For example:: In this example, ``a.save()`` will not be undone in the case where ``b.save()`` raises an exception. -Under the hood -============== +.. _transactions-upgrading-from-1.5: -.. _autocommit-details: +Changes from Django 1.5 and earlier +=================================== -Details on autocommit ---------------------- +The features described below were deprecated in Django 1.6 and will be removed +in Django 1.8. They're documented in order to ease the migration to the new +transaction management APIs. -In the SQL standards, each SQL query starts a transaction, unless one is -already in progress. Such transactions must then be committed or rolled back. +Legacy APIs +----------- -This isn't always convenient for application developers. To alleviate this -problem, most databases provide an autocommit mode. When autocommit is turned -on, each SQL query is wrapped in its own transaction. In other words, the -transaction is not only automatically started, but also automatically -committed. +The following functions, defined in ``django.db.transaction``, provided a way +to control transactions on a per-function or per-code-block basis. They could +be used as decorators or as context managers, and they accepted a ``using`` +argument, exactly like :func:`atomic`. -:pep:`249`, the Python Database API Specification v2.0, requires autocommit to -be initially turned off. Django overrides this default and turns autocommit -on. +.. function:: autocommit -To avoid this, you can :ref:`deactivate the transaction management -`, but it isn't recommended. + Enable Django's default autocommit behavior. -.. versionchanged:: 1.6 - Before Django 1.6, autocommit was turned off, and it was emulated by - forcing a commit after write operations in the ORM. + Transactions will be committed as soon as you call ``model.save()``, + ``model.delete()``, or any other function that writes to the database. -.. warning:: +.. function:: commit_on_success - If you're using the database API directly — for instance, you're running - SQL queries with ``cursor.execute()`` — be aware that autocommit is on, - and consider wrapping your operations in a transaction to ensure - consistency. + Use a single transaction for all the work done in a function. + + If the function returns successfully, then Django will commit all work done + within the function at that point. If the function raises an exception, + though, Django will roll back the transaction. + +.. function:: commit_manually + + Tells Django you'll be managing the transaction on your own. + + Whether you are writing or simply reading from the database, you must + ``commit()`` or ``rollback()`` explicitly or Django will raise a + :exc:`TransactionManagementError` exception. This is required when reading + from the database because ``SELECT`` statements may call functions which + modify tables, and thus it is impossible to know if any data has been + modified. .. _transaction-states: -Transaction management states ------------------------------ +Transaction states +------------------ + +The three functions described above relied on a concept called "transaction +states". This mechanisme was deprecated in Django 1.6, but it's still +available until Django 1.8.. At any time, each database connection is in one of these two states: @@ -529,35 +444,80 @@ Django starts in auto mode. ``TransactionMiddleware``, Internally, Django keeps a stack of states. Activations and deactivations must be balanced. -For example, at the beginning of each HTTP request, ``TransactionMiddleware`` -switches to managed mode; at the end of the request, it commits or rollbacks, +For example, ``commit_on_success`` switches to managed mode when entering the +block of code it controls; when exiting the block, it commits or rollbacks, and switches back to auto mode. -.. admonition:: Nesting decorators / context managers +So :func:`commit_on_success` really has two effects: it changes the +transaction state and it defines an transaction block. Nesting will give the +expected results in terms of transaction state, but not in terms of +transaction semantics. Most often, the inner block will commit, breaking the +atomicity of the outer block. - :func:`commit_on_success` has two effects: it changes the transaction - state, and defines an atomic transaction block. +:func:`autocommit` and :func:`commit_manually` have similar limitations. - Nesting with :func:`autocommit` and :func:`commit_manually` will give the - expected results in terms of transaction state, but not in terms of - transaction semantics. Most often, the inner block will commit, breaking - the atomicity of the outer block. +API changes +----------- -Django currently doesn't provide any APIs to create transactions in auto mode. +Managing transactions +~~~~~~~~~~~~~~~~~~~~~ -.. _transactions-changes-from-1.5: +Starting with Django 1.6, :func:`atomic` is the only supported API for +defining a transaction. Unlike the deprecated APIs, it's nestable and always +guarantees atomicity. -Changes from Django 1.5 and earlier -=================================== +In most cases, it will be a drop-in replacement for :func:`commit_on_success`. -Since version 1.6, Django uses database-level autocommit in auto mode. +During the deprecation period, it's possible to use :func:`atomic` within +:func:`autocommit`, :func:`commit_on_success` or :func:`commit_manually`. +However, the reverse is forbidden, because nesting the old decorators / +context managers breaks atomicity. + +If you enter :func:`atomic` while you're in managed mode, it will trigger a +commit to start from a clean slate. + +Managing autocommit +~~~~~~~~~~~~~~~~~~~ + +Django 1.6 introduces an explicit :ref:`API for mananging autocommit +`. + +To disable autocommit temporarily, instead of:: + with transaction.commit_manually(): + # do stuff + +you should now use:: + + transaction.set_autocommit(autocommit=False) + try: + # do stuff + finally: + transaction.set_autocommit(autocommit=True) + +To enable autocommit temporarily, instead of:: + + with transaction.autocommit(): + # do stuff + +you should now use:: + + transaction.set_autocommit(autocommit=True) + try: + # do stuff + finally: + transaction.set_autocommit(autocommit=False) + +Backwards incompatibilities +--------------------------- + +Since version 1.6, Django uses database-level autocommit in auto mode. Previously, it implemented application-level autocommit by triggering a commit after each ORM write. -As a consequence, each database query (for instance, an -ORM read) started a transaction that lasted until the next ORM write. Such -"automatic transactions" no longer exist in Django 1.6. +As a consequence, each database query (for instance, an ORM read) started a +transaction that lasted until the next ORM write. Such "automatic +transactions" no longer exist in Django 1.6. There are four known scenarios where this is backwards-incompatible. @@ -565,7 +525,7 @@ Note that managed mode isn't affected at all. This section assumes auto mode. See the :ref:`description of modes ` above. Sequences of custom SQL queries -------------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If you're executing several :ref:`custom SQL queries ` in a row, each one now runs in its own transaction, instead of sharing the @@ -577,20 +537,20 @@ usually followed by a call to ``transaction.commit_unless_managed``, which isn't necessary any more and should be removed. Select for update ------------------ +~~~~~~~~~~~~~~~~~ If you were relying on "automatic transactions" to provide locking between :meth:`~django.db.models.query.QuerySet.select_for_update` and a subsequent write operation — an extremely fragile design, but nonetheless possible — you -must wrap the relevant code in :func:`commit_on_success`. +must wrap the relevant code in :func:`atomic`. Using a high isolation level ----------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If you were using the "repeatable read" isolation level or higher, and if you relied on "automatic transactions" to guarantee consistency between successive -reads, the new behavior is backwards-incompatible. To maintain consistency, -you must wrap such sequences in :func:`commit_on_success`. +reads, the new behavior might be backwards-incompatible. To enforce +consistency, you must wrap such sequences in :func:`atomic`. MySQL defaults to "repeatable read" and SQLite to "serializable"; they may be affected by this problem. @@ -602,10 +562,9 @@ PostgreSQL and Oracle default to "read committed" and aren't affected, unless you changed the isolation level. Using unsupported database features ------------------------------------ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ With triggers, views, or functions, it's possible to make ORM reads result in database modifications. Django 1.5 and earlier doesn't deal with this case and it's theoretically possible to observe a different behavior after upgrading to -Django 1.6 or later. In doubt, use :func:`commit_on_success` to enforce -integrity. +Django 1.6 or later. In doubt, use :func:`atomic` to enforce integrity. diff --git a/tests/backends/tests.py b/tests/backends/tests.py index 5c8a8955eb..51acbcb07f 100644 --- a/tests/backends/tests.py +++ b/tests/backends/tests.py @@ -522,7 +522,8 @@ class FkConstraintsTests(TransactionTestCase): """ When constraint checks are disabled, should be able to write bad data without IntegrityErrors. """ - with transaction.commit_manually(): + transaction.set_autocommit(autocommit=False) + try: # Create an Article. models.Article.objects.create(headline="Test article", pub_date=datetime.datetime(2010, 9, 4), reporter=self.r) # Retrive it from the DB @@ -536,12 +537,15 @@ class FkConstraintsTests(TransactionTestCase): self.fail("IntegrityError should not have occurred.") finally: transaction.rollback() + finally: + transaction.set_autocommit(autocommit=True) def test_disable_constraint_checks_context_manager(self): """ When constraint checks are disabled (using context manager), should be able to write bad data without IntegrityErrors. """ - with transaction.commit_manually(): + transaction.set_autocommit(autocommit=False) + try: # Create an Article. models.Article.objects.create(headline="Test article", pub_date=datetime.datetime(2010, 9, 4), reporter=self.r) # Retrive it from the DB @@ -554,12 +558,15 @@ class FkConstraintsTests(TransactionTestCase): self.fail("IntegrityError should not have occurred.") finally: transaction.rollback() + finally: + transaction.set_autocommit(autocommit=True) def test_check_constraints(self): """ Constraint checks should raise an IntegrityError when bad data is in the DB. """ - with transaction.commit_manually(): + try: + transaction.set_autocommit(autocommit=False) # Create an Article. models.Article.objects.create(headline="Test article", pub_date=datetime.datetime(2010, 9, 4), reporter=self.r) # Retrive it from the DB @@ -572,6 +579,8 @@ class FkConstraintsTests(TransactionTestCase): connection.check_constraints() finally: transaction.rollback() + finally: + transaction.set_autocommit(autocommit=True) class ThreadTests(TestCase): diff --git a/tests/fixtures_model_package/tests.py b/tests/fixtures_model_package/tests.py index d147fe68a7..894a6c7fde 100644 --- a/tests/fixtures_model_package/tests.py +++ b/tests/fixtures_model_package/tests.py @@ -25,7 +25,8 @@ class SampleTestCase(TestCase): class TestNoInitialDataLoading(TransactionTestCase): def test_syncdb(self): - with transaction.commit_manually(): + transaction.set_autocommit(autocommit=False) + try: Book.objects.all().delete() management.call_command( @@ -35,6 +36,9 @@ class TestNoInitialDataLoading(TransactionTestCase): ) self.assertQuerysetEqual(Book.objects.all(), []) transaction.rollback() + finally: + transaction.set_autocommit(autocommit=True) + def test_flush(self): # Test presence of fixture (flush called by TransactionTestCase) @@ -45,7 +49,8 @@ class TestNoInitialDataLoading(TransactionTestCase): lambda a: a.name ) - with transaction.commit_manually(): + transaction.set_autocommit(autocommit=False) + try: management.call_command( 'flush', verbosity=0, @@ -55,6 +60,8 @@ class TestNoInitialDataLoading(TransactionTestCase): ) self.assertQuerysetEqual(Book.objects.all(), []) transaction.rollback() + finally: + transaction.set_autocommit(autocommit=True) class FixtureTestCase(TestCase): diff --git a/tests/fixtures_regress/tests.py b/tests/fixtures_regress/tests.py index 61dc4460df..f965dd81ac 100644 --- a/tests/fixtures_regress/tests.py +++ b/tests/fixtures_regress/tests.py @@ -684,5 +684,8 @@ class TestTicket11101(TransactionTestCase): @skipUnlessDBFeature('supports_transactions') def test_ticket_11101(self): """Test that fixtures can be rolled back (ticket #11101).""" - ticket_11101 = transaction.commit_manually(self.ticket_11101) - ticket_11101() + transaction.set_autocommit(autocommit=False) + try: + self.ticket_11101() + finally: + transaction.set_autocommit(autocommit=True) diff --git a/tests/middleware/tests.py b/tests/middleware/tests.py index e704fce342..7e26037967 100644 --- a/tests/middleware/tests.py +++ b/tests/middleware/tests.py @@ -24,6 +24,8 @@ from django.utils.encoding import force_str from django.utils.six.moves import xrange from django.utils.unittest import expectedFailure +from transactions.tests import IgnorePendingDeprecationWarningsMixin + from .models import Band @@ -670,11 +672,12 @@ class ETagGZipMiddlewareTest(TestCase): self.assertNotEqual(gzip_etag, nogzip_etag) -class TransactionMiddlewareTest(TransactionTestCase): +class TransactionMiddlewareTest(IgnorePendingDeprecationWarningsMixin, TransactionTestCase): """ Test the transaction middleware. """ def setUp(self): + super(TransactionMiddlewareTest, self).setUp() self.request = HttpRequest() self.request.META = { 'SERVER_NAME': 'testserver', @@ -686,6 +689,7 @@ class TransactionMiddlewareTest(TransactionTestCase): def tearDown(self): transaction.abort() + super(TransactionMiddlewareTest, self).tearDown() def test_request(self): TransactionMiddleware().process_request(self.request) diff --git a/tests/transactions/tests.py b/tests/transactions/tests.py index 14252dd6dc..d6cfd8ae95 100644 --- a/tests/transactions/tests.py +++ b/tests/transactions/tests.py @@ -1,9 +1,10 @@ from __future__ import absolute_import import sys +import warnings from django.db import connection, transaction, IntegrityError -from django.test import TestCase, TransactionTestCase, skipUnlessDBFeature +from django.test import TransactionTestCase, skipUnlessDBFeature from django.utils import six from django.utils.unittest import skipUnless @@ -158,7 +159,69 @@ class AtomicInsideTransactionTests(AtomicTests): self.atomic.__exit__(*sys.exc_info()) -class TransactionTests(TransactionTestCase): +class AtomicInsideLegacyTransactionManagementTests(AtomicTests): + + def setUp(self): + transaction.enter_transaction_management() + + def tearDown(self): + # The tests access the database after exercising 'atomic', making the + # connection dirty; a rollback is required to make it clean. + transaction.rollback() + transaction.leave_transaction_management() + + +@skipUnless(connection.features.uses_savepoints, + "'atomic' requires transactions and savepoints.") +class AtomicErrorsTests(TransactionTestCase): + + def test_atomic_requires_autocommit(self): + transaction.set_autocommit(autocommit=False) + try: + with self.assertRaises(transaction.TransactionManagementError): + with transaction.atomic(): + pass + finally: + transaction.set_autocommit(autocommit=True) + + def test_atomic_prevents_disabling_autocommit(self): + autocommit = transaction.get_autocommit() + with transaction.atomic(): + with self.assertRaises(transaction.TransactionManagementError): + transaction.set_autocommit(autocommit=not autocommit) + # Make sure autocommit wasn't changed. + self.assertEqual(connection.autocommit, autocommit) + + def test_atomic_prevents_calling_transaction_methods(self): + with transaction.atomic(): + with self.assertRaises(transaction.TransactionManagementError): + transaction.commit() + with self.assertRaises(transaction.TransactionManagementError): + transaction.rollback() + + def test_atomic_prevents_calling_transaction_management_methods(self): + with transaction.atomic(): + with self.assertRaises(transaction.TransactionManagementError): + transaction.enter_transaction_management() + with self.assertRaises(transaction.TransactionManagementError): + transaction.leave_transaction_management() + + +class IgnorePendingDeprecationWarningsMixin(object): + + def setUp(self): + super(IgnorePendingDeprecationWarningsMixin, self).setUp() + self.catch_warnings = warnings.catch_warnings() + self.catch_warnings.__enter__() + warnings.filterwarnings("ignore", category=PendingDeprecationWarning) + + def tearDown(self): + self.catch_warnings.__exit__(*sys.exc_info()) + super(IgnorePendingDeprecationWarningsMixin, self).tearDown() + + +class TransactionTests(IgnorePendingDeprecationWarningsMixin, TransactionTestCase): + def create_a_reporter_then_fail(self, first, last): a = Reporter(first_name=first, last_name=last) a.save() @@ -313,7 +376,7 @@ class TransactionTests(TransactionTestCase): ) -class TransactionRollbackTests(TransactionTestCase): +class TransactionRollbackTests(IgnorePendingDeprecationWarningsMixin, TransactionTestCase): def execute_bad_sql(self): cursor = connection.cursor() cursor.execute("INSERT INTO transactions_reporter (first_name, last_name) VALUES ('Douglas', 'Adams');") @@ -330,7 +393,7 @@ class TransactionRollbackTests(TransactionTestCase): self.assertRaises(IntegrityError, execute_bad_sql) transaction.rollback() -class TransactionContextManagerTests(TransactionTestCase): +class TransactionContextManagerTests(IgnorePendingDeprecationWarningsMixin, TransactionTestCase): def create_reporter_and_fail(self): Reporter.objects.create(first_name="Bob", last_name="Holtzman") raise Exception diff --git a/tests/transactions_regress/tests.py b/tests/transactions_regress/tests.py index e86db4d0aa..d5ee62da5e 100644 --- a/tests/transactions_regress/tests.py +++ b/tests/transactions_regress/tests.py @@ -6,10 +6,12 @@ from django.test import TransactionTestCase, skipUnlessDBFeature from django.test.utils import override_settings from django.utils.unittest import skipIf, skipUnless, expectedFailure +from transactions.tests import IgnorePendingDeprecationWarningsMixin + from .models import Mod, M2mA, M2mB -class TestTransactionClosing(TransactionTestCase): +class TestTransactionClosing(IgnorePendingDeprecationWarningsMixin, TransactionTestCase): """ Tests to make sure that transactions are properly closed when they should be, and aren't left pending after operations @@ -166,7 +168,7 @@ class TestTransactionClosing(TransactionTestCase): (connection.settings_dict['NAME'] == ':memory:' or not connection.settings_dict['NAME']), 'Test uses multiple connections, but in-memory sqlite does not support this') -class TestNewConnection(TransactionTestCase): +class TestNewConnection(IgnorePendingDeprecationWarningsMixin, TransactionTestCase): """ Check that new connections don't have special behaviour. """ @@ -211,7 +213,7 @@ class TestNewConnection(TransactionTestCase): @skipUnless(connection.vendor == 'postgresql', "This test only valid for PostgreSQL") -class TestPostgresAutocommitAndIsolation(TransactionTestCase): +class TestPostgresAutocommitAndIsolation(IgnorePendingDeprecationWarningsMixin, TransactionTestCase): """ Tests to make sure psycopg2's autocommit mode and isolation level is restored after entering and leaving transaction management. @@ -292,7 +294,7 @@ class TestPostgresAutocommitAndIsolation(TransactionTestCase): self.assertTrue(connection.autocommit) -class TestManyToManyAddTransaction(TransactionTestCase): +class TestManyToManyAddTransaction(IgnorePendingDeprecationWarningsMixin, TransactionTestCase): def test_manyrelated_add_commit(self): "Test for https://code.djangoproject.com/ticket/16818" a = M2mA.objects.create() @@ -307,7 +309,7 @@ class TestManyToManyAddTransaction(TransactionTestCase): self.assertEqual(a.others.count(), 1) -class SavepointTest(TransactionTestCase): +class SavepointTest(IgnorePendingDeprecationWarningsMixin, TransactionTestCase): @skipIf(connection.vendor == 'sqlite', "SQLite doesn't support savepoints in managed mode") -- cgit v1.3 From ac37ed21b3d66dde1748f6edf3279656b0267b70 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Wed, 6 Mar 2013 11:12:24 +0100 Subject: Deprecated TransactionMiddleware and TRANSACTIONS_MANAGED. Replaced them with per-database options, for proper multi-db support. Also toned down the recommendation to tie transactions to HTTP requests. Thanks Jeremy for sharing his experience. --- django/core/handlers/base.py | 12 +++- django/db/backends/__init__.py | 4 +- django/db/utils.py | 8 +++ django/middleware/transaction.py | 13 +++- docs/internals/deprecation.txt | 11 +++- docs/ref/middleware.txt | 4 ++ docs/ref/settings.txt | 30 +++++++++ docs/releases/1.6.txt | 8 ++- docs/topics/db/transactions.txt | 134 +++++++++++++++++++++++++++------------ tests/handlers/tests.py | 30 ++++++++- tests/handlers/urls.py | 9 ++- tests/handlers/views.py | 17 +++++ 12 files changed, 223 insertions(+), 57 deletions(-) create mode 100644 tests/handlers/views.py (limited to 'docs') diff --git a/django/core/handlers/base.py b/django/core/handlers/base.py index 0dcd9794c7..5327ce5891 100644 --- a/django/core/handlers/base.py +++ b/django/core/handlers/base.py @@ -6,10 +6,10 @@ import types from django import http from django.conf import settings -from django.core import exceptions from django.core import urlresolvers from django.core import signals from django.core.exceptions import MiddlewareNotUsed, PermissionDenied +from django.db import connections, transaction from django.utils.encoding import force_text from django.utils.module_loading import import_by_path from django.utils import six @@ -65,6 +65,13 @@ class BaseHandler(object): # as a flag for initialization being complete. self._request_middleware = request_middleware + def make_view_atomic(self, view): + if getattr(view, 'transactions_per_request', True): + for db in connections.all(): + if db.settings_dict['ATOMIC_REQUESTS']: + view = transaction.atomic(using=db.alias)(view) + return view + def get_response(self, request): "Returns an HttpResponse object for the given HttpRequest" try: @@ -101,8 +108,9 @@ class BaseHandler(object): break if response is None: + wrapped_callback = self.make_view_atomic(callback) try: - response = callback(request, *callback_args, **callback_kwargs) + response = wrapped_callback(request, *callback_args, **callback_kwargs) except Exception as e: # If the view raised an exception, run it through exception # middleware, and if the exception middleware returns a diff --git a/django/db/backends/__init__.py b/django/db/backends/__init__.py index 68551aad51..2cf75bd528 100644 --- a/django/db/backends/__init__.py +++ b/django/db/backends/__init__.py @@ -104,7 +104,7 @@ class BaseDatabaseWrapper(object): conn_params = self.get_connection_params() self.connection = self.get_new_connection(conn_params) self.init_connection_state() - if not settings.TRANSACTIONS_MANAGED: + if self.settings_dict['AUTOCOMMIT']: self.set_autocommit() connection_created.send(sender=self.__class__, connection=self) @@ -299,7 +299,7 @@ class BaseDatabaseWrapper(object): if self.transaction_state: managed = self.transaction_state[-1] else: - managed = settings.TRANSACTIONS_MANAGED + managed = not self.settings_dict['AUTOCOMMIT'] if self._dirty: self.rollback() diff --git a/django/db/utils.py b/django/db/utils.py index 71b89f93fb..936b42039d 100644 --- a/django/db/utils.py +++ b/django/db/utils.py @@ -2,6 +2,7 @@ from functools import wraps import os import pkgutil from threading import local +import warnings from django.conf import settings from django.core.exceptions import ImproperlyConfigured @@ -158,6 +159,13 @@ class ConnectionHandler(object): except KeyError: raise ConnectionDoesNotExist("The connection %s doesn't exist" % alias) + conn.setdefault('ATOMIC_REQUESTS', False) + if settings.TRANSACTIONS_MANAGED: + warnings.warn( + "TRANSACTIONS_MANAGED is deprecated. Use AUTOCOMMIT instead.", + PendingDeprecationWarning, stacklevel=2) + conn.setdefault('AUTOCOMMIT', False) + conn.setdefault('AUTOCOMMIT', True) conn.setdefault('ENGINE', 'django.db.backends.dummy') if conn['ENGINE'] == 'django.db.backends.' or not conn['ENGINE']: conn['ENGINE'] = 'django.db.backends.dummy' diff --git a/django/middleware/transaction.py b/django/middleware/transaction.py index 35f765d99f..95cc9a21f3 100644 --- a/django/middleware/transaction.py +++ b/django/middleware/transaction.py @@ -1,4 +1,7 @@ -from django.db import transaction +import warnings + +from django.core.exceptions import MiddlewareNotUsed +from django.db import connection, transaction class TransactionMiddleware(object): """ @@ -7,6 +10,14 @@ class TransactionMiddleware(object): commit, the commit is done when a successful response is created. If an exception happens, the database is rolled back. """ + + def __init__(self): + warnings.warn( + "TransactionMiddleware is deprecated in favor of ATOMIC_REQUESTS.", + PendingDeprecationWarning, stacklevel=2) + if connection.settings_dict['ATOMIC_REQUESTS']: + raise MiddlewareNotUsed + def process_request(self, request): """Enters transaction management""" transaction.enter_transaction_management() diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt index 6c13af7ae4..19675801e4 100644 --- a/docs/internals/deprecation.txt +++ b/docs/internals/deprecation.txt @@ -329,9 +329,14 @@ these changes. 1.8 --- -* The decorators and context managers ``django.db.transaction.autocommit``, - ``commit_on_success`` and ``commit_manually`` will be removed. See - :ref:`transactions-upgrading-from-1.5`. +* The following transaction management APIs will be removed: + + - ``TransactionMiddleware``, + - the decorators and context managers ``autocommit``, ``commit_on_success``, + and ``commit_manually``, + - the ``TRANSACTIONS_MANAGED`` setting. + + Upgrade paths are described in :ref:`transactions-upgrading-from-1.5`. * The :ttag:`cycle` and :ttag:`firstof` template tags will auto-escape their arguments. In 1.6 and 1.7, this behavior is provided by the version of these diff --git a/docs/ref/middleware.txt b/docs/ref/middleware.txt index 1e6e57f720..20bb2fb751 100644 --- a/docs/ref/middleware.txt +++ b/docs/ref/middleware.txt @@ -205,6 +205,10 @@ Transaction middleware .. class:: TransactionMiddleware +.. versionchanged:: 1.6 + ``TransactionMiddleware`` is deprecated. The documentation of transactions + contains :ref:`upgrade instructions `. + Binds commit and rollback of the default database to the request/response phase. If a view function runs successfully, a commit is done. If it fails with an exception, a rollback is done. diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt index 0cd141bcef..2b80527d8b 100644 --- a/docs/ref/settings.txt +++ b/docs/ref/settings.txt @@ -408,6 +408,30 @@ SQLite. This can be configured using the following:: For other database backends, or more complex SQLite configurations, other options will be required. The following inner options are available. +.. setting:: DATABASE-ATOMIC_REQUESTS + +ATOMIC_REQUESTS +~~~~~~~~~~~~~~~ + +.. versionadded:: 1.6 + +Default: ``False`` + +Set this to ``True`` to wrap each HTTP request in a transaction on this +database. See :ref:`tying-transactions-to-http-requests`. + +.. setting:: DATABASE-AUTOCOMMIT + +AUTOCOMMIT +~~~~~~~~~~ + +.. versionadded:: 1.6 + +Default: ``True`` + +Set this to ``False`` if you want to :ref:`disable Django's transaction +management ` and implement your own. + .. setting:: DATABASE-ENGINE ENGINE @@ -1807,6 +1831,12 @@ to ensure your processes are running in the correct environment. TRANSACTIONS_MANAGED -------------------- +.. deprecated:: 1.6 + + This setting was deprecated because its name is very misleading. Use the + :setting:`AUTOCOMMIT ` key in :setting:`DATABASES` + entries instead. + Default: ``False`` Set this to ``True`` if you want to :ref:`disable Django's transaction diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index cc3bf94ef5..a1fe69229c 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -262,9 +262,11 @@ Transaction management APIs Transaction management was completely overhauled in Django 1.6, and the current APIs are deprecated: -- :func:`django.db.transaction.autocommit` -- :func:`django.db.transaction.commit_on_success` -- :func:`django.db.transaction.commit_manually` +- ``django.middleware.transaction.TransactionMiddleware`` +- ``django.db.transaction.autocommit`` +- ``django.db.transaction.commit_on_success`` +- ``django.db.transaction.commit_manually`` +- the ``TRANSACTIONS_MANAGED`` setting The reasons for this change and the upgrade path are described in the :ref:`transactions documentation `. diff --git a/docs/topics/db/transactions.txt b/docs/topics/db/transactions.txt index 91b2cf41b3..37a369a02f 100644 --- a/docs/topics/db/transactions.txt +++ b/docs/topics/db/transactions.txt @@ -26,45 +26,61 @@ immediately committed to the database. :ref:`See below for details Previous version of Django featured :ref:`a more complicated default behavior `. +.. _tying-transactions-to-http-requests: + Tying transactions to HTTP requests ----------------------------------- -The recommended way to handle transactions in Web requests is to tie them to -the request and response phases via Django's ``TransactionMiddleware``. +A common way to handle transactions on the web is to wrap each request in a +transaction. Set :setting:`ATOMIC_REQUESTS ` to +``True`` in the configuration of each database for which you want to enable +this behavior. It works like this. When a request starts, Django starts a transaction. If the -response is produced without problems, Django commits any pending transactions. -If the view function produces an exception, Django rolls back any pending -transactions. - -To activate this feature, just add the ``TransactionMiddleware`` middleware to -your :setting:`MIDDLEWARE_CLASSES` setting:: - - MIDDLEWARE_CLASSES = ( - 'django.middleware.cache.UpdateCacheMiddleware', - 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.middleware.common.CommonMiddleware', - 'django.middleware.transaction.TransactionMiddleware', - 'django.middleware.cache.FetchFromCacheMiddleware', - ) - -The order is quite important. The transaction middleware applies not only to -view functions, but also for all middleware modules that come after it. So if -you use the session middleware after the transaction middleware, session -creation will be part of the transaction. - -The various cache middlewares are an exception: ``CacheMiddleware``, -:class:`~django.middleware.cache.UpdateCacheMiddleware`, and -:class:`~django.middleware.cache.FetchFromCacheMiddleware` are never affected. -Even when using database caching, Django's cache backend uses its own database -connection internally. - -.. note:: - - The ``TransactionMiddleware`` only affects the database aliased - as "default" within your :setting:`DATABASES` setting. If you are using - multiple databases and want transaction control over databases other than - "default", you will need to write your own transaction middleware. +response is produced without problems, Django commits the transaction. If the +view function produces an exception, Django rolls back the transaction. +Middleware always runs outside of this transaction. + +You may perfom partial commits and rollbacks in your view code, typically with +the :func:`atomic` context manager. However, at the end of the view, either +all the changes will be committed, or none of them. + +To disable this behavior for a specific view, you must set the +``transactions_per_request`` attribute of the view function itself to +``False``, like this:: + + def my_view(request): + do_stuff() + my_view.transactions_per_request = False + +.. warning:: + + While the simplicity of this transaction model is appealing, it also makes it + inefficient when traffic increases. Opening a transaction for every view has + some overhead. The impact on performance depends on the query patterns of your + application and on how well your database handles locking. + +.. admonition:: Per-request transactions and streaming responses + + When a view returns a :class:`~django.http.StreamingHttpResponse`, reading + the contents of the response will often execute code to generate the + content. Since the view has already returned, such code runs outside of + the transaction. + + Generally speaking, it isn't advisable to write to the database while + generating a streaming response, since there's no sensible way to handle + errors after starting to send the response. + +In practice, this feature simply wraps every view function in the :func:`atomic` +decorator described below. + +Note that only the execution of your view in enclosed in the transactions. +Middleware run outside of the transaction, and so does the rendering of +template responses. + +.. versionchanged:: 1.6 + Django used to provide this feature via ``TransactionMiddleware``, which is + now deprecated. Controlling transactions explicitly ----------------------------------- @@ -283,18 +299,20 @@ if autocommit is off. Django will also refuse to turn autocommit off when an Deactivating transaction management ----------------------------------- -Control freaks can totally disable all transaction management by setting -:setting:`TRANSACTIONS_MANAGED` to ``True`` in the Django settings file. If -you do this, Django won't enable autocommit. You'll get the regular behavior -of the underlying database library. +You can totally disable Django's transaction management for a given database +by setting :setting:`AUTOCOMMIT ` to ``False`` in its +configuration. If you do this, Django won't enable autocommit, and won't +perform any commits. You'll get the regular behavior of the underlying +database library. This requires you to commit explicitly every transaction, even those started by Django or by third-party libraries. Thus, this is best used in situations where you want to run your own transaction-controlling middleware or do something really strange. -In almost all situations, you'll be better off using the default behavior, or -the transaction middleware, and only modify selected functions as needed. +.. versionchanged:: 1.6 + This used to be controlled by the ``TRANSACTIONS_MANAGED`` setting. + Database-specific notes ======================= @@ -459,6 +477,35 @@ atomicity of the outer block. API changes ----------- +Transaction middleware +~~~~~~~~~~~~~~~~~~~~~~ + +In Django 1.6, ``TransactionMiddleware`` is deprecated and replaced +:setting:`ATOMIC_REQUESTS `. While the general +behavior is the same, there are a few differences. + +With the transaction middleware, it was still possible to switch to autocommit +or to commit explicitly in a view. Since :func:`atomic` guarantees atomicity, +this isn't allowed any longer. + +To avoid wrapping a particular view in a transaction, instead of:: + + @transaction.autocommit + def my_view(request): + do_stuff() + +you must now use this pattern:: + + def my_view(request): + do_stuff() + my_view.transactions_per_request = False + +The transaction middleware applied not only to view functions, but also to +middleware modules that come after it. For instance, if you used the session +middleware after the transaction middleware, session creation was part of the +transaction. :setting:`ATOMIC_REQUESTS ` only +applies to the view itself. + Managing transactions ~~~~~~~~~~~~~~~~~~~~~ @@ -508,6 +555,13 @@ you should now use:: finally: transaction.set_autocommit(autocommit=False) +Disabling transaction management +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Instead of setting ``TRANSACTIONS_MANAGED = True``, set the ``AUTOCOMMIT`` key +to ``False`` in the configuration of each database, as explained in :ref +:`deactivate-transaction-management`. + Backwards incompatibilities --------------------------- diff --git a/tests/handlers/tests.py b/tests/handlers/tests.py index 6eb9bd23fe..3680eecdd2 100644 --- a/tests/handlers/tests.py +++ b/tests/handlers/tests.py @@ -1,9 +1,8 @@ from django.core.handlers.wsgi import WSGIHandler from django.core.signals import request_started, request_finished -from django.db import close_old_connections -from django.test import RequestFactory, TestCase +from django.db import close_old_connections, connection +from django.test import RequestFactory, TestCase, TransactionTestCase from django.test.utils import override_settings -from django.utils import six class HandlerTests(TestCase): @@ -37,6 +36,31 @@ class HandlerTests(TestCase): self.assertEqual(response.status_code, 400) +class TransactionsPerRequestTests(TransactionTestCase): + urls = 'handlers.urls' + + def test_no_transaction(self): + response = self.client.get('/in_transaction/') + self.assertContains(response, 'False') + + def test_auto_transaction(self): + old_atomic_requests = connection.settings_dict['ATOMIC_REQUESTS'] + try: + connection.settings_dict['ATOMIC_REQUESTS'] = True + response = self.client.get('/in_transaction/') + finally: + connection.settings_dict['ATOMIC_REQUESTS'] = old_atomic_requests + self.assertContains(response, 'True') + + def test_no_auto_transaction(self): + old_atomic_requests = connection.settings_dict['ATOMIC_REQUESTS'] + try: + connection.settings_dict['ATOMIC_REQUESTS'] = True + response = self.client.get('/not_in_transaction/') + finally: + connection.settings_dict['ATOMIC_REQUESTS'] = old_atomic_requests + self.assertContains(response, 'False') + class SignalsTests(TestCase): urls = 'handlers.urls' diff --git a/tests/handlers/urls.py b/tests/handlers/urls.py index 8570f04696..29858055ab 100644 --- a/tests/handlers/urls.py +++ b/tests/handlers/urls.py @@ -1,9 +1,12 @@ from __future__ import unicode_literals from django.conf.urls import patterns, url -from django.http import HttpResponse, StreamingHttpResponse + +from . import views urlpatterns = patterns('', - url(r'^regular/$', lambda request: HttpResponse(b"regular content")), - url(r'^streaming/$', lambda request: StreamingHttpResponse([b"streaming", b" ", b"content"])), + url(r'^regular/$', views.regular), + url(r'^streaming/$', views.streaming), + url(r'^in_transaction/$', views.in_transaction), + url(r'^not_in_transaction/$', views.not_in_transaction), ) diff --git a/tests/handlers/views.py b/tests/handlers/views.py new file mode 100644 index 0000000000..22d9ea4c7d --- /dev/null +++ b/tests/handlers/views.py @@ -0,0 +1,17 @@ +from __future__ import unicode_literals + +from django.db import connection +from django.http import HttpResponse, StreamingHttpResponse + +def regular(request): + return HttpResponse(b"regular content") + +def streaming(request): + return StreamingHttpResponse([b"streaming", b" ", b"content"]) + +def in_transaction(request): + return HttpResponse(str(connection.in_atomic_block)) + +def not_in_transaction(request): + return HttpResponse(str(connection.in_atomic_block)) +not_in_transaction.transactions_per_request = False -- cgit v1.3 From ffe41591e75fc3acf76c634bdd0899d78e91688d Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Thu, 7 Mar 2013 14:05:32 +0100 Subject: Updated the documentation for savepoints. Apparently django.db.transaction used to be an object. --- docs/topics/db/transactions.txt | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) (limited to 'docs') diff --git a/docs/topics/db/transactions.txt b/docs/topics/db/transactions.txt index 37a369a02f..bcedd90424 100644 --- a/docs/topics/db/transactions.txt +++ b/docs/topics/db/transactions.txt @@ -193,24 +193,32 @@ Each of these functions takes a ``using`` argument which should be the name of a database for which the behavior applies. If no ``using`` argument is provided then the ``"default"`` database is used. -Savepoints are controlled by three methods on the transaction object: +Savepoints are controlled by three functions in :mod:`django.db.transaction`: -.. method:: transaction.savepoint(using=None) +.. function:: savepoint(using=None) Creates a new savepoint. This marks a point in the transaction that is known to be in a "good" state. - Returns the savepoint ID (sid). + Returns the savepoint ID (``sid``). -.. method:: transaction.savepoint_commit(sid, using=None) +.. function:: savepoint_commit(sid, using=None) - Updates the savepoint to include any operations that have been performed - since the savepoint was created, or since the last commit. + Releases savepoint ``sid``. The changes performed since the savepoint was + created become part of the transaction. -.. method:: transaction.savepoint_rollback(sid, using=None) +.. function:: savepoint_rollback(sid, using=None) - Rolls the transaction back to the last point at which the savepoint was - committed. + Rolls back the transaction to savepoint ``sid``. + +These functions do nothing if savepoints aren't supported or if the database +is in autocommit mode. + +In addition, there's a utility function: + +.. function:: clean_savepoints(using=None) + + Resets the counter used to generate unique savepoint IDs. The following example demonstrates the use of savepoints:: -- cgit v1.3 From 17cf29920b3b3a4870c865cb53f6b935187ba4e4 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Thu, 7 Mar 2013 14:42:51 +0100 Subject: Added an explanation of transactions and grouped low-level APIs. --- docs/topics/db/transactions.txt | 202 ++++++++++++++++++++++++---------------- 1 file changed, 122 insertions(+), 80 deletions(-) (limited to 'docs') diff --git a/docs/topics/db/transactions.txt b/docs/topics/db/transactions.txt index bcedd90424..4cecf896a4 100644 --- a/docs/topics/db/transactions.txt +++ b/docs/topics/db/transactions.txt @@ -164,10 +164,131 @@ Django provides a single API to control database transactions. - releases or rolls back to the savepoint when exiting an inner block; - commits or rolls back the transaction when exiting the outermost block. +Autocommit +========== + +.. _autocommit-details: + +Why Django uses autocommit +-------------------------- + +In the SQL standards, each SQL query starts a transaction, unless one is +already in progress. Such transactions must then be committed or rolled back. + +This isn't always convenient for application developers. To alleviate this +problem, most databases provide an autocommit mode. When autocommit is turned +on, each SQL query is wrapped in its own transaction. In other words, the +transaction is not only automatically started, but also automatically +committed. + +:pep:`249`, the Python Database API Specification v2.0, requires autocommit to +be initially turned off. Django overrides this default and turns autocommit +on. + +To avoid this, you can :ref:`deactivate the transaction management +`, but it isn't recommended. + +.. versionchanged:: 1.6 + Before Django 1.6, autocommit was turned off, and it was emulated by + forcing a commit after write operations in the ORM. + +.. warning:: + + If you're using the database API directly — for instance, you're running + SQL queries with ``cursor.execute()`` — be aware that autocommit is on, + and consider wrapping your operations in a transaction, with + :func:`atomic`, to ensure consistency. + +.. _deactivate-transaction-management: + +Deactivating transaction management +----------------------------------- + +You can totally disable Django's transaction management for a given database +by setting :setting:`AUTOCOMMIT ` to ``False`` in its +configuration. If you do this, Django won't enable autocommit, and won't +perform any commits. You'll get the regular behavior of the underlying +database library. + +This requires you to commit explicitly every transaction, even those started +by Django or by third-party libraries. Thus, this is best used in situations +where you want to run your own transaction-controlling middleware or do +something really strange. + +.. versionchanged:: 1.6 + This used to be controlled by the ``TRANSACTIONS_MANAGED`` setting. + +Low-level APIs +============== + +.. warning:: + + Always prefer :func:`atomic` if possible at all. It accounts for the + idiosyncrasies of each database and prevents invalid operations. + + The low level APIs are only useful if you're implementing your own + transaction management. + +.. _managing-autocommit: + +Autocommit +---------- + +.. versionadded:: 1.6 + +Django provides a straightforward API to manage the autocommit state of each +database connection, if you need to. + +.. function:: get_autocommit(using=None) + +.. function:: set_autocommit(using=None, autocommit=True) + +These functions take a ``using`` argument which should be the name of a +database. If it isn't provided, Django uses the ``"default"`` database. + +Autocommit is initially turned on. If you turn it off, it's your +responsibility to restore it. + +Once you turn autocommit off, you get the default behavior of your database +adapter, and Django won't help you. Although that behavior is specified in +:pep:`249`, implementations of adapters aren't always consistent with one +another. Review the documentation of the adapter you're using carefully. + +You must ensure that no transaction is active, usually by issuing a +:func:`commit` or a :func:`rollback`, before turning autocommit back on. + +:func:`atomic` requires autocommit to be turned on; it will raise an exception +if autocommit is off. Django will also refuse to turn autocommit off when an +:func:`atomic` block is active, because that would break atomicity. + +Transactions +------------ + +A transaction is an atomic set of database queries. Even if your program +crashes, the database guarantees that either all the changes will be applied, +or none of them. + +Django doesn't provide an API to start a transaction. The expected way to +start a transaction is to disable autocommit with :func:`set_autocommit`. + +Once you're in a transaction, you can choose either to apply the changes +you've performed until this point with :func:`commit`, or to cancel them with +:func:`rollback`. + +.. function:: commit(using=None) + +.. function:: rollback(using=None) + +These functions take a ``using`` argument which should be the name of a +database. If it isn't provided, Django uses the ``"default"`` database. + +Django will refuse to commit or to rollback when an :func:`atomic` block is +active, because that would break atomicity. + .. _topics-db-transactions-savepoints: Savepoints -========== +---------- A savepoint is a marker within a transaction that enables you to roll back part of a transaction, rather than the full transaction. Savepoints are @@ -243,85 +364,6 @@ The following example demonstrates the use of savepoints:: transaction.savepoint_rollback(sid) # open transaction now contains only a.save() -Autocommit -========== - -.. _autocommit-details: - -Why Django uses autocommit --------------------------- - -In the SQL standards, each SQL query starts a transaction, unless one is -already in progress. Such transactions must then be committed or rolled back. - -This isn't always convenient for application developers. To alleviate this -problem, most databases provide an autocommit mode. When autocommit is turned -on, each SQL query is wrapped in its own transaction. In other words, the -transaction is not only automatically started, but also automatically -committed. - -:pep:`249`, the Python Database API Specification v2.0, requires autocommit to -be initially turned off. Django overrides this default and turns autocommit -on. - -To avoid this, you can :ref:`deactivate the transaction management -`, but it isn't recommended. - -.. versionchanged:: 1.6 - Before Django 1.6, autocommit was turned off, and it was emulated by - forcing a commit after write operations in the ORM. - -.. warning:: - - If you're using the database API directly — for instance, you're running - SQL queries with ``cursor.execute()`` — be aware that autocommit is on, - and consider wrapping your operations in a transaction, with - :func:`atomic`, to ensure consistency. - -.. _managing-autocommit: - -Managing autocommit -------------------- - -.. versionadded:: 1.6 - -Django provides a straightforward API to manage the autocommit state of each -database connection, if you need to. - -.. function:: get_autocommit(using=None) - -.. function:: set_autocommit(using=None, autocommit=True) - -These functions take a ``using`` argument which should be the name of a -database. If it isn't provided, Django uses the ``"default"`` database. - -Autocommit is initially turned on. If you turn it off, it's your -responsibility to restore it. - -:func:`atomic` requires autocommit to be turned on; it will raise an exception -if autocommit is off. Django will also refuse to turn autocommit off when an -:func:`atomic` block is active, because that would break atomicity. - -.. _deactivate-transaction-management: - -Deactivating transaction management ------------------------------------ - -You can totally disable Django's transaction management for a given database -by setting :setting:`AUTOCOMMIT ` to ``False`` in its -configuration. If you do this, Django won't enable autocommit, and won't -perform any commits. You'll get the regular behavior of the underlying -database library. - -This requires you to commit explicitly every transaction, even those started -by Django or by third-party libraries. Thus, this is best used in situations -where you want to run your own transaction-controlling middleware or do -something really strange. - -.. versionchanged:: 1.6 - This used to be controlled by the ``TRANSACTIONS_MANAGED`` setting. - - Database-specific notes ======================= -- cgit v1.3 From 189fb4e29463a2e1ee1a86a6c29c94f9f9904d6f Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Thu, 7 Mar 2013 23:06:58 +0100 Subject: Added a note about long-running processes. There isn't much else to say, really. --- docs/topics/db/transactions.txt | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'docs') diff --git a/docs/topics/db/transactions.txt b/docs/topics/db/transactions.txt index 4cecf896a4..8cbe0dccd0 100644 --- a/docs/topics/db/transactions.txt +++ b/docs/topics/db/transactions.txt @@ -164,6 +164,13 @@ Django provides a single API to control database transactions. - releases or rolls back to the savepoint when exiting an inner block; - commits or rolls back the transaction when exiting the outermost block. +.. admonition:: Performance considerations + + Open transactions have a performance cost for your database server. To + minimize this overhead, keep your transactions as short as possible. This + is especially important of you're using :func:`atomic` in long-running + processes, outside of Django's request / response cycle. + Autocommit ========== -- cgit v1.3 From 107d9b1d974ae97132751cb1db742fd8e930fb89 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Fri, 8 Mar 2013 15:44:41 +0100 Subject: Added an option to disable the creation of savepoints in atomic. --- django/db/backends/__init__.py | 3 ++ django/db/transaction.py | 80 ++++++++++++++++++++++------------- docs/topics/db/transactions.txt | 10 ++++- tests/transactions/tests.py | 93 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 156 insertions(+), 30 deletions(-) (limited to 'docs') diff --git a/django/db/backends/__init__.py b/django/db/backends/__init__.py index 2cf75bd528..2d1de9509e 100644 --- a/django/db/backends/__init__.py +++ b/django/db/backends/__init__.py @@ -52,6 +52,9 @@ class BaseDatabaseWrapper(object): self._dirty = False # Tracks if the connection is in a transaction managed by 'atomic' self.in_atomic_block = False + # Tracks if the transaction should be rolled back to the next + # available savepoint because of an exception in an inner block. + self.needs_rollback = False # List of savepoints created by 'atomic' self.savepoint_ids = [] # Hack to provide compatibility with legacy transaction management diff --git a/django/db/transaction.py b/django/db/transaction.py index a6eb0662d4..be8981f968 100644 --- a/django/db/transaction.py +++ b/django/db/transaction.py @@ -188,8 +188,11 @@ class Atomic(object): __exit__ commits the transaction or releases the savepoint on normal exit, and rolls back the transaction or to the savepoint on exceptions. + It's possible to disable the creation of savepoints if the goal is to + ensure that some code runs within a transaction without creating overhead. + A stack of savepoints identifiers is maintained as an attribute of the - connection. None denotes a plain transaction. + connection. None denotes the absence of a savepoint. This allows reentrancy even if the same AtomicWrapper is reused. For example, it's possible to define `oa = @atomic('other')` and use `@ao` or @@ -198,8 +201,9 @@ class Atomic(object): Since database connections are thread-local, this is thread-safe. """ - def __init__(self, using): + def __init__(self, using, savepoint): self.using = using + self.savepoint = savepoint def _legacy_enter_transaction_management(self, connection): if not connection.in_atomic_block: @@ -228,9 +232,15 @@ class Atomic(object): "'atomic' cannot be used when autocommit is disabled.") if connection.in_atomic_block: - # We're already in a transaction; create a savepoint. - sid = connection.savepoint() - connection.savepoint_ids.append(sid) + # We're already in a transaction; create a savepoint, unless we + # were told not to or we're already waiting for a rollback. The + # second condition avoids creating useless savepoints and prevents + # overwriting needs_rollback until the rollback is performed. + if self.savepoint and not connection.needs_rollback: + sid = connection.savepoint() + connection.savepoint_ids.append(sid) + else: + connection.savepoint_ids.append(None) else: # We aren't in a transaction yet; create one. # The usual way to start a transaction is to turn autocommit off. @@ -244,13 +254,23 @@ class Atomic(object): else: connection.set_autocommit(False) connection.in_atomic_block = True - connection.savepoint_ids.append(None) + connection.needs_rollback = False def __exit__(self, exc_type, exc_value, traceback): connection = get_connection(self.using) - sid = connection.savepoint_ids.pop() - if exc_value is None: - if sid is None: + if exc_value is None and not connection.needs_rollback: + if connection.savepoint_ids: + # Release savepoint if there is one + sid = connection.savepoint_ids.pop() + if sid is not None: + try: + connection.savepoint_commit(sid) + except DatabaseError: + connection.savepoint_rollback(sid) + # Remove this when the legacy transaction management goes away. + self._legacy_leave_transaction_management(connection) + raise + else: # Commit transaction connection.in_atomic_block = False try: @@ -265,17 +285,19 @@ class Atomic(object): connection.autocommit = True else: connection.set_autocommit(True) - else: - # Release savepoint - try: - connection.savepoint_commit(sid) - except DatabaseError: - connection.savepoint_rollback(sid) - # Remove this when the legacy transaction management goes away. - self._legacy_leave_transaction_management(connection) - raise else: - if sid is None: + # This flag will be set to True again if there isn't a savepoint + # allowing to perform the rollback at this level. + connection.needs_rollback = False + if connection.savepoint_ids: + # Roll back to savepoint if there is one, mark for rollback + # otherwise. + sid = connection.savepoint_ids.pop() + if sid is None: + connection.needs_rollback = True + else: + connection.savepoint_rollback(sid) + else: # Roll back transaction connection.in_atomic_block = False try: @@ -285,9 +307,6 @@ class Atomic(object): connection.autocommit = True else: connection.set_autocommit(True) - else: - # Roll back to savepoint - connection.savepoint_rollback(sid) # Remove this when the legacy transaction management goes away. self._legacy_leave_transaction_management(connection) @@ -301,17 +320,17 @@ class Atomic(object): return inner -def atomic(using=None): +def atomic(using=None, savepoint=True): # Bare decorator: @atomic -- although the first argument is called # `using`, it's actually the function being decorated. if callable(using): - return Atomic(DEFAULT_DB_ALIAS)(using) + return Atomic(DEFAULT_DB_ALIAS, savepoint)(using) # Decorator: @atomic(...) or context manager: with atomic(...): ... else: - return Atomic(using) + return Atomic(using, savepoint) -def atomic_if_autocommit(using=None): +def atomic_if_autocommit(using=None, savepoint=True): # This variant only exists to support the ability to disable transaction # management entirely in the DATABASES setting. It doesn't care about the # autocommit state at run time. @@ -319,7 +338,7 @@ def atomic_if_autocommit(using=None): autocommit = get_connection(db).settings_dict['AUTOCOMMIT'] if autocommit: - return atomic(using) + return atomic(using, savepoint) else: # Bare decorator: @atomic_if_autocommit if callable(using): @@ -447,7 +466,7 @@ def commit_manually(using=None): return _transaction_func(entering, exiting, using) -def commit_on_success_unless_managed(using=None): +def commit_on_success_unless_managed(using=None, savepoint=False): """ Transitory API to preserve backwards-compatibility while refactoring. @@ -455,10 +474,13 @@ def commit_on_success_unless_managed(using=None): simply be replaced by atomic_if_autocommit. Until then, it's necessary to avoid making a commit where Django didn't use to, since entering atomic in managed mode triggers a commmit. + + Unlike atomic, savepoint defaults to False because that's closer to the + legacy behavior. """ connection = get_connection(using) if connection.autocommit or connection.in_atomic_block: - return atomic_if_autocommit(using) + return atomic_if_autocommit(using, savepoint) else: def entering(using): pass diff --git a/docs/topics/db/transactions.txt b/docs/topics/db/transactions.txt index 8cbe0dccd0..d5c22e17f5 100644 --- a/docs/topics/db/transactions.txt +++ b/docs/topics/db/transactions.txt @@ -89,7 +89,7 @@ Controlling transactions explicitly Django provides a single API to control database transactions. -.. function:: atomic(using=None) +.. function:: atomic(using=None, savepoint=True) This function creates an atomic block for writes to the database. (Atomicity is the defining property of database transactions.) @@ -164,6 +164,14 @@ Django provides a single API to control database transactions. - releases or rolls back to the savepoint when exiting an inner block; - commits or rolls back the transaction when exiting the outermost block. + You can disable the creation of savepoints for inner blocks by setting the + ``savepoint`` argument to ``False``. If an exception occurs, Django will + perform the rollback when exiting the first parent block with a savepoint + if there is one, and the outermost block otherwise. Atomicity is still + guaranteed by the outer transaction. This option should only be used if + the overhead of savepoints is noticeable. It has the drawback of breaking + the error handling described above. + .. admonition:: Performance considerations Open transactions have a performance cost for your database server. To diff --git a/tests/transactions/tests.py b/tests/transactions/tests.py index d6cfd8ae95..42a78ad4ba 100644 --- a/tests/transactions/tests.py +++ b/tests/transactions/tests.py @@ -106,6 +106,44 @@ class AtomicTests(TransactionTestCase): raise Exception("Oops, that's his first name") self.assertQuerysetEqual(Reporter.objects.all(), []) + def test_merged_commit_commit(self): + with transaction.atomic(): + Reporter.objects.create(first_name="Tintin") + with transaction.atomic(savepoint=False): + Reporter.objects.create(first_name="Archibald", last_name="Haddock") + self.assertQuerysetEqual(Reporter.objects.all(), + ['', '']) + + def test_merged_commit_rollback(self): + with transaction.atomic(): + Reporter.objects.create(first_name="Tintin") + with six.assertRaisesRegex(self, Exception, "Oops"): + with transaction.atomic(savepoint=False): + Reporter.objects.create(first_name="Haddock") + raise Exception("Oops, that's his last name") + # Writes in the outer block are rolled back too. + self.assertQuerysetEqual(Reporter.objects.all(), []) + + def test_merged_rollback_commit(self): + with six.assertRaisesRegex(self, Exception, "Oops"): + with transaction.atomic(): + Reporter.objects.create(last_name="Tintin") + with transaction.atomic(savepoint=False): + Reporter.objects.create(last_name="Haddock") + raise Exception("Oops, that's his first name") + self.assertQuerysetEqual(Reporter.objects.all(), []) + + def test_merged_rollback_rollback(self): + with six.assertRaisesRegex(self, Exception, "Oops"): + with transaction.atomic(): + Reporter.objects.create(last_name="Tintin") + with six.assertRaisesRegex(self, Exception, "Oops"): + with transaction.atomic(savepoint=False): + Reporter.objects.create(first_name="Haddock") + raise Exception("Oops, that's his last name") + raise Exception("Oops, that's his first name") + self.assertQuerysetEqual(Reporter.objects.all(), []) + def test_reuse_commit_commit(self): atomic = transaction.atomic() with atomic: @@ -171,6 +209,61 @@ class AtomicInsideLegacyTransactionManagementTests(AtomicTests): transaction.leave_transaction_management() +@skipUnless(connection.features.uses_savepoints, + "'atomic' requires transactions and savepoints.") +class AtomicMergeTests(TransactionTestCase): + """Test merging transactions with savepoint=False.""" + + def test_merged_outer_rollback(self): + with transaction.atomic(): + Reporter.objects.create(first_name="Tintin") + with transaction.atomic(savepoint=False): + Reporter.objects.create(first_name="Archibald", last_name="Haddock") + with six.assertRaisesRegex(self, Exception, "Oops"): + with transaction.atomic(savepoint=False): + Reporter.objects.create(first_name="Tournesol") + raise Exception("Oops, that's his last name") + # It wasn't possible to roll back + self.assertEqual(Reporter.objects.count(), 3) + # It wasn't possible to roll back + self.assertEqual(Reporter.objects.count(), 3) + # The outer block must roll back + self.assertQuerysetEqual(Reporter.objects.all(), []) + + def test_merged_inner_savepoint_rollback(self): + with transaction.atomic(): + Reporter.objects.create(first_name="Tintin") + with transaction.atomic(): + Reporter.objects.create(first_name="Archibald", last_name="Haddock") + with six.assertRaisesRegex(self, Exception, "Oops"): + with transaction.atomic(savepoint=False): + Reporter.objects.create(first_name="Tournesol") + raise Exception("Oops, that's his last name") + # It wasn't possible to roll back + self.assertEqual(Reporter.objects.count(), 3) + # The first block with a savepoint must roll back + self.assertEqual(Reporter.objects.count(), 1) + self.assertQuerysetEqual(Reporter.objects.all(), ['']) + + def test_merged_outer_rollback_after_inner_failure_and_inner_success(self): + with transaction.atomic(): + Reporter.objects.create(first_name="Tintin") + # Inner block without a savepoint fails + with six.assertRaisesRegex(self, Exception, "Oops"): + with transaction.atomic(savepoint=False): + Reporter.objects.create(first_name="Haddock") + raise Exception("Oops, that's his last name") + # It wasn't possible to roll back + self.assertEqual(Reporter.objects.count(), 2) + # Inner block with a savepoint succeeds + with transaction.atomic(savepoint=False): + Reporter.objects.create(first_name="Archibald", last_name="Haddock") + # It still wasn't possible to roll back + self.assertEqual(Reporter.objects.count(), 3) + # The outer block must rollback + self.assertQuerysetEqual(Reporter.objects.all(), []) + + @skipUnless(connection.features.uses_savepoints, "'atomic' requires transactions and savepoints.") class AtomicErrorsTests(TransactionTestCase): -- cgit v1.3 From 4dbd1b2dd8d997f439b0116748994fd538ff893a Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Fri, 8 Mar 2013 11:35:54 +0100 Subject: Used commit_on_success_unless_managed to make ORM operations atomic. --- django/db/models/deletion.py | 82 ++++++++++++++++------------------------- django/db/models/query.py | 24 +----------- docs/topics/db/transactions.txt | 9 ++--- 3 files changed, 38 insertions(+), 77 deletions(-) (limited to 'docs') diff --git a/django/db/models/deletion.py b/django/db/models/deletion.py index 27184c9350..a04f05c73b 100644 --- a/django/db/models/deletion.py +++ b/django/db/models/deletion.py @@ -50,24 +50,6 @@ def DO_NOTHING(collector, field, sub_objs, using): pass -def force_managed(func): - @wraps(func) - def decorated(self, *args, **kwargs): - if transaction.get_autocommit(using=self.using): - transaction.enter_transaction_management(using=self.using, forced=True) - forced_managed = True - else: - forced_managed = False - try: - func(self, *args, **kwargs) - if forced_managed: - transaction.commit(using=self.using) - finally: - if forced_managed: - transaction.leave_transaction_management(using=self.using) - return decorated - - class Collector(object): def __init__(self, using): self.using = using @@ -260,7 +242,6 @@ class Collector(object): self.data = SortedDict([(model, self.data[model]) for model in sorted_models]) - @force_managed def delete(self): # sort instance collections for model, instances in self.data.items(): @@ -271,40 +252,41 @@ class Collector(object): # end of a transaction. self.sort() - # send pre_delete signals - for model, obj in self.instances_with_model(): - if not model._meta.auto_created: - signals.pre_delete.send( - sender=model, instance=obj, using=self.using - ) - - # fast deletes - for qs in self.fast_deletes: - qs._raw_delete(using=self.using) - - # update fields - for model, instances_for_fieldvalues in six.iteritems(self.field_updates): - query = sql.UpdateQuery(model) - for (field, value), instances in six.iteritems(instances_for_fieldvalues): - query.update_batch([obj.pk for obj in instances], - {field.name: value}, self.using) - - # reverse instance collections - for instances in six.itervalues(self.data): - instances.reverse() - - # delete instances - for model, instances in six.iteritems(self.data): - query = sql.DeleteQuery(model) - pk_list = [obj.pk for obj in instances] - query.delete_batch(pk_list, self.using) - - if not model._meta.auto_created: - for obj in instances: - signals.post_delete.send( + with transaction.commit_on_success_unless_managed(using=self.using): + # send pre_delete signals + for model, obj in self.instances_with_model(): + if not model._meta.auto_created: + signals.pre_delete.send( sender=model, instance=obj, using=self.using ) + # fast deletes + for qs in self.fast_deletes: + qs._raw_delete(using=self.using) + + # update fields + for model, instances_for_fieldvalues in six.iteritems(self.field_updates): + query = sql.UpdateQuery(model) + for (field, value), instances in six.iteritems(instances_for_fieldvalues): + query.update_batch([obj.pk for obj in instances], + {field.name: value}, self.using) + + # reverse instance collections + for instances in six.itervalues(self.data): + instances.reverse() + + # delete instances + for model, instances in six.iteritems(self.data): + query = sql.DeleteQuery(model) + pk_list = [obj.pk for obj in instances] + query.delete_batch(pk_list, self.using) + + if not model._meta.auto_created: + for obj in instances: + signals.post_delete.send( + sender=model, instance=obj, using=self.using + ) + # update collected instances for model, instances_for_fieldvalues in six.iteritems(self.field_updates): for (field, value), instances in six.iteritems(instances_for_fieldvalues): diff --git a/django/db/models/query.py b/django/db/models/query.py index 834fe363b4..22c7cfba32 100644 --- a/django/db/models/query.py +++ b/django/db/models/query.py @@ -442,12 +442,7 @@ class QuerySet(object): self._for_write = True connection = connections[self.db] fields = self.model._meta.local_fields - if transaction.get_autocommit(using=self.db): - transaction.enter_transaction_management(using=self.db, forced=True) - forced_managed = True - else: - forced_managed = False - try: + with transaction.commit_on_success_unless_managed(using=self.db): if (connection.features.can_combine_inserts_with_and_without_auto_increment_pk and self.model._meta.has_auto_field): self._batched_insert(objs, fields, batch_size) @@ -458,11 +453,6 @@ class QuerySet(object): if objs_without_pk: fields= [f for f in fields if not isinstance(f, AutoField)] self._batched_insert(objs_without_pk, fields, batch_size) - if forced_managed: - transaction.commit(using=self.db) - finally: - if forced_managed: - transaction.leave_transaction_management(using=self.db) return objs @@ -579,18 +569,8 @@ class QuerySet(object): self._for_write = True query = self.query.clone(sql.UpdateQuery) query.add_update_values(kwargs) - if transaction.get_autocommit(using=self.db): - transaction.enter_transaction_management(using=self.db, forced=True) - forced_managed = True - else: - forced_managed = False - try: + with transaction.commit_on_success_unless_managed(using=self.db): rows = query.get_compiler(self.db).execute_sql(None) - if forced_managed: - transaction.commit(using=self.db) - finally: - if forced_managed: - transaction.leave_transaction_management(using=self.db) self._result_cache = None return rows update.alters_data = True diff --git a/docs/topics/db/transactions.txt b/docs/topics/db/transactions.txt index d5c22e17f5..b8fc0d4efa 100644 --- a/docs/topics/db/transactions.txt +++ b/docs/topics/db/transactions.txt @@ -16,11 +16,10 @@ Django's default behavior is to run in autocommit mode. Each query is immediately committed to the database. :ref:`See below for details `. -.. - Django uses transactions or savepoints automatically to guarantee the - integrity of ORM operations that require multiple queries, especially - :ref:`delete() ` and :ref:`update() - ` queries. +Django uses transactions or savepoints automatically to guarantee the +integrity of ORM operations that require multiple queries, especially +:ref:`delete() ` and :ref:`update() +` queries. .. versionchanged:: 1.6 Previous version of Django featured :ref:`a more complicated default -- cgit v1.3 From e654180ce2a11ef4c525497d6c40dc542e16806c Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Mon, 11 Mar 2013 15:10:58 +0100 Subject: Improved the API of set_autocommit. --- django/db/backends/__init__.py | 4 ++-- django/db/backends/creation.py | 2 +- django/db/transaction.py | 2 +- docs/topics/db/transactions.txt | 10 +++++----- tests/backends/tests.py | 12 ++++++------ tests/fixtures_model_package/tests.py | 8 ++++---- tests/fixtures_regress/tests.py | 4 ++-- tests/transactions/tests.py | 6 +++--- 8 files changed, 24 insertions(+), 24 deletions(-) (limited to 'docs') diff --git a/django/db/backends/__init__.py b/django/db/backends/__init__.py index cb17e1db61..09a33eebae 100644 --- a/django/db/backends/__init__.py +++ b/django/db/backends/__init__.py @@ -108,7 +108,7 @@ class BaseDatabaseWrapper(object): self.connection = self.get_new_connection(conn_params) self.init_connection_state() if self.settings_dict['AUTOCOMMIT']: - self.set_autocommit() + self.set_autocommit(True) connection_created.send(sender=self.__class__, connection=self) def ensure_connection(self): @@ -314,7 +314,7 @@ class BaseDatabaseWrapper(object): if managed == self.autocommit: self.set_autocommit(not managed) - def set_autocommit(self, autocommit=True): + def set_autocommit(self, autocommit): """ Enable or disable autocommit. """ diff --git a/django/db/backends/creation.py b/django/db/backends/creation.py index c0d0a5958b..38c284d6d3 100644 --- a/django/db/backends/creation.py +++ b/django/db/backends/creation.py @@ -466,7 +466,7 @@ class BaseDatabaseCreation(object): warnings.warn( "set_autocommit was moved from BaseDatabaseCreation to " "BaseDatabaseWrapper.", PendingDeprecationWarning, stacklevel=2) - return self.connection.set_autocommit() + return self.connection.set_autocommit(True) def sql_table_creation_suffix(self): """ diff --git a/django/db/transaction.py b/django/db/transaction.py index be8981f968..3a4c3f2b8d 100644 --- a/django/db/transaction.py +++ b/django/db/transaction.py @@ -124,7 +124,7 @@ def get_autocommit(using=None): """ return get_connection(using).autocommit -def set_autocommit(using=None, autocommit=True): +def set_autocommit(autocommit, using=None): """ Set the autocommit status of the connection. """ diff --git a/docs/topics/db/transactions.txt b/docs/topics/db/transactions.txt index b8fc0d4efa..b8017e8bfa 100644 --- a/docs/topics/db/transactions.txt +++ b/docs/topics/db/transactions.txt @@ -255,7 +255,7 @@ database connection, if you need to. .. function:: get_autocommit(using=None) -.. function:: set_autocommit(using=None, autocommit=True) +.. function:: set_autocommit(autocommit, using=None) These functions take a ``using`` argument which should be the name of a database. If it isn't provided, Django uses the ``"default"`` database. @@ -600,11 +600,11 @@ To disable autocommit temporarily, instead of:: you should now use:: - transaction.set_autocommit(autocommit=False) + transaction.set_autocommit(False) try: # do stuff finally: - transaction.set_autocommit(autocommit=True) + transaction.set_autocommit(True) To enable autocommit temporarily, instead of:: @@ -613,11 +613,11 @@ To enable autocommit temporarily, instead of:: you should now use:: - transaction.set_autocommit(autocommit=True) + transaction.set_autocommit(True) try: # do stuff finally: - transaction.set_autocommit(autocommit=False) + transaction.set_autocommit(False) Disabling transaction management ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/tests/backends/tests.py b/tests/backends/tests.py index 51acbcb07f..c7f09013d4 100644 --- a/tests/backends/tests.py +++ b/tests/backends/tests.py @@ -522,7 +522,7 @@ class FkConstraintsTests(TransactionTestCase): """ When constraint checks are disabled, should be able to write bad data without IntegrityErrors. """ - transaction.set_autocommit(autocommit=False) + transaction.set_autocommit(False) try: # Create an Article. models.Article.objects.create(headline="Test article", pub_date=datetime.datetime(2010, 9, 4), reporter=self.r) @@ -538,13 +538,13 @@ class FkConstraintsTests(TransactionTestCase): finally: transaction.rollback() finally: - transaction.set_autocommit(autocommit=True) + transaction.set_autocommit(True) def test_disable_constraint_checks_context_manager(self): """ When constraint checks are disabled (using context manager), should be able to write bad data without IntegrityErrors. """ - transaction.set_autocommit(autocommit=False) + transaction.set_autocommit(False) try: # Create an Article. models.Article.objects.create(headline="Test article", pub_date=datetime.datetime(2010, 9, 4), reporter=self.r) @@ -559,14 +559,14 @@ class FkConstraintsTests(TransactionTestCase): finally: transaction.rollback() finally: - transaction.set_autocommit(autocommit=True) + transaction.set_autocommit(True) def test_check_constraints(self): """ Constraint checks should raise an IntegrityError when bad data is in the DB. """ try: - transaction.set_autocommit(autocommit=False) + transaction.set_autocommit(False) # Create an Article. models.Article.objects.create(headline="Test article", pub_date=datetime.datetime(2010, 9, 4), reporter=self.r) # Retrive it from the DB @@ -580,7 +580,7 @@ class FkConstraintsTests(TransactionTestCase): finally: transaction.rollback() finally: - transaction.set_autocommit(autocommit=True) + transaction.set_autocommit(True) class ThreadTests(TestCase): diff --git a/tests/fixtures_model_package/tests.py b/tests/fixtures_model_package/tests.py index 894a6c7fde..c250f647ce 100644 --- a/tests/fixtures_model_package/tests.py +++ b/tests/fixtures_model_package/tests.py @@ -25,7 +25,7 @@ class SampleTestCase(TestCase): class TestNoInitialDataLoading(TransactionTestCase): def test_syncdb(self): - transaction.set_autocommit(autocommit=False) + transaction.set_autocommit(False) try: Book.objects.all().delete() @@ -37,7 +37,7 @@ class TestNoInitialDataLoading(TransactionTestCase): self.assertQuerysetEqual(Book.objects.all(), []) transaction.rollback() finally: - transaction.set_autocommit(autocommit=True) + transaction.set_autocommit(True) def test_flush(self): @@ -49,7 +49,7 @@ class TestNoInitialDataLoading(TransactionTestCase): lambda a: a.name ) - transaction.set_autocommit(autocommit=False) + transaction.set_autocommit(False) try: management.call_command( 'flush', @@ -61,7 +61,7 @@ class TestNoInitialDataLoading(TransactionTestCase): self.assertQuerysetEqual(Book.objects.all(), []) transaction.rollback() finally: - transaction.set_autocommit(autocommit=True) + transaction.set_autocommit(True) class FixtureTestCase(TestCase): diff --git a/tests/fixtures_regress/tests.py b/tests/fixtures_regress/tests.py index f965dd81ac..c76056b93a 100644 --- a/tests/fixtures_regress/tests.py +++ b/tests/fixtures_regress/tests.py @@ -684,8 +684,8 @@ class TestTicket11101(TransactionTestCase): @skipUnlessDBFeature('supports_transactions') def test_ticket_11101(self): """Test that fixtures can be rolled back (ticket #11101).""" - transaction.set_autocommit(autocommit=False) + transaction.set_autocommit(False) try: self.ticket_11101() finally: - transaction.set_autocommit(autocommit=True) + transaction.set_autocommit(True) diff --git a/tests/transactions/tests.py b/tests/transactions/tests.py index 42a78ad4ba..e5a608e583 100644 --- a/tests/transactions/tests.py +++ b/tests/transactions/tests.py @@ -269,19 +269,19 @@ class AtomicMergeTests(TransactionTestCase): class AtomicErrorsTests(TransactionTestCase): def test_atomic_requires_autocommit(self): - transaction.set_autocommit(autocommit=False) + transaction.set_autocommit(False) try: with self.assertRaises(transaction.TransactionManagementError): with transaction.atomic(): pass finally: - transaction.set_autocommit(autocommit=True) + transaction.set_autocommit(True) def test_atomic_prevents_disabling_autocommit(self): autocommit = transaction.get_autocommit() with transaction.atomic(): with self.assertRaises(transaction.TransactionManagementError): - transaction.set_autocommit(autocommit=not autocommit) + transaction.set_autocommit(not autocommit) # Make sure autocommit wasn't changed. self.assertEqual(connection.autocommit, autocommit) -- cgit v1.3 From 571b2d139baa81ae9a0afea88c5b570a2d16d313 Mon Sep 17 00:00:00 2001 From: Jacob Kaplan-Moss Date: Sat, 9 Mar 2013 08:49:37 -0600 Subject: Deprecated django.contrib.comments. --- django/contrib/comments/__init__.py | 3 +++ docs/index.txt | 1 - docs/internals/deprecation.txt | 2 ++ docs/ref/contrib/comments/custom.txt | 12 ++++++++++++ docs/ref/contrib/comments/example.txt | 12 ++++++++++++ docs/ref/contrib/comments/forms.txt | 14 +++++++++++++- docs/ref/contrib/comments/index.txt | 12 ++++++++++++ docs/ref/contrib/comments/models.txt | 12 ++++++++++++ docs/ref/contrib/comments/moderation.txt | 12 ++++++++++++ docs/ref/contrib/comments/signals.txt | 12 ++++++++++++ docs/releases/1.6.txt | 13 +++++++++++++ 11 files changed, 103 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/django/contrib/comments/__init__.py b/django/contrib/comments/__init__.py index 1798c1adb5..007b77ad7b 100644 --- a/django/contrib/comments/__init__.py +++ b/django/contrib/comments/__init__.py @@ -1,3 +1,4 @@ +import warnings from django.conf import settings from django.core import urlresolvers from django.core.exceptions import ImproperlyConfigured @@ -5,6 +6,8 @@ from django.contrib.comments.models import Comment from django.contrib.comments.forms import CommentForm from django.utils.importlib import import_module +warnings.warn("django.contrib.comments is deprecated and will be removed before Django 1.8.", PendingDeprecationWarning) + DEFAULT_COMMENTS_APP = 'django.contrib.comments' def get_comment_app(): diff --git a/docs/index.txt b/docs/index.txt index 73b378de4d..197856ea4b 100644 --- a/docs/index.txt +++ b/docs/index.txt @@ -254,7 +254,6 @@ applications: * :doc:`Logging ` * :doc:`Sending emails ` * :doc:`Syndication feeds (RSS/Atom) ` -* :doc:`Comments `, :doc:`comment moderation ` and :doc:`custom comments ` * :doc:`Pagination ` * :doc:`Messages framework ` * :doc:`Serialization ` diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt index 19675801e4..b9948affcb 100644 --- a/docs/internals/deprecation.txt +++ b/docs/internals/deprecation.txt @@ -365,6 +365,8 @@ these changes. - ``django.db.transaction.commit_unless_managed()`` - ``django.db.transaction.rollback_unless_managed()`` +* ``django.contrib.comments`` will be removed. + 2.0 --- diff --git a/docs/ref/contrib/comments/custom.txt b/docs/ref/contrib/comments/custom.txt index b4ab65bc2d..fd70a6a224 100644 --- a/docs/ref/contrib/comments/custom.txt +++ b/docs/ref/contrib/comments/custom.txt @@ -4,6 +4,18 @@ Customizing the comments framework .. currentmodule:: django.contrib.comments +.. warning:: + + Django's comment framework has been deprecated and is no longer supported. + Most users will be better served with a custom solution, or a hosted + product like Disqus__. + + The code formerly known as ``django.contrib.comments`` is `still available + in an external repository`__. + + __ https://disqus.com/ + __ https://github.com/django/django-contrib-comments + If the built-in comment framework doesn't quite fit your needs, you can extend the comment app's behavior to add custom data and logic. The comments framework lets you extend the built-in comment model, the built-in comment form, and the diff --git a/docs/ref/contrib/comments/example.txt b/docs/ref/contrib/comments/example.txt index e99c10f732..abf79c5f14 100644 --- a/docs/ref/contrib/comments/example.txt +++ b/docs/ref/contrib/comments/example.txt @@ -4,6 +4,18 @@ Example of using the built-in comments app =========================================== +.. warning:: + + Django's comment framework has been deprecated and is no longer supported. + Most users will be better served with a custom solution, or a hosted + product like Disqus__. + + The code formerly known as ``django.contrib.comments`` is `still available + in an external repository`__. + + __ https://disqus.com/ + __ https://github.com/django/django-contrib-comments + Follow the first three steps of the quick start guide in the :doc:`documentation `. diff --git a/docs/ref/contrib/comments/forms.txt b/docs/ref/contrib/comments/forms.txt index c21a27bb9e..f2624ca870 100644 --- a/docs/ref/contrib/comments/forms.txt +++ b/docs/ref/contrib/comments/forms.txt @@ -5,6 +5,18 @@ Comment form classes .. module:: django.contrib.comments.forms :synopsis: Forms for dealing with the built-in comment model. +.. warning:: + + Django's comment framework has been deprecated and is no longer supported. + Most users will be better served with a custom solution, or a hosted + product like Disqus__. + + The code formerly known as ``django.contrib.comments`` is `still available + in an external repository`__. + + __ https://disqus.com/ + __ https://github.com/django/django-contrib-comments + The ``django.contrib.comments.forms`` module contains a handful of forms you'll use when writing custom views dealing with comments, or when writing :doc:`custom comment apps `. @@ -43,4 +55,4 @@ forms that you can subclass to reuse pieces of the form handling logic: Handles the details of the comment itself. This class contains the ``name``, ``email``, ``url``, and the ``comment`` - field itself, along with the associated validation logic. \ No newline at end of file + field itself, along with the associated validation logic. diff --git a/docs/ref/contrib/comments/index.txt b/docs/ref/contrib/comments/index.txt index d4e967b4b2..6db69d8168 100644 --- a/docs/ref/contrib/comments/index.txt +++ b/docs/ref/contrib/comments/index.txt @@ -7,6 +7,18 @@ Django's comments framework .. highlightlang:: html+django +.. warning:: + + Django's comment framework has been deprecated and is no longer supported. + Most users will be better served with a custom solution, or a hosted + product like Disqus__. + + The code formerly known as ``django.contrib.comments`` is `still available + in an external repository`__. + + __ https://disqus.com/ + __ https://github.com/django/django-contrib-comments + Django includes a simple, yet customizable comments framework. The built-in comments framework can be used to attach comments to any model, so you can use it for comments on blog entries, photos, book chapters, or anything else. diff --git a/docs/ref/contrib/comments/models.txt b/docs/ref/contrib/comments/models.txt index 78e7b92145..cae9c11971 100644 --- a/docs/ref/contrib/comments/models.txt +++ b/docs/ref/contrib/comments/models.txt @@ -5,6 +5,18 @@ The built-in comment models .. module:: django.contrib.comments.models :synopsis: The built-in comment models +.. warning:: + + Django's comment framework has been deprecated and is no longer supported. + Most users will be better served with a custom solution, or a hosted + product like Disqus__. + + The code formerly known as ``django.contrib.comments`` is `still available + in an external repository`__. + + __ https://disqus.com/ + __ https://github.com/django/django-contrib-comments + .. class:: Comment Django's built-in comment model. Has the following fields: diff --git a/docs/ref/contrib/comments/moderation.txt b/docs/ref/contrib/comments/moderation.txt index a7138dda53..796e257200 100644 --- a/docs/ref/contrib/comments/moderation.txt +++ b/docs/ref/contrib/comments/moderation.txt @@ -5,6 +5,18 @@ Generic comment moderation .. module:: django.contrib.comments.moderation :synopsis: Support for automatic comment moderation. +.. warning:: + + Django's comment framework has been deprecated and is no longer supported. + Most users will be better served with a custom solution, or a hosted + product like Disqus__. + + The code formerly known as ``django.contrib.comments`` is `still available + in an external repository`__. + + __ https://disqus.com/ + __ https://github.com/django/django-contrib-comments + Django's bundled comments application is extremely useful on its own, but the amount of comment spam circulating on the Web today essentially makes it necessary to have some sort of automatic diff --git a/docs/ref/contrib/comments/signals.txt b/docs/ref/contrib/comments/signals.txt index ea901b6a95..f9df8980d7 100644 --- a/docs/ref/contrib/comments/signals.txt +++ b/docs/ref/contrib/comments/signals.txt @@ -5,6 +5,18 @@ Signals sent by the comments app .. module:: django.contrib.comments.signals :synopsis: Signals sent by the comment module. +.. warning:: + + Django's comment framework has been deprecated and is no longer supported. + Most users will be better served with a custom solution, or a hosted + product like Disqus__. + + The code formerly known as ``django.contrib.comments`` is `still available + in an external repository`__. + + __ https://disqus.com/ + __ https://github.com/django/django-contrib-comments + The comment app sends a series of :doc:`signals ` to allow for comment moderation and similar activities. See :doc:`the introduction to signals ` for information about how to register for and receive these diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index a1fe69229c..eec55c6632 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -271,6 +271,19 @@ current APIs are deprecated: The reasons for this change and the upgrade path are described in the :ref:`transactions documentation `. +``django.contrib.comments`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Django's comment framework has been deprecated and is no longer supported. It +will be available in Django 1.6 and 1.7, and removed in Django 1.8. Most users +will be better served with a custom solution, or a hosted product like Disqus__. + +The code formerly known as ``django.contrib.comments`` is `still available +in an external repository`__. + +__ https://disqus.com/ +__ https://github.com/django/django-contrib-comments + Changes to :ttag:`cycle` and :ttag:`firstof` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- cgit v1.3 From 94521f50aa765b9187674f4c6876360a0d6f87d8 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Mon, 11 Mar 2013 22:48:03 +0100 Subject: Fixed #20026 -- Typo in Apache auth docs. --- docs/howto/deployment/wsgi/apache-auth.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'docs') diff --git a/docs/howto/deployment/wsgi/apache-auth.txt b/docs/howto/deployment/wsgi/apache-auth.txt index 220645947d..d06e89cd0e 100644 --- a/docs/howto/deployment/wsgi/apache-auth.txt +++ b/docs/howto/deployment/wsgi/apache-auth.txt @@ -69,9 +69,9 @@ application :doc:`that is created by django-admin.py startproject LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule authz_user_module modules/mod_authz_user.so -Finally, edit your WSGI script ``mysite.wsgi`` to tie Apache's -authentication to your site's authentication mechanisms by importing the -check_user function: +Finally, edit your WSGI script ``mysite.wsgi`` to tie Apache's authentication +to your site's authentication mechanisms by importing the ``check_password`` +function: .. code-block:: python -- cgit v1.3 From 7e26f4cb799d67ffeae41cbe98d034d01783800a Mon Sep 17 00:00:00 2001 From: Ramiro Morales Date: Mon, 11 Mar 2013 22:09:21 -0300 Subject: Fixed broken link in binary fields doc. --- docs/ref/models/fields.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/ref/models/fields.txt b/docs/ref/models/fields.txt index 7eed80e9c4..39b84170fe 100644 --- a/docs/ref/models/fields.txt +++ b/docs/ref/models/fields.txt @@ -362,7 +362,7 @@ to filter a queryset on a ``BinaryField`` value. Although you might think about storing files in the database, consider that it is bad design in 99% of the cases. This field is *not* a replacement for - proper :ref:`static files ` handling. + proper :doc`static files ` handling. ``BooleanField`` ---------------- -- cgit v1.3 From e1bafdbffa6e8b13db12c995eaa53508e047c83c Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 12 Mar 2013 08:04:32 -0400 Subject: Fixed #19965 - Added a warning that the tutorial is written for Python 2. Thanks itsallvoodoo for the patch. --- docs/intro/tutorial01.txt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'docs') diff --git a/docs/intro/tutorial01.txt b/docs/intro/tutorial01.txt index 7d1776296a..d073790fbb 100644 --- a/docs/intro/tutorial01.txt +++ b/docs/intro/tutorial01.txt @@ -22,9 +22,12 @@ tell Django is installed and which version by running the following command: If Django is installed, you should see the version of your installation. If it isn't, you'll get an error telling "No module named django". -This tutorial is written for Django |version|. If the versions don't match, -you can refer to the tutorial for your version of Django or update Django to -the newest version. +This tutorial is written for Django |version| and Python 2.x. If the Django +version doesn't match, you can refer to the tutorial for your version of Django +or update Django to the newest version. If you are using Python 3.x, be aware +that your code may need to differ from what is in the tutorial and you should +continue using the tutorial only if you know what you are doing with Python +3.x. See :doc:`How to install Django ` for advice on how to remove older versions of Django and install a newer one. -- cgit v1.3 From 83a416f5e764705ed553f3513bdf9587270554c6 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Wed, 13 Mar 2013 14:08:32 +0100 Subject: Made atomic usable when autocommit is off. Thanks Anssi for haggling until I implemented this. This change alleviates the need for atomic_if_autocommit. When autocommit is disabled for a database, atomic will simply create and release savepoints, and not commit anything. This honors the contract of not doing any transaction management. This change also makes the hack to allow using atomic within the legacy transaction management redundant. None of the above will work with SQLite, because of a flaw in the design of the sqlite3 library. This is a known limitation that cannot be lifted without unacceptable side effects eg. triggering arbitrary commits. --- django/core/cache/backends/db.py | 2 +- django/db/backends/__init__.py | 7 +- django/db/transaction.py | 155 +++++++++++++++++---------------------- docs/topics/db/transactions.txt | 26 +++---- tests/transactions/tests.py | 30 +++++--- 5 files changed, 106 insertions(+), 114 deletions(-) (limited to 'docs') diff --git a/django/core/cache/backends/db.py b/django/core/cache/backends/db.py index f18b05db2f..7749284122 100644 --- a/django/core/cache/backends/db.py +++ b/django/core/cache/backends/db.py @@ -109,7 +109,7 @@ class DatabaseCache(BaseDatabaseCache): if six.PY3: b64encoded = b64encoded.decode('latin1') try: - with transaction.atomic_if_autocommit(using=db): + with transaction.atomic(using=db): cursor.execute("SELECT cache_key, expires FROM %s " "WHERE cache_key = %%s" % table, [key]) result = cursor.fetchone() diff --git a/django/db/backends/__init__.py b/django/db/backends/__init__.py index c797a50733..27b39a3d1f 100644 --- a/django/db/backends/__init__.py +++ b/django/db/backends/__init__.py @@ -50,15 +50,16 @@ class BaseDatabaseWrapper(object): # set somewhat aggressively, as the DBAPI doesn't make it easy to # deduce if the connection is in transaction or not. self._dirty = False - # Tracks if the connection is in a transaction managed by 'atomic' + # Tracks if the connection is in a transaction managed by 'atomic'. self.in_atomic_block = False + # Tracks if the outermost 'atomic' block should commit on exit, + # ie. if autocommit was active on entry. + self.commit_on_exit = True # Tracks if the transaction should be rolled back to the next # available savepoint because of an exception in an inner block. self.needs_rollback = False # List of savepoints created by 'atomic' self.savepoint_ids = [] - # Hack to provide compatibility with legacy transaction management - self._atomic_forced_unmanaged = False # Connection termination related attributes self.close_at = None diff --git a/django/db/transaction.py b/django/db/transaction.py index 1ff1a8437e..0aed0aa4f4 100644 --- a/django/db/transaction.py +++ b/django/db/transaction.py @@ -206,18 +206,6 @@ class Atomic(object): self.using = using self.savepoint = savepoint - def _legacy_enter_transaction_management(self, connection): - if not connection.in_atomic_block: - if connection.transaction_state and connection.transaction_state[-1]: - connection._atomic_forced_unmanaged = True - connection.enter_transaction_management(managed=False) - else: - connection._atomic_forced_unmanaged = False - - def _legacy_leave_transaction_management(self, connection): - if not connection.in_atomic_block and connection._atomic_forced_unmanaged: - connection.leave_transaction_management() - def __enter__(self): connection = get_connection(self.using) @@ -225,12 +213,31 @@ class Atomic(object): # autocommit status. connection.ensure_connection() - # Remove this when the legacy transaction management goes away. - self._legacy_enter_transaction_management(connection) - - if not connection.in_atomic_block and not connection.autocommit: - raise TransactionManagementError( - "'atomic' cannot be used when autocommit is disabled.") + if not connection.in_atomic_block: + # Reset state when entering an outermost atomic block. + connection.commit_on_exit = True + connection.needs_rollback = False + if not connection.autocommit: + # Some database adapters (namely sqlite3) don't handle + # transactions and savepoints properly when autocommit is off. + # Turning autocommit back on isn't an option; it would trigger + # a premature commit. Give up if that happens. + if connection.features.autocommits_when_autocommit_is_off: + raise TransactionManagementError( + "Your database backend doesn't behave properly when " + "autocommit is off. Turn it on before using 'atomic'.") + # When entering an atomic block with autocommit turned off, + # Django should only use savepoints and shouldn't commit. + # This requires at least a savepoint for the outermost block. + if not self.savepoint: + raise TransactionManagementError( + "The outermost 'atomic' block cannot use " + "savepoint = False when autocommit is off.") + # Pretend we're already in an atomic block to bypass the code + # that disables autocommit to enter a transaction, and make a + # note to deal with this case in __exit__. + connection.in_atomic_block = True + connection.commit_on_exit = False if connection.in_atomic_block: # We're already in a transaction; create a savepoint, unless we @@ -255,63 +262,58 @@ class Atomic(object): else: connection.set_autocommit(False) connection.in_atomic_block = True - connection.needs_rollback = False def __exit__(self, exc_type, exc_value, traceback): connection = get_connection(self.using) - if exc_value is None and not connection.needs_rollback: - if connection.savepoint_ids: - # Release savepoint if there is one - sid = connection.savepoint_ids.pop() - if sid is not None: + + if connection.savepoint_ids: + sid = connection.savepoint_ids.pop() + else: + # Prematurely unset this flag to allow using commit or rollback. + connection.in_atomic_block = False + + try: + if exc_value is None and not connection.needs_rollback: + if connection.in_atomic_block: + # Release savepoint if there is one + if sid is not None: + try: + connection.savepoint_commit(sid) + except DatabaseError: + connection.savepoint_rollback(sid) + raise + else: + # Commit transaction try: - connection.savepoint_commit(sid) + connection.commit() except DatabaseError: - connection.savepoint_rollback(sid) - # Remove this when the legacy transaction management goes away. - self._legacy_leave_transaction_management(connection) + connection.rollback() raise else: - # Commit transaction - connection.in_atomic_block = False - try: - connection.commit() - except DatabaseError: - connection.rollback() - # Remove this when the legacy transaction management goes away. - self._legacy_leave_transaction_management(connection) - raise - finally: - if connection.features.autocommits_when_autocommit_is_off: - connection.autocommit = True + # This flag will be set to True again if there isn't a savepoint + # allowing to perform the rollback at this level. + connection.needs_rollback = False + if connection.in_atomic_block: + # Roll back to savepoint if there is one, mark for rollback + # otherwise. + if sid is None: + connection.needs_rollback = True else: - connection.set_autocommit(True) - else: - # This flag will be set to True again if there isn't a savepoint - # allowing to perform the rollback at this level. - connection.needs_rollback = False - if connection.savepoint_ids: - # Roll back to savepoint if there is one, mark for rollback - # otherwise. - sid = connection.savepoint_ids.pop() - if sid is None: - connection.needs_rollback = True + connection.savepoint_rollback(sid) else: - connection.savepoint_rollback(sid) - else: - # Roll back transaction - connection.in_atomic_block = False - try: + # Roll back transaction connection.rollback() - finally: - if connection.features.autocommits_when_autocommit_is_off: - connection.autocommit = True - else: - connection.set_autocommit(True) - - # Remove this when the legacy transaction management goes away. - self._legacy_leave_transaction_management(connection) + finally: + # Outermost block exit when autocommit was enabled. + if not connection.in_atomic_block: + if connection.features.autocommits_when_autocommit_is_off: + connection.autocommit = True + else: + connection.set_autocommit(True) + # Outermost block exit when autocommit was disabled. + elif not connection.savepoint_ids and not connection.commit_on_exit: + connection.in_atomic_block = False def __call__(self, func): @wraps(func, assigned=available_attrs(func)) @@ -331,24 +333,6 @@ def atomic(using=None, savepoint=True): return Atomic(using, savepoint) -def atomic_if_autocommit(using=None, savepoint=True): - # This variant only exists to support the ability to disable transaction - # management entirely in the DATABASES setting. It doesn't care about the - # autocommit state at run time. - db = DEFAULT_DB_ALIAS if callable(using) else using - autocommit = get_connection(db).settings_dict['AUTOCOMMIT'] - - if autocommit: - return atomic(using, savepoint) - else: - # Bare decorator: @atomic_if_autocommit - if callable(using): - return using - # Decorator: @atomic_if_autocommit(...) - else: - return lambda func: func - - ############################################ # Deprecated decorators / context managers # ############################################ @@ -472,16 +456,15 @@ def commit_on_success_unless_managed(using=None, savepoint=False): Transitory API to preserve backwards-compatibility while refactoring. Once the legacy transaction management is fully deprecated, this should - simply be replaced by atomic_if_autocommit. Until then, it's necessary to - avoid making a commit where Django didn't use to, since entering atomic in - managed mode triggers a commmit. + simply be replaced by atomic. Until then, it's necessary to guarantee that + a commit occurs on exit, which atomic doesn't do when it's nested. Unlike atomic, savepoint defaults to False because that's closer to the legacy behavior. """ connection = get_connection(using) if connection.autocommit or connection.in_atomic_block: - return atomic_if_autocommit(using, savepoint) + return atomic(using, savepoint) else: def entering(using): pass diff --git a/docs/topics/db/transactions.txt b/docs/topics/db/transactions.txt index b8017e8bfa..122af14359 100644 --- a/docs/topics/db/transactions.txt +++ b/docs/topics/db/transactions.txt @@ -153,9 +153,6 @@ Django provides a single API to control database transactions. to commit, roll back, or change the autocommit state of the database connection within an ``atomic`` block will raise an exception. - ``atomic`` can only be used in autocommit mode. It will raise an exception - if autocommit is turned off. - Under the hood, Django's transaction management code: - opens a transaction when entering the outermost ``atomic`` block; @@ -171,6 +168,10 @@ Django provides a single API to control database transactions. the overhead of savepoints is noticeable. It has the drawback of breaking the error handling described above. + You may use ``atomic`` when autocommit is turned off. It will only use + savepoints, even for the outermost block, and it will raise an exception + if the outermost block is declared with ``savepoint=False``. + .. admonition:: Performance considerations Open transactions have a performance cost for your database server. To @@ -271,9 +272,8 @@ another. Review the documentation of the adapter you're using carefully. You must ensure that no transaction is active, usually by issuing a :func:`commit` or a :func:`rollback`, before turning autocommit back on. -:func:`atomic` requires autocommit to be turned on; it will raise an exception -if autocommit is off. Django will also refuse to turn autocommit off when an -:func:`atomic` block is active, because that would break atomicity. +Django will refuse to turn autocommit off when an :func:`atomic` block is +active, because that would break atomicity. Transactions ------------ @@ -392,8 +392,11 @@ When autocommit is enabled, savepoints don't make sense. When it's disabled, commits before any statement other than ``SELECT``, ``INSERT``, ``UPDATE``, ``DELETE`` and ``REPLACE``.) -As a consequence, savepoints are only usable inside a transaction ie. inside -an :func:`atomic` block. +This has two consequences: + +- The low level APIs for savepoints are only usable inside a transaction ie. + inside an :func:`atomic` block. +- It's impossible to use :func:`atomic` when autocommit is turned off. Transactions in MySQL --------------------- @@ -584,9 +587,6 @@ During the deprecation period, it's possible to use :func:`atomic` within However, the reverse is forbidden, because nesting the old decorators / context managers breaks atomicity. -If you enter :func:`atomic` while you're in managed mode, it will trigger a -commit to start from a clean slate. - Managing autocommit ~~~~~~~~~~~~~~~~~~~ @@ -623,8 +623,8 @@ Disabling transaction management ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Instead of setting ``TRANSACTIONS_MANAGED = True``, set the ``AUTOCOMMIT`` key -to ``False`` in the configuration of each database, as explained in :ref -:`deactivate-transaction-management`. +to ``False`` in the configuration of each database, as explained in +:ref:`deactivate-transaction-management`. Backwards incompatibilities --------------------------- diff --git a/tests/transactions/tests.py b/tests/transactions/tests.py index e53a320481..aeb9bc3d2c 100644 --- a/tests/transactions/tests.py +++ b/tests/transactions/tests.py @@ -6,7 +6,7 @@ import warnings from django.db import connection, transaction, IntegrityError from django.test import TransactionTestCase, skipUnlessDBFeature from django.utils import six -from django.utils.unittest import skipUnless +from django.utils.unittest import skipIf, skipUnless from .models import Reporter @@ -197,6 +197,23 @@ class AtomicInsideTransactionTests(AtomicTests): self.atomic.__exit__(*sys.exc_info()) +@skipIf(connection.features.autocommits_when_autocommit_is_off, + "This test requires a non-autocommit mode that doesn't autocommit.") +class AtomicWithoutAutocommitTests(AtomicTests): + """All basic tests for atomic should also pass when autocommit is turned off.""" + + def setUp(self): + transaction.set_autocommit(False) + + def tearDown(self): + # The tests access the database after exercising 'atomic', initiating + # a transaction ; a rollback is required before restoring autocommit. + transaction.rollback() + transaction.set_autocommit(True) + + +@skipIf(connection.features.autocommits_when_autocommit_is_off, + "This test requires a non-autocommit mode that doesn't autocommit.") class AtomicInsideLegacyTransactionManagementTests(AtomicTests): def setUp(self): @@ -268,16 +285,7 @@ class AtomicMergeTests(TransactionTestCase): "'atomic' requires transactions and savepoints.") class AtomicErrorsTests(TransactionTestCase): - def test_atomic_requires_autocommit(self): - transaction.set_autocommit(False) - try: - with self.assertRaises(transaction.TransactionManagementError): - with transaction.atomic(): - pass - finally: - transaction.set_autocommit(True) - - def test_atomic_prevents_disabling_autocommit(self): + def test_atomic_prevents_setting_autocommit(self): autocommit = transaction.get_autocommit() with transaction.atomic(): with self.assertRaises(transaction.TransactionManagementError): -- cgit v1.3 From 5d8342f321c1e1017e63555270999c9378f10185 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Wed, 13 Mar 2013 14:47:48 +0100 Subject: Proof-read and adjusted the transactions docs. --- docs/internals/deprecation.txt | 14 +++++---- docs/releases/1.6.txt | 3 +- docs/topics/db/transactions.txt | 70 +++++++++++++++++++---------------------- 3 files changed, 42 insertions(+), 45 deletions(-) (limited to 'docs') diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt index b9948affcb..1305d68859 100644 --- a/docs/internals/deprecation.txt +++ b/docs/internals/deprecation.txt @@ -329,14 +329,19 @@ these changes. 1.8 --- +* ``django.contrib.comments`` will be removed. + * The following transaction management APIs will be removed: - ``TransactionMiddleware``, - the decorators and context managers ``autocommit``, ``commit_on_success``, - and ``commit_manually``, + and ``commit_manually``, defined in ``django.db.transaction``, + - the functions ``commit_unless_managed`` and ``rollback_unless_managed``, + also defined in ``django.db.transaction``, - the ``TRANSACTIONS_MANAGED`` setting. - Upgrade paths are described in :ref:`transactions-upgrading-from-1.5`. + Upgrade paths are described in the :ref:`transaction management docs + `. * The :ttag:`cycle` and :ttag:`firstof` template tags will auto-escape their arguments. In 1.6 and 1.7, this behavior is provided by the version of these @@ -358,14 +363,11 @@ these changes. ``ChangeList.root_query_set`` and ``ChangeList.query_set``. * The following private APIs will be removed: + - ``django.db.close_connection()`` - ``django.db.backends.creation.BaseDatabaseCreation.set_autocommit()`` - ``django.db.transaction.is_managed()`` - ``django.db.transaction.managed()`` - - ``django.db.transaction.commit_unless_managed()`` - - ``django.db.transaction.rollback_unless_managed()`` - -* ``django.contrib.comments`` will be removed. 2.0 --- diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index eec55c6632..30c3cc5d2c 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -36,7 +36,8 @@ Improved transaction management Django's transaction management was overhauled. Database-level autocommit is now turned on by default. This makes transaction handling more explicit and should improve performance. The existing APIs were deprecated, and new APIs -were introduced, as described in :doc:`/topics/db/transactions`. +were introduced, as described in the :doc:`transaction management docs +`. Please review carefully the list of :ref:`known backwards-incompatibilities ` to determine if you need to make changes in diff --git a/docs/topics/db/transactions.txt b/docs/topics/db/transactions.txt index 122af14359..697dee49c0 100644 --- a/docs/topics/db/transactions.txt +++ b/docs/topics/db/transactions.txt @@ -35,10 +35,10 @@ transaction. Set :setting:`ATOMIC_REQUESTS ` to ``True`` in the configuration of each database for which you want to enable this behavior. -It works like this. When a request starts, Django starts a transaction. If the -response is produced without problems, Django commits the transaction. If the -view function produces an exception, Django rolls back the transaction. -Middleware always runs outside of this transaction. +It works like this. Before calling a view function, Django starts a +transaction. If the response is produced without problems, Django commits the +transaction. If the view produces an exception, Django rolls back the +transaction. You may perfom partial commits and rollbacks in your view code, typically with the :func:`atomic` context manager. However, at the end of the view, either @@ -207,13 +207,6 @@ To avoid this, you can :ref:`deactivate the transaction management Before Django 1.6, autocommit was turned off, and it was emulated by forcing a commit after write operations in the ORM. -.. warning:: - - If you're using the database API directly — for instance, you're running - SQL queries with ``cursor.execute()`` — be aware that autocommit is on, - and consider wrapping your operations in a transaction, with - :func:`atomic`, to ensure consistency. - .. _deactivate-transaction-management: Deactivating transaction management @@ -251,8 +244,8 @@ Autocommit .. versionadded:: 1.6 -Django provides a straightforward API to manage the autocommit state of each -database connection, if you need to. +Django provides a straightforward API in the :mod:`django.db.transaction` +module to manage the autocommit state of each database connection. .. function:: get_autocommit(using=None) @@ -287,7 +280,7 @@ start a transaction is to disable autocommit with :func:`set_autocommit`. Once you're in a transaction, you can choose either to apply the changes you've performed until this point with :func:`commit`, or to cancel them with -:func:`rollback`. +:func:`rollback`. These functions are defined in :mod:`django.db.transaction`. .. function:: commit(using=None) @@ -332,10 +325,8 @@ Savepoints are controlled by three functions in :mod:`django.db.transaction`: .. function:: savepoint(using=None) - Creates a new savepoint. This marks a point in the transaction that - is known to be in a "good" state. - - Returns the savepoint ID (``sid``). + Creates a new savepoint. This marks a point in the transaction that is + known to be in a "good" state. Returns the savepoint ID (``sid``). .. function:: savepoint_commit(sid, using=None) @@ -388,11 +379,9 @@ While SQLite ≥ 3.6.8 supports savepoints, a flaw in the design of the :mod:`sqlite3` makes them hardly usable. When autocommit is enabled, savepoints don't make sense. When it's disabled, -:mod:`sqlite3` commits implicitly before savepoint-related statement. (It +:mod:`sqlite3` commits implicitly before savepoint statements. (In fact, it commits before any statement other than ``SELECT``, ``INSERT``, ``UPDATE``, -``DELETE`` and ``REPLACE``.) - -This has two consequences: +``DELETE`` and ``REPLACE``.) This bug has two consequences: - The low level APIs for savepoints are only usable inside a transaction ie. inside an :func:`atomic` block. @@ -407,22 +396,27 @@ depends on your MySQL version and the table types you're using. (By peculiarities are outside the scope of this article, but the MySQL site has `information on MySQL transactions`_. -If your MySQL setup does *not* support transactions, then Django will function -in autocommit mode: Statements will be executed and committed as soon as -they're called. If your MySQL setup *does* support transactions, Django will -handle transactions as explained in this document. +If your MySQL setup does *not* support transactions, then Django will always +function in autocommit mode: statements will be executed and committed as soon +as they're called. If your MySQL setup *does* support transactions, Django +will handle transactions as explained in this document. .. _information on MySQL transactions: http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-transactions.html Handling exceptions within PostgreSQL transactions -------------------------------------------------- -When a call to a PostgreSQL cursor raises an exception (typically -``IntegrityError``), all subsequent SQL in the same transaction will fail with -the error "current transaction is aborted, queries ignored until end of -transaction block". Whilst simple use of ``save()`` is unlikely to raise an -exception in PostgreSQL, there are more advanced usage patterns which -might, such as saving objects with unique fields, saving using the +.. note:: + This section is relevant only if you're implementing your own transaction + management. This problem cannot occur in Django's default mode and + :func:`atomic` handles it automatically. + +Inside a transaction, when a call to a PostgreSQL cursor raises an exception +(typically ``IntegrityError``), all subsequent SQL in the same transaction +will fail with the error "current transaction is aborted, queries ignored +until end of transaction block". Whilst simple use of ``save()`` is unlikely +to raise an exception in PostgreSQL, there are more advanced usage patterns +which might, such as saving objects with unique fields, saving using the force_insert/force_update flag, or invoking custom SQL. There are several ways to recover from this sort of error. @@ -529,9 +523,9 @@ Django starts in auto mode. ``TransactionMiddleware``, Internally, Django keeps a stack of states. Activations and deactivations must be balanced. -For example, ``commit_on_success`` switches to managed mode when entering the -block of code it controls; when exiting the block, it commits or rollbacks, -and switches back to auto mode. +For example, :func:`commit_on_success` switches to managed mode when entering +the block of code it controls; when exiting the block, it commits or +rollbacks, and switches back to auto mode. So :func:`commit_on_success` really has two effects: it changes the transaction state and it defines an transaction block. Nesting will give the @@ -568,7 +562,7 @@ you must now use this pattern:: my_view.transactions_per_request = False The transaction middleware applied not only to view functions, but also to -middleware modules that come after it. For instance, if you used the session +middleware modules that came after it. For instance, if you used the session middleware after the transaction middleware, session creation was part of the transaction. :setting:`ATOMIC_REQUESTS ` only applies to the view itself. @@ -651,8 +645,8 @@ same "automatic transaction". If you need to enforce atomicity, you must wrap the sequence of queries in :func:`commit_on_success`. To check for this problem, look for calls to ``cursor.execute()``. They're -usually followed by a call to ``transaction.commit_unless_managed``, which -isn't necessary any more and should be removed. +usually followed by a call to ``transaction.commit_unless_managed()``, which +isn't useful any more and should be removed. Select for update ~~~~~~~~~~~~~~~~~ -- cgit v1.3 From bd68f701b1867e0a9cf17d7f0948ba493d11b7e5 Mon Sep 17 00:00:00 2001 From: Pablo Sanfilippo Date: Wed, 13 Mar 2013 14:16:27 -0300 Subject: Fixed an erroneous import in example code. --- docs/topics/class-based-views/intro.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/topics/class-based-views/intro.txt b/docs/topics/class-based-views/intro.txt index 11d1f84ffe..7764e417fc 100644 --- a/docs/topics/class-based-views/intro.txt +++ b/docs/topics/class-based-views/intro.txt @@ -71,7 +71,7 @@ something like:: In a class-based view, this would become:: from django.http import HttpResponse - from django.views.base import View + from django.views.generic.base import View class MyView(View): def get(self, request): @@ -113,7 +113,7 @@ and methods in the subclass. So that if your parent class had an attribute ``greeting`` like this:: from django.http import HttpResponse - from django.views.base import View + from django.views.generic.base import View class GreetingView(View): greeting = "Good Day" -- cgit v1.3 From 50eb70b08fae48445a52680b2d07a9535b25e3c5 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Wed, 13 Mar 2013 23:11:35 +0100 Subject: Fixed #20032 -- Documented how to simulate the absence of a setting Thanks Ram Rachum for the report. --- docs/topics/testing/overview.txt | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'docs') diff --git a/docs/topics/testing/overview.txt b/docs/topics/testing/overview.txt index b917086e06..cb1c8dc52a 100644 --- a/docs/topics/testing/overview.txt +++ b/docs/topics/testing/overview.txt @@ -1415,6 +1415,14 @@ The decorator can also be applied to test case classes:: the original ``LoginTestCase`` is still equally affected by the decorator. +You can also simulate the absence of a setting by deleting it after settings +have been overriden, like this:: + + @override_settings() + def test_something(self): + del settings.LOGIN_URL + ... + When overriding settings, make sure to handle the cases in which your app's code uses a cache or similar feature that retains state even if the setting is changed. Django provides the -- cgit v1.3 From 6b4834952dcce0db5cbc1534635c00ff8573a6d8 Mon Sep 17 00:00:00 2001 From: Anssi Kääriäinen Date: Thu, 29 Nov 2012 12:10:31 +0200 Subject: Fixed #16649 -- Refactored save_base logic Model.save() will use UPDATE - if not updated - INSERT instead of SELECT - if found UPDATE else INSERT. This should save a query when updating, but will cost a little when inserting model with PK set. Also fixed #17341 -- made sure .save() commits transactions only after the whole model has been saved. This wasn't the case in model inheritance situations. The save_base implementation was refactored into multiple methods. A typical chain for inherited save is: save_base() _save_parents(self) for each parent: _save_parents(parent) _save_table(parent) _save_table(self) --- django/db/models/base.py | 216 +++++++++++++++++++---------------- docs/ref/models/instances.txt | 13 ++- docs/releases/1.6.txt | 4 + tests/basic/tests.py | 31 ++++- tests/model_inheritance/tests.py | 2 +- tests/transactions_regress/models.py | 2 + tests/transactions_regress/tests.py | 24 +++- 7 files changed, 179 insertions(+), 113 deletions(-) (limited to 'docs') diff --git a/django/db/models/base.py b/django/db/models/base.py index ab0e42d461..f3e3b76dd7 100644 --- a/django/db/models/base.py +++ b/django/db/models/base.py @@ -545,125 +545,139 @@ class Model(six.with_metaclass(ModelBase)): force_update=force_update, update_fields=update_fields) save.alters_data = True - def save_base(self, raw=False, cls=None, origin=None, force_insert=False, + def save_base(self, raw=False, force_insert=False, force_update=False, using=None, update_fields=None): """ - Does the heavy-lifting involved in saving. Subclasses shouldn't need to - override this method. It's separate from save() in order to hide the - need for overrides of save() to pass around internal-only parameters - ('raw', 'cls', and 'origin'). + Handles the parts of saving which should be done only once per save, + yet need to be done in raw saves, too. This includes some sanity + checks and signal sending. + + The 'raw' argument is telling save_base not to save any parent + models and not to do any changes to the values before save. This + is used by fixture loading. """ using = using or router.db_for_write(self.__class__, instance=self) assert not (force_insert and (force_update or update_fields)) assert update_fields is None or len(update_fields) > 0 - if cls is None: - cls = self.__class__ - meta = cls._meta - if not meta.proxy: - origin = cls - else: - meta = cls._meta - - if origin and not meta.auto_created: + cls = origin = self.__class__ + # Skip proxies, but keep the origin as the proxy model. + if cls._meta.proxy: + cls = cls._meta.concrete_model + meta = cls._meta + if not meta.auto_created: signals.pre_save.send(sender=origin, instance=self, raw=raw, using=using, update_fields=update_fields) - - # If we are in a raw save, save the object exactly as presented. - # That means that we don't try to be smart about saving attributes - # that might have come from the parent class - we just save the - # attributes we have been given to the class we have been given. - # We also go through this process to defer the save of proxy objects - # to their actual underlying model. - if not raw or meta.proxy: - if meta.proxy: - org = cls - else: - org = None - for parent, field in meta.parents.items(): - # At this point, parent's primary key field may be unknown - # (for example, from administration form which doesn't fill - # this field). If so, fill it. - if field and getattr(self, parent._meta.pk.attname) is None and getattr(self, field.attname) is not None: - setattr(self, parent._meta.pk.attname, getattr(self, field.attname)) - - self.save_base(cls=parent, origin=org, using=using, - update_fields=update_fields) - - if field: - setattr(self, field.attname, self._get_pk_val(parent._meta)) - # Since we didn't have an instance of the parent handy, we - # set attname directly, bypassing the descriptor. - # Invalidate the related object cache, in case it's been - # accidentally populated. A fresh instance will be - # re-built from the database if necessary. - cache_name = field.get_cache_name() - if hasattr(self, cache_name): - delattr(self, cache_name) - - if meta.proxy: - return - - if not meta.proxy: - non_pks = [f for f in meta.local_fields if not f.primary_key] - - if update_fields: - non_pks = [f for f in non_pks if f.name in update_fields or f.attname in update_fields] - - with transaction.commit_on_success_unless_managed(using=using): - # First, try an UPDATE. If that doesn't update anything, do an INSERT. - pk_val = self._get_pk_val(meta) - pk_set = pk_val is not None - record_exists = True - manager = cls._base_manager - if pk_set: - # Determine if we should do an update (pk already exists, forced update, - # no force_insert) - if ((force_update or update_fields) or (not force_insert and - manager.using(using).filter(pk=pk_val).exists())): - if force_update or non_pks: - values = [(f, None, (raw and getattr(self, f.attname) or f.pre_save(self, False))) for f in non_pks] - if values: - rows = manager.using(using).filter(pk=pk_val)._update(values) - if force_update and not rows: - raise DatabaseError("Forced update did not affect any rows.") - if update_fields and not rows: - raise DatabaseError("Save with update_fields did not affect any rows.") - else: - record_exists = False - if not pk_set or not record_exists: - if meta.order_with_respect_to: - # If this is a model with an order_with_respect_to - # autopopulate the _order field - field = meta.order_with_respect_to - order_value = manager.using(using).filter(**{field.name: getattr(self, field.attname)}).count() - self._order = order_value - - fields = meta.local_fields - if not pk_set: - if force_update or update_fields: - raise ValueError("Cannot force an update in save() with no primary key.") - fields = [f for f in fields if not isinstance(f, AutoField)] - - record_exists = False - - update_pk = bool(meta.has_auto_field and not pk_set) - result = manager._insert([self], fields=fields, return_id=update_pk, using=using, raw=raw) - - if update_pk: - setattr(self, meta.pk.attname, result) - + with transaction.commit_on_success_unless_managed(using=using, savepoint=False): + if not raw: + self._save_parents(cls, using, update_fields) + updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields) # Store the database on which the object was saved self._state.db = using # Once saved, this is no longer a to-be-added instance. self._state.adding = False # Signal that the save is complete - if origin and not meta.auto_created: - signals.post_save.send(sender=origin, instance=self, created=(not record_exists), + if not meta.auto_created: + signals.post_save.send(sender=origin, instance=self, created=(not updated), update_fields=update_fields, raw=raw, using=using) save_base.alters_data = True + def _save_parents(self, cls, using, update_fields): + """ + Saves all the parents of cls using values from self. + """ + meta = cls._meta + for parent, field in meta.parents.items(): + # Make sure the link fields are synced between parent and self. + if (field and getattr(self, parent._meta.pk.attname) is None + and getattr(self, field.attname) is not None): + setattr(self, parent._meta.pk.attname, getattr(self, field.attname)) + self._save_parents(cls=parent, using=using, update_fields=update_fields) + self._save_table(cls=parent, using=using, update_fields=update_fields) + # Set the parent's PK value to self. + if field: + setattr(self, field.attname, self._get_pk_val(parent._meta)) + # Since we didn't have an instance of the parent handy set + # attname directly, bypassing the descriptor. Invalidate + # the related object cache, in case it's been accidentally + # populated. A fresh instance will be re-built from the + # database if necessary. + cache_name = field.get_cache_name() + if hasattr(self, cache_name): + delattr(self, cache_name) + + def _save_table(self, raw=False, cls=None, force_insert=False, + force_update=False, using=None, update_fields=None): + """ + Does the heavy-lifting involved in saving. Updates or inserts the data + for a single table. + """ + meta = cls._meta + non_pks = [f for f in meta.local_fields if not f.primary_key] + + if update_fields: + non_pks = [f for f in non_pks + if f.name in update_fields or f.attname in update_fields] + + pk_val = self._get_pk_val(meta) + pk_set = pk_val is not None + if not pk_set and (force_update or update_fields): + raise ValueError("Cannot force an update in save() with no primary key.") + updated = False + # If possible, try an UPDATE. If that doesn't update anything, do an INSERT. + if pk_set and not force_insert: + base_qs = cls._base_manager.using(using) + values = [(f, None, (raw and getattr(self, f.attname) or f.pre_save(self, False))) + for f in non_pks] + if not values: + # We can end up here when saving a model in inheritance chain where + # update_fields doesn't target any field in current model. In that + # case we just say the update succeeded. Another case ending up here + # is a model with just PK - in that case check that the PK still + # exists. + updated = update_fields is not None or base_qs.filter(pk=pk_val).exists() + else: + updated = self._do_update(base_qs, using, pk_val, values) + if force_update and not updated: + raise DatabaseError("Forced update did not affect any rows.") + if update_fields and not updated: + raise DatabaseError("Save with update_fields did not affect any rows.") + if not updated: + if meta.order_with_respect_to: + # If this is a model with an order_with_respect_to + # autopopulate the _order field + field = meta.order_with_respect_to + order_value = cls._base_manager.using(using).filter( + **{field.name: getattr(self, field.attname)}).count() + self._order = order_value + + fields = meta.local_fields + if not pk_set: + fields = [f for f in fields if not isinstance(f, AutoField)] + + update_pk = bool(meta.has_auto_field and not pk_set) + result = self._do_insert(cls._base_manager, using, fields, update_pk, raw) + if update_pk: + setattr(self, meta.pk.attname, result) + return updated + + def _do_update(self, base_qs, using, pk_val, values): + """ + This method will try to update the model. If the model was updated (in + the sense that an update query was done and a matching row was found + from the DB) the method will return True. + """ + return base_qs.filter(pk=pk_val)._update(values) > 0 + + def _do_insert(self, manager, using, fields, update_pk, raw): + """ + Do an INSERT. If update_pk is defined then this method should return + the new pk for the model. + """ + return manager._insert([self], fields=fields, return_id=update_pk, + using=using, raw=raw) + def delete(self, using=None): using = using or router.db_for_write(self.__class__, instance=self) assert self._get_pk_val() is not None, "%s object can't be deleted because its %s attribute is set to None." % (self._meta.object_name, self._meta.pk.attname) diff --git a/docs/ref/models/instances.txt b/docs/ref/models/instances.txt index 92071b8d3f..9f583c42ac 100644 --- a/docs/ref/models/instances.txt +++ b/docs/ref/models/instances.txt @@ -292,12 +292,13 @@ follows this algorithm: * If the object's primary key attribute is set to a value that evaluates to ``True`` (i.e., a value other than ``None`` or the empty string), Django - executes a ``SELECT`` query to determine whether a record with the given - primary key already exists. -* If the record with the given primary key does already exist, Django - executes an ``UPDATE`` query. -* If the object's primary key attribute is *not* set, or if it's set but a - record doesn't exist, Django executes an ``INSERT``. + executes an ``UPDATE``. +* If the object's primary key attribute is *not* set or if the ``UPDATE`` + didn't update anything, Django executes an ``INSERT``. + +.. versionchanged:: 1.6 + Previously Django used ``SELECT`` - if not found ``INSERT`` else ``UPDATE`` + algorithm. The old algorithm resulted in one more query in ``UPDATE`` case. The one gotcha here is that you should be careful not to specify a primary-key value explicitly when saving new objects, if you cannot guarantee the diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 30c3cc5d2c..a44545ddf3 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -150,6 +150,10 @@ Minor features * Generic :class:`~django.contrib.gis.db.models.GeometryField` is now editable with the OpenLayers widget in the admin. +* The :meth:`Model.save() ` will do + ``UPDATE`` - if not updated - ``INSERT`` instead of ``SELECT`` - if not + found ``INSERT`` else ``UPDATE`` in case the model's primary key is set. + Backwards incompatible changes in 1.6 ===================================== diff --git a/tests/basic/tests.py b/tests/basic/tests.py index 2de87a225f..a8005baca7 100644 --- a/tests/basic/tests.py +++ b/tests/basic/tests.py @@ -1,11 +1,13 @@ from __future__ import absolute_import, unicode_literals from datetime import datetime +import threading from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned, FieldError +from django.db import connections, DEFAULT_DB_ALIAS from django.db.models.fields import Field, FieldDoesNotExist from django.db.models.query import QuerySet, EmptyQuerySet, ValuesListQuerySet -from django.test import TestCase, skipIfDBFeature, skipUnlessDBFeature +from django.test import TestCase, TransactionTestCase, skipIfDBFeature, skipUnlessDBFeature from django.utils import six from django.utils.translation import ugettext_lazy @@ -690,4 +692,29 @@ class ModelTest(TestCase): def test_invalid_qs_list(self): qs = Article.objects.order_by('invalid_column') self.assertRaises(FieldError, list, qs) - self.assertRaises(FieldError, list, qs) \ No newline at end of file + self.assertRaises(FieldError, list, qs) + +class ConcurrentSaveTests(TransactionTestCase): + @skipUnlessDBFeature('test_db_allows_multiple_connections') + def test_concurrent_delete_with_save(self): + """ + Test fetching, deleting and finally saving an object - we should get + an insert in this case. + """ + a = Article.objects.create(headline='foo', pub_date=datetime.now()) + exceptions = [] + def deleter(): + try: + # Do not delete a directly - doing so alters its state. + Article.objects.filter(pk=a.pk).delete() + connections[DEFAULT_DB_ALIAS].commit_unless_managed() + except Exception as e: + exceptions.append(e) + finally: + connections[DEFAULT_DB_ALIAS].close() + self.assertEqual(len(exceptions), 0) + t = threading.Thread(target=deleter) + t.start() + t.join() + a.save() + self.assertEqual(Article.objects.get(pk=a.pk).headline, 'foo') diff --git a/tests/model_inheritance/tests.py b/tests/model_inheritance/tests.py index 62f521c07f..dc40d2d2e0 100644 --- a/tests/model_inheritance/tests.py +++ b/tests/model_inheritance/tests.py @@ -294,7 +294,7 @@ class ModelInheritanceTests(TestCase): rating=4, chef=c ) - with self.assertNumQueries(6): + with self.assertNumQueries(3): ir.save() def test_update_parent_filtering(self): diff --git a/tests/transactions_regress/models.py b/tests/transactions_regress/models.py index a4b576c3ca..e09e81d93d 100644 --- a/tests/transactions_regress/models.py +++ b/tests/transactions_regress/models.py @@ -4,6 +4,8 @@ from django.db import models class Mod(models.Model): fld = models.IntegerField() +class SubMod(Mod): + cnt = models.IntegerField(unique=True) class M2mA(models.Model): others = models.ManyToManyField('M2mB') diff --git a/tests/transactions_regress/tests.py b/tests/transactions_regress/tests.py index 142c09d3cf..e320f76169 100644 --- a/tests/transactions_regress/tests.py +++ b/tests/transactions_regress/tests.py @@ -1,6 +1,7 @@ from __future__ import absolute_import -from django.db import connection, connections, transaction, DEFAULT_DB_ALIAS, DatabaseError +from django.db import (connection, connections, transaction, DEFAULT_DB_ALIAS, DatabaseError, + IntegrityError) from django.db.transaction import commit_on_success, commit_manually, TransactionManagementError from django.test import TransactionTestCase, skipUnlessDBFeature from django.test.utils import override_settings @@ -8,8 +9,25 @@ from django.utils.unittest import skipIf, skipUnless from transactions.tests import IgnorePendingDeprecationWarningsMixin -from .models import Mod, M2mA, M2mB - +from .models import Mod, M2mA, M2mB, SubMod + +class ModelInheritanceTests(TransactionTestCase): + def test_save(self): + # First, create a SubMod, then try to save another with conflicting + # cnt field. The problem was that transactions were committed after + # every parent save when not in managed transaction. As the cnt + # conflict is in the second model, we can check if the first save + # was committed or not. + SubMod(fld=1, cnt=1).save() + # We should have committed the transaction for the above - assert this. + connection.rollback() + self.assertEqual(SubMod.objects.count(), 1) + try: + SubMod(fld=2, cnt=1).save() + except IntegrityError: + connection.rollback() + self.assertEqual(SubMod.objects.count(), 1) + self.assertEqual(Mod.objects.count(), 1) class TestTransactionClosing(IgnorePendingDeprecationWarningsMixin, TransactionTestCase): """ -- cgit v1.3 From b492e590746df51ddcdfa2a2372008455a457bcc Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Thu, 14 Mar 2013 14:59:15 +0100 Subject: Updated release instructions to account for website automation. --- docs/internals/howto-release-django.txt | 54 +++++++++++---------------------- 1 file changed, 17 insertions(+), 37 deletions(-) (limited to 'docs') diff --git a/docs/internals/howto-release-django.txt b/docs/internals/howto-release-django.txt index 83b6a8c9be..b6f879753a 100644 --- a/docs/internals/howto-release-django.txt +++ b/docs/internals/howto-release-django.txt @@ -17,7 +17,7 @@ There are three types of releases that you might need to make * Security releases, disclosing and fixing a vulnerability. This'll generally involve two or three simultaneous releases -- e.g. - 1.5.X, 1.6.X, and, depending on timing, perhaps a 1.7 alpha/beta/rc. + 1.5.x, 1.6.x, and, depending on timing, perhaps a 1.7 alpha/beta/rc. * Regular version releases, either a final release (e.g. 1.5) or a bugfix update (e.g. 1.5.1). @@ -36,12 +36,11 @@ differences noted. The short version is: #. Update version numbers and create the release package(s)! -#. Upload the package(s) to the the ``djangoproject.com`` server and create - some redirects for download/checksum links. +#. Upload the package(s) to the ``djangoproject.com`` server. #. Unless this is a pre-release, add the new version(s) to PyPI. -#. Update the home page and download page to link to the new version(s). +#. Declare the new version in the admin on ``djangoproject.com``. #. Post the blog entry and send out the email announcements. @@ -62,7 +61,7 @@ You'll need a few things hooked up to make this work: * Access to the ``djangoproject.com`` server to upload files and trigger a deploy. -* Access to the admin on ``djangoproject.com``. +* Access to the admin on ``djangoproject.com`` as a "Site maintainer". * Access to post to ``django-announce``. @@ -104,31 +103,15 @@ any time leading up to the actual release: Preparing for release ===================== -Next, everything needs to be made ready for actually rolling the -release. The following things should be done a few days to a few hours -before release: -#. Update the djangoproject home page and download page templates to - reflect the new release. There are two templates to change: - ``flatpages/download.html`` and ``homepage.html``; here's - `one example commit for the 1.4.5 / 1.3.7 releases`__ +Write the announcement blog post for the release. You can enter it into the +admin at any time and mark it as inactive. Here are a few examples: `example +security release announcement`__, `example regular release announcement`__, +`example pre-release announcement`__. - __ https://github.com/django/djangoproject.com/commit/772edbc6ac5a2b8e718606b3338f2bcc429fb9b6 - -#. Write the announcement blog post for the release. You can enter it into - the admin at any time and mark it as inactive. Here are a few examples: - `example security release announcement`__, `example regular release - announcement`__, `example pre-release announcement`__. - - __ https://www.djangoproject.com/weblog/2013/feb/19/security/ - __ https://www.djangoproject.com/weblog/2012/mar/23/14/ - __ https://www.djangoproject.com/weblog/2012/nov/27/15-beta-1/ - -#. Create redirects in the admin for the new downloads. For each release, - we create two redirects that look like:: - - /download//tarball/ -> /m/releases//Django-.tar.gz - /download//checksum/ -> /m/pgp/Django-.checksum.txt +__ https://www.djangoproject.com/weblog/2013/feb/19/security/ +__ https://www.djangoproject.com/weblog/2012/mar/23/14/ +__ https://www.djangoproject.com/weblog/2012/nov/27/15-beta-1/ Actually rolling the release ============================ @@ -144,7 +127,6 @@ OK, this is the fun part, where we actually push out a release! stable/`` (e.g. checkout ``stable/1.5.x`` to issue a release in the 1.5 series) and then ``git pull`` to make sure you're up-to-date. - #. If this is a security release, merge the appropriate patches from ``django-private``. Rebase these patches as necessary to make each one a simple commit on the release branch rather than a merge commit. To ensure @@ -209,7 +191,7 @@ Now you're ready to actually put the release out there. To do this: #. Upload the release package(s) to the djangoproject server; releases go in ``/home/www/djangoproject.com/src/media/releases``, under a directory for the appropriate version number (e.g. - ``/home/www/djangoproject.com/src/media/releases/1.5`` for a ``1.5.X`` + ``/home/www/djangoproject.com/src/media/releases/1.5`` for a ``1.5.x`` release.). #. Upload the checksum file(s); these go in @@ -245,13 +227,10 @@ Now you're ready to actually put the release out there. To do this: work. *FIXME: Is there any reason to pull this file out manually rather than using "python setup.py register"?* -#. Deploy the template changes you made a while back by running `fab deploy` - from the ``djangoproject.com`` repo. +#. Go to the `Add release page in the admin`__, enter the new release number + exactly as it appears in the name of the tarball (Django-.tar.gz). -#. Update the ``/download/`` flat page in the djangoproject.com - admin. For alpha/beta/RC releases, we add a temporary third section - to that page listing the preview package; otherwise, just update - the "Get the latest official version" section. + __ https://www.djangoproject.com/admin/releases/release/add/ #. Make the blog post announcing the release live. @@ -283,7 +262,8 @@ You're almost done! All that's left to do now is: the new version's docs, and update the ``docs/fixtures/doc_releases.json`` JSON fixture. *FIXME: what is the purpose of maintaining this fixture?* -#. Add the release in `Trac's versions list`_. +#. Add the release in `Trac's versions list`_ if necessary. Not all versions + are declared; take example on previous releases. .. _Trac's versions list: https://code.djangoproject.com/admin/ticket/versions -- cgit v1.3 From 2f121dfe635b3f497fe1fe03bc8eb97cdf5083b3 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Thu, 14 Mar 2013 16:19:59 +0100 Subject: Fixed #17051 -- Removed some 'invalid' field error messages When the 'invalid' error message is set at field level, it masks the error message raised by the validator, if any. --- django/contrib/auth/tests/forms.py | 5 ++--- django/core/validators.py | 2 +- django/forms/fields.py | 24 ++++-------------------- django/utils/ipv6.py | 2 +- docs/ref/forms/validation.txt | 20 ++++++++------------ tests/forms_tests/tests/extra.py | 30 +++++++++++++++--------------- tests/forms_tests/tests/validators.py | 33 ++++++++++++++++++++++++++++----- 7 files changed, 59 insertions(+), 57 deletions(-) (limited to 'docs') diff --git a/django/contrib/auth/tests/forms.py b/django/contrib/auth/tests/forms.py index 7b12491683..2c8f6e4faf 100644 --- a/django/contrib/auth/tests/forms.py +++ b/django/contrib/auth/tests/forms.py @@ -7,7 +7,7 @@ from django.contrib.auth.forms import (UserCreationForm, AuthenticationForm, ReadOnlyPasswordHashField, ReadOnlyPasswordHashWidget) from django.contrib.auth.tests.utils import skipIfCustomUser from django.core import mail -from django.forms.fields import Field, EmailField, CharField +from django.forms.fields import Field, CharField from django.test import TestCase from django.test.utils import override_settings from django.utils.encoding import force_text @@ -322,8 +322,7 @@ class PasswordResetFormTest(TestCase): data = {'email': 'not valid'} form = PasswordResetForm(data) self.assertFalse(form.is_valid()) - self.assertEqual(form['email'].errors, - [force_text(EmailField.default_error_messages['invalid'])]) + self.assertEqual(form['email'].errors, [_('Enter a valid email address.')]) def test_nonexistant_email(self): # Test nonexistant email address. This should not fail because it would diff --git a/django/core/validators.py b/django/core/validators.py index 3067b551da..d0b713be32 100644 --- a/django/core/validators.py +++ b/django/core/validators.py @@ -80,7 +80,7 @@ def validate_integer(value): class EmailValidator(object): - message = _('Enter a valid e-mail address.') + message = _('Enter a valid email address.') code = 'invalid' user_regex = re.compile( r"(^[-!#$%&'*+/=?^_`{}|~0-9A-Z]+(\.[-!#$%&'*+/=?^_`{}|~0-9A-Z]+)*$" # dot-atom diff --git a/django/forms/fields.py b/django/forms/fields.py index 4a07dc3542..11b7f44029 100644 --- a/django/forms/fields.py +++ b/django/forms/fields.py @@ -49,9 +49,10 @@ class Field(object): widget = TextInput # Default widget to use when rendering this type of Field. hidden_widget = HiddenInput # Default widget to use when rendering this as "hidden". default_validators = [] # Default set of validators + # Add an 'invalid' entry to default_error_message if you want a specific + # field error message not raised by the field validators. default_error_messages = { 'required': _('This field is required.'), - 'invalid': _('Enter a valid value.'), } empty_values = list(validators.EMPTY_VALUES) @@ -225,8 +226,6 @@ class CharField(Field): class IntegerField(Field): default_error_messages = { 'invalid': _('Enter a whole number.'), - 'max_value': _('Ensure this value is less than or equal to %(limit_value)s.'), - 'min_value': _('Ensure this value is greater than or equal to %(limit_value)s.'), } def __init__(self, max_value=None, min_value=None, *args, **kwargs): @@ -504,9 +503,6 @@ class RegexField(CharField): class EmailField(CharField): widget = EmailInput - default_error_messages = { - 'invalid': _('Enter a valid email address.'), - } default_validators = [validators.validate_email] def clean(self, value): @@ -1082,9 +1078,6 @@ class SplitDateTimeField(MultiValueField): class IPAddressField(CharField): - default_error_messages = { - 'invalid': _('Enter a valid IPv4 address.'), - } default_validators = [validators.validate_ipv4_address] def to_python(self, value): @@ -1094,13 +1087,9 @@ class IPAddressField(CharField): class GenericIPAddressField(CharField): - default_error_messages = {} - def __init__(self, protocol='both', unpack_ipv4=False, *args, **kwargs): self.unpack_ipv4 = unpack_ipv4 - self.default_validators, invalid_error_message = \ - validators.ip_address_validators(protocol, unpack_ipv4) - self.default_error_messages['invalid'] = invalid_error_message + self.default_validators = validators.ip_address_validators(protocol, unpack_ipv4)[0] super(GenericIPAddressField, self).__init__(*args, **kwargs) def to_python(self, value): @@ -1108,14 +1097,9 @@ class GenericIPAddressField(CharField): return '' value = value.strip() if value and ':' in value: - return clean_ipv6_address(value, - self.unpack_ipv4, self.error_messages['invalid']) + return clean_ipv6_address(value, self.unpack_ipv4) return value class SlugField(CharField): - default_error_messages = { - 'invalid': _("Enter a valid 'slug' consisting of letters, numbers," - " underscores or hyphens."), - } default_validators = [validators.validate_slug] diff --git a/django/utils/ipv6.py b/django/utils/ipv6.py index 7624bb9c76..8881574eaa 100644 --- a/django/utils/ipv6.py +++ b/django/utils/ipv6.py @@ -5,7 +5,7 @@ from django.core.exceptions import ValidationError from django.utils.six.moves import xrange def clean_ipv6_address(ip_str, unpack_ipv4=False, - error_message="This is not a valid IPv6 address"): + error_message="This is not a valid IPv6 address."): """ Cleans a IPv6 address string. diff --git a/docs/ref/forms/validation.txt b/docs/ref/forms/validation.txt index e89bce748f..978c985b55 100644 --- a/docs/ref/forms/validation.txt +++ b/docs/ref/forms/validation.txt @@ -181,24 +181,20 @@ the field's ``validators`` argument, or defined on the Field class itself with the ``default_validators`` attribute. Simple validators can be used to validate values inside the field, let's have -a look at Django's ``EmailField``:: +a look at Django's ``SlugField``:: - class EmailField(CharField): - default_error_messages = { - 'invalid': _('Enter a valid email address.'), - } - default_validators = [validators.validate_email] + class SlugField(CharField): + default_validators = [validators.validate_slug] -As you can see, ``EmailField`` is just a ``CharField`` with customized error -message and a validator that validates email addresses. This can also be done -on field definition so:: +As you can see, ``SlugField`` is just a ``CharField`` with a customized +validator that validates that submitted text obeys to some character rules. +This can also be done on field definition so:: - email = forms.EmailField() + slug = forms.SlugField() is equivalent to:: - email = forms.CharField(validators=[validators.validate_email], - error_messages={'invalid': _('Enter a valid email address.')}) + slug = forms.CharField(validators=[validators.validate_slug]) Form field default cleaning diff --git a/tests/forms_tests/tests/extra.py b/tests/forms_tests/tests/extra.py index 359ad442bc..427d099bb2 100644 --- a/tests/forms_tests/tests/extra.py +++ b/tests/forms_tests/tests/extra.py @@ -506,11 +506,11 @@ class FormsExtraTestCase(TestCase, AssertFormErrorsMixin): self.assertFormErrors(['Enter a valid IPv4 or IPv6 address.'], f.clean, '256.125.1.5') self.assertEqual(f.clean(' fe80::223:6cff:fe8a:2e8a '), 'fe80::223:6cff:fe8a:2e8a') self.assertEqual(f.clean(' 2a02::223:6cff:fe8a:2e8a '), '2a02::223:6cff:fe8a:2e8a') - self.assertFormErrors(['Enter a valid IPv4 or IPv6 address.'], f.clean, '12345:2:3:4') - self.assertFormErrors(['Enter a valid IPv4 or IPv6 address.'], f.clean, '1::2:3::4') - self.assertFormErrors(['Enter a valid IPv4 or IPv6 address.'], f.clean, 'foo::223:6cff:fe8a:2e8a') - self.assertFormErrors(['Enter a valid IPv4 or IPv6 address.'], f.clean, '1::2:3:4:5:6:7:8') - self.assertFormErrors(['Enter a valid IPv4 or IPv6 address.'], f.clean, '1:2') + self.assertFormErrors(['This is not a valid IPv6 address.'], f.clean, '12345:2:3:4') + self.assertFormErrors(['This is not a valid IPv6 address.'], f.clean, '1::2:3::4') + self.assertFormErrors(['This is not a valid IPv6 address.'], f.clean, 'foo::223:6cff:fe8a:2e8a') + self.assertFormErrors(['This is not a valid IPv6 address.'], f.clean, '1::2:3:4:5:6:7:8') + self.assertFormErrors(['This is not a valid IPv6 address.'], f.clean, '1:2') def test_generic_ipaddress_as_ipv4_only(self): f = GenericIPAddressField(protocol="IPv4") @@ -535,11 +535,11 @@ class FormsExtraTestCase(TestCase, AssertFormErrorsMixin): self.assertFormErrors(['Enter a valid IPv6 address.'], f.clean, '256.125.1.5') self.assertEqual(f.clean(' fe80::223:6cff:fe8a:2e8a '), 'fe80::223:6cff:fe8a:2e8a') self.assertEqual(f.clean(' 2a02::223:6cff:fe8a:2e8a '), '2a02::223:6cff:fe8a:2e8a') - self.assertFormErrors(['Enter a valid IPv6 address.'], f.clean, '12345:2:3:4') - self.assertFormErrors(['Enter a valid IPv6 address.'], f.clean, '1::2:3::4') - self.assertFormErrors(['Enter a valid IPv6 address.'], f.clean, 'foo::223:6cff:fe8a:2e8a') - self.assertFormErrors(['Enter a valid IPv6 address.'], f.clean, '1::2:3:4:5:6:7:8') - self.assertFormErrors(['Enter a valid IPv6 address.'], f.clean, '1:2') + self.assertFormErrors(['This is not a valid IPv6 address.'], f.clean, '12345:2:3:4') + self.assertFormErrors(['This is not a valid IPv6 address.'], f.clean, '1::2:3::4') + self.assertFormErrors(['This is not a valid IPv6 address.'], f.clean, 'foo::223:6cff:fe8a:2e8a') + self.assertFormErrors(['This is not a valid IPv6 address.'], f.clean, '1::2:3:4:5:6:7:8') + self.assertFormErrors(['This is not a valid IPv6 address.'], f.clean, '1:2') def test_generic_ipaddress_as_generic_not_required(self): f = GenericIPAddressField(required=False) @@ -552,11 +552,11 @@ class FormsExtraTestCase(TestCase, AssertFormErrorsMixin): self.assertFormErrors(['Enter a valid IPv4 or IPv6 address.'], f.clean, '256.125.1.5') self.assertEqual(f.clean(' fe80::223:6cff:fe8a:2e8a '), 'fe80::223:6cff:fe8a:2e8a') self.assertEqual(f.clean(' 2a02::223:6cff:fe8a:2e8a '), '2a02::223:6cff:fe8a:2e8a') - self.assertFormErrors(['Enter a valid IPv4 or IPv6 address.'], f.clean, '12345:2:3:4') - self.assertFormErrors(['Enter a valid IPv4 or IPv6 address.'], f.clean, '1::2:3::4') - self.assertFormErrors(['Enter a valid IPv4 or IPv6 address.'], f.clean, 'foo::223:6cff:fe8a:2e8a') - self.assertFormErrors(['Enter a valid IPv4 or IPv6 address.'], f.clean, '1::2:3:4:5:6:7:8') - self.assertFormErrors(['Enter a valid IPv4 or IPv6 address.'], f.clean, '1:2') + self.assertFormErrors(['This is not a valid IPv6 address.'], f.clean, '12345:2:3:4') + self.assertFormErrors(['This is not a valid IPv6 address.'], f.clean, '1::2:3::4') + self.assertFormErrors(['This is not a valid IPv6 address.'], f.clean, 'foo::223:6cff:fe8a:2e8a') + self.assertFormErrors(['This is not a valid IPv6 address.'], f.clean, '1::2:3:4:5:6:7:8') + self.assertFormErrors(['This is not a valid IPv6 address.'], f.clean, '1:2') def test_generic_ipaddress_normalization(self): # Test the normalising code diff --git a/tests/forms_tests/tests/validators.py b/tests/forms_tests/tests/validators.py index a4cb324815..0598835cff 100644 --- a/tests/forms_tests/tests/validators.py +++ b/tests/forms_tests/tests/validators.py @@ -1,16 +1,39 @@ +from __future__ import unicode_literals + from django import forms from django.core import validators from django.core.exceptions import ValidationError from django.utils.unittest import TestCase +class UserForm(forms.Form): + full_name = forms.CharField( + max_length = 50, + validators = [ + validators.validate_integer, + validators.validate_email, + ] + ) + string = forms.CharField( + max_length = 50, + validators = [ + validators.RegexValidator( + regex='^[a-zA-Z]*$', + message="Letters only.", + ) + ] + ) + + class TestFieldWithValidators(TestCase): def test_all_errors_get_reported(self): - field = forms.CharField( - validators=[validators.validate_integer, validators.validate_email] - ) - self.assertRaises(ValidationError, field.clean, 'not int nor mail') + form = UserForm({'full_name': 'not int nor mail', 'string': '2 is not correct'}) + self.assertRaises(ValidationError, form.fields['full_name'].clean, 'not int nor mail') + try: - field.clean('not int nor mail') + form.fields['full_name'].clean('not int nor mail') except ValidationError as e: self.assertEqual(2, len(e.messages)) + + self.assertFalse(form.is_valid()) + self.assertEqual(form.errors['string'], ["Letters only."]) -- cgit v1.3 From 3f2befc93163e0666dcc4f745288b98306de4b8e Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Thu, 14 Mar 2013 20:28:24 +0100 Subject: Deprecated django.views.defaults.shortcut. --- django/conf/urls/shortcut.py | 5 +++ django/views/defaults.py | 13 ++++--- docs/internals/deprecation.txt | 3 ++ docs/releases/1.6.txt | 17 +++++++++ docs/topics/http/urls.txt | 1 - tests/contenttypes_tests/__init__.py | 0 tests/contenttypes_tests/fixtures/testdata.json | 47 +++++++++++++++++++++++++ tests/contenttypes_tests/models.py | 24 +++++++++++++ tests/contenttypes_tests/tests.py | 47 +++++++++++++++++++++++++ tests/contenttypes_tests/urls.py | 7 ++++ tests/view_tests/tests/defaults.py | 37 ------------------- tests/view_tests/urls.py | 1 - 12 files changed, 156 insertions(+), 46 deletions(-) create mode 100644 tests/contenttypes_tests/__init__.py create mode 100644 tests/contenttypes_tests/fixtures/testdata.json create mode 100644 tests/contenttypes_tests/models.py create mode 100644 tests/contenttypes_tests/tests.py create mode 100644 tests/contenttypes_tests/urls.py (limited to 'docs') diff --git a/django/conf/urls/shortcut.py b/django/conf/urls/shortcut.py index 6eb2e55e68..c00d176ad6 100644 --- a/django/conf/urls/shortcut.py +++ b/django/conf/urls/shortcut.py @@ -1,5 +1,10 @@ +import warnings + from django.conf.urls import patterns +warnings.warn("django.conf.urls.shortcut will be removed in Django 1.8.", + PendingDeprecationWarning) + urlpatterns = patterns('django.views', (r'^(?P\d+)/(?P.*)/$', 'defaults.shortcut'), ) diff --git a/django/views/defaults.py b/django/views/defaults.py index ec7a233ff7..89228c50c9 100644 --- a/django/views/defaults.py +++ b/django/views/defaults.py @@ -1,3 +1,5 @@ +import warnings + from django import http from django.template import (Context, RequestContext, loader, Template, TemplateDoesNotExist) @@ -63,12 +65,9 @@ def permission_denied(request, template_name='403.html'): def shortcut(request, content_type_id, object_id): - # TODO: Remove this in Django 2.0. - # This is a legacy view that depends on the contenttypes framework. - # The core logic was moved to django.contrib.contenttypes.views after - # Django 1.0, but this remains here for backwards compatibility. - # Note that the import is *within* this function, rather than being at - # module level, because we don't want to assume people have contenttypes - # installed. + warnings.warn( + "django.views.defaults.shortcut will be removed in Django 1.8. " + "Import it from django.contrib.contenttypes.views instead.", + PendingDeprecationWarning, stacklevel=2) from django.contrib.contenttypes.views import shortcut as real_shortcut return real_shortcut(request, content_type_id, object_id) diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt index 1305d68859..c0863278b5 100644 --- a/docs/internals/deprecation.txt +++ b/docs/internals/deprecation.txt @@ -362,6 +362,9 @@ these changes. * Remove the backward compatible shims introduced to rename the attributes ``ChangeList.root_query_set`` and ``ChangeList.query_set``. +* ``django.conf.urls.shortcut`` and ``django.views.defaults.shortcut`` will be + removed. + * The following private APIs will be removed: - ``django.db.close_connection()`` diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index a44545ddf3..b4c3b70c63 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -352,3 +352,20 @@ private API, it will go through a regular deprecation path. Methods that return a ``QuerySet`` such as ``Manager.get_query_set`` or ``ModelAdmin.queryset`` have been renamed to ``get_queryset``. + +``shortcut`` view and URLconf +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The ``shortcut`` view was moved from ``django.views.defaults`` to +``django.contrib.contentypes.views`` shortly after the 1.0 release, but the +old location was never deprecated. This oversight was corrected in Django 1.6 +and you should now use the new location. + +The URLconf ``django.conf.urls.shortcut`` was also deprecated. If you're +including it in an URLconf, simply replace:: + + (r'^prefix/', include('django.conf.urls.shortcut')), + +with:: + + (r'^prefix/(?P\d+)/(?P.*)/$', 'django.contrib.contentypes.views'), diff --git a/docs/topics/http/urls.txt b/docs/topics/http/urls.txt index c5eef8bb41..c1c52f5781 100644 --- a/docs/topics/http/urls.txt +++ b/docs/topics/http/urls.txt @@ -330,7 +330,6 @@ itself. It includes a number of other URLconfs:: (r'^comments/', include('django.contrib.comments.urls')), (r'^community/', include('django_website.aggregator.urls')), (r'^contact/', include('django_website.contact.urls')), - (r'^r/', include('django.conf.urls.shortcut')), # ... snip ... ) diff --git a/tests/contenttypes_tests/__init__.py b/tests/contenttypes_tests/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/contenttypes_tests/fixtures/testdata.json b/tests/contenttypes_tests/fixtures/testdata.json new file mode 100644 index 0000000000..52510bfe90 --- /dev/null +++ b/tests/contenttypes_tests/fixtures/testdata.json @@ -0,0 +1,47 @@ +[ + { + "pk": 1, + "model": "contenttypes_tests.author", + "fields": { + "name": "Boris" + } + }, + { + "pk": 1, + "model": "contenttypes_tests.article", + "fields": { + "author": 1, + "title": "Old Article", + "slug": "old_article", + "date_created": "2001-01-01 21:22:23" + } + }, + { + "pk": 2, + "model": "contenttypes_tests.article", + "fields": { + "author": 1, + "title": "Current Article", + "slug": "current_article", + "date_created": "2007-09-17 21:22:23" + } + }, + { + "pk": 3, + "model": "contenttypes_tests.article", + "fields": { + "author": 1, + "title": "Future Article", + "slug": "future_article", + "date_created": "3000-01-01 21:22:23" + } + }, + { + "pk": 1, + "model": "sites.site", + "fields": { + "domain": "testserver", + "name": "testserver" + } + } +] diff --git a/tests/contenttypes_tests/models.py b/tests/contenttypes_tests/models.py new file mode 100644 index 0000000000..3c6685687a --- /dev/null +++ b/tests/contenttypes_tests/models.py @@ -0,0 +1,24 @@ +from __future__ import absolute_import, unicode_literals + +from django.db import models +from django.utils.encoding import python_2_unicode_compatible + +@python_2_unicode_compatible +class Author(models.Model): + name = models.CharField(max_length=100) + + def __str__(self): + return self.name + + def get_absolute_url(self): + return '/views/authors/%s/' % self.id + +@python_2_unicode_compatible +class Article(models.Model): + title = models.CharField(max_length=100) + slug = models.SlugField() + author = models.ForeignKey(Author) + date_created = models.DateTimeField() + + def __str__(self): + return self.title diff --git a/tests/contenttypes_tests/tests.py b/tests/contenttypes_tests/tests.py new file mode 100644 index 0000000000..b39e118ec6 --- /dev/null +++ b/tests/contenttypes_tests/tests.py @@ -0,0 +1,47 @@ +from __future__ import absolute_import, unicode_literals + +from django.contrib.contenttypes.models import ContentType +from django.test import TestCase + +from .models import Author, Article + +class ContentTypesViewsTests(TestCase): + fixtures = ['testdata.json'] + urls = 'contenttypes_tests.urls' + + def test_shortcut_with_absolute_url(self): + "Can view a shortcut for an Author object that has a get_absolute_url method" + for obj in Author.objects.all(): + short_url = '/shortcut/%s/%s/' % (ContentType.objects.get_for_model(Author).id, obj.pk) + response = self.client.get(short_url) + self.assertRedirects(response, 'http://testserver%s' % obj.get_absolute_url(), + status_code=302, target_status_code=404) + + def test_shortcut_no_absolute_url(self): + "Shortcuts for an object that has no get_absolute_url method raises 404" + for obj in Article.objects.all(): + short_url = '/shortcut/%s/%s/' % (ContentType.objects.get_for_model(Article).id, obj.pk) + response = self.client.get(short_url) + self.assertEqual(response.status_code, 404) + + def test_wrong_type_pk(self): + short_url = '/shortcut/%s/%s/' % (ContentType.objects.get_for_model(Author).id, 'nobody/expects') + response = self.client.get(short_url) + self.assertEqual(response.status_code, 404) + + def test_shortcut_bad_pk(self): + short_url = '/shortcut/%s/%s/' % (ContentType.objects.get_for_model(Author).id, '42424242') + response = self.client.get(short_url) + self.assertEqual(response.status_code, 404) + + def test_nonint_content_type(self): + an_author = Author.objects.all()[0] + short_url = '/shortcut/%s/%s/' % ('spam', an_author.pk) + response = self.client.get(short_url) + self.assertEqual(response.status_code, 404) + + def test_bad_content_type(self): + an_author = Author.objects.all()[0] + short_url = '/shortcut/%s/%s/' % (42424242, an_author.pk) + response = self.client.get(short_url) + self.assertEqual(response.status_code, 404) diff --git a/tests/contenttypes_tests/urls.py b/tests/contenttypes_tests/urls.py new file mode 100644 index 0000000000..2cfc90b024 --- /dev/null +++ b/tests/contenttypes_tests/urls.py @@ -0,0 +1,7 @@ +from __future__ import absolute_import, unicode_literals + +from django.conf.urls import patterns + +urlpatterns = patterns('', + (r'^shortcut/(\d+)/(.*)/$', 'django.contrib.contenttypes.views.shortcut'), +) diff --git a/tests/view_tests/tests/defaults.py b/tests/view_tests/tests/defaults.py index 3ca7f79136..5efd338d34 100644 --- a/tests/view_tests/tests/defaults.py +++ b/tests/view_tests/tests/defaults.py @@ -13,43 +13,6 @@ class DefaultsTests(TestCase): non_existing_urls = ['/views/non_existing_url/', # this is in urls.py '/views/other_non_existing_url/'] # this NOT in urls.py - def test_shortcut_with_absolute_url(self): - "Can view a shortcut for an Author object that has a get_absolute_url method" - for obj in Author.objects.all(): - short_url = '/views/shortcut/%s/%s/' % (ContentType.objects.get_for_model(Author).id, obj.pk) - response = self.client.get(short_url) - self.assertRedirects(response, 'http://testserver%s' % obj.get_absolute_url(), - status_code=302, target_status_code=404) - - def test_shortcut_no_absolute_url(self): - "Shortcuts for an object that has no get_absolute_url method raises 404" - for obj in Article.objects.all(): - short_url = '/views/shortcut/%s/%s/' % (ContentType.objects.get_for_model(Article).id, obj.pk) - response = self.client.get(short_url) - self.assertEqual(response.status_code, 404) - - def test_wrong_type_pk(self): - short_url = '/views/shortcut/%s/%s/' % (ContentType.objects.get_for_model(Author).id, 'nobody/expects') - response = self.client.get(short_url) - self.assertEqual(response.status_code, 404) - - def test_shortcut_bad_pk(self): - short_url = '/views/shortcut/%s/%s/' % (ContentType.objects.get_for_model(Author).id, '42424242') - response = self.client.get(short_url) - self.assertEqual(response.status_code, 404) - - def test_nonint_content_type(self): - an_author = Author.objects.all()[0] - short_url = '/views/shortcut/%s/%s/' % ('spam', an_author.pk) - response = self.client.get(short_url) - self.assertEqual(response.status_code, 404) - - def test_bad_content_type(self): - an_author = Author.objects.all()[0] - short_url = '/views/shortcut/%s/%s/' % (42424242, an_author.pk) - response = self.client.get(short_url) - self.assertEqual(response.status_code, 404) - def test_page_not_found(self): "A 404 status is returned by the page_not_found view" for url in self.non_existing_urls: diff --git a/tests/view_tests/urls.py b/tests/view_tests/urls.py index 8a3b492cec..52e2eb474e 100644 --- a/tests/view_tests/urls.py +++ b/tests/view_tests/urls.py @@ -42,7 +42,6 @@ urlpatterns = patterns('', (r'^$', views.index_page), # Default views - (r'^shortcut/(\d+)/(.*)/$', 'django.views.defaults.shortcut'), (r'^non_existing_url/', 'django.views.defaults.page_not_found'), (r'^server_error/', 'django.views.defaults.server_error'), -- cgit v1.3 From d35ffcaaad9881d4dc1633f76cecc8ada4b31e2f Mon Sep 17 00:00:00 2001 From: Marc Tamlyn Date: Fri, 15 Mar 2013 08:15:30 +0000 Subject: Corrected typos in the 1.6 release notes --- docs/releases/1.6.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index b4c3b70c63..3116c8b4b9 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -357,7 +357,7 @@ Methods that return a ``QuerySet`` such as ``Manager.get_query_set`` or ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The ``shortcut`` view was moved from ``django.views.defaults`` to -``django.contrib.contentypes.views`` shortly after the 1.0 release, but the +``django.contrib.contenttypes.views`` shortly after the 1.0 release, but the old location was never deprecated. This oversight was corrected in Django 1.6 and you should now use the new location. @@ -368,4 +368,4 @@ including it in an URLconf, simply replace:: with:: - (r'^prefix/(?P\d+)/(?P.*)/$', 'django.contrib.contentypes.views'), + (r'^prefix/(?P\d+)/(?P.*)/$', 'django.contrib.contenttypes.views.shortcut'), -- cgit v1.3 From 186bff47032a264b4b4cbb06a6f277046bb10c26 Mon Sep 17 00:00:00 2001 From: Johan Charpentier Date: Fri, 15 Mar 2013 15:15:52 +0100 Subject: Fixed #20053 -- Fix `index_together` documentation --- docs/ref/models/options.txt | 1 + 1 file changed, 1 insertion(+) (limited to 'docs') diff --git a/docs/ref/models/options.txt b/docs/ref/models/options.txt index 21265d6313..5f9316bd2a 100644 --- a/docs/ref/models/options.txt +++ b/docs/ref/models/options.txt @@ -259,6 +259,7 @@ Django quotes column and table names behind the scenes. an explicit :attr:`through ` model. ``index_together`` +------------------ .. attribute:: Options.index_together -- cgit v1.3 From 957fcd0c9fc605bbb69e03296aede3b0bac5a8d2 Mon Sep 17 00:00:00 2001 From: Baptiste Mispelon Date: Fri, 15 Mar 2013 19:14:01 +0100 Subject: Fix #20054: Removed links to modwsgi.org. --- docs/howto/deployment/wsgi/modwsgi.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/howto/deployment/wsgi/modwsgi.txt b/docs/howto/deployment/wsgi/modwsgi.txt index ead04a4643..7749192358 100644 --- a/docs/howto/deployment/wsgi/modwsgi.txt +++ b/docs/howto/deployment/wsgi/modwsgi.txt @@ -18,8 +18,8 @@ The `official mod_wsgi documentation`_ is fantastic; it's your source for all the details about how to use mod_wsgi. You'll probably want to start with the `installation and configuration documentation`_. -.. _official mod_wsgi documentation: http://www.modwsgi.org/ -.. _installation and configuration documentation: http://www.modwsgi.org/wiki/InstallationInstructions +.. _official mod_wsgi documentation: http://code.google.com/p/modwsgi/ +.. _installation and configuration documentation: http://code.google.com/p/modwsgi/wiki/InstallationInstructions Basic configuration =================== -- cgit v1.3 From e11ccc76d325b6bbbf101f510a91299f507f0745 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sun, 17 Mar 2013 09:41:54 +0100 Subject: Updated bundled version of six. --- django/utils/six.py | 59 ++++++++++++++++++++++++++++--------------------- docs/topics/python3.txt | 7 +----- 2 files changed, 35 insertions(+), 31 deletions(-) (limited to 'docs') diff --git a/django/utils/six.py b/django/utils/six.py index 208c5c1112..9633640b80 100644 --- a/django/utils/six.py +++ b/django/utils/six.py @@ -1,6 +1,6 @@ """Utilities for writing code that runs on Python 2 and 3""" -# Copyright (c) 2010-2012 Benjamin Peterson +# Copyright (c) 2010-2013 Benjamin Peterson # # Permission is hereby granted, free of charge, to any person obtaining a copy of # this software and associated documentation files (the "Software"), to deal in @@ -209,22 +209,28 @@ if PY3: _meth_func = "__func__" _meth_self = "__self__" + _func_closure = "__closure__" _func_code = "__code__" _func_defaults = "__defaults__" + _func_globals = "__globals__" _iterkeys = "keys" _itervalues = "values" _iteritems = "items" + _iterlists = "lists" else: _meth_func = "im_func" _meth_self = "im_self" + _func_closure = "func_closure" _func_code = "func_code" _func_defaults = "func_defaults" + _func_globals = "func_globals" _iterkeys = "iterkeys" _itervalues = "itervalues" _iteritems = "iteritems" + _iterlists = "iterlists" try: @@ -235,14 +241,18 @@ except NameError: next = advance_iterator +try: + callable = callable +except NameError: + def callable(obj): + return any("__call__" in klass.__dict__ for klass in type(obj).__mro__) + + if PY3: def get_unbound_function(unbound): return unbound Iterator = object - - def callable(obj): - return any("__call__" in klass.__dict__ for klass in type(obj).__mro__) else: def get_unbound_function(unbound): return unbound.im_func @@ -259,21 +269,27 @@ _add_doc(get_unbound_function, get_method_function = operator.attrgetter(_meth_func) get_method_self = operator.attrgetter(_meth_self) +get_function_closure = operator.attrgetter(_func_closure) get_function_code = operator.attrgetter(_func_code) get_function_defaults = operator.attrgetter(_func_defaults) +get_function_globals = operator.attrgetter(_func_globals) -def iterkeys(d): +def iterkeys(d, **kw): """Return an iterator over the keys of a dictionary.""" - return iter(getattr(d, _iterkeys)()) + return iter(getattr(d, _iterkeys)(**kw)) -def itervalues(d): +def itervalues(d, **kw): """Return an iterator over the values of a dictionary.""" - return iter(getattr(d, _itervalues)()) + return iter(getattr(d, _itervalues)(**kw)) -def iteritems(d): +def iteritems(d, **kw): """Return an iterator over the (key, value) pairs of a dictionary.""" - return iter(getattr(d, _iteritems)()) + return iter(getattr(d, _iteritems)(**kw)) + +def iterlists(d, **kw): + """Return an iterator over the (key, [values]) pairs of a dictionary.""" + return iter(getattr(d, _iterlists)(**kw)) if PY3: @@ -317,17 +333,17 @@ if PY3: del builtins else: - def exec_(code, globs=None, locs=None): + def exec_(_code_, _globs_=None, _locs_=None): """Execute code in a namespace.""" - if globs is None: + if _globs_ is None: frame = sys._getframe(1) - globs = frame.f_globals - if locs is None: - locs = frame.f_locals + _globs_ = frame.f_globals + if _locs_ is None: + _locs_ = frame.f_locals del frame - elif locs is None: - locs = globs - exec("""exec code in globs, locs""") + elif _locs_ is None: + _locs_ = _globs_ + exec("""exec _code_ in _globs_, _locs_""") exec_("""def reraise(tp, value, tb=None): @@ -391,12 +407,10 @@ def with_metaclass(meta, base=object): ### Additional customizations for Django ### if PY3: - _iterlists = "lists" _assertRaisesRegex = "assertRaisesRegex" _assertRegex = "assertRegex" memoryview = memoryview else: - _iterlists = "iterlists" _assertRaisesRegex = "assertRaisesRegexp" _assertRegex = "assertRegexpMatches" # memoryview and buffer are not stricly equivalent, but should be fine for @@ -404,11 +418,6 @@ else: memoryview = buffer -def iterlists(d): - """Return an iterator over the values of a MultiValueDict.""" - return getattr(d, _iterlists)() - - def assertRaisesRegex(self, *args, **kwargs): return getattr(self, _assertRaisesRegex)(*args, **kwargs) diff --git a/docs/topics/python3.txt b/docs/topics/python3.txt index 2212a24131..ce5a34b2d0 100644 --- a/docs/topics/python3.txt +++ b/docs/topics/python3.txt @@ -391,12 +391,7 @@ function. Customizations of six --------------------- -The version of six bundled with Django includes one extra function: - -.. function:: iterlists(MultiValueDict) - - Returns an iterator over the lists of values of a ``MultiValueDict``. This - replaces ``iterlists()`` on Python 2 and ``lists()`` on Python 3. +The version of six bundled with Django includes a few extras. .. function:: assertRaisesRegex(testcase, *args, **kwargs) -- cgit v1.3 From 0555ef7c23cbbd991270d529cff48d96de801622 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sun, 17 Mar 2013 11:05:41 +0100 Subject: Added structure in the 1.6 release notes. The backwards-incompatible changes section wasn't structured in sections like it is in release notes for previous versions. --- docs/releases/1.6.txt | 182 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 120 insertions(+), 62 deletions(-) (limited to 'docs') diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 3116c8b4b9..abb4dff811 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -165,69 +165,110 @@ Backwards incompatible changes in 1.6 deprecation timeline for a given feature, its removal may appear as a backwards incompatible change. -* Database-level autocommit is enabled by default in Django 1.6. While this - doesn't change the general spirit of Django's transaction management, there - are a few known backwards-incompatibities, described in the :ref:`transaction - management docs `. You should review your code - to determine if you're affected. +New transaction management model +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Database-level autocommit is enabled by default in Django 1.6. While this +doesn't change the general spirit of Django's transaction management, there +are a few known backwards-incompatibities, described in the :ref:`transaction +management docs `. You should review your +code to determine if you're affected. + +In previous versions, database-level autocommit was only an option for +PostgreSQL, and it was disabled by default. This option is now :ref:`ignored +` and can be removed. + +Addition of ``QuerySet.datetimes()`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +When the :doc:`time zone support ` added in Django 1.4 +was active, :meth:`QuerySet.dates() ` +lookups returned unexpected results, because the aggregation was performed in +UTC. To fix this, Django 1.6 introduces a new API, :meth:`QuerySet.datetimes() +`. This requires a few changes in +your code. -* In previous versions, database-level autocommit was only an option for - PostgreSQL, and it was disabled by default. This option is now - :ref:`ignored `. +``QuerySet.dates()`` returns ``date`` objects +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -* The ``django.db.models.query.EmptyQuerySet`` can't be instantiated any more - - it is only usable as a marker class for checking if - :meth:`~django.db.models.query.QuerySet.none` has been called: - ``isinstance(qs.none(), EmptyQuerySet)`` +:meth:`QuerySet.dates() ` now returns a +list of :class:`~datetime.date`. It used to return a list of +:class:`~datetime.datetime`. -* :meth:`QuerySet.dates() ` raises an - error if it's used on :class:`~django.db.models.DateTimeField` when time - zone support is active. Use :meth:`QuerySet.datetimes() - ` instead. +:meth:`QuerySet.datetimes() ` +returns a list of :class:`~datetime.datetime`. -* :meth:`QuerySet.dates() ` returns a - list of :class:`~datetime.date`. It used to return a list of - :class:`~datetime.datetime`. +``QuerySet.dates()`` no longer usable on ``DateTimeField`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -* The :attr:`~django.contrib.admin.ModelAdmin.date_hierarchy` feature of the - admin on a :class:`~django.db.models.DateTimeField` requires time zone - definitions in the database when :setting:`USE_TZ` is ``True``. - :ref:`Learn more `. +:meth:`QuerySet.dates() ` raises an +error if it's used on :class:`~django.db.models.DateTimeField` when time +zone support is active. Use :meth:`QuerySet.datetimes() +` instead. -* Accessing ``date_list`` in the context of a date-based generic view requires - time zone definitions in the database when the view is based on a - :class:`~django.db.models.DateTimeField` and :setting:`USE_TZ` is ``True``. - :ref:`Learn more `. +``date_hierarchy`` requires time zone definitions +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -* Model fields named ``hour``, ``minute`` or ``second`` may clash with the new - lookups. Append an explicit :lookup:`exact` lookup if this is an issue. +The :attr:`~django.contrib.admin.ModelAdmin.date_hierarchy` feature of the +admin now relies on :meth:`QuerySet.datetimes() +` when it's used on a +:class:`~django.db.models.DateTimeField`. -* When Django establishes a connection to the database, it sets up appropriate - parameters, depending on the backend being used. Since `persistent database - connections `_ are enabled by default in - Django 1.6, this setup isn't repeated at every request any more. If you - modifiy parameters such as the connection's isolation level or time zone, - you should either restore Django's defaults at the end of each request, or - force an appropriate value at the beginning of each request. +This requires time zone definitions in the database when :setting:`USE_TZ` is +``True``. :ref:`Learn more `. -* If your CSS/Javascript code used to access HTML input widgets by type, you - should review it as ``type='text'`` widgets might be now output as - ``type='email'``, ``type='url'`` or ``type='number'`` depending on their - corresponding field type. +``date_list`` in generic views requires time zone definitions +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -* Extraction of translatable literals from templates with the - :djadmin:`makemessages` command now correctly detects i18n constructs when - they are located after a ``{#`` / ``#}``-type comment on the same line. E.g.: +For the same reason, accessing ``date_list`` in the context of a date-based +generic view requires time zone definitions in the database when the view is +based on a :class:`~django.db.models.DateTimeField` and :setting:`USE_TZ` is +``True``. :ref:`Learn more `. - .. code-block:: html+django +New lookups may clash with model fields +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Django 1.6 introduces ``hour``, ``minute``, and ``second`` lookups on +:class:`~django.db.models.DateTimeField`. If you had model fields called +``hour``, ``minute``, or ``second``, the new lookups will clash with you field +names. Append an explicit :lookup:`exact` lookup if this is an issue. + +Persistent database connections +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Connection setup not repeated for each request +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +When Django establishes a connection to the database, it sets up appropriate +parameters, depending on the backend being used. Since `persistent database +connections `_ are enabled by default in +Django 1.6, this setup isn't repeated at every request any more. If you +modifiy parameters such as the connection's isolation level or time zone, you +should either restore Django's defaults at the end of each request, force an +appropriate value at the beginning of each request, or disable persistent +connections. + +Translations and comments in templates +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Extraction of translations after comments +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Extraction of translatable literals from templates with the +:djadmin:`makemessages` command now correctly detects i18n constructs when +they are located after a ``{#`` / ``#}``-type comment on the same line. E.g.: + +.. code-block:: html+django {# A comment #}{% trans "This literal was incorrectly ignored. Not anymore" %} -* (Related to the above item.) Validation of the placement of - :ref:`translator-comments-in-templates` specified using ``{#`` / ``#}`` is now - stricter. All translator comments not located at the end of their respective - lines in a template are ignored and a warning is generated by - :djadmin:`makemessages` when it finds them. E.g.: +Location of translator comments +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Validation of the placement of :ref:`translator-comments-in-templates` +specified using ``{#`` / ``#}`` is now stricter. All translator comments not +located at the end of their respective lines in a template are ignored and a +warning is generated by :djadmin:`makemessages` when it finds them. E.g.: .. code-block:: html+django @@ -235,28 +276,45 @@ Backwards incompatible changes in 1.6 {{ title }}{# Translators: Extracted and associated with 'Welcome' below #}

    {% trans "Welcome" %}

    -* The :doc:`comments ` app now uses a ``GenericIPAddressField`` - for storing commenters' IP addresses, to support comments submitted from IPv6 addresses. - Until now, it stored them in an ``IPAddressField``, which is only meant to support IPv4. - When saving a comment made from an IPv6 address, the address would be silently truncated - on MySQL databases, and raise an exception on Oracle. - You will need to change the column type in your database to benefit from this change. +Storage of IP addresses in the comments app +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - For MySQL, execute this query on your project's database: +The :doc:`comments ` app now uses a +``GenericIPAddressField`` for storing commenters' IP addresses, to support +comments submitted from IPv6 addresses. Until now, it stored them in an +``IPAddressField``, which is only meant to support IPv4. When saving a comment +made from an IPv6 address, the address would be silently truncated on MySQL +databases, and raise an exception on Oracle. You will need to change the +column type in your database to benefit from this change. - .. code-block:: sql +For MySQL, execute this query on your project's database: + +.. code-block:: sql ALTER TABLE django_comments MODIFY ip_address VARCHAR(39); - For Oracle, execute this query: +For Oracle, execute this query: - .. code-block:: sql +.. code-block:: sql ALTER TABLE DJANGO_COMMENTS MODIFY (ip_address VARCHAR2(39)); - If you do not apply this change, the behaviour is unchanged: on MySQL, IPv6 addresses - are silently truncated; on Oracle, an exception is generated. No database - change is needed for SQLite or PostgreSQL databases. +If you do not apply this change, the behaviour is unchanged: on MySQL, IPv6 +addresses are silently truncated; on Oracle, an exception is generated. No +database change is needed for SQLite or PostgreSQL databases. + +Miscellaneous +~~~~~~~~~~~~~ + +* The ``django.db.models.query.EmptyQuerySet`` can't be instantiated any more - + it is only usable as a marker class for checking if + :meth:`~django.db.models.query.QuerySet.none` has been called: + ``isinstance(qs.none(), EmptyQuerySet)`` + +* If your CSS/Javascript code used to access HTML input widgets by type, you + should review it as ``type='text'`` widgets might be now output as + ``type='email'``, ``type='url'`` or ``type='number'`` depending on their + corresponding field type. Features deprecated in 1.6 ========================== -- cgit v1.3 From 912b5d2a6bc78067d6a7e130f10514c51bd1a58f Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sun, 17 Mar 2013 18:21:05 +0100 Subject: Fixed #19697 -- Added a deployment checklist. --- .../conf/project_template/project_name/settings.py | 5 +- docs/howto/deployment/checklist.txt | 200 +++++++++++++++++++++ docs/howto/deployment/index.txt | 1 + docs/releases/1.6.txt | 3 + 4 files changed, 205 insertions(+), 4 deletions(-) create mode 100644 docs/howto/deployment/checklist.txt (limited to 'docs') diff --git a/django/conf/project_template/project_name/settings.py b/django/conf/project_template/project_name/settings.py index d46f327922..972065467f 100644 --- a/django/conf/project_template/project_name/settings.py +++ b/django/conf/project_template/project_name/settings.py @@ -14,10 +14,9 @@ BASE_DIR = os.path.dirname(os.path.dirname(__file__)) # Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/{{ docs_version }}/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! -# Hardcoded values can leak through source control. Consider loading -# the secret key from an environment variable or a file instead. SECRET_KEY = '{{ secret_key }}' # SECURITY WARNING: don't run with debug turned on in production! @@ -25,8 +24,6 @@ DEBUG = True TEMPLATE_DEBUG = True -# Hosts/domain names that are valid for this site; required if DEBUG is False -# See https://docs.djangoproject.com/en/{{ docs_version }}/ref/settings/#allowed-hosts ALLOWED_HOSTS = [] diff --git a/docs/howto/deployment/checklist.txt b/docs/howto/deployment/checklist.txt new file mode 100644 index 0000000000..53b257ae20 --- /dev/null +++ b/docs/howto/deployment/checklist.txt @@ -0,0 +1,200 @@ +==================== +Deployment checklist +==================== + +The Internet is a hostile environment. Before deploying your Django project, +you should take some time to review your settings, with security, performance, +and operations in mind. + +Django includes many :doc:`security features `. Some are +built-in and always enabled. Others are optional because they aren't always +appropriate, or because they're inconvenient for development. For example, +forcing HTTPS may not be suitable for all websites, and it's impractical for +local development. + +Performance optimizations are another category of trade-offs with convenience. +For instance, caching is useful in production, less so for local development. +Error reporting needs are also widely different. + +The following checklist includes settings that: + +- must be set properly for Django to provide the expected level of security; +- are expected to be different in each environment; +- enable optional security features; +- enable performance optimizations; +- provide error reporting. + +Many of these settings are sensitive and should be treated as confidential. If +you're releasing the source code for your project, a common practice is to +publish suitable settings for development, and to use a private settings +module for production. + +Critical settings +================= + +:setting:`SECRET_KEY` +--------------------- + +**The secret key must be a large random value and it must be kept secret.** + +Make sure that the key used in production isn't used anywhere else and avoid +committing it to source control. This reduces the number of vectors from which +an attacker may acquire the key. + +Instead of hardcoding the secret key in your settings module, consider loading +it from an environment variable:: + + import os + SECRET_KEY = os.environ['SECRET_KEY'] + +or from a file:: + + with open('/etc/secret_key.txt') as f: + SECRET_KEY = f.read().strip() + +:setting:`DEBUG` +---------------- + +**You must never enable debug in production.** + +You're certainly developing your project with :setting:`DEBUG = True `, +since this enables handy features like full tracebacks in your browser. + +For a production environment, though, this is a really bad idea, because it +leaks lots of information about your project: excerpts of your source code, +local variables, settings, libraries used, etc. + +Environment-specific settings +============================= + +:setting:`ALLOWED_HOSTS` +------------------------ + +When :setting:`DEBUG = False `, Django doesn't work at all without a +suitable value for :setting:`ALLOWED_HOSTS`. + +This setting is required to protect your site against some CSRF attacks. If +you use a wildcard, you must perform your own validation of the ``Host`` HTTP +header, or otherwise ensure that you aren't vulnerable to this category of +attacks. + +:setting:`CACHES` +----------------- + +If you're using a cache, connection parameters may be different in development +and in production. + +Cache servers often have weak authentication. Make sure they only accept +connections from your application servers. + +:setting:`DATABASES` +-------------------- + +Database connection parameters are probably different in development and in +production. + +For maximum security, make sure database servers only accept connections from +your application servers. + +If you haven't set up backups for your database, do it right now! + +:setting:`EMAIL_BACKEND` and related settings +--------------------------------------------- + +If your site sends emails, these values need to be set correctly. + +:setting:`STATIC_ROOT` and :setting:`STATIC_URL` +------------------------------------------------ + +Static files are automatically served by the development server. In +production, you must define a :setting:`STATIC_ROOT` directory where +:djadmin:`collectstatic` will copy them. + +See :doc:`/howto/static-files` for more information. + +:setting:`MEDIA_ROOT` and :setting:`MEDIA_URL` +---------------------------------------------- + +Media files are uploaded by your users. They're untrusted! Make sure your web +server never attempt to interpret them. For instance, if a user uploads a +``.php`` file , the web server shouldn't execute it. + +Now is a good time to check your backup strategy for these files. + +HTTPS +===== + +Any website which allows users to log in should enforce site-wide HTTPS to +avoid transmitting access tokens in clear. In Django, access tokens include +the login/password, the session cookie, and password reset tokens. (You can't +do much to protect password reset tokens if you're sending them by email.) + +Protecting sensitive areas such as the user account or the admin isn't +sufficient, because the same session cookie is used for HTTP and HTTPS. + +Once you've set up HTTPS, enable the following settings. + +:setting:`CSRF_COOKIE_SECURE` +----------------------------- + +Set this to ``True`` to avoid transmitting the CSRF cookie over HTTP +accidentally. + +:setting:`SESSION_COOKIE_SECURE` +-------------------------------- + +Set this to ``True`` to avoid transmitting the session cookie over HTTP +accidentally. + +Performance optimizations +========================= + +Setting :setting:`DEBUG = False ` disables several features that are +only useful in development. In addition, you can tune the following settings. + +:setting:`TEMPLATE_LOADERS` +--------------------------- + +Enabling the cached template loader often improves performance drastically, as +it avoids compiling each template every time it needs to be rendered. See the +:ref:`template loaders docs ` for more information. + +Error reporting +=============== + +By the time you push your code to production, it's hopefully robust, but you +can't rule out unexpected errors. Thankfully, Django can capture errors and +notify you accordingly. + +:setting:`LOGGING` +------------------ + +Review your logging configuration before putting your website in production, +and check that it works as expected as soon as you have received some traffic. + +See :doc:`/topics/logging` for details on logging. + +:setting:`ADMINS` and :setting:`MANAGERS` +----------------------------------------- + +:setting:`ADMINS` will be notified of 500 errors by email. + +:setting:`MANAGERS` will be notified of 404 errors. +:setting:`IGNORABLE_404_URLS` can help filter out spurious reports. + +See :doc:`/howto/error-reporting` for details on error reporting by email. + +.. admonition: Error reporting by email doesn't scale very well + + Consider using an error monitoring system such as Sentry_ before your + inbox is flooded by reports. Sentry can also aggregate logs. + + .. _Sentry: http://sentry.readthedocs.org/en/latest/ + +Miscellaneous +============= + +:setting:`ALLOWED_INCLUDE_ROOTS` +-------------------------------- + +This setting is required if you're using the :ttag:`ssi` template tag. diff --git a/docs/howto/deployment/index.txt b/docs/howto/deployment/index.txt index 8e27a031d5..ed4bcf3d4a 100644 --- a/docs/howto/deployment/index.txt +++ b/docs/howto/deployment/index.txt @@ -11,6 +11,7 @@ ways to easily deploy Django: wsgi/index fastcgi + checklist If you're new to deploying Django and/or Python, we'd recommend you try :doc:`mod_wsgi ` first. In most cases it'll be diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index abb4dff811..2ab44c0744 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -154,6 +154,9 @@ Minor features ``UPDATE`` - if not updated - ``INSERT`` instead of ``SELECT`` - if not found ``INSERT`` else ``UPDATE`` in case the model's primary key is set. +* The documentation contains a :doc:`deployment checklist + `. + Backwards incompatible changes in 1.6 ===================================== -- cgit v1.3 From c94db53eaa9b344f9227fa4dff2b1a5e9c7dce9d Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sun, 17 Mar 2013 19:29:22 +0100 Subject: Two additions to the deployment checklist. Thanks Erik Romijn. --- docs/howto/deployment/checklist.txt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/howto/deployment/checklist.txt b/docs/howto/deployment/checklist.txt index 53b257ae20..72c15b7807 100644 --- a/docs/howto/deployment/checklist.txt +++ b/docs/howto/deployment/checklist.txt @@ -93,6 +93,9 @@ connections from your application servers. Database connection parameters are probably different in development and in production. +Database passwords are very sensitive. You should protect them exactly like +:setting:`SECRET_KEY`. + For maximum security, make sure database servers only accept connections from your application servers. @@ -130,7 +133,9 @@ the login/password, the session cookie, and password reset tokens. (You can't do much to protect password reset tokens if you're sending them by email.) Protecting sensitive areas such as the user account or the admin isn't -sufficient, because the same session cookie is used for HTTP and HTTPS. +sufficient, because the same session cookie is used for HTTP and HTTPS. Your +web server must redirect all HTTP traffic to HTTPS, and only transmit HTTPS +requests to Django. Once you've set up HTTPS, enable the following settings. -- cgit v1.3 From f3a6d74db9d9dbf7af84a74878256f5531baeb13 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sun, 17 Mar 2013 22:43:49 +0100 Subject: Minor docs fix for e11ccc76. --- docs/topics/python3.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/topics/python3.txt b/docs/topics/python3.txt index ce5a34b2d0..33f5fcd4c0 100644 --- a/docs/topics/python3.txt +++ b/docs/topics/python3.txt @@ -187,7 +187,7 @@ behave likewise in Python 3. six_ provides compatibility functions to work around this change: :func:`~six.iterkeys`, :func:`~six.iteritems`, and :func:`~six.itervalues`. -Django's bundled version adds :func:`~django.utils.six.iterlists` for +It also contains an undocumented ``iterlists`` function that works well for ``django.utils.datastructures.MultiValueDict`` and its subclasses. :class:`~django.http.HttpRequest` and :class:`~django.http.HttpResponse` objects -- cgit v1.3 From 20a91cce04c72bc8c64a1c43b7398edac7b709cc Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sun, 17 Mar 2013 20:48:30 +0100 Subject: Fixed #17037 -- Added a --all option to diffsettings. --- django/core/management/commands/diffsettings.py | 16 +++++++++++++--- docs/ref/django-admin.txt | 7 +++++-- docs/releases/1.6.txt | 2 ++ tests/admin_scripts/tests.py | 12 +++++++++++- 4 files changed, 31 insertions(+), 6 deletions(-) (limited to 'docs') diff --git a/django/core/management/commands/diffsettings.py b/django/core/management/commands/diffsettings.py index aa7395e5ee..9e70e9ad8f 100644 --- a/django/core/management/commands/diffsettings.py +++ b/django/core/management/commands/diffsettings.py @@ -1,14 +1,22 @@ +from optparse import make_option + from django.core.management.base import NoArgsCommand def module_to_dict(module, omittable=lambda k: k.startswith('_')): - "Converts a module namespace to a Python dictionary. Used by get_settings_diff." - return dict([(k, repr(v)) for k, v in module.__dict__.items() if not omittable(k)]) + """Converts a module namespace to a Python dictionary.""" + return dict((k, repr(v)) for k, v in module.__dict__.items() if not omittable(k)) class Command(NoArgsCommand): help = """Displays differences between the current settings.py and Django's default settings. Settings that don't appear in the defaults are followed by "###".""" + option_list = NoArgsCommand.option_list + ( + make_option('--all', action='store_true', dest='all', default=False, + help='Display all settings, regardless of their value. ' + 'Default values are prefixed by "###".'), + ) + requires_model_validation = False def handle_noargs(self, **options): @@ -22,9 +30,11 @@ class Command(NoArgsCommand): default_settings = module_to_dict(global_settings) output = [] - for key in sorted(user_settings.keys()): + for key in sorted(user_settings): if key not in default_settings: output.append("%s = %s ###" % (key, user_settings[key])) elif user_settings[key] != default_settings[key]: output.append("%s = %s" % (key, user_settings[key])) + elif options['all']: + output.append("### %s = %s" % (key, user_settings[key])) return '\n'.join(output) diff --git a/docs/ref/django-admin.txt b/docs/ref/django-admin.txt index d31e30a14d..ac257db9f5 100644 --- a/docs/ref/django-admin.txt +++ b/docs/ref/django-admin.txt @@ -168,8 +168,11 @@ example, the default settings don't define :setting:`ROOT_URLCONF`, so :setting:`ROOT_URLCONF` is followed by ``"###"`` in the output of ``diffsettings``. -Note that Django's default settings live in ``django/conf/global_settings.py``, -if you're ever curious to see the full list of defaults. +The :djadminopt:`--all` option may be provided to display all settings, even +if they have Django's default value. Such settings are prefixed by ``"###"``. + +.. versionadded:: 1.6 + The :djadminopt:`--all` option was added. dumpdata -------------------------------------------- diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 2ab44c0744..c52f6ee3d9 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -157,6 +157,8 @@ Minor features * The documentation contains a :doc:`deployment checklist `. +* The :djadmin:`diffsettings` comand gained a ``--all`` option. + Backwards incompatible changes in 1.6 ===================================== diff --git a/tests/admin_scripts/tests.py b/tests/admin_scripts/tests.py index 90f77206cd..baec16820e 100644 --- a/tests/admin_scripts/tests.py +++ b/tests/admin_scripts/tests.py @@ -1661,11 +1661,21 @@ class StartProject(LiveServerTestCase, AdminScriptTestCase): class DiffSettings(AdminScriptTestCase): """Tests for diffsettings management command.""" + def test_basic(self): - "Runs without error and emits settings diff." + """Runs without error and emits settings diff.""" self.write_settings('settings_to_diff.py', sdict={'FOO': '"bar"'}) self.addCleanup(self.remove_settings, 'settings_to_diff.py') args = ['diffsettings', '--settings=settings_to_diff'] out, err = self.run_manage(args) self.assertNoOutput(err) self.assertOutput(out, "FOO = 'bar' ###") + + def test_all(self): + """The all option also shows settings with the default value.""" + self.write_settings('settings_to_diff.py', sdict={'STATIC_URL': 'None'}) + self.addCleanup(self.remove_settings, 'settings_to_diff.py') + args = ['diffsettings', '--settings=settings_to_diff', '--all'] + out, err = self.run_manage(args) + self.assertNoOutput(err) + self.assertOutput(out, "### STATIC_URL = None") -- cgit v1.3 From 6197935152419f064911f7a26b70da32f31435c7 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sun, 17 Mar 2013 11:45:45 +0100 Subject: Fixed #19968 -- Dropped support for PostgreSQL < 8.4. --- django/db/backends/postgresql_psycopg2/operations.py | 19 ++++--------------- docs/howto/custom-model-fields.txt | 2 +- .../gis/install/create_template_postgis-debian.sh | 7 ------- docs/ref/contrib/gis/install/index.txt | 2 +- docs/ref/databases.txt | 19 +++---------------- docs/ref/models/querysets.txt | 2 +- docs/ref/settings.txt | 2 +- docs/ref/unicode.txt | 6 +++--- docs/releases/1.6.txt | 11 +++++++++++ docs/topics/db/sql.txt | 2 +- 10 files changed, 26 insertions(+), 46 deletions(-) (limited to 'docs') diff --git a/django/db/backends/postgresql_psycopg2/operations.py b/django/db/backends/postgresql_psycopg2/operations.py index a210f87ccd..b17a0c17bb 100644 --- a/django/db/backends/postgresql_psycopg2/operations.py +++ b/django/db/backends/postgresql_psycopg2/operations.py @@ -9,7 +9,7 @@ class DatabaseOperations(BaseDatabaseOperations): super(DatabaseOperations, self).__init__(connection) def date_extract_sql(self, lookup_type, field_name): - # http://www.postgresql.org/docs/8.0/static/functions-datetime.html#FUNCTIONS-DATETIME-EXTRACT + # http://www.postgresql.org/docs/current/static/functions-datetime.html#FUNCTIONS-DATETIME-EXTRACT if lookup_type == 'week_day': # For consistency across backends, we return Sunday=1, Saturday=7. return "EXTRACT('dow' FROM %s) + 1" % field_name @@ -34,7 +34,7 @@ class DatabaseOperations(BaseDatabaseOperations): return '(%s)' % conn.join([sql, 'interval \'%s\'' % mods]) def date_trunc_sql(self, lookup_type, field_name): - # http://www.postgresql.org/docs/8.0/static/functions-datetime.html#FUNCTIONS-DATETIME-TRUNC + # http://www.postgresql.org/docs/current/static/functions-datetime.html#FUNCTIONS-DATETIME-TRUNC return "DATE_TRUNC('%s', %s)" % (lookup_type, field_name) def datetime_extract_sql(self, lookup_type, field_name, tzname): @@ -43,7 +43,7 @@ class DatabaseOperations(BaseDatabaseOperations): params = [tzname] else: params = [] - # http://www.postgresql.org/docs/8.0/static/functions-datetime.html#FUNCTIONS-DATETIME-EXTRACT + # http://www.postgresql.org/docs/current/static/functions-datetime.html#FUNCTIONS-DATETIME-EXTRACT if lookup_type == 'week_day': # For consistency across backends, we return Sunday=1, Saturday=7. sql = "EXTRACT('dow' FROM %s) + 1" % field_name @@ -57,7 +57,7 @@ class DatabaseOperations(BaseDatabaseOperations): params = [tzname] else: params = [] - # http://www.postgresql.org/docs/8.0/static/functions-datetime.html#FUNCTIONS-DATETIME-TRUNC + # http://www.postgresql.org/docs/current/static/functions-datetime.html#FUNCTIONS-DATETIME-TRUNC sql = "DATE_TRUNC('%s', %s)" % (lookup_type, field_name) return sql, params @@ -178,17 +178,6 @@ class DatabaseOperations(BaseDatabaseOperations): def prep_for_iexact_query(self, x): return x - def check_aggregate_support(self, aggregate): - """Check that the backend fully supports the provided aggregate. - - The implementation of population statistics (STDDEV_POP and VAR_POP) - under Postgres 8.2 - 8.2.4 is known to be faulty. Raise - NotImplementedError if this is the database in use. - """ - if aggregate.sql_function in ('STDDEV_POP', 'VAR_POP'): - if 80200 <= self.connection.pg_version <= 80204: - raise NotImplementedError('PostgreSQL 8.2 to 8.2.4 is known to have a faulty implementation of %s. Please upgrade your version of PostgreSQL.' % aggregate.sql_function) - def max_name_length(self): """ Returns the maximum length of an identifier. diff --git a/docs/howto/custom-model-fields.txt b/docs/howto/custom-model-fields.txt index 7b5fe6349e..84b3881fad 100644 --- a/docs/howto/custom-model-fields.txt +++ b/docs/howto/custom-model-fields.txt @@ -19,7 +19,7 @@ only the common types, such as ``VARCHAR`` and ``INTEGER``. For more obscure column types, such as geographic polygons or even user-created types such as `PostgreSQL custom types`_, you can define your own Django ``Field`` subclasses. -.. _PostgreSQL custom types: http://www.postgresql.org/docs/8.2/interactive/sql-createtype.html +.. _PostgreSQL custom types: http://www.postgresql.org/docs/current/interactive/sql-createtype.html Alternatively, you may have a complex Python object that can somehow be serialized to fit into a standard database column type. This is another case diff --git a/docs/ref/contrib/gis/install/create_template_postgis-debian.sh b/docs/ref/contrib/gis/install/create_template_postgis-debian.sh index 3e621837fa..c59834c87e 100755 --- a/docs/ref/contrib/gis/install/create_template_postgis-debian.sh +++ b/docs/ref/contrib/gis/install/create_template_postgis-debian.sh @@ -3,13 +3,6 @@ GEOGRAPHY=0 POSTGIS_SQL=postgis.sql -# For Ubuntu 8.x and 9.x releases. -if [ -d "/usr/share/postgresql-8.3-postgis" ] -then - POSTGIS_SQL_PATH=/usr/share/postgresql-8.3-postgis - POSTGIS_SQL=lwpostgis.sql -fi - # For Ubuntu 10.04 if [ -d "/usr/share/postgresql/8.4/contrib" ] then diff --git a/docs/ref/contrib/gis/install/index.txt b/docs/ref/contrib/gis/install/index.txt index 3e1cda0a47..62369d8253 100644 --- a/docs/ref/contrib/gis/install/index.txt +++ b/docs/ref/contrib/gis/install/index.txt @@ -61,7 +61,7 @@ supported versions, and any notes for each of the supported database backends: ================== ============================== ================== ========================================= Database Library Requirements Supported Versions Notes ================== ============================== ================== ========================================= -PostgreSQL GEOS, PROJ.4, PostGIS 8.2+ Requires PostGIS. +PostgreSQL GEOS, PROJ.4, PostGIS 8.4+ Requires PostGIS. MySQL GEOS 5.x Not OGC-compliant; :ref:`limited functionality `. Oracle GEOS 10.2, 11 XE not supported; not tested with 9. SQLite GEOS, GDAL, PROJ.4, SpatiaLite 3.6.+ Requires SpatiaLite 2.3+, pysqlite2 2.5+ diff --git a/docs/ref/databases.txt b/docs/ref/databases.txt index 78c1bb3dda..6d4e1663bf 100644 --- a/docs/ref/databases.txt +++ b/docs/ref/databases.txt @@ -77,20 +77,7 @@ negating the effect of persistent connections. PostgreSQL notes ================ -Django supports PostgreSQL 8.2 and higher. - -PostgreSQL 8.2 to 8.2.4 ------------------------ - -The implementation of the population statistics aggregates ``STDDEV_POP`` and -``VAR_POP`` that shipped with PostgreSQL 8.2 to 8.2.4 are `known to be -faulty`_. Users of these releases of PostgreSQL are advised to upgrade to -`Release 8.2.5`_ or later. Django will raise a ``NotImplementedError`` if you -attempt to use the ``StdDev(sample=False)`` or ``Variance(sample=False)`` -aggregate with a database backend that falls within the affected release range. - -.. _known to be faulty: http://archives.postgresql.org/pgsql-bugs/2007-07/msg00046.php -.. _Release 8.2.5: http://www.postgresql.org/docs/devel/static/release-8-2-5.html +Django supports PostgreSQL 8.4 and higher. PostgreSQL connection settings ------------------------------- @@ -165,7 +152,7 @@ such as ``REPEATABLE READ`` or ``SERIALIZABLE``, set it in the handle exceptions raised on serialization failures. This option is designed for advanced uses. -.. _postgresql-isolation-levels: http://www.postgresql.org/docs/devel/static/transaction-iso.html +.. _postgresql-isolation-levels: http://www.postgresql.org/docs/current/static/transaction-iso.html Indexes for ``varchar`` and ``text`` columns -------------------------------------------- @@ -179,7 +166,7 @@ for the column. The extra index is necessary to correctly perform lookups that use the ``LIKE`` operator in their SQL, as is done with the ``contains`` and ``startswith`` lookup types. -.. _PostgreSQL operator class: http://www.postgresql.org/docs/8.4/static/indexes-opclass.html +.. _PostgreSQL operator class: http://www.postgresql.org/docs/current/static/indexes-opclass.html .. _mysql-notes: diff --git a/docs/ref/models/querysets.txt b/docs/ref/models/querysets.txt index 224c2427b0..9c1337d59f 100644 --- a/docs/ref/models/querysets.txt +++ b/docs/ref/models/querysets.txt @@ -628,7 +628,7 @@ object. If it's ``None``, Django uses the :ref:`current time zone - MySQL: load the time zone tables with `mysql_tzinfo_to_sql`_. .. _pytz: http://pytz.sourceforge.net/ - .. _Time Zones: http://www.postgresql.org/docs/9.2/static/datatype-datetime.html#DATATYPE-TIMEZONES + .. _Time Zones: http://www.postgresql.org/docs/current/static/datatype-datetime.html#DATATYPE-TIMEZONES .. _Choosing a Time Zone File: http://docs.oracle.com/cd/B19306_01/server.102/b14225/ch4datetime.htm#i1006667 .. _mysql_tzinfo_to_sql: http://dev.mysql.com/doc/refman/5.5/en/mysql-tzinfo-to-sql.html diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt index 2b80527d8b..b8041a8a9b 100644 --- a/docs/ref/settings.txt +++ b/docs/ref/settings.txt @@ -557,7 +557,7 @@ backend-specific. Supported for the PostgreSQL_ (``postgresql_psycopg2``) and MySQL_ (``mysql``) backends. -.. _PostgreSQL: http://www.postgresql.org/docs/8.2/static/multibyte.html +.. _PostgreSQL: http://www.postgresql.org/docs/current/static/multibyte.html .. _MySQL: http://dev.mysql.com/doc/refman/5.0/en/charset-database.html .. setting:: TEST_COLLATION diff --git a/docs/ref/unicode.txt b/docs/ref/unicode.txt index 92a446ff6b..bd5bdc96a9 100644 --- a/docs/ref/unicode.txt +++ b/docs/ref/unicode.txt @@ -20,14 +20,14 @@ able to store certain characters in the database, and information will be lost. * MySQL users, refer to the `MySQL manual`_ (section 9.1.3.2 for MySQL 5.1) for details on how to set or alter the database character set encoding. -* PostgreSQL users, refer to the `PostgreSQL manual`_ (section 21.2.2 in - PostgreSQL 8) for details on creating databases with the correct encoding. +* PostgreSQL users, refer to the `PostgreSQL manual`_ (section 22.3.2 in + PostgreSQL 9) for details on creating databases with the correct encoding. * SQLite users, there is nothing you need to do. SQLite always uses UTF-8 for internal encoding. .. _MySQL manual: http://dev.mysql.com/doc/refman/5.1/en/charset-database.html -.. _PostgreSQL manual: http://www.postgresql.org/docs/8.2/static/multibyte.html#AEN24104 +.. _PostgreSQL manual: http://www.postgresql.org/docs/current/static/multibyte.html All of Django's database backends automatically convert Unicode strings into the appropriate encoding for talking to the database. They also automatically diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index c52f6ee3d9..a0867ad930 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -352,6 +352,17 @@ in an external repository`__. __ https://disqus.com/ __ https://github.com/django/django-contrib-comments +Support for PostgreSQL versions older than 8.4 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The end of upstream support periods was reached in December 2011 for +PostgreSQL 8.2 and in February 2013 for 8.3. As a consequence, Django 1.6 sets +8.4 as the minimum PostgreSQL version it officially supports. + +You're strongly encouraged to use the most recent version of PostgreSQL +available, because of performance improvements and to take advantage of the +native streaming replication available in PostgreSQL 9.x. + Changes to :ttag:`cycle` and :ttag:`firstof` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/topics/db/sql.txt b/docs/topics/db/sql.txt index b2161fe65b..b52e6e795f 100644 --- a/docs/topics/db/sql.txt +++ b/docs/topics/db/sql.txt @@ -155,7 +155,7 @@ of people with their ages calculated by the database:: Jane is 42. ... -__ http://www.postgresql.org/docs/8.4/static/functions-datetime.html +__ http://www.postgresql.org/docs/current/static/functions-datetime.html Passing parameters into ``raw()`` --------------------------------- -- cgit v1.3 From 4485b2a74cd0cb066669157da90480076b3570c7 Mon Sep 17 00:00:00 2001 From: Justin Bronn Date: Mon, 18 Mar 2013 15:55:32 -0700 Subject: Update versions and links to source tarballs. --- docs/ref/contrib/gis/install/geolibs.txt | 16 ++++++++-------- docs/ref/contrib/gis/install/postgis.txt | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) (limited to 'docs') diff --git a/docs/ref/contrib/gis/install/geolibs.txt b/docs/ref/contrib/gis/install/geolibs.txt index c78f0c0e62..74ebf6a35f 100644 --- a/docs/ref/contrib/gis/install/geolibs.txt +++ b/docs/ref/contrib/gis/install/geolibs.txt @@ -88,16 +88,16 @@ internal geometry representation used by GeoDjango (it's behind the "lazy" geometries). Specifically, the C API library is called (e.g., ``libgeos_c.so``) directly from Python using ctypes. -First, download GEOS 3.3.5 from the refractions Web site and untar the source +First, download GEOS 3.3.8 from the refractions Web site and untar the source archive:: - $ wget http://download.osgeo.org/geos/geos-3.3.5.tar.bz2 - $ tar xjf geos-3.3.5.tar.bz2 + $ wget http://download.osgeo.org/geos/geos-3.3.8.tar.bz2 + $ tar xjf geos-3.3.8.tar.bz2 Next, change into the directory where GEOS was unpacked, run the configure script, compile, and install:: - $ cd geos-3.3.5 + $ cd geos-3.3.8 $ ./configure $ make $ sudo make install @@ -181,9 +181,9 @@ supports :ref:`GDAL's vector data ` capabilities [#]_. First download the latest GDAL release version and untar the archive:: - $ wget http://download.osgeo.org/gdal/gdal-1.9.1.tar.gz - $ tar xzf gdal-1.9.1.tar.gz - $ cd gdal-1.9.1 + $ wget http://download.osgeo.org/gdal/gdal-1.9.2.tar.gz + $ tar xzf gdal-1.9.2.tar.gz + $ cd gdal-1.9.2 Configure, make and install:: @@ -216,7 +216,7 @@ Can't find GDAL library When GeoDjango can't find the GDAL library, the ``HAS_GDAL`` flag will be false: -.. code-block:: pycon +.. code-block:: python >>> from django.contrib.gis import gdal >>> gdal.HAS_GDAL diff --git a/docs/ref/contrib/gis/install/postgis.txt b/docs/ref/contrib/gis/install/postgis.txt index 603ed8c2d0..c651fe8fca 100644 --- a/docs/ref/contrib/gis/install/postgis.txt +++ b/docs/ref/contrib/gis/install/postgis.txt @@ -28,9 +28,9 @@ Building from source First download the source archive, and extract:: - $ wget http://postgis.refractions.net/download/postgis-2.0.1.tar.gz - $ tar xzf postgis-2.0.1.tar.gz - $ cd postgis-2.0.1 + $ wget http://download.osgeo.org/postgis/source/postgis-2.0.3.tar.gz + $ tar xzf postgis-2.0.3.tar.gz + $ cd postgis-2.0.3 Next, configure, make and install PostGIS:: -- cgit v1.3 From 31b5275235bac150a54059db0288a19b9e0516c7 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Mon, 18 Mar 2013 21:52:16 +0100 Subject: Fixed #13260 -- Quoted arguments interpolated in URLs in reverse. --- django/core/urlresolvers.py | 20 ++++++++++++++------ docs/releases/1.6.txt | 10 ++++++++++ tests/admin_views/tests.py | 10 +++++----- tests/template_tests/tests.py | 6 +++--- tests/urlpatterns_reverse/tests.py | 6 +++++- tests/urlpatterns_reverse/urls.py | 2 +- 6 files changed, 38 insertions(+), 16 deletions(-) (limited to 'docs') diff --git a/django/core/urlresolvers.py b/django/core/urlresolvers.py index ffe74bc650..c3d93bb247 100644 --- a/django/core/urlresolvers.py +++ b/django/core/urlresolvers.py @@ -375,6 +375,9 @@ class RegexURLResolver(LocaleRegexProvider): def _reverse_with_prefix(self, lookup_view, _prefix, *args, **kwargs): if args and kwargs: raise ValueError("Don't mix *args and **kwargs in call to reverse()!") + text_args = [force_text(v) for v in args] + text_kwargs = dict((k, force_text(v)) for (k, v) in kwargs.items()) + try: lookup_view = get_callable(lookup_view, True) except (ImportError, AttributeError) as e: @@ -387,8 +390,7 @@ class RegexURLResolver(LocaleRegexProvider): if args: if len(args) != len(params) + len(prefix_args): continue - unicode_args = [force_text(val) for val in args] - candidate = (prefix_norm.replace('%', '%%') + result) % dict(zip(prefix_args + params, unicode_args)) + candidate_subs = dict(zip(prefix_args + params, text_args)) else: if set(kwargs.keys()) | set(defaults.keys()) != set(params) | set(defaults.keys()) | set(prefix_args): continue @@ -399,10 +401,16 @@ class RegexURLResolver(LocaleRegexProvider): break if not matches: continue - unicode_kwargs = dict([(k, force_text(v)) for (k, v) in kwargs.items()]) - candidate = (prefix_norm.replace('%', '%%') + result) % unicode_kwargs - if re.search('^%s%s' % (prefix_norm, pattern), candidate, re.UNICODE): - return candidate + candidate_subs = text_kwargs + # WSGI provides decoded URLs, without %xx escapes, and the URL + # resolver operates on such URLs. First substitute arguments + # without quoting to build a decoded URL and look for a match. + # Then, if we have a match, redo the substitution with quoted + # arguments in order to return a properly encoded URL. + candidate_pat = prefix_norm.replace('%', '%%') + result + if re.search('^%s%s' % (prefix_norm, pattern), candidate_pat % candidate_subs, re.UNICODE): + candidate_subs = dict((k, urlquote(v)) for (k, v) in candidate_subs.items()) + return candidate_pat % candidate_subs # lookup_view can be URL label, or dotted path, or callable, Any of # these can be passed in at the top, but callables are not friendly in # error messages. diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index a0867ad930..959a5e3ef0 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -281,6 +281,16 @@ warning is generated by :djadmin:`makemessages` when it finds them. E.g.: {{ title }}{# Translators: Extracted and associated with 'Welcome' below #}

    {% trans "Welcome" %}

    +Quoting in :func:`~django.core.urlresolvers.reverse` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +When reversing URLs, Django didn't apply :func:`~django.utils.http.urlquote` +to arguments before interpolating them in URL patterns. This bug is fixed in +Django 1.6. If you worked around this bug by applying URL quoting before +passing arguments to :func:`~django.core.urlresolvers.reverse`, this may +result in double-quoting. If this happens, simply remove the URL quoting from +your code. + Storage of IP addresses in the comments app ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py index bb77932ad4..5c9699792b 100644 --- a/tests/admin_views/tests.py +++ b/tests/admin_views/tests.py @@ -32,7 +32,7 @@ from django.utils import formats, translation, unittest from django.utils.cache import get_max_age from django.utils.encoding import iri_to_uri, force_bytes from django.utils.html import escape -from django.utils.http import urlencode +from django.utils.http import urlencode, urlquote from django.utils._os import upath from django.utils import six from django.test.utils import override_settings @@ -1450,8 +1450,8 @@ class AdminViewStringPrimaryKeyTest(TestCase): "Link to the changeform of the object in changelist should use reverse() and be quoted -- #18072" prefix = '/test_admin/admin/admin_views/modelwithstringprimarykey/' response = self.client.get(prefix) - # this URL now comes through reverse(), thus iri_to_uri encoding - pk_final_url = escape(iri_to_uri(quote(self.pk))) + # this URL now comes through reverse(), thus url quoting and iri_to_uri encoding + pk_final_url = escape(iri_to_uri(urlquote(quote(self.pk)))) should_contain = """%s""" % (prefix, pk_final_url, escape(self.pk)) self.assertContains(response, should_contain) @@ -1484,8 +1484,8 @@ class AdminViewStringPrimaryKeyTest(TestCase): def test_deleteconfirmation_link(self): "The link from the delete confirmation page referring back to the changeform of the object should be quoted" response = self.client.get('/test_admin/admin/admin_views/modelwithstringprimarykey/%s/delete/' % quote(self.pk)) - # this URL now comes through reverse(), thus iri_to_uri encoding - should_contain = """/%s/">%s""" % (escape(iri_to_uri(quote(self.pk))), escape(self.pk)) + # this URL now comes through reverse(), thus url quoting and iri_to_uri encoding + should_contain = """/%s/">%s""" % (escape(iri_to_uri(urlquote(quote(self.pk)))), escape(self.pk)) self.assertContains(response, should_contain) def test_url_conflicts_with_add(self): diff --git a/tests/template_tests/tests.py b/tests/template_tests/tests.py index ccde5eae97..46d1f921e2 100644 --- a/tests/template_tests/tests.py +++ b/tests/template_tests/tests.py @@ -1611,12 +1611,12 @@ class Templates(TestCase): 'url08': ('{% url "метка_оператора" v %}', {'v': 'Ω'}, '/url_tag/%D0%AE%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4/%CE%A9/'), 'url09': ('{% url "метка_оператора_2" tag=v %}', {'v': 'Ω'}, '/url_tag/%D0%AE%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4/%CE%A9/'), 'url10': ('{% url "template_tests.views.client_action" id=client.id action="two words" %}', {'client': {'id': 1}}, '/url_tag/client/1/two%20words/'), - 'url11': ('{% url "template_tests.views.client_action" id=client.id action="==" %}', {'client': {'id': 1}}, '/url_tag/client/1/==/'), - 'url12': ('{% url "template_tests.views.client_action" id=client.id action="," %}', {'client': {'id': 1}}, '/url_tag/client/1/,/'), + 'url11': ('{% url "template_tests.views.client_action" id=client.id action="==" %}', {'client': {'id': 1}}, '/url_tag/client/1/%3D%3D/'), + 'url12': ('{% url "template_tests.views.client_action" id=client.id action="," %}', {'client': {'id': 1}}, '/url_tag/client/1/%2C/'), 'url13': ('{% url "template_tests.views.client_action" id=client.id action=arg|join:"-" %}', {'client': {'id': 1}, 'arg':['a','b']}, '/url_tag/client/1/a-b/'), 'url14': ('{% url "template_tests.views.client_action" client.id arg|join:"-" %}', {'client': {'id': 1}, 'arg':['a','b']}, '/url_tag/client/1/a-b/'), 'url15': ('{% url "template_tests.views.client_action" 12 "test" %}', {}, '/url_tag/client/12/test/'), - 'url18': ('{% url "template_tests.views.client" "1,2" %}', {}, '/url_tag/client/1,2/'), + 'url18': ('{% url "template_tests.views.client" "1,2" %}', {}, '/url_tag/client/1%2C2/'), 'url19': ('{% url named_url client.id %}', {'named_url': 'template_tests.views.client', 'client': {'id': 1}}, '/url_tag/client/1/'), 'url20': ('{% url url_name_in_var client.id %}', {'url_name_in_var': 'named.client', 'client': {'id': 1}}, '/url_tag/named-client/1/'), diff --git a/tests/urlpatterns_reverse/tests.py b/tests/urlpatterns_reverse/tests.py index 1860c9dd2c..4a45e63cb0 100644 --- a/tests/urlpatterns_reverse/tests.py +++ b/tests/urlpatterns_reverse/tests.py @@ -97,7 +97,11 @@ test_data = ( ('product', '/product/chocolate+($2.00)/', [], {'price': '2.00', 'product': 'chocolate'}), ('headlines', '/headlines/2007.5.21/', [], dict(year=2007, month=5, day=21)), ('windows', r'/windows_path/C:%5CDocuments%20and%20Settings%5Cspam/', [], dict(drive_name='C', path=r'Documents and Settings\spam')), - ('special', r'/special_chars/+%5C$*/', [r'+\$*'], {}), + ('special', r'/special_chars/%2B%5C%24%2A/', [r'+\$*'], {}), + ('special', r'/special_chars/some%20resource/', [r'some resource'], {}), + ('special', r'/special_chars/10%25%20complete/', [r'10% complete'], {}), + ('special', r'/special_chars/some%20resource/', [], {'chars': r'some resource'}), + ('special', r'/special_chars/10%25%20complete/', [], {'chars': r'10% complete'}), ('special', NoReverseMatch, [''], {}), ('mixed', '/john/0/', [], {'name': 'john'}), ('repeats', '/repeats/a/', [], {}), diff --git a/tests/urlpatterns_reverse/urls.py b/tests/urlpatterns_reverse/urls.py index 80752e54c6..1dbc8d889f 100644 --- a/tests/urlpatterns_reverse/urls.py +++ b/tests/urlpatterns_reverse/urls.py @@ -40,7 +40,7 @@ urlpatterns = patterns('', name="headlines"), url(r'^windows_path/(?P[A-Z]):\\(?P.+)/$', empty_view, name="windows"), - url(r'^special_chars/(.+)/$', empty_view, name="special"), + url(r'^special_chars/(?P.+)/$', empty_view, name="special"), url(r'^(?P.+)/\d+/$', empty_view, name="mixed"), url(r'^repeats/a{1,2}/$', empty_view, name="repeats"), url(r'^repeats/a{2,4}/$', empty_view, name="repeats2"), -- cgit v1.3 From 36b45611bcaee0ba55b40384f29e8b6546f109bb Mon Sep 17 00:00:00 2001 From: Juan Catalano Date: Mon, 18 Mar 2013 20:54:24 -0300 Subject: Added warn note to docs about MySQL issues with 0000-00-00 date strings MySQL accepts 0000-00-00 as a valid date but MySQLdb converts those values into None. So there will be problems for instance if trying to transport the data using dumpdata/loaddata. This patch refs #6642 that has been closed as wontfix since this is a particular problem of MySQL. --- docs/ref/databases.txt | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'docs') diff --git a/docs/ref/databases.txt b/docs/ref/databases.txt index 6d4e1663bf..395abd90dd 100644 --- a/docs/ref/databases.txt +++ b/docs/ref/databases.txt @@ -241,6 +241,14 @@ required for full MySQL support in Django. 1.2.1p2 or newer, then delete the ``sets.py`` file in the MySQLdb directory that was left by an earlier version. +.. note:: + There are known issues with the way MySQLdb converts date strings into + datetime objects. Specifically, date strings with value 0000-00-00 are valid for + MySQL but will be converted into None by MySQLdb. + + This means you should be careful while using loaddata/dumpdata with rows + that may have 0000-00-00 values, as they will be converted to None. + .. _MySQLdb: http://sourceforge.net/projects/mysql-python Creating your database -- cgit v1.3 From ae8fcedbc7694010490ac2b365b397e8e2e39b44 Mon Sep 17 00:00:00 2001 From: Ryan West Date: Mon, 18 Mar 2013 19:18:35 -0700 Subject: small documentation update to outline caveat with SESSION_COOKIE_DOMAIN --- docs/ref/settings.txt | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'docs') diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt index b8041a8a9b..2d24ccb441 100644 --- a/docs/ref/settings.txt +++ b/docs/ref/settings.txt @@ -2287,6 +2287,12 @@ The domain to use for session cookies. Set this to a string such as ``".example.com"`` (note the leading dot!) for cross-domain cookies, or use ``None`` for a standard domain cookie. +Be cautious when updating this setting on a production site. If you update +this setting to enable cross-domain cookies on a site that previously used +standard domain cookies, existing user cookies will be set to the old +domain. This may result in them being unable to log in as long as these cookies +persist. + .. setting:: SESSION_COOKIE_HTTPONLY SESSION_COOKIE_HTTPONLY -- cgit v1.3 From 9a85ad89c20e88340cdba85b8e9f5806c95835db Mon Sep 17 00:00:00 2001 From: Paul Collins Date: Mon, 18 Mar 2013 15:48:47 -0700 Subject: Fixed #16319 -- added SuccessMessageMixin to contrib.messages Thanks martinogden for the initial patch and d1ffuz0r for tests. --- AUTHORS | 1 + django/contrib/messages/tests/__init__.py | 1 + django/contrib/messages/tests/mixins.py | 14 +++++++++ django/contrib/messages/tests/urls.py | 18 +++++++++++- django/contrib/messages/views.py | 19 +++++++++++++ docs/ref/contrib/messages.txt | 47 +++++++++++++++++++++++++++++++ docs/releases/1.6.txt | 4 +++ tests/generic_views/views.py | 1 + 8 files changed, 104 insertions(+), 1 deletion(-) create mode 100644 django/contrib/messages/tests/mixins.py create mode 100644 django/contrib/messages/views.py (limited to 'docs') diff --git a/AUTHORS b/AUTHORS index 4341a05d9b..2790963abe 100644 --- a/AUTHORS +++ b/AUTHORS @@ -607,6 +607,7 @@ answer newbie questions, and generally made Django that much better: Cheng Zhang Hannes Struß Deric Crago + Paul Collins A big THANK YOU goes to: diff --git a/django/contrib/messages/tests/__init__.py b/django/contrib/messages/tests/__init__.py index f3f6b653d0..25a0f9aa25 100644 --- a/django/contrib/messages/tests/__init__.py +++ b/django/contrib/messages/tests/__init__.py @@ -2,3 +2,4 @@ from django.contrib.messages.tests.cookie import CookieTest from django.contrib.messages.tests.fallback import FallbackTest from django.contrib.messages.tests.middleware import MiddlewareTest from django.contrib.messages.tests.session import SessionTest +from django.contrib.messages.tests.mixins import SuccessMessageMixinTests diff --git a/django/contrib/messages/tests/mixins.py b/django/contrib/messages/tests/mixins.py new file mode 100644 index 0000000000..8eef4cb3dc --- /dev/null +++ b/django/contrib/messages/tests/mixins.py @@ -0,0 +1,14 @@ +from django.test.testcases import TestCase +from django.contrib.messages.tests.urls import ContactFormViewWithMsg +from django.core.urlresolvers import reverse + +class SuccessMessageMixinTests(TestCase): + urls = 'django.contrib.messages.tests.urls' + + def test_set_messages_success(self): + author = {'name': 'John Doe', + 'slug': 'success-msg'} + add_url = reverse('add_success_msg') + req = self.client.post(add_url, author) + self.assertIn(ContactFormViewWithMsg.success_message % author, + req.cookies['messages'].value) diff --git a/django/contrib/messages/tests/urls.py b/django/contrib/messages/tests/urls.py index 6d32a614eb..0541b5a336 100644 --- a/django/contrib/messages/tests/urls.py +++ b/django/contrib/messages/tests/urls.py @@ -1,10 +1,13 @@ -from django.conf.urls import patterns +from django.conf.urls import patterns, url from django.contrib import messages from django.core.urlresolvers import reverse +from django import forms from django.http import HttpResponseRedirect, HttpResponse from django.template import RequestContext, Template from django.template.response import TemplateResponse from django.views.decorators.cache import never_cache +from django.contrib.messages.views import SuccessMessageMixin +from django.views.generic.edit import FormView TEMPLATE = """{% if messages %}
      @@ -49,8 +52,21 @@ def show(request): def show_template_response(request): return TemplateResponse(request, Template(TEMPLATE)) + +class ContactForm(forms.Form): + name = forms.CharField(required=True) + slug = forms.SlugField(required=True) + + +class ContactFormViewWithMsg(SuccessMessageMixin, FormView): + form_class = ContactForm + success_url = show + success_message = "%(name)s was created successfully" + + urlpatterns = patterns('', ('^add/(debug|info|success|warning|error)/$', add), + url('^add/msg/$', ContactFormViewWithMsg.as_view(), name='add_success_msg'), ('^show/$', show), ('^template_response/add/(debug|info|success|warning|error)/$', add_template_response), ('^template_response/show/$', show_template_response), diff --git a/django/contrib/messages/views.py b/django/contrib/messages/views.py new file mode 100644 index 0000000000..d08804aa1d --- /dev/null +++ b/django/contrib/messages/views.py @@ -0,0 +1,19 @@ +from django.views.generic.edit import FormMixin +from django.contrib import messages + + +class SuccessMessageMixin(FormMixin): + """ + Adds a success message on successful form submission. + """ + success_message = '' + + def form_valid(self, form): + response = super(SuccessMessageMixin, self).form_valid(form) + success_message = self.get_success_message(form.cleaned_data) + if success_message: + messages.success(self.request, success_message) + return response + + def get_success_message(self, cleaned_data): + return self.success_message % cleaned_data diff --git a/docs/ref/contrib/messages.txt b/docs/ref/contrib/messages.txt index dd7c8dbd65..0dd732bec2 100644 --- a/docs/ref/contrib/messages.txt +++ b/docs/ref/contrib/messages.txt @@ -286,6 +286,53 @@ example:: use one of the ``add_message`` family of methods. It does not hide failures that may occur for other reasons. +Adding messages in Class Based Views +------------------------------------ + +.. versionadded:: 1.6 + +.. class:: django.contrib.messages.views.SuccessMessageMixin + + Adds a success message attribute to + :class:`~django.views.generic.edit.FormView` based classes + + .. method:: get_success_message(cleaned_data) + + ``cleaned_data`` is the cleaned data from the form which is used for + string formatting + +**Example views.py**:: + + from django.contrib.messages.views import SuccessMessageMixin + from django.views.generic.edit import CreateView + from myapp.models import Author + + class AuthorCreate(SuccessMessageMixin, CreateView): + model = Author + success_url = '/success/' + success_message = "%(name)s was created successfully" + +The cleaned data from the ``form`` is available for string interpolation using +the ``%(field_name)s`` syntax. For ModelForms, if you need access to fields +from the saved ``object`` override the +:meth:`~django.contrib.messages.views.SuccessMessageMixin.get_success_message` +method. + +**Example views.py for ModelForms**:: + + from django.contrib.messages.views import SuccessMessageMixin + from django.views.generic.edit import CreateView + from myapp.models import ComplicatedModel + + class ComplicatedCreate(SuccessMessageMixin, CreateView): + model = ComplicatedModel + success_url = '/success/' + success_message = "%(calculated_field)s was created successfully" + + def get_success_message(self, cleaned_data): + return self.success_message % dict(cleaned_data, + calculated_field=self.object.calculated_field) + Expiration of messages ====================== diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 959a5e3ef0..3e6c3b8bfb 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -126,6 +126,10 @@ Minor features * The ``MemcachedCache`` cache backend now uses the latest :mod:`pickle` protocol available. +* Added :class:`~django.contrib.messages.views.SuccessMessageMixin` which + provides a ``success_message`` attribute for + :class:`~django.view.generic.edit.FormView` based classes. + * Added the :attr:`django.db.models.ForeignKey.db_constraint` and :attr:`django.db.models.ManyToManyField.db_constraint` options. diff --git a/tests/generic_views/views.py b/tests/generic_views/views.py index 71e78e82c7..856565a953 100644 --- a/tests/generic_views/views.py +++ b/tests/generic_views/views.py @@ -1,6 +1,7 @@ from __future__ import absolute_import from django.contrib.auth.decorators import login_required +from django.contrib.messages.views import SuccessMessageMixin from django.core.paginator import Paginator from django.core.urlresolvers import reverse, reverse_lazy from django.utils.decorators import method_decorator -- cgit v1.3 From a9ee0e2970b5dcff63dce9db6dac9681355fc69d Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Wed, 20 Mar 2013 17:05:43 +0100 Subject: Fixed #20096 -- Added link to the Greek localflavor app --- docs/topics/localflavor.txt | 1 + 1 file changed, 1 insertion(+) (limited to 'docs') diff --git a/docs/topics/localflavor.txt b/docs/topics/localflavor.txt index 6c68481108..8ae435463d 100644 --- a/docs/topics/localflavor.txt +++ b/docs/topics/localflavor.txt @@ -54,6 +54,7 @@ The following countries have django-localflavor- packages. * Finland: https://github.com/django/django-localflavor-fi * France: https://github.com/django/django-localflavor-fr * Germany: https://github.com/django/django-localflavor-de +* Greece: https://github.com/spapas/django-localflavor-gr * Hong Kong: https://github.com/django/django-localflavor-hk * Iceland: https://github.com/django/django-localflavor-is * India: https://github.com/django/django-localflavor-in -- cgit v1.3 From aaec4f2bd8a63b3dceebad7804c5897e7874833d Mon Sep 17 00:00:00 2001 From: Carny Cheng Date: Mon, 18 Mar 2013 14:22:26 -0700 Subject: Fixed #18839 - Field.__init__() now calls super(). --- django/forms/fields.py | 1 + docs/releases/1.6.txt | 4 ++++ tests/forms_tests/tests/fields.py | 14 ++++++++++++++ 3 files changed, 19 insertions(+) (limited to 'docs') diff --git a/django/forms/fields.py b/django/forms/fields.py index e708ef846e..ecad857f72 100644 --- a/django/forms/fields.py +++ b/django/forms/fields.py @@ -120,6 +120,7 @@ class Field(object): self.error_messages = messages self.validators = self.default_validators + validators + super(Field, self).__init__() def prepare_value(self, value): return value diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 3e6c3b8bfb..132ce68232 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -163,6 +163,10 @@ Minor features * The :djadmin:`diffsettings` comand gained a ``--all`` option. +* :func:`django.forms.fields.Field.__init__` now calls ``super()``, allowing + field mixins to implement ``__init__()`` methods that will reliably be + called. + Backwards incompatible changes in 1.6 ===================================== diff --git a/tests/forms_tests/tests/fields.py b/tests/forms_tests/tests/fields.py index 95e14c4434..7516de29b4 100644 --- a/tests/forms_tests/tests/fields.py +++ b/tests/forms_tests/tests/fields.py @@ -63,6 +63,20 @@ class FieldsTests(SimpleTestCase): self.assertTrue(Field(required=True).widget.is_required) self.assertFalse(Field(required=False).widget.is_required) + def test_cooperative_multiple_inheritance(self): + class A(object): + def __init__(self): + self.class_a_var = True + super(A, self).__init__() + + + class ComplexField(Field, A): + def __init__(self): + super(ComplexField, self).__init__() + + f = ComplexField() + self.assertTrue(f.class_a_var) + # CharField ################################################################### def test_charfield_1(self): -- cgit v1.3 From f9ab543720532400e8b0d490cdbe67ea09ae9c17 Mon Sep 17 00:00:00 2001 From: Andrew Gorcester Date: Wed, 20 Mar 2013 23:27:06 -0700 Subject: Fixed #20084 -- Provided option to validate formset max_num on server. This is provided as a new "validate_max" formset_factory option defaulting to False, since the non-validating behavior of max_num is longstanding, and there is certainly code relying on it. (In fact, even the Django admin relies on it for the case where there are more existing inlines than the given max_num). It may be that at some point we want to deprecate validate_max=False and eventually remove the option, but this commit takes no steps in that direction. This also fixes the DoS-prevention absolute_max enforcement so that it causes a form validation error rather than an IndexError, and ensures that absolute_max is always 1000 more than max_num, to prevent surprising changes in behavior with max_num close to absolute_max. Lastly, this commit fixes the previous inconsistency between a regular formset and a model formset in the precedence of max_num and initial data. Previously in a regular formset, if the provided initial data was longer than max_num, it was truncated; in a model formset, all initial forms would be displayed regardless of max_num. Now regular formsets are the same as model formsets; all initial forms are displayed, even if more than max_num. (But if validate_max is True, submitting these forms will result in a "too many forms" validation error!) This combination of behaviors was chosen to keep the max_num validation simple and consistent, and avoid silent data loss due to truncation of initial data. Thanks to Preston for discussion of the design choices. --- django/contrib/contenttypes/generic.py | 5 ++- django/forms/formsets.py | 30 ++++++++----- django/forms/models.py | 8 ++-- docs/ref/contrib/contenttypes.txt | 2 +- docs/ref/forms/formsets.txt | 16 +++++++ docs/ref/forms/index.txt | 1 + docs/ref/forms/models.txt | 15 ++++--- docs/releases/1.6.txt | 8 ++++ docs/topics/forms/formsets.txt | 78 ++++++++++++++++++++++++++++++---- docs/topics/forms/modelforms.txt | 7 +-- tests/forms_tests/tests/formsets.py | 60 ++++++++++++++++++++------ tests/model_formsets/tests.py | 27 ++++++++++++ 12 files changed, 210 insertions(+), 47 deletions(-) create mode 100644 docs/ref/forms/formsets.txt (limited to 'docs') diff --git a/django/contrib/contenttypes/generic.py b/django/contrib/contenttypes/generic.py index fdb05a626a..aa232ab1d5 100644 --- a/django/contrib/contenttypes/generic.py +++ b/django/contrib/contenttypes/generic.py @@ -435,7 +435,7 @@ def generic_inlineformset_factory(model, form=ModelForm, fields=None, exclude=None, extra=3, can_order=False, can_delete=True, max_num=None, - formfield_callback=None): + formfield_callback=None, validate_max=False): """ Returns a ``GenericInlineFormSet`` for the given kwargs. @@ -457,7 +457,8 @@ def generic_inlineformset_factory(model, form=ModelForm, formfield_callback=formfield_callback, formset=formset, extra=extra, can_delete=can_delete, can_order=can_order, - fields=fields, exclude=exclude, max_num=max_num) + fields=fields, exclude=exclude, max_num=max_num, + validate_max=validate_max) FormSet.ct_field = ct_field FormSet.ct_fk_field = fk_field return FormSet diff --git a/django/forms/formsets.py b/django/forms/formsets.py index 81b75f2796..98ae3205fe 100644 --- a/django/forms/formsets.py +++ b/django/forms/formsets.py @@ -33,6 +33,9 @@ class ManagementForm(Form): def __init__(self, *args, **kwargs): self.base_fields[TOTAL_FORM_COUNT] = IntegerField(widget=HiddenInput) self.base_fields[INITIAL_FORM_COUNT] = IntegerField(widget=HiddenInput) + # MAX_NUM_FORM_COUNT is output with the rest of the management form, + # but only for the convenience of client-side code. The POST + # value of MAX_NUM_FORM_COUNT returned from the client is not checked. self.base_fields[MAX_NUM_FORM_COUNT] = IntegerField(required=False, widget=HiddenInput) super(ManagementForm, self).__init__(*args, **kwargs) @@ -94,7 +97,11 @@ class BaseFormSet(object): def total_form_count(self): """Returns the total number of forms in this FormSet.""" if self.is_bound: - return self.management_form.cleaned_data[TOTAL_FORM_COUNT] + # return absolute_max if it is lower than the actual total form + # count in the data; this is DoS protection to prevent clients + # from forcing the server to instantiate arbitrary numbers of + # forms + return min(self.management_form.cleaned_data[TOTAL_FORM_COUNT], self.absolute_max) else: initial_forms = self.initial_form_count() total_forms = initial_forms + self.extra @@ -113,14 +120,13 @@ class BaseFormSet(object): else: # Use the length of the inital data if it's there, 0 otherwise. initial_forms = self.initial and len(self.initial) or 0 - if initial_forms > self.max_num >= 0: - initial_forms = self.max_num return initial_forms def _construct_forms(self): # instantiate all the forms and put them in self.forms self.forms = [] - for i in xrange(min(self.total_form_count(), self.absolute_max)): + # DoS protection is included in total_form_count() + for i in xrange(self.total_form_count()): self.forms.append(self._construct_form(i)) def _construct_form(self, i, **kwargs): @@ -168,7 +174,6 @@ class BaseFormSet(object): self.add_fields(form, None) return form - # Maybe this should just go away? @property def cleaned_data(self): """ @@ -294,8 +299,11 @@ class BaseFormSet(object): for i in range(0, self.total_form_count()): form = self.forms[i] self._errors.append(form.errors) - # Give self.clean() a chance to do cross-form validation. try: + if (self.validate_max and self.total_form_count() > self.max_num) or \ + self.management_form.cleaned_data[TOTAL_FORM_COUNT] > self.absolute_max: + raise ValidationError(_("Please submit %s or fewer forms." % self.max_num)) + # Give self.clean() a chance to do cross-form validation. self.clean() except ValidationError as e: self._non_form_errors = self.error_class(e.messages) @@ -367,16 +375,18 @@ class BaseFormSet(object): return mark_safe('\n'.join([six.text_type(self.management_form), forms])) def formset_factory(form, formset=BaseFormSet, extra=1, can_order=False, - can_delete=False, max_num=None): + can_delete=False, max_num=None, validate_max=False): """Return a FormSet for the given form class.""" if max_num is None: max_num = DEFAULT_MAX_NUM # hard limit on forms instantiated, to prevent memory-exhaustion attacks - # limit defaults to DEFAULT_MAX_NUM, but developer can increase it via max_num - absolute_max = max(DEFAULT_MAX_NUM, max_num) + # limit is simply max_num + DEFAULT_MAX_NUM (which is 2*DEFAULT_MAX_NUM + # if max_num is None in the first place) + absolute_max = max_num + DEFAULT_MAX_NUM attrs = {'form': form, 'extra': extra, 'can_order': can_order, 'can_delete': can_delete, - 'max_num': max_num, 'absolute_max': absolute_max} + 'max_num': max_num, 'absolute_max': absolute_max, + 'validate_max' : validate_max} return type(form.__name__ + str('FormSet'), (formset,), attrs) def all_valid(formsets): diff --git a/django/forms/models.py b/django/forms/models.py index 272f1ddee6..0672bafc47 100644 --- a/django/forms/models.py +++ b/django/forms/models.py @@ -682,7 +682,7 @@ class BaseModelFormSet(BaseFormSet): def modelformset_factory(model, form=ModelForm, formfield_callback=None, formset=BaseModelFormSet, extra=1, can_delete=False, can_order=False, max_num=None, fields=None, - exclude=None, widgets=None): + exclude=None, widgets=None, validate_max=False): """ Returns a FormSet class for the given Django model class. """ @@ -690,7 +690,8 @@ def modelformset_factory(model, form=ModelForm, formfield_callback=None, formfield_callback=formfield_callback, widgets=widgets) FormSet = formset_factory(form, formset, extra=extra, max_num=max_num, - can_order=can_order, can_delete=can_delete) + can_order=can_order, can_delete=can_delete, + validate_max=validate_max) FormSet.model = model return FormSet @@ -826,7 +827,7 @@ def inlineformset_factory(parent_model, model, form=ModelForm, formset=BaseInlineFormSet, fk_name=None, fields=None, exclude=None, extra=3, can_order=False, can_delete=True, max_num=None, - formfield_callback=None, widgets=None): + formfield_callback=None, widgets=None, validate_max=False): """ Returns an ``InlineFormSet`` for the given kwargs. @@ -848,6 +849,7 @@ def inlineformset_factory(parent_model, model, form=ModelForm, 'exclude': exclude, 'max_num': max_num, 'widgets': widgets, + 'validate_max': validate_max, } FormSet = modelformset_factory(model, **kwargs) FormSet.fk = fk diff --git a/docs/ref/contrib/contenttypes.txt b/docs/ref/contrib/contenttypes.txt index fb85653ce8..388172c43e 100644 --- a/docs/ref/contrib/contenttypes.txt +++ b/docs/ref/contrib/contenttypes.txt @@ -492,7 +492,7 @@ information. Subclasses of :class:`GenericInlineModelAdmin` with stacked and tabular layouts, respectively. -.. function:: generic_inlineformset_factory(model, form=ModelForm, formset=BaseGenericInlineFormSet, ct_field="content_type", fk_field="object_id", fields=None, exclude=None, extra=3, can_order=False, can_delete=True, max_num=None, formfield_callback=None) +.. function:: generic_inlineformset_factory(model, form=ModelForm, formset=BaseGenericInlineFormSet, ct_field="content_type", fk_field="object_id", fields=None, exclude=None, extra=3, can_order=False, can_delete=True, max_num=None, formfield_callback=None, validate_max=False) Returns a ``GenericInlineFormSet`` using :func:`~django.forms.models.modelformset_factory`. diff --git a/docs/ref/forms/formsets.txt b/docs/ref/forms/formsets.txt new file mode 100644 index 0000000000..0ab2590fce --- /dev/null +++ b/docs/ref/forms/formsets.txt @@ -0,0 +1,16 @@ +==================== +Formset Functions +==================== + +.. module:: django.forms.formsets + :synopsis: Django's functions for building formsets. + +.. function:: formset_factory(form, formset=BaseFormSet, extra=1, can_order=False, can_delete=False, max_num=None, validate_max=False) + + Returns a ``FormSet`` class for the given ``form`` class. + + See :ref:`formsets` for example usage. + + .. versionchanged:: 1.6 + + The ``validate_max`` parameter was added. diff --git a/docs/ref/forms/index.txt b/docs/ref/forms/index.txt index 446fdb82de..e6edc88ca1 100644 --- a/docs/ref/forms/index.txt +++ b/docs/ref/forms/index.txt @@ -10,5 +10,6 @@ Detailed form API reference. For introductory material, see :doc:`/topics/forms/ api fields models + formsets widgets validation diff --git a/docs/ref/forms/models.txt b/docs/ref/forms/models.txt index f3382d32c7..dd0a422fd0 100644 --- a/docs/ref/forms/models.txt +++ b/docs/ref/forms/models.txt @@ -25,7 +25,7 @@ Model Form Functions See :ref:`modelforms-factory` for example usage. -.. function:: modelformset_factory(model, form=ModelForm, formfield_callback=None, formset=BaseModelFormSet, extra=1, can_delete=False, can_order=False, max_num=None, fields=None, exclude=None, widgets=None) +.. function:: modelformset_factory(model, form=ModelForm, formfield_callback=None, formset=BaseModelFormSet, extra=1, can_delete=False, can_order=False, max_num=None, fields=None, exclude=None, widgets=None, validate_max=False) Returns a ``FormSet`` class for the given ``model`` class. @@ -33,17 +33,18 @@ Model Form Functions ``formfield_callback`` and ``widgets`` are all passed through to :func:`~django.forms.models.modelform_factory`. - Arguments ``formset``, ``extra``, ``max_num``, ``can_order``, and - ``can_delete`` are passed through to ``formset_factory``. See - :ref:`formsets` for details. + Arguments ``formset``, ``extra``, ``max_num``, ``can_order``, + ``can_delete`` and ``validate_max`` are passed through to + :func:`~django.forms.formsets.formset_factory`. See :ref:`formsets` for + details. See :ref:`model-formsets` for example usage. .. versionchanged:: 1.6 - The widgets parameter was added. + The ``widgets`` and the ``validate_max`` parameters were added. -.. function:: inlineformset_factory(parent_model, model, form=ModelForm, formset=BaseInlineFormSet, fk_name=None, fields=None, exclude=None, extra=3, can_order=False, can_delete=True, max_num=None, formfield_callback=None, widgets=None) +.. function:: inlineformset_factory(parent_model, model, form=ModelForm, formset=BaseInlineFormSet, fk_name=None, fields=None, exclude=None, extra=3, can_order=False, can_delete=True, max_num=None, formfield_callback=None, widgets=None, validate_max=False) Returns an ``InlineFormSet`` using :func:`modelformset_factory` with defaults of ``formset=BaseInlineFormSet``, ``can_delete=True``, and @@ -56,4 +57,4 @@ Model Form Functions .. versionchanged:: 1.6 - The widgets parameter was added. + The ``widgets`` and the ``validate_max`` parameters were added. diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 132ce68232..16039851c2 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -167,6 +167,14 @@ Minor features field mixins to implement ``__init__()`` methods that will reliably be called. +* The ``validate_max`` parameter was added to ``BaseFormSet`` and + :func:`~django.forms.formsets.formset_factory`, and ``ModelForm`` and inline + versions of the same. The behavior of validation for formsets with + ``max_num`` was clarified. The previously undocumented behavior that + hardened formsets against memory exhaustion attacks was documented, + and the undocumented limit of the higher of 1000 or ``max_num`` forms + was changed so it is always 1000 more than ``max_num``. + Backwards incompatible changes in 1.6 ===================================== diff --git a/docs/topics/forms/formsets.txt b/docs/topics/forms/formsets.txt index 2534947dd3..f0a7668e0d 100644 --- a/docs/topics/forms/formsets.txt +++ b/docs/topics/forms/formsets.txt @@ -32,8 +32,8 @@ would with a regular form:: As you can see it only displayed one empty form. The number of empty forms that is displayed is controlled by the ``extra`` parameter. By default, -``formset_factory`` defines one extra form; the following example will -display two blank forms:: +:func:`~django.forms.formsets.formset_factory` defines one extra form; the +following example will display two blank forms:: >>> ArticleFormSet = formset_factory(ArticleForm, extra=2) @@ -84,8 +84,9 @@ list of dictionaries as the initial data. Limiting the maximum number of forms ------------------------------------ -The ``max_num`` parameter to ``formset_factory`` gives you the ability to -limit the maximum number of empty forms the formset will display:: +The ``max_num`` parameter to :func:`~django.forms.formsets.formset_factory` +gives you the ability to limit the maximum number of empty forms the formset +will display:: >>> ArticleFormSet = formset_factory(ArticleForm, extra=2, max_num=1) >>> formset = ArticleFormSet() @@ -101,6 +102,20 @@ so long as the total number of forms does not exceed ``max_num``. A ``max_num`` value of ``None`` (the default) puts a high limit on the number of forms displayed (1000). In practice this is equivalent to no limit. +If the number of forms in the initial data exceeds ``max_num``, all initial +data forms will be displayed regardless. (No extra forms will be displayed.) + +By default, ``max_num`` only affects how many forms are displayed and does not +affect validation. If ``validate_max=True`` is passed to the +:func:`~django.forms.formsets.formset_factory`, then ``max_num`` will affect +validation. See :ref:`validate_max`. + +.. versionchanged:: 1.6 + The ``validate_max`` parameter was added to + :func:`~django.forms.formsets.formset_factory`. Also, the behavior of + ``FormSet`` was brought in line with that of ``ModelFormSet`` so that it + displays initial data regardless of ``max_num``. + Formset validation ------------------ @@ -248,14 +263,59 @@ The formset ``clean`` method is called after all the ``Form.clean`` methods have been called. The errors will be found using the ``non_form_errors()`` method on the formset. +.. _validate_max: + +Validating the number of forms in a formset +------------------------------------------- + +If ``validate_max=True`` is passed to +:func:`~django.forms.formsets.formset_factory`, validation will also check +that the number of forms in the data set is less than or equal to ``max_num``. + + >>> ArticleFormSet = formset_factory(ArticleForm, max_num=1, validate_max=True) + >>> data = { + ... 'form-TOTAL_FORMS': u'2', + ... 'form-INITIAL_FORMS': u'0', + ... 'form-MAX_NUM_FORMS': u'', + ... 'form-0-title': u'Test', + ... 'form-0-pub_date': u'1904-06-16', + ... 'form-1-title': u'Test 2', + ... 'form-1-pub_date': u'1912-06-23', + ... } + >>> formset = ArticleFormSet(data) + >>> formset.is_valid() + False + >>> formset.errors + [{}, {}] + >>> formset.non_form_errors() + [u'Please submit 1 or fewer forms.'] + +``validate_max=True`` validates against ``max_num`` strictly even if +``max_num`` was exceeded because the amount of initial data supplied was +excessive. + +Applications which need more customizable validation of the number of forms +should use custom formset validation. + +.. note:: + + Regardless of ``validate_max``, if the number of forms in a data set + exceeds ``max_num`` by more than 1000, then the form will fail to validate + as if ``validate_max`` were set, and additionally only the first 1000 + forms above ``max_num`` will be validated. The remainder will be + truncated entirely. This is to protect against memory exhaustion attacks + using forged POST requests. + +.. versionchanged:: 1.6 + The ``validate_max`` parameter was added to + :func:`~django.forms.formsets.formset_factory`. + Dealing with ordering and deletion of forms ------------------------------------------- -Common use cases with a formset is dealing with ordering and deletion of the -form instances. This has been dealt with for you. The ``formset_factory`` -provides two optional parameters ``can_order`` and ``can_delete`` that will do -the extra work of adding the extra fields and providing simpler ways of -getting to that data. +The :func:`~django.forms.formsets.formset_factory` provides two optional +parameters ``can_order`` and ``can_delete`` to help with ordering of forms in +formsets and deletion of forms from a formset. ``can_order`` ~~~~~~~~~~~~~ diff --git a/docs/topics/forms/modelforms.txt b/docs/topics/forms/modelforms.txt index 62020e461e..eaf2bbbaf2 100644 --- a/docs/topics/forms/modelforms.txt +++ b/docs/topics/forms/modelforms.txt @@ -597,9 +597,10 @@ with the ``Author`` model. It works just like a regular formset:: .. note:: - :func:`~django.forms.models.modelformset_factory` uses ``formset_factory`` - to generate formsets. This means that a model formset is just an extension - of a basic formset that knows how to interact with a particular model. + :func:`~django.forms.models.modelformset_factory` uses + :func:`~django.forms.formsets.formset_factory` to generate formsets. This + means that a model formset is just an extension of a basic formset that + knows how to interact with a particular model. Changing the queryset --------------------- diff --git a/tests/forms_tests/tests/formsets.py b/tests/forms_tests/tests/formsets.py index 2bef0c5c33..4ac3c5ecf1 100644 --- a/tests/forms_tests/tests/formsets.py +++ b/tests/forms_tests/tests/formsets.py @@ -256,6 +256,27 @@ class FormsFormsetTestCase(TestCase): self.assertTrue(formset.is_valid()) self.assertEqual([form.cleaned_data for form in formset.forms], [{'votes': 100, 'choice': 'Calexico'}, {}, {}]) + def test_formset_validate_max_flag(self): + # If validate_max is set and max_num is less than TOTAL_FORMS in the + # data, then throw an exception. MAX_NUM_FORMS in the data is + # irrelevant here (it's output as a hint for the client but its + # value in the returned data is not checked) + + data = { + 'choices-TOTAL_FORMS': '2', # the number of forms rendered + 'choices-INITIAL_FORMS': '0', # the number of forms with initial data + 'choices-MAX_NUM_FORMS': '2', # max number of forms - should be ignored + 'choices-0-choice': 'Zero', + 'choices-0-votes': '0', + 'choices-1-choice': 'One', + 'choices-1-votes': '1', + } + + ChoiceFormSet = formset_factory(Choice, extra=1, max_num=1, validate_max=True) + formset = ChoiceFormSet(data, auto_id=False, prefix='choices') + self.assertFalse(formset.is_valid()) + self.assertEqual(formset.non_form_errors(), ['Please submit 1 or fewer forms.']) + def test_second_form_partially_filled_2(self): # And once again, if we try to partially complete a form, validation will fail. @@ -720,8 +741,20 @@ class FormsFormsetTestCase(TestCase): """) def test_max_num_zero(self): - # If max_num is 0 then no form is rendered at all, even if extra and initial - # are specified. + # If max_num is 0 then no form is rendered at all, regardless of extra, + # unless initial data is present. (This changed in the patch for bug + # 20084 -- previously max_num=0 trumped initial data) + + LimitedFavoriteDrinkFormSet = formset_factory(FavoriteDrinkForm, extra=1, max_num=0) + formset = LimitedFavoriteDrinkFormSet() + form_output = [] + + for form in formset.forms: + form_output.append(str(form)) + + self.assertEqual('\n'.join(form_output), "") + + # test that initial trumps max_num initial = [ {'name': 'Fernet and Coke'}, @@ -733,12 +766,13 @@ class FormsFormsetTestCase(TestCase): for form in formset.forms: form_output.append(str(form)) - - self.assertEqual('\n'.join(form_output), "") + self.assertEqual('\n'.join(form_output), """ +""") def test_more_initial_than_max_num(self): - # More initial forms than max_num will result in only the first max_num of - # them to be displayed with no extra forms. + # More initial forms than max_num now results in all initial forms + # being displayed (but no extra forms). This behavior was changed + # from max_num taking precedence in the patch for #20084 initial = [ {'name': 'Gin Tonic'}, @@ -751,9 +785,9 @@ class FormsFormsetTestCase(TestCase): for form in formset.forms: form_output.append(str(form)) - - self.assertHTMLEqual('\n'.join(form_output), """ -""") + self.assertHTMLEqual('\n'.join(form_output), """ + +""") # One form from initial and extra=3 with max_num=2 should result in the one # initial form and one extra. @@ -883,8 +917,8 @@ class FormsFormsetTestCase(TestCase): # reduce the default limit of 1000 temporarily for testing _old_DEFAULT_MAX_NUM = formsets.DEFAULT_MAX_NUM try: - formsets.DEFAULT_MAX_NUM = 3 - ChoiceFormSet = formset_factory(Choice) + formsets.DEFAULT_MAX_NUM = 2 + ChoiceFormSet = formset_factory(Choice, max_num=1) # someone fiddles with the mgmt form data... formset = ChoiceFormSet( { @@ -904,6 +938,8 @@ class FormsFormsetTestCase(TestCase): ) # But we still only instantiate 3 forms self.assertEqual(len(formset.forms), 3) + # and the formset isn't valid + self.assertFalse(formset.is_valid()) finally: formsets.DEFAULT_MAX_NUM = _old_DEFAULT_MAX_NUM @@ -931,7 +967,7 @@ class FormsFormsetTestCase(TestCase): }, prefix='choices', ) - # This time four forms are instantiated + # Four forms are instantiated and no exception is raised self.assertEqual(len(formset.forms), 4) finally: formsets.DEFAULT_MAX_NUM = _old_DEFAULT_MAX_NUM diff --git a/tests/model_formsets/tests.py b/tests/model_formsets/tests.py index c48f88ded8..8d0c017a61 100644 --- a/tests/model_formsets/tests.py +++ b/tests/model_formsets/tests.py @@ -899,6 +899,33 @@ class ModelFormsetTest(TestCase): self.assertFalse(formset.is_valid()) self.assertEqual(formset.errors, [{'slug': ['Product with this Slug already exists.']}]) + def test_modelformset_validate_max_flag(self): + # If validate_max is set and max_num is less than TOTAL_FORMS in the + # data, then throw an exception. MAX_NUM_FORMS in the data is + # irrelevant here (it's output as a hint for the client but its + # value in the returned data is not checked) + + data = { + 'form-TOTAL_FORMS': '2', + 'form-INITIAL_FORMS': '0', + 'form-MAX_NUM_FORMS': '2', # should be ignored + 'form-0-price': '12.00', + 'form-0-quantity': '1', + 'form-1-price': '24.00', + 'form-1-quantity': '2', + } + + FormSet = modelformset_factory(Price, extra=1, max_num=1, validate_max=True) + formset = FormSet(data) + self.assertFalse(formset.is_valid()) + self.assertEqual(formset.non_form_errors(), ['Please submit 1 or fewer forms.']) + + # Now test the same thing without the validate_max flag to ensure + # default behavior is unchanged + FormSet = modelformset_factory(Price, extra=1, max_num=1) + formset = FormSet(data) + self.assertTrue(formset.is_valid()) + def test_unique_together_validation(self): FormSet = modelformset_factory(Price, extra=1) data = { -- cgit v1.3 From a907fa088ed822f05526b13fc74487f9056a62cd Mon Sep 17 00:00:00 2001 From: Tom V Date: Thu, 21 Mar 2013 10:03:28 +0000 Subject: Docs template name mistake MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit change_list_request.html doesn't exist, it's named  change_list_results.html --- docs/ref/contrib/admin/index.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/ref/contrib/admin/index.txt b/docs/ref/contrib/admin/index.txt index ae2ee44601..bc09c36890 100644 --- a/docs/ref/contrib/admin/index.txt +++ b/docs/ref/contrib/admin/index.txt @@ -1912,7 +1912,7 @@ and 500 pages. .. note:: - Some of the admin templates, such as ``change_list_request.html`` are used + Some of the admin templates, such as ``change_list_results.html`` are used to render custom inclusion tags. These may be overridden, but in such cases you are probably better off creating your own version of the tag in question and giving it a different name. That way you can use it -- cgit v1.3 From f7795e968dd07323aa5bd16f9da0e60d97a75d0f Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Fri, 22 Mar 2013 06:01:51 -0400 Subject: Fixed #17935 - Clarified intro of topics/files.txt. Thanks guettli for the suggestion. --- docs/topics/files.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/topics/files.txt b/docs/topics/files.txt index 94685f9bc7..c36094a599 100644 --- a/docs/topics/files.txt +++ b/docs/topics/files.txt @@ -2,7 +2,10 @@ Managing files ============== -This document describes Django's file access APIs. +This document describes Django's file access APIs for files such as those +uploaded by a user. The lower level APIs are general enough that you could use +them for other purposes. If you want to handle "static files" (JS, CSS, etc), +see :doc:`/howto/static-files`. By default, Django stores files locally, using the :setting:`MEDIA_ROOT` and :setting:`MEDIA_URL` settings. The examples below assume that you're using these -- cgit v1.3 From 93cffc3b37d7ef7a20c53f9001f0451a37be7584 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Fri, 22 Mar 2013 05:50:45 -0400 Subject: Added missing markup to docs. --- docs/howto/custom-model-fields.txt | 6 +-- docs/internals/deprecation.txt | 2 +- docs/intro/tutorial03.txt | 4 +- docs/ref/class-based-views/mixins-date-based.txt | 16 +++---- .../ref/class-based-views/mixins-single-object.txt | 2 +- docs/ref/clickjacking.txt | 28 +++++------ docs/ref/contrib/admin/actions.txt | 2 +- docs/ref/contrib/csrf.txt | 2 +- docs/ref/contrib/gis/gdal.txt | 4 +- docs/ref/contrib/sitemaps.txt | 4 +- docs/ref/django-admin.txt | 2 +- docs/ref/models/fields.txt | 4 +- docs/ref/settings.txt | 2 +- docs/ref/template-response.txt | 2 +- docs/ref/urls.txt | 6 +-- docs/releases/1.2-alpha-1.txt | 2 +- docs/releases/1.2.txt | 8 ++-- docs/releases/1.3-alpha-1.txt | 2 +- docs/releases/1.3-beta-1.txt | 6 +-- docs/releases/1.3.txt | 2 +- docs/releases/1.4-alpha-1.txt | 2 +- docs/releases/1.4-beta-1.txt | 2 +- docs/releases/1.4.txt | 2 +- docs/releases/1.5-alpha-1.txt | 15 +++--- docs/releases/1.5-beta-1.txt | 15 +++--- docs/releases/1.5.txt | 21 ++++---- docs/topics/auth/customizing.txt | 56 +++++++++++----------- docs/topics/auth/passwords.txt | 6 +-- docs/topics/class-based-views/mixins.txt | 2 +- docs/topics/db/aggregation.txt | 36 +++++++------- docs/topics/db/managers.txt | 5 +- docs/topics/db/optimization.txt | 2 +- docs/topics/db/queries.txt | 4 +- docs/topics/http/shortcuts.txt | 5 +- docs/topics/logging.txt | 12 ++--- docs/topics/serialization.txt | 24 +++++----- docs/topics/testing/overview.txt | 10 ++-- 37 files changed, 170 insertions(+), 155 deletions(-) (limited to 'docs') diff --git a/docs/howto/custom-model-fields.txt b/docs/howto/custom-model-fields.txt index 84b3881fad..8993872cff 100644 --- a/docs/howto/custom-model-fields.txt +++ b/docs/howto/custom-model-fields.txt @@ -222,9 +222,9 @@ parameters: * :attr:`~django.db.models.Field.db_tablespace`: Only for index creation, if the backend supports :doc:`tablespaces `. You can usually ignore this option. -* ``auto_created``: True if the field was - automatically created, as for the `OneToOneField` used by model - inheritance. For advanced use only. +* ``auto_created``: ``True`` if the field was automatically created, as for the + :class:`~django.db.models.OneToOneField` used by model inheritance. For + advanced use only. All of the options without an explanation in the above list have the same meaning they do for normal Django fields. See the :doc:`field documentation diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt index c0863278b5..bf1a323489 100644 --- a/docs/internals/deprecation.txt +++ b/docs/internals/deprecation.txt @@ -111,7 +111,7 @@ See the :doc:`Django 1.3 release notes` for more details on these changes. * Starting Django without a :setting:`SECRET_KEY` will result in an exception - rather than a `DeprecationWarning`. (This is accelerated from the usual + rather than a ``DeprecationWarning``. (This is accelerated from the usual deprecation path; see the :doc:`Django 1.4 release notes`.) * The ``mod_python`` request handler will be removed. The ``mod_wsgi`` diff --git a/docs/intro/tutorial03.txt b/docs/intro/tutorial03.txt index daab8b7756..86cc5f97e6 100644 --- a/docs/intro/tutorial03.txt +++ b/docs/intro/tutorial03.txt @@ -107,7 +107,7 @@ with:: url(r'^admin/', include(admin.site.urls)), ) -You have now wired an `index` view into the URLconf. Go to +You have now wired an ``index`` view into the URLconf. Go to http://localhost:8000/polls/ in your browser, and you should see the text "*Hello, world. You're at the poll index.*", which you defined in the ``index`` view. @@ -119,7 +119,7 @@ At this point, it's worth reviewing what these arguments are for. :func:`~django.conf.urls.url` argument: regex --------------------------------------------- -The term `regex` is a commonly used short form meaning `regular expression`, +The term "regex" is a commonly used short form meaning "regular expression", which is a syntax for matching patterns in strings, or in this case, url patterns. Django starts at the first regular expression and makes its way down the list, comparing the requested URL against each regular expression until it diff --git a/docs/ref/class-based-views/mixins-date-based.txt b/docs/ref/class-based-views/mixins-date-based.txt index 7ff201e5a2..75f2a77615 100644 --- a/docs/ref/class-based-views/mixins-date-based.txt +++ b/docs/ref/class-based-views/mixins-date-based.txt @@ -35,8 +35,8 @@ YearMixin Tries the following sources, in order: * The value of the :attr:`YearMixin.year` attribute. - * The value of the `year` argument captured in the URL pattern. - * The value of the `year` GET query argument. + * The value of the ``year`` argument captured in the URL pattern. + * The value of the ``year`` ``GET`` query argument. Raises a 404 if no valid year specification can be found. @@ -87,8 +87,8 @@ MonthMixin Tries the following sources, in order: * The value of the :attr:`MonthMixin.month` attribute. - * The value of the `month` argument captured in the URL pattern. - * The value of the `month` GET query argument. + * The value of the ``month`` argument captured in the URL pattern. + * The value of the ``month`` ``GET`` query argument. Raises a 404 if no valid month specification can be found. @@ -139,8 +139,8 @@ DayMixin Tries the following sources, in order: * The value of the :attr:`DayMixin.day` attribute. - * The value of the `day` argument captured in the URL pattern. - * The value of the `day` GET query argument. + * The value of the ``day`` argument captured in the URL pattern. + * The value of the ``day`` ``GET`` query argument. Raises a 404 if no valid day specification can be found. @@ -192,8 +192,8 @@ WeekMixin Tries the following sources, in order: * The value of the :attr:`WeekMixin.week` attribute. - * The value of the `week` argument captured in the URL pattern - * The value of the `week` GET query argument. + * The value of the ``week`` argument captured in the URL pattern + * The value of the ``week`` ``GET`` query argument. Raises a 404 if no valid week specification can be found. diff --git a/docs/ref/class-based-views/mixins-single-object.txt b/docs/ref/class-based-views/mixins-single-object.txt index 299ac56ac6..bbe930d79e 100644 --- a/docs/ref/class-based-views/mixins-single-object.txt +++ b/docs/ref/class-based-views/mixins-single-object.txt @@ -59,7 +59,7 @@ SingleObjectMixin this view will display. By default, :meth:`get_queryset` returns the value of the :attr:`queryset` attribute if it is set, otherwise it constructs a :class:`~django.db.models.query.QuerySet` by calling - the `all()` method on the :attr:`model` attribute's default manager. + the ``all()`` method on the :attr:`model` attribute's default manager. .. method:: get_context_object_name(obj) diff --git a/docs/ref/clickjacking.txt b/docs/ref/clickjacking.txt index 40b42d1ac7..ce27148ad3 100644 --- a/docs/ref/clickjacking.txt +++ b/docs/ref/clickjacking.txt @@ -30,10 +30,10 @@ Preventing clickjacking Modern browsers honor the `X-Frame-Options`_ HTTP header that indicates whether or not a resource is allowed to load within a frame or iframe. If the response -contains the header with a value of SAMEORIGIN then the browser will only load -the resource in a frame if the request originated from the same site. If the -header is set to DENY then the browser will block the resource from loading in a -frame no matter which site made the request. +contains the header with a value of ``SAMEORIGIN`` then the browser will only +load the resource in a frame if the request originated from the same site. If +the header is set to ``DENY`` then the browser will block the resource from +loading in a frame no matter which site made the request. .. _X-Frame-Options: https://developer.mozilla.org/en/The_X-FRAME-OPTIONS_response_header @@ -51,7 +51,7 @@ How to use it Setting X-Frame-Options for all responses ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -To set the same X-Frame-Options value for all responses in your site, put +To set the same ``X-Frame-Options`` value for all responses in your site, put ``'django.middleware.clickjacking.XFrameOptionsMiddleware'`` to :setting:`MIDDLEWARE_CLASSES`:: @@ -65,15 +65,15 @@ To set the same X-Frame-Options value for all responses in your site, put This middleware is enabled in the settings file generated by :djadmin:`startproject`. -By default, the middleware will set the X-Frame-Options header to SAMEORIGIN for -every outgoing ``HttpResponse``. If you want DENY instead, set the -:setting:`X_FRAME_OPTIONS` setting:: +By default, the middleware will set the ``X-Frame-Options`` header to +``SAMEORIGIN`` for every outgoing ``HttpResponse``. If you want ``DENY`` +instead, set the :setting:`X_FRAME_OPTIONS` setting:: X_FRAME_OPTIONS = 'DENY' When using the middleware there may be some views where you do **not** want the -X-Frame-Options header set. For those cases, you can use a view decorator that -tells the middleware not to set the header:: +``X-Frame-Options`` header set. For those cases, you can use a view decorator +that tells the middleware not to set the header:: from django.http import HttpResponse from django.views.decorators.clickjacking import xframe_options_exempt @@ -86,7 +86,7 @@ tells the middleware not to set the header:: Setting X-Frame-Options per view ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -To set the X-Frame-Options header on a per view basis, Django provides these +To set the ``X-Frame-Options`` header on a per view basis, Django provides these decorators:: from django.http import HttpResponse @@ -107,8 +107,8 @@ a decorator overrides the middleware. Limitations =========== -The `X-Frame-Options` header will only protect against clickjacking in a modern -browser. Older browsers will quietly ignore the header and need `other +The ``X-Frame-Options`` header will only protect against clickjacking in a +modern browser. Older browsers will quietly ignore the header and need `other clickjacking prevention techniques`_. Browsers that support X-Frame-Options @@ -123,7 +123,7 @@ Browsers that support X-Frame-Options See also ~~~~~~~~ -A `complete list`_ of browsers supporting X-Frame-Options. +A `complete list`_ of browsers supporting ``X-Frame-Options``. .. _complete list: https://developer.mozilla.org/en/The_X-FRAME-OPTIONS_response_header#Browser_compatibility .. _other clickjacking prevention techniques: http://en.wikipedia.org/wiki/Clickjacking#Prevention diff --git a/docs/ref/contrib/admin/actions.txt b/docs/ref/contrib/admin/actions.txt index 0a302ecd1d..c79f978850 100644 --- a/docs/ref/contrib/admin/actions.txt +++ b/docs/ref/contrib/admin/actions.txt @@ -175,7 +175,7 @@ That's easy enough to do:: make_published.short_description = "Mark selected stories as published" Notice first that we've moved ``make_published`` into a method and renamed the -`modeladmin` parameter to `self`, and second that we've now put the string +``modeladmin`` parameter to ``self``, and second that we've now put the string ``'make_published'`` in ``actions`` instead of a direct function reference. This tells the :class:`ModelAdmin` to look up the action as a method. diff --git a/docs/ref/contrib/csrf.txt b/docs/ref/contrib/csrf.txt index 14522d8dbc..968ef0b07b 100644 --- a/docs/ref/contrib/csrf.txt +++ b/docs/ref/contrib/csrf.txt @@ -181,7 +181,7 @@ protecting the CSRF token from being sent to other domains. correctly on that version. Make sure you are running at least jQuery 1.5.1. You can use `settings.crossDomain `_ in -jQuery 1.5 and newer in order to replace the `sameOrigin` logic above: +jQuery 1.5 and newer in order to replace the ``sameOrigin`` logic above: .. code-block:: javascript diff --git a/docs/ref/contrib/gis/gdal.txt b/docs/ref/contrib/gis/gdal.txt index 161efa39de..c68030673b 100644 --- a/docs/ref/contrib/gis/gdal.txt +++ b/docs/ref/contrib/gis/gdal.txt @@ -634,8 +634,8 @@ systems and coordinate transformation:: or any other input accepted by :class:`SpatialReference` (including spatial reference WKT and PROJ.4 strings, or an integer SRID). By default nothing is returned and the geometry is transformed in-place. - However, if the `clone` keyword is set to ``True`` then a transformed clone - of this geometry is returned instead. + However, if the ``clone`` keyword is set to ``True`` then a transformed + clone of this geometry is returned instead. .. method:: intersects(other) diff --git a/docs/ref/contrib/sitemaps.txt b/docs/ref/contrib/sitemaps.txt index ded7a84fbc..d37ee83378 100644 --- a/docs/ref/contrib/sitemaps.txt +++ b/docs/ref/contrib/sitemaps.txt @@ -454,8 +454,8 @@ cron script, or some other scheduled task. The function makes an HTTP request to Google's servers, so you may not want to introduce that network overhead each time you call ``save()``. -Pinging Google via `manage.py` ------------------------------- +Pinging Google via ``manage.py`` +-------------------------------- .. django-admin:: ping_google diff --git a/docs/ref/django-admin.txt b/docs/ref/django-admin.txt index ac257db9f5..6277b22a30 100644 --- a/docs/ref/django-admin.txt +++ b/docs/ref/django-admin.txt @@ -1385,7 +1385,7 @@ For example, to dump data from the database with the alias ``master``:: .. django-admin-option:: --exclude Exclude a specific application from the applications whose contents is -output. For example, to specifically exclude the `auth` application from +output. For example, to specifically exclude the ``auth`` application from the output of dumpdata, you would call:: django-admin.py dumpdata --exclude=auth diff --git a/docs/ref/models/fields.txt b/docs/ref/models/fields.txt index 39b84170fe..421de74c62 100644 --- a/docs/ref/models/fields.txt +++ b/docs/ref/models/fields.txt @@ -872,8 +872,8 @@ widget for this field is a :class:`~django.forms.NullBooleanSelect`. .. class:: PositiveIntegerField([**options]) -Like an :class:`IntegerField`, but must be either positive or zero (`0`). -The value `0` is accepted for backward compatibility reasons. +Like an :class:`IntegerField`, but must be either positive or zero (``0``). +The value ``0`` is accepted for backward compatibility reasons. ``PositiveSmallIntegerField`` ----------------------------- diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt index 2d24ccb441..92500d19d1 100644 --- a/docs/ref/settings.txt +++ b/docs/ref/settings.txt @@ -2174,7 +2174,7 @@ Settings for :mod:`django.contrib.messages`. MESSAGE_LEVEL ------------- -Default: `messages.INFO` +Default: ``messages.INFO`` Sets the minimum message level that will be recorded by the messages framework. See :ref:`message levels ` for more details. diff --git a/docs/ref/template-response.txt b/docs/ref/template-response.txt index 844b5fa46b..5c13ec7d96 100644 --- a/docs/ref/template-response.txt +++ b/docs/ref/template-response.txt @@ -120,7 +120,7 @@ Methods rendered :class:`~django.template.response.SimpleTemplateResponse` instance. - If the callback returns a value that is not `None`, this will be + If the callback returns a value that is not ``None``, this will be used as the response instead of the original response object (and will be passed to the next post rendering callback etc.) diff --git a/docs/ref/urls.txt b/docs/ref/urls.txt index 92b41b8fea..59fb97828c 100644 --- a/docs/ref/urls.txt +++ b/docs/ref/urls.txt @@ -23,12 +23,12 @@ The ``optional_dictionary`` and ``optional_name`` parameters are described in :ref:`Passing extra options to view functions `. .. note:: - Because `patterns()` is a function call, it accepts a maximum of 255 + Because ``patterns()`` is a function call, it accepts a maximum of 255 arguments (URL patterns, in this case). This is a limit for all Python function calls. This is rarely a problem in practice, because you'll - typically structure your URL patterns modularly by using `include()` + typically structure your URL patterns modularly by using ``include()`` sections. However, on the off-chance you do hit the 255-argument limit, - realize that `patterns()` returns a Python list, so you can split up the + realize that ``patterns()`` returns a Python list, so you can split up the construction of the list. :: diff --git a/docs/releases/1.2-alpha-1.txt b/docs/releases/1.2-alpha-1.txt index 16e1940e8f..8c905f6ef0 100644 --- a/docs/releases/1.2-alpha-1.txt +++ b/docs/releases/1.2-alpha-1.txt @@ -428,7 +428,7 @@ Support for multiple databases Django 1.2 adds the ability to use :doc:`more than one database ` in your Django project. Queries can be -issued at a specific database with the `using()` method on +issued at a specific database with the ``using()`` method on querysets; individual objects can be saved to a specific database by providing a ``using`` argument when you save the instance. diff --git a/docs/releases/1.2.txt b/docs/releases/1.2.txt index 50c049f5da..ad39062ed1 100644 --- a/docs/releases/1.2.txt +++ b/docs/releases/1.2.txt @@ -123,9 +123,9 @@ Support for multiple databases Django 1.2 adds the ability to use :doc:`more than one database ` in your Django project. Queries can be issued at a -specific database with the `using()` method on ``QuerySet`` objects. Individual -objects can be saved to a specific database by providing a ``using`` argument -when you call ``save()``. +specific database with the ``using()`` method on ``QuerySet`` objects. +Individual objects can be saved to a specific database by providing a ``using`` +argument when you call ``save()``. Model validation ---------------- @@ -765,7 +765,7 @@ over the next few release cycles. Code taking advantage of any of the features below will raise a ``PendingDeprecationWarning`` in Django 1.2. This warning will be silent by default, but may be turned on using Python's :mod:`warnings` -module, or by running Python with a ``-Wd`` or `-Wall` flag. +module, or by running Python with a ``-Wd`` or ``-Wall`` flag. In Django 1.3, these warnings will become a ``DeprecationWarning``, which is *not* silent. In Django 1.4 support for these features will diff --git a/docs/releases/1.3-alpha-1.txt b/docs/releases/1.3-alpha-1.txt index 53d38a006b..7c9f233921 100644 --- a/docs/releases/1.3-alpha-1.txt +++ b/docs/releases/1.3-alpha-1.txt @@ -277,7 +277,7 @@ over the next few release cycles. Code taking advantage of any of the features below will raise a ``PendingDeprecationWarning`` in Django 1.3. This warning will be silent by default, but may be turned on using Python's :mod:`warnings` -module, or by running Python with a ``-Wd`` or `-Wall` flag. +module, or by running Python with a ``-Wd`` or ``-Wall`` flag. In Django 1.4, these warnings will become a ``DeprecationWarning``, which is *not* silent. In Django 1.5 support for these features will diff --git a/docs/releases/1.3-beta-1.txt b/docs/releases/1.3-beta-1.txt index 14897ed3b7..69f8023eb3 100644 --- a/docs/releases/1.3-beta-1.txt +++ b/docs/releases/1.3-beta-1.txt @@ -154,7 +154,7 @@ too few. In Django 1.3 we're taking a new approach to this problem, implemented as a pair of changes: -* The choice list for `USStateField` has changed. Previously, it +* The choice list for ``USStateField`` has changed. Previously, it consisted of the 50 U.S. states, the District of Columbia and U.S. overseas territories. As of Django 1.3 it includes all previous choices, plus the U.S. Armed Forces postal codes. @@ -163,7 +163,7 @@ as a pair of changes: ``django.contrib.localflavor.us.models.USPostalCodeField``, has been added which draws its choices from a list of all postal abbreviations recognized by the U.S Postal Service. This includes - all abbreviations recognized by `USStateField`, plus three + all abbreviations recognized by ``USStateField``, plus three independent nations -- the Federated States of Micronesia, the Republic of the Marshall Islands and the Republic of Palau -- which are serviced under treaty by the U.S. postal system. A new form @@ -176,7 +176,7 @@ territories, and other locations serviced by the U.S. postal system. Consult the ``django.contrib.localflavor`` documentation for more details. -The change to `USStateField` is technically backwards-incompatible for +The change to ``USStateField`` is technically backwards-incompatible for users who expect this field to exclude Armed Forces locations. If you need to support U.S. mailing addresses without Armed Forces locations, see the list of choice tuples available in the localflavor diff --git a/docs/releases/1.3.txt b/docs/releases/1.3.txt index 582bceffca..f689a3dffd 100644 --- a/docs/releases/1.3.txt +++ b/docs/releases/1.3.txt @@ -662,7 +662,7 @@ over the next few release cycles. Code taking advantage of any of the features below will raise a ``PendingDeprecationWarning`` in Django 1.3. This warning will be silent by default, but may be turned on using Python's :mod:`warnings` -module, or by running Python with a ``-Wd`` or `-Wall` flag. +module, or by running Python with a ``-Wd`` or ``-Wall`` flag. In Django 1.4, these warnings will become a ``DeprecationWarning``, which is *not* silent. In Django 1.5 support for these features will diff --git a/docs/releases/1.4-alpha-1.txt b/docs/releases/1.4-alpha-1.txt index 09855400eb..92ec0b6483 100644 --- a/docs/releases/1.4-alpha-1.txt +++ b/docs/releases/1.4-alpha-1.txt @@ -878,7 +878,7 @@ removed. The ``open`` method of the base Storage class took an obscure parameter ``mixin`` which allowed you to dynamically change the base classes of the returned file object. This has been removed. In the rare case you relied on the -`mixin` parameter, you can easily achieve the same by overriding the `open` +``mixin`` parameter, you can easily achieve the same by overriding the ``open`` method, e.g.:: from django.core.files import File diff --git a/docs/releases/1.4-beta-1.txt b/docs/releases/1.4-beta-1.txt index 8ea63742e3..d3f1bb807d 100644 --- a/docs/releases/1.4-beta-1.txt +++ b/docs/releases/1.4-beta-1.txt @@ -946,7 +946,7 @@ removed. The ``open`` method of the base Storage class took an obscure parameter ``mixin`` which allowed you to dynamically change the base classes of the returned file object. This has been removed. In the rare case you relied on the -`mixin` parameter, you can easily achieve the same by overriding the `open` +``mixin`` parameter, you can easily achieve the same by overriding the ``open`` method, e.g.:: from django.core.files import File diff --git a/docs/releases/1.4.txt b/docs/releases/1.4.txt index 9459e940b4..3025a37098 100644 --- a/docs/releases/1.4.txt +++ b/docs/releases/1.4.txt @@ -1040,7 +1040,7 @@ removed. The ``open`` method of the base Storage class used to take an obscure parameter ``mixin`` that allowed you to dynamically change the base classes of the returned file object. This has been removed. In the rare case you relied on the -`mixin` parameter, you can easily achieve the same by overriding the `open` +``mixin`` parameter, you can easily achieve the same by overriding the ``open`` method, like this:: from django.core.files import File diff --git a/docs/releases/1.5-alpha-1.txt b/docs/releases/1.5-alpha-1.txt index bb3f32a3be..2588b85306 100644 --- a/docs/releases/1.5-alpha-1.txt +++ b/docs/releases/1.5-alpha-1.txt @@ -227,7 +227,9 @@ GeoDjango :meth:`~django.contrib.gis.geos.GEOSGeometry.project()` methods (so-called linear referencing). -* The wkb and hex properties of `GEOSGeometry` objects preserve the Z dimension. +* The ``wkb`` and ``hex`` properties of + :class:`~django.contrib.gis.geos.GEOSGeometry` objects preserve the Z + dimension. * Support for PostGIS 2.0 has been added and support for GDAL < 1.5 has been dropped. @@ -283,8 +285,8 @@ Django 1.5 also includes several smaller improvements worth noting: * An instance of :class:`~django.core.urlresolvers.ResolverMatch` is stored on the request as ``resolver_match``. -* By default, all logging messages reaching the `django` logger when - :setting:`DEBUG` is `True` are sent to the console (unless you redefine the +* By default, all logging messages reaching the ``django`` logger when + :setting:`DEBUG` is ``True`` are sent to the console (unless you redefine the logger in your :setting:`LOGGING` setting). * When using :class:`~django.template.RequestContext`, it is now possible to @@ -301,8 +303,9 @@ Django 1.5 also includes several smaller improvements worth noting: whenever a user fails to login successfully. See :data:`~django.contrib.auth.signals.user_login_failed` -* The loaddata management command now supports an `ignorenonexistent` option to - ignore data for fields that no longer exist. +* The loaddata management command now supports an + :djadminopt:`--ignorenonexistent` option to ignore data for fields that no + longer exist. * :meth:`~django.test.SimpleTestCase.assertXMLEqual` and :meth:`~django.test.SimpleTestCase.assertXMLNotEqual` new assertions allow @@ -556,7 +559,7 @@ Miscellaneous * Uploaded files are no longer created as executable by default. If you need them to be executable change :setting:`FILE_UPLOAD_PERMISSIONS` to your - needs. The new default value is `0666` (octal) and the current umask value + needs. The new default value is ``0666`` (octal) and the current umask value is first masked out. * The :ref:`F() expressions ` supported bitwise operators by diff --git a/docs/releases/1.5-beta-1.txt b/docs/releases/1.5-beta-1.txt index 4dbe77f806..57b13ea6ce 100644 --- a/docs/releases/1.5-beta-1.txt +++ b/docs/releases/1.5-beta-1.txt @@ -225,7 +225,9 @@ GeoDjango :meth:`~django.contrib.gis.geos.GEOSGeometry.project()` methods (so-called linear referencing). -* The wkb and hex properties of `GEOSGeometry` objects preserve the Z dimension. +* The ``wkb`` and ``hex`` properties of + :class:`~django.contrib.gis.geos.GEOSGeometry` objects preserve the Z + dimension. * Support for PostGIS 2.0 has been added and support for GDAL < 1.5 has been dropped. @@ -281,8 +283,8 @@ Django 1.5 also includes several smaller improvements worth noting: * An instance of :class:`~django.core.urlresolvers.ResolverMatch` is stored on the request as ``resolver_match``. -* By default, all logging messages reaching the `django` logger when - :setting:`DEBUG` is `True` are sent to the console (unless you redefine the +* By default, all logging messages reaching the ``django`` logger when + :setting:`DEBUG` is ``True`` are sent to the console (unless you redefine the logger in your :setting:`LOGGING` setting). * When using :class:`~django.template.RequestContext`, it is now possible to @@ -299,8 +301,9 @@ Django 1.5 also includes several smaller improvements worth noting: whenever a user fails to login successfully. See :data:`~django.contrib.auth.signals.user_login_failed` -* The loaddata management command now supports an `ignorenonexistent` option to - ignore data for fields that no longer exist. +* The loaddata management command now supports an + :djadminopt:`--ignorenonexistent` option to ignore data for fields that no + longer exist. * :meth:`~django.test.SimpleTestCase.assertXMLEqual` and :meth:`~django.test.SimpleTestCase.assertXMLNotEqual` new assertions allow @@ -595,7 +598,7 @@ Miscellaneous * Uploaded files are no longer created as executable by default. If you need them to be executable change :setting:`FILE_UPLOAD_PERMISSIONS` to your - needs. The new default value is `0666` (octal) and the current umask value + needs. The new default value is ``0666`` (octal) and the current umask value is first masked out. * The :ref:`F() expressions ` supported bitwise operators by diff --git a/docs/releases/1.5.txt b/docs/releases/1.5.txt index 75d2ed0b46..d6ded36a94 100644 --- a/docs/releases/1.5.txt +++ b/docs/releases/1.5.txt @@ -144,9 +144,9 @@ keyword argument ``update_fields``. By using this argument it is possible to save only a select list of model's fields. This can be useful for performance reasons or when trying to avoid overwriting concurrent changes. -Deferred instances (those loaded by .only() or .defer()) will automatically -save just the loaded fields. If any field is set manually after load, that -field will also get updated on save. +Deferred instances (those loaded by ``.only()`` or ``.defer()``) will +automatically save just the loaded fields. If any field is set manually after +load, that field will also get updated on save. See the :meth:`Model.save() ` documentation for more details. @@ -222,7 +222,9 @@ GeoDjango :meth:`~django.contrib.gis.geos.GEOSGeometry.project()` methods (so-called linear referencing). -* The wkb and hex properties of `GEOSGeometry` objects preserve the Z dimension. +* The ``wkb`` and ``hex`` properties of + :class:`~django.contrib.gis.geos.GEOSGeometry` objects preserve the Z + dimension. * Support for PostGIS 2.0 has been added and support for GDAL < 1.5 has been dropped. @@ -292,8 +294,8 @@ Django 1.5 also includes several smaller improvements worth noting: * An instance of :class:`~django.core.urlresolvers.ResolverMatch` is stored on the request as ``resolver_match``. -* By default, all logging messages reaching the `django` logger when - :setting:`DEBUG` is `True` are sent to the console (unless you redefine the +* By default, all logging messages reaching the ``django`` logger when + :setting:`DEBUG` is ``True`` are sent to the console (unless you redefine the logger in your :setting:`LOGGING` setting). * When using :class:`~django.template.RequestContext`, it is now possible to @@ -310,8 +312,9 @@ Django 1.5 also includes several smaller improvements worth noting: whenever a user fails to login successfully. See :data:`~django.contrib.auth.signals.user_login_failed` -* The loaddata management command now supports an `ignorenonexistent` option to - ignore data for fields that no longer exist. +* The loaddata management command now supports an + :djadminopt:`--ignorenonexistent` option to ignore data for fields that no + longer exist. * :meth:`~django.test.SimpleTestCase.assertXMLEqual` and :meth:`~django.test.SimpleTestCase.assertXMLNotEqual` new assertions allow @@ -663,7 +666,7 @@ Miscellaneous * Uploaded files are no longer created as executable by default. If you need them to be executable change :setting:`FILE_UPLOAD_PERMISSIONS` to your - needs. The new default value is `0666` (octal) and the current umask value + needs. The new default value is ``0666`` (octal) and the current umask value is first masked out. * The :ref:`F() expressions ` supported bitwise operators by diff --git a/docs/topics/auth/customizing.txt b/docs/topics/auth/customizing.txt index 85124181c6..50ad99c61d 100644 --- a/docs/topics/auth/customizing.txt +++ b/docs/topics/auth/customizing.txt @@ -103,12 +103,14 @@ the time, it'll just look like this:: class MyBackend(object): def authenticate(self, username=None, password=None): # Check the username/password and return a User. + ... But it could also authenticate a token, like so:: class MyBackend(object): def authenticate(self, token=None): # Check the token and return a User. + ... Either way, ``authenticate`` should check the credentials it gets, and it should return a ``User`` object that matches those credentials, if the @@ -183,9 +185,7 @@ The simple backend above could implement permissions for the magic admin fairly simply:: class SettingsBackend(object): - - # ... - + ... def has_perm(self, user_obj, perm, obj=None): if user_obj.username == settings.ADMIN_LOGIN: return True @@ -482,7 +482,7 @@ Django expects your custom User model to meet some minimum requirements. The easiest way to construct a compliant custom User model is to inherit from :class:`~django.contrib.auth.models.AbstractBaseUser`. :class:`~django.contrib.auth.models.AbstractBaseUser` provides the core -implementation of a `User` model, including hashed passwords and tokenized +implementation of a ``User`` model, including hashed passwords and tokenized password resets. You must then provide some key implementation details: .. currentmodule:: django.contrib.auth @@ -497,7 +497,7 @@ password resets. You must then provide some key implementation details: identifier. The field *must* be unique (i.e., have ``unique=True`` set in it's definition). - In the following example, the field `identifier` is used + In the following example, the field ``identifier`` is used as the identifying field:: class MyUser(AbstractBaseUser): @@ -605,11 +605,11 @@ The following methods are available on any subclass of :meth:`~django.contrib.auth.models.AbstractBaseUser.set_unusable_password()` has been called for this user. -You should also define a custom manager for your User model. If your User -model defines `username` and `email` fields the same as Django's default User, -you can just install Django's -:class:`~django.contrib.auth.models.UserManager`; however, if your User model -defines different fields, you will need to define a custom manager that +You should also define a custom manager for your ``User`` model. If your +``User`` model defines ``username`` and ``email`` fields the same as Django's +default ``User``, you can just install Django's +:class:`~django.contrib.auth.models.UserManager`; however, if your ``User`` +model defines different fields, you will need to define a custom manager that extends :class:`~django.contrib.auth.models.BaseUserManager` providing two additional methods: @@ -617,26 +617,28 @@ additional methods: .. method:: models.CustomUserManager.create_user(*username_field*, password=None, \**other_fields) - The prototype of `create_user()` should accept the username field, + The prototype of ``create_user()`` should accept the username field, plus all required fields as arguments. For example, if your user model - uses `email` as the username field, and has `date_of_birth` as a required - fields, then create_user should be defined as:: + uses ``email`` as the username field, and has ``date_of_birth`` as a + required fields, then ``create_user`` should be defined as:: def create_user(self, email, date_of_birth, password=None): # create user here + ... .. method:: models.CustomUserManager.create_superuser(*username_field*, password, \**other_fields) - The prototype of `create_superuser()` should accept the username field, - plus all required fields as arguments. For example, if your user model - uses `email` as the username field, and has `date_of_birth` as a required - fields, then create_superuser should be defined as:: + The prototype of ``create_superuser()`` should accept the username + field, plus all required fields as arguments. For example, if your user + model uses ``email`` as the username field, and has ``date_of_birth`` + as a required fields, then ``create_superuser`` should be defined as:: def create_superuser(self, email, date_of_birth, password): # create superuser here + ... - Unlike `create_user()`, `create_superuser()` *must* require the caller - to provider a password. + Unlike ``create_user()``, ``create_superuser()`` *must* require the + caller to provider a password. :class:`~django.contrib.auth.models.BaseUserManager` provides the following utility methods: @@ -705,7 +707,7 @@ auth views. * :class:`~django.contrib.auth.forms.PasswordResetForm` Assumes that the user model has an integer primary key, has a field named - `email` that can be used to identify the user, and a boolean field + ``email`` that can be used to identify the user, and a boolean field named `is_active` to prevent password resets for inactive users. * :class:`~django.contrib.auth.forms.SetPasswordForm` @@ -721,8 +723,8 @@ auth views. Works with any subclass of :class:`~django.contrib.auth.models.AbstractBaseUser` -Custom users and django.contrib.admin -------------------------------------- +Custom users and :mod:`django.contrib.admin` +-------------------------------------------- If you want your custom User model to also work with Admin, your User model must define some additional attributes and methods. These methods allow the admin to @@ -732,21 +734,21 @@ control access of the User to admin content: .. attribute:: is_staff - Returns True if the user is allowed to have access to the admin site. + Returns ``True`` if the user is allowed to have access to the admin site. .. attribute:: is_active - Returns True if the user account is currently active. + Returns ``True`` if the user account is currently active. .. method:: has_perm(perm, obj=None): - Returns True if the user has the named permission. If `obj` is + Returns ``True`` if the user has the named permission. If ``obj`` is provided, the permission needs to be checked against a specific object instance. .. method:: has_module_perms(app_label): - Returns True if the user has permission to access models in + Returns ``True`` if the user has permission to access models in the given app. You will also need to register your custom User model with the admin. If @@ -911,7 +913,7 @@ A full example Here is an example of an admin-compliant custom user app. This user model uses an email address as the username, and has a required date of birth; it -provides no permission checking, beyond a simple `admin` flag on the user +provides no permission checking, beyond a simple ``admin`` flag on the user account. This model would be compatible with all the built-in auth forms and views, except for the User creation forms. This example illustrates how most of the components work together, but is not intended to be copied directly into diff --git a/docs/topics/auth/passwords.txt b/docs/topics/auth/passwords.txt index 3d95b4b387..d9b7e24efc 100644 --- a/docs/topics/auth/passwords.txt +++ b/docs/topics/auth/passwords.txt @@ -102,9 +102,9 @@ algorithm. There are several other implementations that allow bcrypt to be used with Django. Django's bcrypt support is NOT directly compatible with these. To upgrade, you will need to modify the - hashes in your database to be in the form `bcrypt$(raw bcrypt - output)`. For example: - `bcrypt$$2a$12$NT0I31Sa7ihGEWpka9ASYrEFkhuTNeBQ2xfZskIiiJeyFXhRgS.Sy`. + hashes in your database to be in the form ``bcrypt$(raw bcrypt + output)``. For example: + ``bcrypt$$2a$12$NT0I31Sa7ihGEWpka9ASYrEFkhuTNeBQ2xfZskIiiJeyFXhRgS.Sy``. Increasing the work factor -------------------------- diff --git a/docs/topics/class-based-views/mixins.txt b/docs/topics/class-based-views/mixins.txt index 2adbd406c7..9550d2fb86 100644 --- a/docs/topics/class-based-views/mixins.txt +++ b/docs/topics/class-based-views/mixins.txt @@ -13,7 +13,7 @@ but some of it you may want to use separately. For instance, you may want to write a view that renders a template to make the HTTP response, but you can't use :class:`~django.views.generic.base.TemplateView`; perhaps you need to -render a template only on `POST`, with `GET` doing something else +render a template only on ``POST``, with ``GET`` doing something else entirely. While you could use :class:`~django.template.response.TemplateResponse` directly, this will likely result in duplicate code. diff --git a/docs/topics/db/aggregation.txt b/docs/topics/db/aggregation.txt index 49134e24c0..125cd0bdee 100644 --- a/docs/topics/db/aggregation.txt +++ b/docs/topics/db/aggregation.txt @@ -43,7 +43,9 @@ used to track the inventory for a series of online bookstores: Cheat sheet =========== -In a hurry? Here's how to do common aggregate queries, assuming the models above:: +In a hurry? Here's how to do common aggregate queries, assuming the models above: + +.. code-block:: python # Total number of books. >>> Book.objects.count() @@ -140,8 +142,10 @@ will be annotated with the specified values. The syntax for these annotations is identical to that used for the ``aggregate()`` clause. Each argument to ``annotate()`` describes an -aggregate that is to be calculated. For example, to annotate Books with -the number of authors:: +aggregate that is to be calculated. For example, to annotate books with +the number of authors: + +.. code-block:: python # Build an annotated queryset >>> q = Book.objects.annotate(Count('authors')) @@ -190,8 +194,8 @@ you could use the annotation:: >>> Store.objects.annotate(min_price=Min('books__price'), max_price=Max('books__price')) -This tells Django to retrieve the Store model, join (through the -many-to-many relationship) with the Book model, and aggregate on the +This tells Django to retrieve the ``Store`` model, join (through the +many-to-many relationship) with the ``Book`` model, and aggregate on the price field of the book model to produce a minimum and maximum value. The same rules apply to the ``aggregate()`` clause. If you wanted to @@ -215,32 +219,32 @@ querying can include traversing "reverse" relationships. The lowercase name of related models and double-underscores are used here too. For example, we can ask for all publishers, annotated with their respective -total book stock counters (note how we use `'book'` to specify the -Publisher->Book reverse foreign key hop):: +total book stock counters (note how we use ``'book'`` to specify the +``Publisher`` -> ``Book`` reverse foreign key hop):: >>> from django.db.models import Count, Min, Sum, Max, Avg >>> Publisher.objects.annotate(Count('book')) -(Every Publisher in the resulting QuerySet will have an extra attribute called -``book__count``.) +(Every ``Publisher`` in the resulting ``QuerySet`` will have an extra attribute +called ``book__count``.) We can also ask for the oldest book of any of those managed by every publisher:: >>> Publisher.objects.aggregate(oldest_pubdate=Min('book__pubdate')) (The resulting dictionary will have a key called ``'oldest_pubdate'``. If no -such alias was specified, it would be the rather long ``'book__pubdate__min'``.) +such alias were specified, it would be the rather long ``'book__pubdate__min'``.) This doesn't apply just to foreign keys. It also works with many-to-many relations. For example, we can ask for every author, annotated with the total number of pages considering all the books he/she has (co-)authored (note how we -use `'book'` to specify the Author->Book reverse many-to-many hop):: +use ``'book'`` to specify the ``Author`` -> ``Book`` reverse many-to-many hop):: >>> Author.objects.annotate(total_pages=Sum('book__pages')) -(Every Author in the resulting QuerySet will have an extra attribute called -``total_pages``. If no such alias was specified, it would be the rather long -``book__pages__sum``.) +(Every ``Author`` in the resulting ``QuerySet`` will have an extra attribute +called ``total_pages``. If no such alias were specified, it would be the rather +long ``book__pages__sum``.) Or ask for the average rating of all the books written by author(s) we have on file:: @@ -248,7 +252,7 @@ file:: >>> Author.objects.aggregate(average_rating=Avg('book__rating')) (The resulting dictionary will have a key called ``'average__rating'``. If no -such alias was specified, it would be the rather long ``'book__rating__avg'``.) +such alias were specified, it would be the rather long ``'book__rating__avg'``.) Aggregations and other QuerySet clauses ======================================= @@ -308,7 +312,7 @@ and the query:: >>> Publisher.objects.filter(book__rating__gt=3.0).annotate(num_books=Count('book')) -Both queries will return a list of Publishers that have at least one good +Both queries will return a list of publishers that have at least one good book (i.e., a book with a rating exceeding 3.0). However, the annotation in the first query will provide the total number of all books published by the publisher; the second query will only include good books in the annotated diff --git a/docs/topics/db/managers.txt b/docs/topics/db/managers.txt index a8c0d17076..dc2f90c8a2 100644 --- a/docs/topics/db/managers.txt +++ b/docs/topics/db/managers.txt @@ -191,7 +191,7 @@ by the default manager. If the normal plain manager class (:class:`django.db.models.Manager`) is not appropriate for your circumstances, you can force Django to use the same class -as the default manager for your model by setting the `use_for_related_fields` +as the default manager for your model by setting the ``use_for_related_fields`` attribute on the manager class. This is documented fully below_. .. _below: manager-types_ @@ -369,7 +369,7 @@ it will use :class:`django.db.models.Manager`. Writing correct Managers for use in automatic Manager instances --------------------------------------------------------------- -As already suggested by the `django.contrib.gis` example, above, the +As already suggested by the :mod:`django.contrib.gis` example, above, the ``use_for_related_fields`` feature is primarily for managers that need to return a custom ``QuerySet`` subclass. In providing this functionality in your manager, there are a couple of things to remember. @@ -413,4 +413,3 @@ used in a model, since the attribute's value is processed when the model class is created and not subsequently reread. Set the attribute on the manager class when it is first defined, as in the initial example of this section and everything will work smoothly. - diff --git a/docs/topics/db/optimization.txt b/docs/topics/db/optimization.txt index b5cca52e23..c1459ae247 100644 --- a/docs/topics/db/optimization.txt +++ b/docs/topics/db/optimization.txt @@ -157,7 +157,7 @@ Doing the following is potentially quite slow: >>> entry = Entry.objects.get(headline__startswith="News") -First of all, `headline` is not indexed, which will make the underlying +First of all, ``headline`` is not indexed, which will make the underlying database fetch slower. Second, the lookup doesn't guarantee that only one object will be returned. diff --git a/docs/topics/db/queries.txt b/docs/topics/db/queries.txt index 91cd4fa871..f19302974d 100644 --- a/docs/topics/db/queries.txt +++ b/docs/topics/db/queries.txt @@ -297,8 +297,8 @@ the query - in this case, it will be a :class:`~django.db.models.query.QuerySet` containing a single element. If you know there is only one object that matches your query, you can use the -:meth:`~django.db.models.query.QuerySet.get` method on a `Manager` which -returns the object directly:: +:meth:`~django.db.models.query.QuerySet.get` method on a +:class:`~django.db.models.Manager` which returns the object directly:: >>> one_entry = Entry.objects.get(pk=1) diff --git a/docs/topics/http/shortcuts.txt b/docs/topics/http/shortcuts.txt index 68860f123f..961f0b9d96 100644 --- a/docs/topics/http/shortcuts.txt +++ b/docs/topics/http/shortcuts.txt @@ -169,8 +169,9 @@ This example is equivalent to:: * A model: the model's `get_absolute_url()` function will be called. - * A view name, possibly with arguments: `urlresolvers.reverse()` will - be used to reverse-resolve the name. + * A view name, possibly with arguments: :func:`urlresolvers.reverse + ` will be used to reverse-resolve the + name. * A URL, which will be used as-is for the redirect location. diff --git a/docs/topics/logging.txt b/docs/topics/logging.txt index 3b68914c1a..cb22a57e84 100644 --- a/docs/topics/logging.txt +++ b/docs/topics/logging.txt @@ -308,7 +308,7 @@ This logging configuration does the following things: * ``simple``, that just outputs the log level name (e.g., ``DEBUG``) and the log message. - The `format` string is a normal Python formatting string + The ``format`` string is a normal Python formatting string describing the details that are to be output on each logging line. The full list of detail that can be output can be found in the `formatter documentation`_. @@ -330,7 +330,7 @@ This logging configuration does the following things: higher) message to ``/dev/null``. * ``console``, a StreamHandler, which will print any ``DEBUG`` - (or higher) message to stderr. This handler uses the `simple` output + (or higher) message to stderr. This handler uses the ``simple`` output format. * ``mail_admins``, an AdminEmailHandler, which will email any @@ -544,7 +544,7 @@ logging module. This filter is used as follows in the default :setting:`LOGGING` configuration to ensure that the :class:`AdminEmailHandler` only sends error - emails to admins when :setting:`DEBUG` is `False`:: + emails to admins when :setting:`DEBUG` is ``False``:: 'filters': { 'require_debug_false': { @@ -564,7 +564,7 @@ logging module. .. versionadded:: 1.5 This filter is similar to :class:`RequireDebugFalse`, except that records are - passed only when :setting:`DEBUG` is `True`. + passed only when :setting:`DEBUG` is ``True``. .. _default-logging-configuration: @@ -576,8 +576,8 @@ with ``ERROR`` or ``CRITICAL`` level are sent to :class:`AdminEmailHandler`, as long as the :setting:`DEBUG` setting is set to ``False``. All messages reaching the ``django`` catch-all logger when :setting:`DEBUG` is -`True` are sent to the console. They are simply discarded (sent to -``NullHandler``) when :setting:`DEBUG` is `False`. +``True`` are sent to the console. They are simply discarded (sent to +``NullHandler``) when :setting:`DEBUG` is ``False``. .. versionchanged:: 1.5 diff --git a/docs/topics/serialization.txt b/docs/topics/serialization.txt index 82cb3ffe5b..ce39f6cd28 100644 --- a/docs/topics/serialization.txt +++ b/docs/topics/serialization.txt @@ -90,11 +90,11 @@ If you only serialize the Restaurant model:: data = serializers.serialize('xml', Restaurant.objects.all()) -the fields on the serialized output will only contain the `serves_hot_dogs` -attribute. The `name` attribute of the base class will be ignored. +the fields on the serialized output will only contain the ``serves_hot_dogs`` +attribute. The ``name`` attribute of the base class will be ignored. -In order to fully serialize your Restaurant instances, you will need to -serialize the Place models as well:: +In order to fully serialize your ``Restaurant`` instances, you will need to +serialize the ``Place`` models as well:: all_objects = list(Restaurant.objects.all()) + list(Place.objects.all()) data = serializers.serialize('xml', all_objects) @@ -176,7 +176,7 @@ XML ~~~ The basic XML serialization format is quite simple:: - + @@ -196,7 +196,7 @@ fields "type" and "name". The text content of the element represents the value that should be stored. Foreign keys and other relational fields are treated a little bit differently:: - + 9 @@ -208,7 +208,7 @@ a foreign key to the contenttypes.ContentType instance with the PK 9. ManyToMany-relations are exported for the model that binds them. For instance, the auth.User model has such a relation to the auth.Permission model:: - + @@ -224,7 +224,7 @@ JSON When staying with the same example data as before it would be serialized as JSON in the following way:: - + [ { "pk": "4b678b301dfd8a4e0dad910de3ae245b", @@ -242,7 +242,7 @@ with three properties: "pk", "model" and "fields". "fields" is again an object containing each field's name and value as property and property-value respectively. -Foreign keys just have the PK of the linked object as property value. +Foreign keys just have the PK of the linked object as property value. ManyToMany-relations are serialized for the model that defines them and are represented as a list of PKs. @@ -273,7 +273,7 @@ YAML YAML serialization looks quite similar to JSON. The object list is serialized as a sequence mappings with the keys "pk", "model" and "fields". Each field is again a mapping with the key being name of the field and the value the value:: - + - fields: {expire_date: !!timestamp '2013-01-16 08:16:59.844560+00:00'} model: sessions.session pk: 4b678b301dfd8a4e0dad910de3ae245b @@ -439,7 +439,7 @@ When ``use_natural_keys=True`` is specified, Django will use the type that defines the method. If you are using :djadmin:`dumpdata` to generate serialized data, you -use the `--natural` command line flag to generate natural keys. +use the :djadminopt:`--natural` command line flag to generate natural keys. .. note:: @@ -458,7 +458,7 @@ Dependencies during serialization Since natural keys rely on database lookups to resolve references, it is important that the data exists before it is referenced. You can't make -a `forward reference` with natural keys -- the data you're referencing +a "forward reference" with natural keys -- the data you're referencing must exist before you include a natural key reference to that data. To accommodate this limitation, calls to :djadmin:`dumpdata` that use diff --git a/docs/topics/testing/overview.txt b/docs/topics/testing/overview.txt index cb1c8dc52a..628a161554 100644 --- a/docs/topics/testing/overview.txt +++ b/docs/topics/testing/overview.txt @@ -975,8 +975,8 @@ This class provides some additional capabilities that can be useful for testing Web sites. Converting a normal :class:`unittest.TestCase` to a Django :class:`TestCase` is -easy: Just change the base class of your test from `'unittest.TestCase'` to -`'django.test.TestCase'`. All of the standard Python unit test functionality +easy: Just change the base class of your test from ``'unittest.TestCase'`` to +``'django.test.TestCase'``. All of the standard Python unit test functionality will continue to be available, but it will be augmented with some useful additions, including: @@ -1010,7 +1010,7 @@ This allows the use of automated test clients other than the client, to execute a series of functional tests inside a browser and simulate a real user's actions. -By default the live server's address is `'localhost:8081'` and the full URL +By default the live server's address is ``'localhost:8081'`` and the full URL can be accessed during the tests with ``self.live_server_url``. If you'd like to change the default address (in the case, for example, where the 8081 port is already taken) then you may pass a different one to the :djadmin:`test` command @@ -1117,7 +1117,7 @@ out the `full reference`_ for more details. (for example, just after clicking a link or submitting a form), you might need to check that a response is received by Selenium and that the next page is loaded before proceeding with further test execution. - Do this, for example, by making Selenium wait until the `` HTML tag + Do this, for example, by making Selenium wait until the ```` HTML tag is found in the response (requires Selenium > 2.13): .. code-block:: python @@ -1134,7 +1134,7 @@ out the `full reference`_ for more details. The tricky thing here is that there's really no such thing as a "page load," especially in modern Web apps that generate HTML dynamically after the server generates the initial document. So, simply checking for the presence - of `` in the response might not necessarily be appropriate for all + of ```` in the response might not necessarily be appropriate for all use cases. Please refer to the `Selenium FAQ`_ and `Selenium documentation`_ for more information. -- cgit v1.3 From 15f12d4181355604efa7b429fc3bcbae08d27f40 Mon Sep 17 00:00:00 2001 From: Christos Kontas Date: Sat, 23 Mar 2013 00:01:47 +0200 Subject: Fix minor typo in tutorial --- docs/intro/tutorial01.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/intro/tutorial01.txt b/docs/intro/tutorial01.txt index d073790fbb..65cfb95c34 100644 --- a/docs/intro/tutorial01.txt +++ b/docs/intro/tutorial01.txt @@ -362,7 +362,7 @@ class -- e.g., :class:`~django.db.models.CharField` for character fields and type of data each field holds. The name of each :class:`~django.db.models.Field` instance (e.g. ``question`` or -``pub_date`` ) is the field's name, in machine-friendly format. You'll use this +``pub_date``) is the field's name, in machine-friendly format. You'll use this value in your Python code, and your database will use it as the column name. You can use an optional first positional argument to a -- cgit v1.3 From 46246c66243c97198879c9ac79ef859ae2474524 Mon Sep 17 00:00:00 2001 From: Stephan Jaekel Date: Wed, 30 Jan 2013 19:46:27 +0100 Subject: Moved the code to handle goto requests in a extra WizardView method. --- django/contrib/formtools/wizard/views.py | 28 +++++++++++++++++++++------- docs/ref/contrib/formtools/form-wizard.txt | 11 +++++++++++ 2 files changed, 32 insertions(+), 7 deletions(-) (limited to 'docs') diff --git a/django/contrib/formtools/wizard/views.py b/django/contrib/formtools/wizard/views.py index cba39151e7..2f6168c89d 100644 --- a/django/contrib/formtools/wizard/views.py +++ b/django/contrib/formtools/wizard/views.py @@ -257,11 +257,7 @@ class WizardView(TemplateView): # form. (This makes stepping back a lot easier). wizard_goto_step = self.request.POST.get('wizard_goto_step', None) if wizard_goto_step and wizard_goto_step in self.get_form_list(): - self.storage.current_step = wizard_goto_step - form = self.get_form( - data=self.storage.get_step_data(self.steps.current), - files=self.storage.get_step_files(self.steps.current)) - return self.render(form) + return self.render_goto_step(wizard_goto_step) # Check if form was refreshed management_form = ManagementForm(self.request.POST, prefix=self.prefix) @@ -309,6 +305,17 @@ class WizardView(TemplateView): self.storage.current_step = next_step return self.render(new_form, **kwargs) + def render_goto_step(self, goto_step, **kwargs): + """ + This method gets called when the current step has to be changed. + `goto_step` contains the requested step to go to. + """ + self.storage.current_step = goto_step + form = self.get_form( + data=self.storage.get_step_data(self.steps.current), + files=self.storage.get_step_files(self.steps.current)) + return self.render(form) + def render_done(self, form, **kwargs): """ This method gets called when all forms passed. The method should also @@ -652,8 +659,7 @@ class NamedUrlWizardView(WizardView): """ wizard_goto_step = self.request.POST.get('wizard_goto_step', None) if wizard_goto_step and wizard_goto_step in self.get_form_list(): - self.storage.current_step = wizard_goto_step - return redirect(self.get_step_url(wizard_goto_step)) + return self.render_goto_step(wizard_goto_step) return super(NamedUrlWizardView, self).post(*args, **kwargs) def get_context_data(self, form, **kwargs): @@ -674,6 +680,14 @@ class NamedUrlWizardView(WizardView): self.storage.current_step = next_step return redirect(self.get_step_url(next_step)) + def render_goto_step(self, goto_step, **kwargs): + """ + This method gets called when the current step has to be changed. + `goto_step` contains the requested step to go to. + """ + self.storage.current_step = goto_step + return redirect(self.get_step_url(goto_step)) + def render_revalidation_failure(self, failed_step, form, **kwargs): """ When a step fails, we have to redirect the user to the first failing diff --git a/docs/ref/contrib/formtools/form-wizard.txt b/docs/ref/contrib/formtools/form-wizard.txt index bcffb7716b..9f6d627be5 100644 --- a/docs/ref/contrib/formtools/form-wizard.txt +++ b/docs/ref/contrib/formtools/form-wizard.txt @@ -454,6 +454,17 @@ Advanced ``WizardView`` methods def process_step_files(self, form): return self.get_form_step_files(form) +.. method:: WizardView.render_goto_step(step, goto_step, **kwargs) + + .. versionchanged:: 1.6 + + This method is called when the step should be changed to something else + than the next step. By default, this method just stores the requested + step ``goto_step`` in the storage and then renders the new step. + + If you want to store the entered data of the current step before rendering + the next step, you can overwrite this method. + .. method:: WizardView.render_revalidation_failure(step, form, **kwargs) When the wizard thinks all steps have passed it revalidates all forms with -- cgit v1.3 From b614c47f8c05f8c29a974dac984d0f07c3a09fce Mon Sep 17 00:00:00 2001 From: Stephan Jaekel Date: Sat, 12 Jan 2013 13:09:30 +0100 Subject: Added some class attributes to pass initial form lists to the WizardView without the need to add them in the as_view call. --- django/contrib/formtools/tests/wizard/forms.py | 29 ++++++++++++++++++++++++++ django/contrib/formtools/wizard/views.py | 28 ++++++++++++++++--------- docs/ref/contrib/formtools/form-wizard.txt | 20 ++++++++++++++++++ 3 files changed, 67 insertions(+), 10 deletions(-) (limited to 'docs') diff --git a/django/contrib/formtools/tests/wizard/forms.py b/django/contrib/formtools/tests/wizard/forms.py index f6e177e5a4..14c6e6a685 100644 --- a/django/contrib/formtools/tests/wizard/forms.py +++ b/django/contrib/formtools/tests/wizard/forms.py @@ -78,6 +78,12 @@ class TestWizard(WizardView): kwargs['test'] = True return kwargs +class TestWizardWithInitAttrs(TestWizard): + form_list = [Step1, Step2] + condition_dict = {'step2': True} + initial_dict = {'start': {'name': 'value1'}} + instance_dict = {'start': User()} + class FormTests(TestCase): def test_form_init(self): testform = TestWizard.get_initkwargs([Step1, Step2]) @@ -91,6 +97,9 @@ class FormTests(TestCase): self.assertEqual( testform['form_list'], {'0': Step1, '1': Step2, 'finish': Step3}) + testform = TestWizardWithInitAttrs.get_initkwargs() + self.assertEqual(testform['form_list'], {'0': Step1, '1': Step2}) + def test_first_step(self): request = get_request() @@ -132,6 +141,11 @@ class FormTests(TestCase): response, instance = testform(request) self.assertEqual(instance.get_next_step(), 'step3') + testform = TestWizardWithInitAttrs.as_view( + [('start', Step1), ('step2', Step2), ('step3', Step3)]) + response, instance = testform(request) + self.assertEqual(instance.get_next_step(), 'step2') + def test_form_kwargs(self): request = get_request() @@ -162,6 +176,13 @@ class FormTests(TestCase): self.assertEqual(instance.get_form_initial('start'), {'name': 'value1'}) self.assertEqual(instance.get_form_initial('step2'), {}) + testform = TestWizardWithInitAttrs.as_view( + [('start', Step1), ('step2', Step2)]) + response, instance = testform(request) + + self.assertEqual(instance.get_form_initial('start'), {'name': 'value1'}) + self.assertEqual(instance.get_form_initial('step2'), {}) + def test_form_instance(self): request = get_request() the_instance = TestModel() @@ -176,6 +197,14 @@ class FormTests(TestCase): instance.get_form_instance('non_exist_instance'), None) + testform = TestWizardWithInitAttrs.as_view( + [('start', TestModelForm), ('step2', Step2)]) + response, instance = testform(request) + + self.assertEqual( + instance.get_form_instance('start'), + TestWizardWithInitAttrs.instance_dict['start']) + def test_formset_instance(self): request = get_request() the_instance1, created = TestModel.objects.get_or_create( diff --git a/django/contrib/formtools/wizard/views.py b/django/contrib/formtools/wizard/views.py index cba39151e7..4379e6cdeb 100644 --- a/django/contrib/formtools/wizard/views.py +++ b/django/contrib/formtools/wizard/views.py @@ -120,8 +120,8 @@ class WizardView(TemplateView): return super(WizardView, cls).as_view(**initkwargs) @classmethod - def get_initkwargs(cls, form_list, initial_dict=None, - instance_dict=None, condition_dict=None, *args, **kwargs): + def get_initkwargs(cls, form_list=None, initial_dict=None, + instance_dict=None, condition_dict=None, *args, **kwargs): """ Creates a dict with all needed parameters for the form wizard instances. @@ -144,12 +144,20 @@ class WizardView(TemplateView): will be called with the wizardview instance as the only argument. If the return value is true, the step's form will be used. """ + kwargs.update({ - 'initial_dict': initial_dict or {}, - 'instance_dict': instance_dict or {}, - 'condition_dict': condition_dict or {}, + 'initial_dict': initial_dict or kwargs.pop('initial_dict', + getattr(cls, 'initial_dict', None)) or {}, + 'instance_dict': instance_dict or kwargs.pop('instance_dict', + getattr(cls, 'instance_dict', None)) or {}, + 'condition_dict': condition_dict or kwargs.pop('condition_dict', + getattr(cls, 'condition_dict', None)) or {} }) - init_form_list = SortedDict() + + form_list = form_list or kwargs.pop('form_list', + getattr(cls, 'form_list', None)) or [] + + computed_form_list = SortedDict() assert len(form_list) > 0, 'at least one form is needed' @@ -158,13 +166,13 @@ class WizardView(TemplateView): if isinstance(form, (list, tuple)): # if the element is a tuple, add the tuple to the new created # sorted dictionary. - init_form_list[six.text_type(form[0])] = form[1] + computed_form_list[six.text_type(form[0])] = form[1] else: # if not, add the form with a zero based counter as unicode - init_form_list[six.text_type(i)] = form + computed_form_list[six.text_type(i)] = form # walk through the new created list of forms - for form in six.itervalues(init_form_list): + for form in six.itervalues(computed_form_list): if issubclass(form, formsets.BaseFormSet): # if the element is based on BaseFormSet (FormSet/ModelFormSet) # we need to override the form variable. @@ -179,7 +187,7 @@ class WizardView(TemplateView): "wizard view in order to handle file uploads.") # build the kwargs for the wizardview instances - kwargs['form_list'] = init_form_list + kwargs['form_list'] = computed_form_list return kwargs def get_prefix(self, *args, **kwargs): diff --git a/docs/ref/contrib/formtools/form-wizard.txt b/docs/ref/contrib/formtools/form-wizard.txt index bcffb7716b..f8d46fd291 100644 --- a/docs/ref/contrib/formtools/form-wizard.txt +++ b/docs/ref/contrib/formtools/form-wizard.txt @@ -245,6 +245,13 @@ wizard's ``as_view()`` method takes a list of your (r'^contact/$', ContactWizard.as_view([ContactForm1, ContactForm2])), ) +.. versionchanged:: 1.6 + +You can also pass the form list as a class attribute named ``form_list``. + + class ContactWizard(WizardView): + form_list = [ContactForm1, ContactForm2] + .. _wizard-template-for-each-form: Using a different template for each form @@ -295,6 +302,14 @@ The ``urls.py`` file would contain something like:: (r'^checkout/$', OrderWizard.as_view(FORMS, condition_dict={'cc': pay_by_credit_card})), ) +.. versionchanged:: 1.6 + +The ``condiction_dict`` can be passed as attribute for the ``as_view()`` +method or as a class attribute named ``condition_dict``. + + class OrderWizard(WizardView): + condition_dict = {'cc': pay_by_credit_card} + Note that the ``OrderWizard`` object is initialized with a list of pairs. The first element in the pair is a string that corresponds to the name of the step and the second is the form class. @@ -550,6 +565,11 @@ Providing initial data for the forms The ``initial_dict`` can also take a list of dictionaries for a specific step if the step is a ``FormSet``. + .. versionchanged:: 1.6 + + The ``initial_dict`` can also be added as a class attribute named + ``initial_dict`` to avoid having the initial data in the ``urls.py``. + .. _wizard-files: Handling files -- cgit v1.3 From 1c8a1706fbd91b303245292dcf0da0651f1b80e0 Mon Sep 17 00:00:00 2001 From: Stephan Jaekel Date: Sat, 23 Mar 2013 13:27:16 +0100 Subject: Updated docs, changed versionchanged to versionadded. --- docs/ref/contrib/formtools/form-wizard.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/ref/contrib/formtools/form-wizard.txt b/docs/ref/contrib/formtools/form-wizard.txt index 9f6d627be5..315153c602 100644 --- a/docs/ref/contrib/formtools/form-wizard.txt +++ b/docs/ref/contrib/formtools/form-wizard.txt @@ -456,7 +456,7 @@ Advanced ``WizardView`` methods .. method:: WizardView.render_goto_step(step, goto_step, **kwargs) - .. versionchanged:: 1.6 + .. versionadded:: 1.6 This method is called when the step should be changed to something else than the next step. By default, this method just stores the requested -- cgit v1.3 From 76aecfbc4b49f5ab0613cccff1df6fab03253fab Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Sat, 23 Mar 2013 16:09:56 +0100 Subject: Fixed #9055 -- Standardized behaviour of parameter escaping in db cursors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously, depending on the database backend or the cursor type, you'd need to double the percent signs in the query before passing it to cursor.execute. Now cursor.execute consistently need percent doubling whenever params argument is not None (placeholder substitution will happen). Thanks Thomas Güttler for the report and Walter Doekes for his work on the patch. --- django/db/backends/__init__.py | 2 ++ django/db/backends/mysql/base.py | 1 + django/db/backends/oracle/base.py | 13 +++++++------ django/db/backends/sqlite3/base.py | 4 +++- django/db/backends/util.py | 5 ++++- docs/topics/db/sql.txt | 6 ++++++ tests/backends/tests.py | 24 ++++++++++++++++++++---- 7 files changed, 43 insertions(+), 12 deletions(-) (limited to 'docs') diff --git a/django/db/backends/__init__.py b/django/db/backends/__init__.py index b713b4c97a..9acef4ad19 100644 --- a/django/db/backends/__init__.py +++ b/django/db/backends/__init__.py @@ -815,6 +815,8 @@ class BaseDatabaseOperations(object): to_unicode = lambda s: force_text(s, strings_only=True, errors='replace') if isinstance(params, (list, tuple)): u_params = tuple(to_unicode(val) for val in params) + elif params is None: + u_params = () else: u_params = dict((to_unicode(k), to_unicode(v)) for k, v in params.items()) diff --git a/django/db/backends/mysql/base.py b/django/db/backends/mysql/base.py index f7d07cf4b7..57b6f82270 100644 --- a/django/db/backends/mysql/base.py +++ b/django/db/backends/mysql/base.py @@ -115,6 +115,7 @@ class CursorWrapper(object): def execute(self, query, args=None): try: + # args is None means no string interpolation return self.cursor.execute(query, args) except Database.OperationalError as e: # Map some error codes to IntegrityError, since they seem to be diff --git a/django/db/backends/oracle/base.py b/django/db/backends/oracle/base.py index 6309088c4c..9e69743d33 100644 --- a/django/db/backends/oracle/base.py +++ b/django/db/backends/oracle/base.py @@ -757,18 +757,19 @@ class FormatStylePlaceholderCursor(object): return [p.force_bytes for p in params] def execute(self, query, params=None): - if params is None: - params = [] - else: - params = self._format_params(params) - args = [(':arg%d' % i) for i in range(len(params))] # cx_Oracle wants no trailing ';' for SQL statements. For PL/SQL, it # it does want a trailing ';' but not a trailing '/'. However, these # characters must be included in the original query in case the query # is being passed to SQL*Plus. if query.endswith(';') or query.endswith('/'): query = query[:-1] - query = convert_unicode(query % tuple(args), self.charset) + if params is None: + params = [] + query = convert_unicode(query, self.charset) + else: + params = self._format_params(params) + args = [(':arg%d' % i) for i in range(len(params))] + query = convert_unicode(query % tuple(args), self.charset) self._guess_input_sizes([params]) try: return self.cursor.execute(query, self._param_generator(params)) diff --git a/django/db/backends/sqlite3/base.py b/django/db/backends/sqlite3/base.py index f70c3872a8..ead325a33b 100644 --- a/django/db/backends/sqlite3/base.py +++ b/django/db/backends/sqlite3/base.py @@ -433,7 +433,9 @@ class SQLiteCursorWrapper(Database.Cursor): This fixes it -- but note that if you want to use a literal "%s" in a query, you'll need to use "%%s". """ - def execute(self, query, params=()): + def execute(self, query, params=None): + if params is None: + return Database.Cursor.execute(self, query) query = self.convert_query(query) return Database.Cursor.execute(self, query, params) diff --git a/django/db/backends/util.py b/django/db/backends/util.py index 5eb6626fc7..b7fb48dca5 100644 --- a/django/db/backends/util.py +++ b/django/db/backends/util.py @@ -35,11 +35,14 @@ class CursorWrapper(object): class CursorDebugWrapper(CursorWrapper): - def execute(self, sql, params=()): + def execute(self, sql, params=None): self.db.set_dirty() start = time() try: with self.db.wrap_database_errors(): + if params is None: + # params default might be backend specific + return self.cursor.execute(sql) return self.cursor.execute(sql, params) finally: stop = time() diff --git a/docs/topics/db/sql.txt b/docs/topics/db/sql.txt index b52e6e795f..34cfa382d3 100644 --- a/docs/topics/db/sql.txt +++ b/docs/topics/db/sql.txt @@ -227,6 +227,12 @@ For example:: were committed to the database. Since Django now defaults to database-level autocommit, this isn't necessary any longer. +Note that if you want to include literal percent signs in the query, you have to +double them in the case you are passing parameters:: + + cursor.execute("SELECT foo FROM bar WHERE baz = '30%'") + cursor.execute("SELECT foo FROM bar WHERE baz = '30%%' and id = %s", [self.id]) + If you are using :doc:`more than one database `, you can use ``django.db.connections`` to obtain the connection (and cursor) for a specific database. ``django.db.connections`` is a dictionary-like diff --git a/tests/backends/tests.py b/tests/backends/tests.py index cec2267450..9a5f6c008d 100644 --- a/tests/backends/tests.py +++ b/tests/backends/tests.py @@ -361,18 +361,34 @@ class ConnectionCreatedSignalTest(TransactionTestCase): class EscapingChecks(TestCase): + """ + All tests in this test case are also run with settings.DEBUG=True in + EscapingChecksDebug test case, to also test CursorDebugWrapper. + """ + def test_paramless_no_escaping(self): + cursor = connection.cursor() + cursor.execute("SELECT '%s'") + self.assertEqual(cursor.fetchall()[0][0], '%s') + + def test_parameter_escaping(self): + cursor = connection.cursor() + cursor.execute("SELECT '%%', %s", ('%d',)) + self.assertEqual(cursor.fetchall()[0], ('%', '%d')) @unittest.skipUnless(connection.vendor == 'sqlite', "This is a sqlite-specific issue") - def test_parameter_escaping(self): + def test_sqlite_parameter_escaping(self): #13648: '%s' escaping support for sqlite3 cursor = connection.cursor() - response = cursor.execute( - "select strftime('%%s', date('now'))").fetchall()[0][0] - self.assertNotEqual(response, None) + cursor.execute("select strftime('%s', date('now'))") + response = cursor.fetchall()[0][0] # response should be an non-zero integer self.assertTrue(int(response)) +@override_settings(DEBUG=True) +class EscapingChecksDebug(EscapingChecks): + pass + class SqlliteAggregationTests(TestCase): """ -- cgit v1.3 From f670cce9f53984277a8ca3b191f162bebab19ea9 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Sat, 23 Mar 2013 20:00:18 +0100 Subject: Fixed #20119 -- Fixed typo in auth docs Thanks vinyll for the report. --- docs/topics/auth/customizing.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/topics/auth/customizing.txt b/docs/topics/auth/customizing.txt index 50ad99c61d..143a729f37 100644 --- a/docs/topics/auth/customizing.txt +++ b/docs/topics/auth/customizing.txt @@ -495,7 +495,7 @@ password resets. You must then provide some key implementation details: used as the unique identifier. This will usually be a username of some kind, but it can also be an email address, or any other unique identifier. The field *must* be unique (i.e., have ``unique=True`` - set in it's definition). + set in its definition). In the following example, the field ``identifier`` is used as the identifying field:: -- cgit v1.3 From ae417dd4d569669e8e1d8f15e643c6ba0820aafe Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sun, 24 Mar 2013 13:08:29 +0100 Subject: Added release notes for 4b31a6a9. Thanks Florian for reporting this omission. --- docs/releases/1.6.txt | 23 +++++++++++++++++++++++ docs/topics/db/transactions.txt | 4 +++- 2 files changed, 26 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 16039851c2..db9c597490 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -66,6 +66,12 @@ UTC. This limitation was lifted in Django 1.6. Use :meth:`QuerySet.datetimes() ` to perform time zone aware aggregation on a :class:`~django.db.models.DateTimeField`. +Support for savepoints in SQLite +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Django 1.6 adds support for savepoints in SQLite, with some :ref:`limitations +`. + ``BinaryField`` model field ~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -189,12 +195,29 @@ Backwards incompatible changes in 1.6 New transaction management model ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Behavior changes +^^^^^^^^^^^^^^^^ + Database-level autocommit is enabled by default in Django 1.6. While this doesn't change the general spirit of Django's transaction management, there are a few known backwards-incompatibities, described in the :ref:`transaction management docs `. You should review your code to determine if you're affected. +Savepoints and ``assertNumQueries`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The changes in transaction management may result in additional statements to +create, release or rollback savepoints. This is more likely to happen with +SQLite, since it didn't support savepoints until this release. + +If tests using :meth:`~django.test.TestCase.assertNumQueries` fail because of +a higher number of queries than expected, check that the extra queries are +related to savepoints, and adjust the expected number of queries accordingly. + +Autocommit option for PostgreSQL +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + In previous versions, database-level autocommit was only an option for PostgreSQL, and it was disabled by default. This option is now :ref:`ignored ` and can be removed. diff --git a/docs/topics/db/transactions.txt b/docs/topics/db/transactions.txt index 697dee49c0..db58ca9627 100644 --- a/docs/topics/db/transactions.txt +++ b/docs/topics/db/transactions.txt @@ -372,11 +372,13 @@ The following example demonstrates the use of savepoints:: Database-specific notes ======================= +.. _savepoints-in-sqlite: + Savepoints in SQLite -------------------- While SQLite ≥ 3.6.8 supports savepoints, a flaw in the design of the -:mod:`sqlite3` makes them hardly usable. +:mod:`sqlite3` module makes them hardly usable. When autocommit is enabled, savepoints don't make sense. When it's disabled, :mod:`sqlite3` commits implicitly before savepoint statements. (In fact, it -- cgit v1.3 From e16c48e001ccd06830bb0bfd1d20e22ec30fce59 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sun, 24 Mar 2013 13:47:01 +0100 Subject: Fixed #15124 -- Changed the default for BooleanField. Thanks to the many contributors who updated and improved the patch over the life of this ticket. --- django/contrib/flatpages/models.py | 6 ++++-- django/db/models/fields/__init__.py | 2 -- docs/ref/models/fields.txt | 4 ++++ docs/releases/1.6.txt | 14 ++++++++++++++ tests/model_fields/tests.py | 14 +++++++++++++- tests/model_inheritance_regress/tests.py | 4 ++-- 6 files changed, 37 insertions(+), 7 deletions(-) (limited to 'docs') diff --git a/django/contrib/flatpages/models.py b/django/contrib/flatpages/models.py index 896bfa3eac..42bb3adf23 100644 --- a/django/contrib/flatpages/models.py +++ b/django/contrib/flatpages/models.py @@ -11,10 +11,12 @@ class FlatPage(models.Model): url = models.CharField(_('URL'), max_length=100, db_index=True) title = models.CharField(_('title'), max_length=200) content = models.TextField(_('content'), blank=True) - enable_comments = models.BooleanField(_('enable comments')) + enable_comments = models.BooleanField(_('enable comments'), default=False) template_name = models.CharField(_('template name'), max_length=70, blank=True, help_text=_("Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'.")) - registration_required = models.BooleanField(_('registration required'), help_text=_("If this is checked, only logged-in users will be able to view the page.")) + registration_required = models.BooleanField(_('registration required'), + help_text=_("If this is checked, only logged-in users will be able to view the page."), + default=False) sites = models.ManyToManyField(Site) class Meta: diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py index 1f0ce5e4ed..142b33f6a7 100644 --- a/django/db/models/fields/__init__.py +++ b/django/db/models/fields/__init__.py @@ -620,8 +620,6 @@ class BooleanField(Field): def __init__(self, *args, **kwargs): kwargs['blank'] = True - if 'default' not in kwargs and not kwargs.get('null'): - kwargs['default'] = False Field.__init__(self, *args, **kwargs) def get_internal_type(self): diff --git a/docs/ref/models/fields.txt b/docs/ref/models/fields.txt index 421de74c62..f22436e5fe 100644 --- a/docs/ref/models/fields.txt +++ b/docs/ref/models/fields.txt @@ -377,6 +377,10 @@ The default form widget for this field is a If you need to accept :attr:`~Field.null` values then use :class:`NullBooleanField` instead. +.. versionchanged:: 1.6 + The default value of ``BooleanField`` was changed from ``False`` to + ``None`` when :attr:`Field.default` isn't defined. + ``CharField`` ------------- diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index db9c597490..f3d12cac38 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -292,6 +292,20 @@ should either restore Django's defaults at the end of each request, force an appropriate value at the beginning of each request, or disable persistent connections. +``BooleanField`` no longer defaults to ``False`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +When a :class:`~django.db.models.BooleanField` doesn't have an explicit +:attr:`~django.db.models.Field.default`, the implicit default value is +``None``. In previous version of Django, it was ``False``, but that didn't +represent accurantely the lack of a value. + +Code that relies on the default value being ``False`` may raise an exception +when saving new model instances to the database, because ``None`` isn't an +acceptable value for a :class:`~django.db.models.BooleanField`. You should +either specify ``default=False`` explicitly on the field definition, or ensure +the field is set to ``True`` or ``False`` before saving the object. + Translations and comments in templates ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/tests/model_fields/tests.py b/tests/model_fields/tests.py index eaf84773e3..d3b1e4b868 100644 --- a/tests/model_fields/tests.py +++ b/tests/model_fields/tests.py @@ -6,7 +6,7 @@ from decimal import Decimal from django import test from django import forms from django.core.exceptions import ValidationError -from django.db import models +from django.db import models, IntegrityError from django.db.models.fields.files import FieldFile from django.utils import six from django.utils import unittest @@ -265,6 +265,18 @@ class BooleanFieldTests(unittest.TestCase): self.assertEqual(mc.bf.bfield, False) self.assertEqual(mc.nbf.nbfield, False) + def test_null_default(self): + """ + Check that a BooleanField defaults to None -- which isn't + a valid value (#15124). + """ + b = BooleanModel() + self.assertIsNone(b.bfield) + with self.assertRaises(IntegrityError): + b.save() + nb = NullBooleanModel() + self.assertIsNone(nb.nbfield) + nb.save() # no error class ChoicesTests(test.TestCase): def test_choices_and_field_display(self): diff --git a/tests/model_inheritance_regress/tests.py b/tests/model_inheritance_regress/tests.py index 98216dbc84..c2c9337485 100644 --- a/tests/model_inheritance_regress/tests.py +++ b/tests/model_inheritance_regress/tests.py @@ -181,11 +181,11 @@ class ModelInheritanceTest(TestCase): """ Regression test for #6755 """ - r = Restaurant(serves_pizza=False) + r = Restaurant(serves_pizza=False, serves_hot_dogs=False) r.save() self.assertEqual(r.id, r.place_ptr_id) orig_id = r.id - r = Restaurant(place_ptr_id=orig_id, serves_pizza=True) + r = Restaurant(place_ptr_id=orig_id, serves_pizza=True, serves_hot_dogs=False) r.save() self.assertEqual(r.id, orig_id) self.assertEqual(r.id, r.place_ptr_id) -- cgit v1.3 From e12aad2d57f76f8acbc369feb257cea342cc30c8 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sun, 24 Mar 2013 14:30:04 +0100 Subject: Added changes missing from previous commit. Sorry. --- docs/releases/1.6.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'docs') diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index f3d12cac38..41611c5aaa 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -298,13 +298,13 @@ connections. When a :class:`~django.db.models.BooleanField` doesn't have an explicit :attr:`~django.db.models.Field.default`, the implicit default value is ``None``. In previous version of Django, it was ``False``, but that didn't -represent accurantely the lack of a value. +represent accurately the lack of a value. Code that relies on the default value being ``False`` may raise an exception when saving new model instances to the database, because ``None`` isn't an acceptable value for a :class:`~django.db.models.BooleanField`. You should -either specify ``default=False`` explicitly on the field definition, or ensure -the field is set to ``True`` or ``False`` before saving the object. +either specify ``default=False`` in the field definition, or ensure the field +is set to ``True`` or ``False`` before saving the object. Translations and comments in templates ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -328,7 +328,7 @@ specified using ``{#`` / ``#}`` is now stricter. All translator comments not located at the end of their respective lines in a template are ignored and a warning is generated by :djadmin:`makemessages` when it finds them. E.g.: - .. code-block:: html+django +.. code-block:: html+django {# Translators: This is ignored #}{% trans "Translate me" %} {{ title }}{# Translators: Extracted and associated with 'Welcome' below #} -- cgit v1.3 From c5b2414a52c0959acbcf107a60bf129539e2415e Mon Sep 17 00:00:00 2001 From: Yohan Boniface Date: Sun, 24 Mar 2013 12:12:23 -0400 Subject: Doc: "value" is arg not kwarg in HttpResponse.set_signed_cookie --- docs/ref/request-response.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/ref/request-response.txt b/docs/ref/request-response.txt index 6f620e17e2..0f62741c5d 100644 --- a/docs/ref/request-response.txt +++ b/docs/ref/request-response.txt @@ -696,7 +696,7 @@ Methods .. _HTTPOnly: https://www.owasp.org/index.php/HTTPOnly -.. method:: HttpResponse.set_signed_cookie(key, value='', salt='', max_age=None, expires=None, path='/', domain=None, secure=None, httponly=True) +.. method:: HttpResponse.set_signed_cookie(key, value, salt='', max_age=None, expires=None, path='/', domain=None, secure=None, httponly=True) Like :meth:`~HttpResponse.set_cookie()`, but :doc:`cryptographic signing ` the cookie before setting -- cgit v1.3 From f02c6c27600c6e78b3f4bb3447cfc025a1f27a90 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sun, 24 Mar 2013 18:31:20 +0100 Subject: Goodbye, Malcolm. --- docs/internals/committers.txt | 2 ++ 1 file changed, 2 insertions(+) (limited to 'docs') diff --git a/docs/internals/committers.txt b/docs/internals/committers.txt index 69c9974967..9b56a40631 100644 --- a/docs/internals/committers.txt +++ b/docs/internals/committers.txt @@ -85,6 +85,8 @@ Malcolm Tredinnick When he's not busy being an International Man of Mystery, Malcolm lives in Sydney, Australia. + *Malcolm passed away on March 17, 2013.* + `Russell Keith-Magee`_ Russell studied physics as an undergraduate, and studied neural networks for his PhD. His first job was with a startup in the defense industry developing -- cgit v1.3 From 6073091b77458da34c74c313b1395b4214874db1 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sun, 24 Mar 2013 13:49:31 -0400 Subject: Fixed #20124 - Fixed doc warnings. --- docs/ref/contrib/messages.txt | 2 +- docs/releases/1.6.txt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'docs') diff --git a/docs/ref/contrib/messages.txt b/docs/ref/contrib/messages.txt index 0dd732bec2..0a376bca18 100644 --- a/docs/ref/contrib/messages.txt +++ b/docs/ref/contrib/messages.txt @@ -291,7 +291,7 @@ Adding messages in Class Based Views .. versionadded:: 1.6 -.. class:: django.contrib.messages.views.SuccessMessageMixin +.. class:: views.SuccessMessageMixin Adds a success message attribute to :class:`~django.views.generic.edit.FormView` based classes diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 41611c5aaa..236be7b1d3 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -134,7 +134,7 @@ Minor features * Added :class:`~django.contrib.messages.views.SuccessMessageMixin` which provides a ``success_message`` attribute for - :class:`~django.view.generic.edit.FormView` based classes. + :class:`~django.views.generic.edit.FormView` based classes. * Added the :attr:`django.db.models.ForeignKey.db_constraint` and :attr:`django.db.models.ManyToManyField.db_constraint` options. @@ -169,7 +169,7 @@ Minor features * The :djadmin:`diffsettings` comand gained a ``--all`` option. -* :func:`django.forms.fields.Field.__init__` now calls ``super()``, allowing +* ``django.forms.fields.Field.__init__`` now calls ``super()``, allowing field mixins to implement ``__init__()`` methods that will reliably be called. -- cgit v1.3 From a05042fd3a225c8de1cca4bcfb64bf0594ecff3c Mon Sep 17 00:00:00 2001 From: Maik Hoepfel Date: Mon, 25 Mar 2013 13:12:53 +0100 Subject: Docs: Remove ambiguity. The docs to the LANGUAGES setting were using both the term language code and language name for the same thing. --- docs/ref/settings.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'docs') diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt index 92500d19d1..2bfbbe0897 100644 --- a/docs/ref/settings.txt +++ b/docs/ref/settings.txt @@ -1265,9 +1265,9 @@ see the current list of translated languages by looking in .. _online source: https://github.com/django/django/blob/master/django/conf/global_settings.py -The list is a tuple of two-tuples in the format ``(language code, language -name)``, the ``language code`` part should be a -:term:`language name` -- for example, ``('ja', 'Japanese')``. +The list is a tuple of two-tuples in the format +(:term:`language code`, ``language name``) -- for example, +``('ja', 'Japanese')``. This specifies which languages are available for language selection. See :doc:`/topics/i18n/index`. -- cgit v1.3 From ccf8d8111339fffc63d0334e83d9db8c99e9172e Mon Sep 17 00:00:00 2001 From: Ramiro Morales Date: Mon, 25 Mar 2013 21:56:52 -0300 Subject: Fixed docs reST warning. --- docs/topics/db/transactions.txt | 1 + 1 file changed, 1 insertion(+) (limited to 'docs') diff --git a/docs/topics/db/transactions.txt b/docs/topics/db/transactions.txt index db58ca9627..d48365dc9e 100644 --- a/docs/topics/db/transactions.txt +++ b/docs/topics/db/transactions.txt @@ -409,6 +409,7 @@ Handling exceptions within PostgreSQL transactions -------------------------------------------------- .. note:: + This section is relevant only if you're implementing your own transaction management. This problem cannot occur in Django's default mode and :func:`atomic` handles it automatically. -- cgit v1.3 From 25f2acfed0fc110f88abbfffb5c5c62a76670db0 Mon Sep 17 00:00:00 2001 From: Donald Stufft Date: Tue, 26 Mar 2013 11:44:26 -0400 Subject: Fixed #20138 -- Added BCryptSHA256PasswordHasher BCryptSHA256PasswordHasher pre-hashes the users password using SHA256 to prevent the 72 byte truncation inherient in the BCrypt algorithm. --- django/conf/global_settings.py | 1 + django/contrib/auth/hashers.py | 49 +++++++++++++++++++++++++++++++++--- django/contrib/auth/tests/hashers.py | 16 ++++++++++++ docs/releases/1.6.txt | 3 +++ docs/topics/auth/passwords.txt | 25 +++++++++++++++--- 5 files changed, 87 insertions(+), 7 deletions(-) (limited to 'docs') diff --git a/django/conf/global_settings.py b/django/conf/global_settings.py index 42df4b601a..aa67e48bcd 100644 --- a/django/conf/global_settings.py +++ b/django/conf/global_settings.py @@ -515,6 +515,7 @@ PASSWORD_RESET_TIMEOUT_DAYS = 3 PASSWORD_HASHERS = ( 'django.contrib.auth.hashers.PBKDF2PasswordHasher', 'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher', + 'django.contrib.auth.hashers.BCryptSHA256PasswordHasher', 'django.contrib.auth.hashers.BCryptPasswordHasher', 'django.contrib.auth.hashers.SHA1PasswordHasher', 'django.contrib.auth.hashers.MD5PasswordHasher', diff --git a/django/contrib/auth/hashers.py b/django/contrib/auth/hashers.py index 480fde69ce..092cccedde 100644 --- a/django/contrib/auth/hashers.py +++ b/django/contrib/auth/hashers.py @@ -1,6 +1,7 @@ from __future__ import unicode_literals import base64 +import binascii import hashlib from django.dispatch import receiver @@ -257,7 +258,7 @@ class PBKDF2SHA1PasswordHasher(PBKDF2PasswordHasher): digest = hashlib.sha1 -class BCryptPasswordHasher(BasePasswordHasher): +class BCryptSHA256PasswordHasher(BasePasswordHasher): """ Secure password hashing using the bcrypt algorithm (recommended) @@ -266,7 +267,8 @@ class BCryptPasswordHasher(BasePasswordHasher): this library depends on native C code and might cause portability issues. """ - algorithm = "bcrypt" + algorithm = "bcrypt_sha256" + digest = hashlib.sha256 library = ("py-bcrypt", "bcrypt") rounds = 12 @@ -278,14 +280,34 @@ class BCryptPasswordHasher(BasePasswordHasher): bcrypt = self._load_library() # Need to reevaluate the force_bytes call once bcrypt is supported on # Python 3 - data = bcrypt.hashpw(force_bytes(password), salt) + + # Hash the password prior to using bcrypt to prevent password truncation + # See: https://code.djangoproject.com/ticket/20138 + if self.digest is not None: + # We use binascii.hexlify here because Python3 decided that a hex encoded + # bytestring is somehow a unicode. + password = binascii.hexlify(self.digest(force_bytes(password)).digest()) + else: + password = force_bytes(password) + + data = bcrypt.hashpw(password, salt) return "%s$%s" % (self.algorithm, data) def verify(self, password, encoded): algorithm, data = encoded.split('$', 1) assert algorithm == self.algorithm bcrypt = self._load_library() - return constant_time_compare(data, bcrypt.hashpw(force_bytes(password), data)) + + # Hash the password prior to using bcrypt to prevent password truncation + # See: https://code.djangoproject.com/ticket/20138 + if self.digest is not None: + # We use binascii.hexlify here because Python3 decided that a hex encoded + # bytestring is somehow a unicode. + password = binascii.hexlify(self.digest(force_bytes(password)).digest()) + else: + password = force_bytes(password) + + return constant_time_compare(data, bcrypt.hashpw(password, data)) def safe_summary(self, encoded): algorithm, empty, algostr, work_factor, data = encoded.split('$', 4) @@ -299,6 +321,25 @@ class BCryptPasswordHasher(BasePasswordHasher): ]) +class BCryptPasswordHasher(BCryptSHA256PasswordHasher): + """ + Secure password hashing using the bcrypt algorithm + + This is considered by many to be the most secure algorithm but you + must first install the py-bcrypt library. Please be warned that + this library depends on native C code and might cause portability + issues. + + This hasher does not first hash the password which means it is subject to + the 72 character bcrypt password truncation, most use cases should prefer + the BCryptSha512PasswordHasher. + + See: https://code.djangoproject.com/ticket/20138 + """ + algorithm = "bcrypt" + digest = None + + class SHA1PasswordHasher(BasePasswordHasher): """ The SHA1 password hashing algorithm (not recommended) diff --git a/django/contrib/auth/tests/hashers.py b/django/contrib/auth/tests/hashers.py index 2b2243cb0c..9253fcbc43 100644 --- a/django/contrib/auth/tests/hashers.py +++ b/django/contrib/auth/tests/hashers.py @@ -92,6 +92,22 @@ class TestUtilsHashPass(unittest.TestCase): self.assertFalse(check_password('lètmeiz', encoded)) self.assertEqual(identify_hasher(encoded).algorithm, "crypt") + @skipUnless(bcrypt, "py-bcrypt not installed") + def test_bcrypt_sha256(self): + encoded = make_password('lètmein', hasher='bcrypt_sha256') + self.assertTrue(is_password_usable(encoded)) + self.assertTrue(encoded.startswith('bcrypt_sha256$')) + self.assertTrue(check_password('lètmein', encoded)) + self.assertFalse(check_password('lètmeinz', encoded)) + self.assertEqual(identify_hasher(encoded).algorithm, "bcrypt_sha256") + + # Verify that password truncation no longer works + password = ('VSK0UYV6FFQVZ0KG88DYN9WADAADZO1CTSIVDJUNZSUML6IBX7LN7ZS3R5' + 'JGB3RGZ7VI7G7DJQ9NI8BQFSRPTG6UWTTVESA5ZPUN') + encoded = make_password(password, hasher='bcrypt_sha256') + self.assertTrue(check_password(password, encoded)) + self.assertFalse(check_password(password[:72], encoded)) + @skipUnless(bcrypt, "py-bcrypt not installed") def test_bcrypt(self): encoded = make_password('lètmein', hasher='bcrypt') diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 236be7b1d3..372dde8ff9 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -181,6 +181,9 @@ Minor features and the undocumented limit of the higher of 1000 or ``max_num`` forms was changed so it is always 1000 more than ``max_num``. +* Added ``BCryptSHA256PasswordHasher`` to resolve the password truncation issue + with bcrypt. + Backwards incompatible changes in 1.6 ===================================== diff --git a/docs/topics/auth/passwords.txt b/docs/topics/auth/passwords.txt index d9b7e24efc..ae63771d6f 100644 --- a/docs/topics/auth/passwords.txt +++ b/docs/topics/auth/passwords.txt @@ -52,6 +52,7 @@ The default for :setting:`PASSWORD_HASHERS` is:: PASSWORD_HASHERS = ( 'django.contrib.auth.hashers.PBKDF2PasswordHasher', 'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher', + 'django.contrib.auth.hashers.BCryptSHA256PasswordHasher', 'django.contrib.auth.hashers.BCryptPasswordHasher', 'django.contrib.auth.hashers.SHA1PasswordHasher', 'django.contrib.auth.hashers.MD5PasswordHasher', @@ -79,10 +80,11 @@ To use Bcrypt as your default storage algorithm, do the following: py-bcrypt``, or downloading the library and installing it with ``python setup.py install``). -2. Modify :setting:`PASSWORD_HASHERS` to list ``BCryptPasswordHasher`` +2. Modify :setting:`PASSWORD_HASHERS` to list ``BCryptSHA256PasswordHasher`` first. That is, in your settings file, you'd put:: PASSWORD_HASHERS = ( + 'django.contrib.auth.hashers.BCryptSHA256PasswordHasher', 'django.contrib.auth.hashers.BCryptPasswordHasher', 'django.contrib.auth.hashers.PBKDF2PasswordHasher', 'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher', @@ -97,6 +99,22 @@ To use Bcrypt as your default storage algorithm, do the following: That's it -- now your Django install will use Bcrypt as the default storage algorithm. +.. admonition:: Password truncation with BCryptPasswordHasher + + The designers of bcrypt truncate all passwords at 72 characters which means + that ``bcrypt(password_with_100_chars) == bcrypt(password_with_100_chars[:72])``. + The original ``BCryptPasswordHasher`` does not have any special handling and + thus is also subject to this hidden password length limit. + ``BCryptSHA256PasswordHasher`` fixes this by first first hashing the + password using sha256. This prevents the password truncation and so should + be preferred over the ``BCryptPasswordHasher``. The practical ramification + of this truncation is pretty marginal as the average user does not have a + password greater than 72 characters in length and even being truncated at 72 + the compute powered required to brute force bcrypt in any useful amount of + time is still astronomical. Nonetheless, we recommend you use + ``BCryptSHA256PasswordHasher`` anyway on the principle of "better safe than + sorry. + .. admonition:: Other bcrypt implementations There are several other implementations that allow bcrypt to be @@ -138,6 +156,7 @@ default PBKDF2 algorithm: 'myproject.hashers.MyPBKDF2PasswordHasher', 'django.contrib.auth.hashers.PBKDF2PasswordHasher', 'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher', + 'django.contrib.auth.hashers.BCryptSHA256PasswordHasher', 'django.contrib.auth.hashers.BCryptPasswordHasher', 'django.contrib.auth.hashers.SHA1PasswordHasher', 'django.contrib.auth.hashers.MD5PasswordHasher', @@ -194,8 +213,8 @@ from the ``User`` model. provide a salt and a hashing algorithm to use, if you don't want to use the defaults (first entry of ``PASSWORD_HASHERS`` setting). Currently supported algorithms are: ``'pbkdf2_sha256'``, ``'pbkdf2_sha1'``, - ``'bcrypt'`` (see :ref:`bcrypt_usage`), ``'sha1'``, ``'md5'``, - ``'unsalted_md5'`` (only for backward compatibility) and ``'crypt'`` + ``'bcrypt_sha256'`` (see :ref:`bcrypt_usage`), ``'bcrypt'``, ``'sha1'``, + ``'md5'``, ``'unsalted_md5'`` (only for backward compatibility) and ``'crypt'`` if you have the ``crypt`` library installed. If the password argument is ``None``, an unusable password is returned (a one that will be never accepted by :func:`check_password`). -- cgit v1.3 From f2a0be61517d213f23100aded043e073ea66694a Mon Sep 17 00:00:00 2001 From: Donald Stufft Date: Tue, 26 Mar 2013 15:26:20 -0400 Subject: Fix a missing " character in the password documentation --- docs/topics/auth/passwords.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/topics/auth/passwords.txt b/docs/topics/auth/passwords.txt index ae63771d6f..2193e6a3c7 100644 --- a/docs/topics/auth/passwords.txt +++ b/docs/topics/auth/passwords.txt @@ -113,7 +113,7 @@ algorithm. the compute powered required to brute force bcrypt in any useful amount of time is still astronomical. Nonetheless, we recommend you use ``BCryptSHA256PasswordHasher`` anyway on the principle of "better safe than - sorry. + sorry". .. admonition:: Other bcrypt implementations -- cgit v1.3 From 6e67d764ae66658b113f99390a80c6f352b74b67 Mon Sep 17 00:00:00 2001 From: Richard Cornish Date: Wed, 27 Mar 2013 00:59:05 -0500 Subject: Updated bios of committers --- docs/internals/committers.txt | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'docs') diff --git a/docs/internals/committers.txt b/docs/internals/committers.txt index 9b56a40631..a0649f38a2 100644 --- a/docs/internals/committers.txt +++ b/docs/internals/committers.txt @@ -14,8 +14,9 @@ Journal-World`_ of Lawrence, Kansas, USA. programming", and in technical circles as "the guy who invented Django." He was lead developer at World Online for 2.5 years, during which time - Django was developed and implemented on World Online's sites. He's now the - leader and founder of EveryBlock_, a "news feed for your block". + Django was developed and implemented on World Online's sites. He was the + leader and founder of EveryBlock_, a "news feed for your block." He now + develops for Soundslice_. Adrian lives in Chicago, USA. @@ -40,13 +41,15 @@ Journal-World`_ of Lawrence, Kansas, USA. `Wilson Miner`_ Wilson's design-fu is what makes Django look so nice. He designed the Web site you're looking at right now, as well as Django's acclaimed admin - interface. Wilson is the designer for EveryBlock_. + interface. Wilson was the designer for EveryBlock and Rdio_. He now + designs for Facebook. Wilson lives in San Francisco, USA. .. _lawrence journal-world: http://ljworld.com/ .. _adrian holovaty: http://holovaty.com/ .. _everyblock: http://everyblock.com/ +.. _soundslice: http://www.soundslice.com/ .. _simon willison: http://simonwillison.net/ .. _web-development blog: `simon willison`_ .. _jacob kaplan-moss: http://jacobian.org/ @@ -102,9 +105,9 @@ Malcolm Tredinnick .. _russell keith-magee: http://cecinestpasun.com/ Joseph Kocherhans - Joseph is currently a developer at EveryBlock_, and previously worked for - the Lawrence Journal-World where he built most of the backend for their - Marketplace site. He often disappears for several days into the woods, + Joseph was the director of lead development at EveryBlock and previously + developed at the Lawrence Journal-World. He is treasurer of the `Django + Software Foundation`_. He often disappears for several days into the woods, attempts to teach himself computational linguistics, and annoys his neighbors with his Charango_ playing. @@ -115,6 +118,7 @@ Joseph Kocherhans Joseph lives in Chicago, USA. +.. _django software foundation: https://www.djangoproject.com/foundation/ .. _charango: http://en.wikipedia.org/wiki/Charango `Luke Plant`_ -- cgit v1.3 From ec04fd1344bda8067404b720ce48b01eb3546c6e Mon Sep 17 00:00:00 2001 From: Gavin Wahl Date: Thu, 28 Mar 2013 11:16:53 -0600 Subject: Fixed spelling errors --- django/contrib/admin/options.py | 12 ++++++------ django/contrib/admin/sites.py | 2 +- django/db/models/base.py | 2 +- django/forms/formsets.py | 2 +- django/test/html.py | 2 +- django/utils/http.py | 2 +- docs/_ext/djangodocs.py | 2 +- docs/_ext/literals_to_xrefs.py | 2 +- 8 files changed, 13 insertions(+), 13 deletions(-) (limited to 'docs') diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py index 8a37a9a7ba..dde0ba5a71 100644 --- a/django/contrib/admin/options.py +++ b/django/contrib/admin/options.py @@ -276,7 +276,7 @@ class BaseModelAdmin(six.with_metaclass(RenameBaseModelAdminMethods)): parts.pop() # Special case -- foo__id__exact and foo__id queries are implied - # if foo has been specificially included in the lookup list; so + # if foo has been specifically included in the lookup list; so # drop __id if it is the last part. However, first we need to find # the pk attribute name. rel_name = None @@ -284,7 +284,7 @@ class BaseModelAdmin(six.with_metaclass(RenameBaseModelAdminMethods)): try: field, _, _, _ = model._meta.get_field_by_name(part) except FieldDoesNotExist: - # Lookups on non-existants fields are ok, since they're ignored + # Lookups on non-existent fields are ok, since they're ignored # later. return True if hasattr(field, 'rel'): @@ -306,7 +306,7 @@ class BaseModelAdmin(six.with_metaclass(RenameBaseModelAdminMethods)): def has_add_permission(self, request): """ Returns True if the given request has permission to add an object. - Can be overriden by the user in subclasses. + Can be overridden by the user in subclasses. """ opts = self.opts return request.user.has_perm(opts.app_label + '.' + opts.get_add_permission()) @@ -317,7 +317,7 @@ class BaseModelAdmin(six.with_metaclass(RenameBaseModelAdminMethods)): Django model instance, the default implementation doesn't examine the `obj` parameter. - Can be overriden by the user in subclasses. In such case it should + Can be overridden by the user in subclasses. In such case it should return True if the given request has permission to change the `obj` model instance. If `obj` is None, this should return True if the given request has permission to change *any* object of the given type. @@ -331,7 +331,7 @@ class BaseModelAdmin(six.with_metaclass(RenameBaseModelAdminMethods)): Django model instance, the default implementation doesn't examine the `obj` parameter. - Can be overriden by the user in subclasses. In such case it should + Can be overridden by the user in subclasses. In such case it should return True if the given request has permission to delete the `obj` model instance. If `obj` is None, this should return True if the given request has permission to delete *any* object of the given type. @@ -601,7 +601,7 @@ class ModelAdmin(BaseModelAdmin): Return a dictionary mapping the names of all actions for this ModelAdmin to a tuple of (callable, name, description) for each action. """ - # If self.actions is explicitally set to None that means that we don't + # If self.actions is explicitly set to None that means that we don't # want *any* actions enabled on this page. from django.contrib.admin.views.main import IS_POPUP_VAR if self.actions is None or IS_POPUP_VAR in request.GET: diff --git a/django/contrib/admin/sites.py b/django/contrib/admin/sites.py index 8345543707..414d1b4f72 100644 --- a/django/contrib/admin/sites.py +++ b/django/contrib/admin/sites.py @@ -129,7 +129,7 @@ class AdminSite(object): def get_action(self, name): """ - Explicitally get a registered global action wheather it's enabled or + Explicitly get a registered global action whether it's enabled or not. Raises KeyError for invalid names. """ return self._global_actions[name] diff --git a/django/db/models/base.py b/django/db/models/base.py index a2eee60c61..005e089598 100644 --- a/django/db/models/base.py +++ b/django/db/models/base.py @@ -911,7 +911,7 @@ class Model(six.with_metaclass(ModelBase)): def full_clean(self, exclude=None): """ Calls clean_fields, clean, and validate_unique, on the model, - and raises a ``ValidationError`` for any errors that occured. + and raises a ``ValidationError`` for any errors that occurred. """ errors = {} if exclude is None: diff --git a/django/forms/formsets.py b/django/forms/formsets.py index 98ae3205fe..2ab197dee2 100644 --- a/django/forms/formsets.py +++ b/django/forms/formsets.py @@ -118,7 +118,7 @@ class BaseFormSet(object): if self.is_bound: return self.management_form.cleaned_data[INITIAL_FORM_COUNT] else: - # Use the length of the inital data if it's there, 0 otherwise. + # Use the length of the initial data if it's there, 0 otherwise. initial_forms = self.initial and len(self.initial) or 0 return initial_forms diff --git a/django/test/html.py b/django/test/html.py index cda9dfab27..0d30bd2d1c 100644 --- a/django/test/html.py +++ b/django/test/html.py @@ -222,7 +222,7 @@ def parse_html(html): """ Takes a string that contains *valid* HTML and turns it into a Python object structure that can be easily compared against other HTML on semantic - equivilance. Syntactical differences like which quotation is used on + equivalence. Syntactical differences like which quotation is used on arguments will be ignored. """ diff --git a/django/utils/http.py b/django/utils/http.py index 73b6396286..15fac6bfca 100644 --- a/django/utils/http.py +++ b/django/utils/http.py @@ -217,7 +217,7 @@ def parse_etags(etag_str): def quote_etag(etag): """ - Wraps a string in double quotes escaping contents as necesary. + Wraps a string in double quotes escaping contents as necessary. """ return '"%s"' % etag.replace('\\', '\\\\').replace('"', '\\"') diff --git a/docs/_ext/djangodocs.py b/docs/_ext/djangodocs.py index e539675786..572bcd2e29 100644 --- a/docs/_ext/djangodocs.py +++ b/docs/_ext/djangodocs.py @@ -120,7 +120,7 @@ class DjangoHTMLTranslator(SmartyPantsHTMLTranslator): # which is a bit less obvious that I'd like. # # FIXME: these messages are all hardcoded in English. We need to change - # that to accomodate other language docs, but I can't work out how to make + # that to accommodate other language docs, but I can't work out how to make # that work. # version_text = { diff --git a/docs/_ext/literals_to_xrefs.py b/docs/_ext/literals_to_xrefs.py index d7b3cfc549..6feeca992e 100644 --- a/docs/_ext/literals_to_xrefs.py +++ b/docs/_ext/literals_to_xrefs.py @@ -110,7 +110,7 @@ def fixliterals(fname): # # The following is taken from django.utils.termcolors and is copied here to -# avoid the dependancy. +# avoid the dependency. # -- cgit v1.3 From ae5247cb51635aa3abfe969acf2216969f961a5a Mon Sep 17 00:00:00 2001 From: Jacob Kaplan-Moss Date: Thu, 28 Mar 2013 15:02:35 -0500 Subject: Added 1.5.1 release notes. --- docs/releases/1.5.1.txt | 28 ++++++++++++++++++++++++++++ docs/releases/index.txt | 1 + 2 files changed, 29 insertions(+) create mode 100644 docs/releases/1.5.1.txt (limited to 'docs') diff --git a/docs/releases/1.5.1.txt b/docs/releases/1.5.1.txt new file mode 100644 index 0000000000..99998616d2 --- /dev/null +++ b/docs/releases/1.5.1.txt @@ -0,0 +1,28 @@ +========================== +Django 1.5.1 release notes +========================== + +*March 28, 2013* + +This is Django 1.5.1, a bugfix release for Django 1.5. It's completely backwards +compatible with Django 1.5, but includes a handful of fixes. + +The biggest fix is for a memory leak introduced in Django 1.5. Under certain +circumstances, repeated iteration over querysets could leak memory - sometimes +quite a bit of it. If you'd like more information, the details are in +`our ticket tracker`__ (and in `a related issue`__ in Python itself). + +__ https://code.djangoproject.com/ticket/19895 +__ http://bugs.python.org/issue17468 + +If you've noticed memory problems under Django 1.5, upgrading to 1.5.1 should +fix those issues. + +Django 1.5.1 also includes a couple smaller fixes: + +* Module-level warnings emitted during tests are no longer silently hidden + (`#18985`__). +* Prevented filtering on password hashes in the user admin (`#20078`__). + +__ https://code.djangoproject.com/ticket/18985 +__ https://code.djangoproject.com/ticket/20078 diff --git a/docs/releases/index.txt b/docs/releases/index.txt index b0cd87a168..c5afd8c719 100644 --- a/docs/releases/index.txt +++ b/docs/releases/index.txt @@ -28,6 +28,7 @@ Final releases .. toctree:: :maxdepth: 1 + 1.5.1 1.5 1.4 release -- cgit v1.3 From e301ea3efb9b59a86c35bc7dcd51b0794212ebdd Mon Sep 17 00:00:00 2001 From: Jacob Kaplan-Moss Date: Thu, 28 Mar 2013 16:10:11 -0500 Subject: Updated the release document after actually doing a release (!). --- docs/internals/howto-release-django.txt | 99 +++++++++++++++++++++------------ 1 file changed, 63 insertions(+), 36 deletions(-) (limited to 'docs') diff --git a/docs/internals/howto-release-django.txt b/docs/internals/howto-release-django.txt index b6f879753a..7f1117abe7 100644 --- a/docs/internals/howto-release-django.txt +++ b/docs/internals/howto-release-django.txt @@ -53,8 +53,8 @@ Prerequisites You'll need a few things hooked up to make this work: -* A GPG key. *FIXME: sort out exactly whose keys are acceptable for a - release.* +* A GPG key recorded as an acceptable releaser in the `Django releasers`__ + document. * Access to Django's record on PyPI. @@ -68,8 +68,10 @@ You'll need a few things hooked up to make this work: * If this is a security release, access to the pre-notification distribution list. -If this is your first release, you'll need to coordinate with James and Jacob -to get all these things ready to go. +If this is your first release, you'll need to coordinate with James and/or +Jacob to get all these things lined up. + +__ https://www.djangoproject.com/m/pgp/django-releasers.txt Pre-release tasks ================= @@ -103,7 +105,6 @@ any time leading up to the actual release: Preparing for release ===================== - Write the announcement blog post for the release. You can enter it into the admin at any time and mark it as inactive. Here are a few examples: `example security release announcement`__, `example regular release announcement`__, @@ -123,22 +124,30 @@ OK, this is the fun part, where we actually push out a release! __ http://ci.djangoproject.com -#. A release always begins from a release branch, so you should ``git checkout - stable/`` (e.g. checkout ``stable/1.5.x`` to issue a release in the - 1.5 series) and then ``git pull`` to make sure you're up-to-date. +#. A release always begins from a release branch, so you should make sure + you're on a stable branch and up-to-date. For example:: + + git checkout stable/1.5.x + git pull #. If this is a security release, merge the appropriate patches from ``django-private``. Rebase these patches as necessary to make each one a simple commit on the release branch rather than a merge commit. To ensure - this, merge them with the ``--ff-only`` flag; for example, ``git checkout - stable/1.5.x; git merge --ff-only security/1.5.x``, if ``security/1.5.x`` is - a branch in the ``django-private`` repo containing the necessary security - patches for the next release in the 1.5 series. If git refuses to merge with - ``--ff-only``, switch to the security-patch branch and rebase it on the - branch you are about to merge it into (``git checkout security/1.5.x; git - rebase stable/1.5.x``) and then switch back and do the merge. Make sure the - commit message for each security fix explains that the commit is a security - fix and that an announcement will follow (`example security commit`__) + this, merge them with the ``--ff-only`` flag; for example:: + + git checkout stable/1.5.x + git merge --ff-only security/1.5.x + + (this assumes ``security/1.5.x`` is a branch in the ``django-private`` repo + containing the necessary security patches for the next release in the 1.5 + series. + + If git refuses to merge with ``--ff-only``, switch to the security-patch + branch and rebase it on the branch you are about to merge it into (``git + checkout security/1.5.x; git rebase stable/1.5.x``) and then switch back and + do the merge. Make sure the commit message for each security fix explains + that the commit is a security fix and that an announcement will follow + (`example security commit`__) __ https://github.com/django/django/commit/3ef4bbf495cc6c061789132e3d50a8231a89406b @@ -157,20 +166,26 @@ OK, this is the fun part, where we actually push out a release! classifier in ``setup.py`` to reflect this. Otherwise, make sure the classifier is set to ``Development Status :: 5 - Production/Stable``. -#. Tag the release by running ``git tag -s`` *FIXME actual commands*. +#. Tag the release using ``git tag``. For example:: -#. ``git push`` your work. + git tag --sign --message="Django 1.5.1" 1.5.1 + + You can check your work by running ``git tag --verify ``. + +#. Push your work, including the tag: ``git push --tags``. #. Make sure you have an absolutely clean tree by running ``git clean -dfx``. #. Run ``python setup.py sdist`` to generate the release package. This will create the release package in a ``dist/`` directory. -#. Generate the MD5 and SHA1 hashes of the release package:: +#. Generate the hashes of the release package:: $ md5sum dist/Django-.tar.gz $ sha1sum dist/Django-.tar.gz + *FIXME: perhaps we should switch to sha256?* + #. Create a "checksums" file containing the hashes and release information. You can start with `a previous checksums file`__ and replace the dates, keys, links, and checksums. *FIXME: make a template file.* @@ -178,8 +193,9 @@ OK, this is the fun part, where we actually push out a release! __ https://www.djangoproject.com/m/pgp/Django-1.5b1.checksum.txt #. Sign the checksum file using the release key (``gpg - --clearsign``), then verify the signature (``gpg --verify``). *FIXME: - full, actual commands here*. + --clearsign Django-.checksum.txt``). This generates a signed + document, ``Django-.checksum.txt.asc`` which you can then verify + using ``gpg --verify Django-.checksum.txt.asc``. If you're issuing multiple releases, repeat these steps for each release. @@ -201,15 +217,14 @@ Now you're ready to actually put the release out there. To do this: and ``pip``. Here's one method (which requires `virtualenvwrapper`__):: $ mktmpenv - $ easy_install https://www.djangoproject.com/download//tarball/ + $ easy_install https://www.djangoproject.com/m/releases/1.5/Django-1.5.1.tar.gz $ deactivate $ mktmpenv - $ pip install https://www.djangoproject.com/download//tarball/ + $ pip install https://www.djangoproject.com/m/releases/1.5/Django-1.5.1.tar.gz $ deactivate This just tests that the tarballs are available (i.e. redirects are up) and - that they install correctly, but it'll catch silly mistakes. *FIXME: - buildout too?* + that they install correctly, but it'll catch silly mistakes. __ https://pypi.python.org/pypi/virtualenvwrapper @@ -220,15 +235,28 @@ Now you're ready to actually put the release out there. To do this: correct (proper version numbers, no stray ``.pyc`` or other undesirable files). -#. If this is a security or regular release, register the new package with PyPI - by uploading the ``PGK-INFO`` file generated in the release package. This - file's *in* the distribution tarball, so you'll need to pull it out. ``tar - xzf dist/Django-.tar.gz Django-/PKG-INFO`` ought to - work. *FIXME: Is there any reason to pull this file out manually rather than - using "python setup.py register"?* +#. If this is a release that should land on PyPI (i.e. anything except for + a pre-release), register the new package with PyPI by running + ``python setup.py register``. + +#. Upload the sdist you generated a few steps back through the PyPI web + interface. You'll log into PyPI, click "Django" in the right sidebar, + find the release you just registered, and click "files" to upload the + sdist. + + .. note:: + + Why can't we just use ``setup.py sdist upload``? Well, if we do it above + that pushes the sdist to PyPI before we've had a chance to sign, review + and test it. And we can't just ``setup.py upload`` without ``sdist`` + because ``setup.py`` prevents that. Nor can we ``sdist upload`` because + that would generate a *new* sdist that might not match the file we just + signed. Finally, uploading through the web interface is somewhat more + secure: it sends the file over HTTPS. #. Go to the `Add release page in the admin`__, enter the new release number exactly as it appears in the name of the tarball (Django-.tar.gz). + So for example enter "1.5.1" or "1.4-rc-2", etc. __ https://www.djangoproject.com/admin/releases/release/add/ @@ -243,8 +271,7 @@ Now you're ready to actually put the release out there. To do this: #. Post the release announcement to the django-announce, django-developers and django-users mailing lists. This should - include links to both the announcement blog post and the release - notes. *FIXME: make some templates with example text*. + include links to the announcement blog post and the release notes. Post-release ============ @@ -253,8 +280,8 @@ You're almost done! All that's left to do now is: #. Update the ``VERSION`` tuple in ``django/__init__.py`` again, incrementing to whatever the next expected release will be. For - example, after releasing 1.2.1, update ``VERSION`` to report "1.2.2 - pre-alpha". *FIXME: Is this correct? Do we still do this?* + example, after releasing 1.5.1, update ``VERSION`` to + ``VERSION = (1, 5, 2, 'alpha', 0)``. #. For the first alpha release of a new version (when we create the ``stable/1.?.x`` git branch), you'll want to create a new -- cgit v1.3 From d85d393500ae93a40aa6f1251f249e979b91a4d5 Mon Sep 17 00:00:00 2001 From: Carl Meyer Date: Thu, 28 Mar 2013 15:31:05 -0600 Subject: Minor updates to 'How is Django Formed.' --- docs/internals/howto-release-django.txt | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'docs') diff --git a/docs/internals/howto-release-django.txt b/docs/internals/howto-release-django.txt index 7f1117abe7..46595956d3 100644 --- a/docs/internals/howto-release-django.txt +++ b/docs/internals/howto-release-django.txt @@ -54,7 +54,10 @@ Prerequisites You'll need a few things hooked up to make this work: * A GPG key recorded as an acceptable releaser in the `Django releasers`__ - document. + document. (If this key is not your default signing key, you'll need to add + ``-u you@example.com`` to every GPG signing command below, where + ``you@example.com`` is the email address associated with the key you want to + use.) * Access to Django's record on PyPI. @@ -138,9 +141,9 @@ OK, this is the fun part, where we actually push out a release! git checkout stable/1.5.x git merge --ff-only security/1.5.x - (this assumes ``security/1.5.x`` is a branch in the ``django-private`` repo + (This assumes ``security/1.5.x`` is a branch in the ``django-private`` repo containing the necessary security patches for the next release in the 1.5 - series. + series.) If git refuses to merge with ``--ff-only``, switch to the security-patch branch and rebase it on the branch you are about to merge it into (``git @@ -192,10 +195,10 @@ OK, this is the fun part, where we actually push out a release! __ https://www.djangoproject.com/m/pgp/Django-1.5b1.checksum.txt -#. Sign the checksum file using the release key (``gpg - --clearsign Django-.checksum.txt``). This generates a signed - document, ``Django-.checksum.txt.asc`` which you can then verify - using ``gpg --verify Django-.checksum.txt.asc``. +#. Sign the checksum file (``gpg --clearsign + Django-.checksum.txt``). This generates a signed document, + ``Django-.checksum.txt.asc`` which you can then verify using ``gpg + --verify Django-.checksum.txt.asc``. If you're issuing multiple releases, repeat these steps for each release. -- cgit v1.3 From e5d252f5b9bc586a61113943f13e8fe6147d9e3d Mon Sep 17 00:00:00 2001 From: ferhat elmas Date: Thu, 28 Mar 2013 02:51:44 +0100 Subject: Fixed #20146 -- Updated removed_tags example --- docs/ref/utils.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/ref/utils.txt b/docs/ref/utils.txt index e9b29602ac..b103a9acdf 100644 --- a/docs/ref/utils.txt +++ b/docs/ref/utils.txt @@ -568,11 +568,11 @@ escaping HTML. .. function:: remove_tags(value, tags) - Removes a list of [X]HTML tag names from the output. + Removes a space-separated list of [X]HTML tag names from the output. For example:: - remove_tags(value, ["b", "span"]) + remove_tags(value, "b span") If ``value`` is ``"Joel a slug"`` the return value will be ``"Joel a slug"``. -- cgit v1.3 From 738eef0f8b7139a76b6c3be2227aa218742f4234 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Fri, 29 Mar 2013 07:57:07 -0400 Subject: Improved FormView docs in class-based views index. Thanks Stefan Berder. --- docs/ref/class-based-views/flattened-index.txt | 34 ++++++++++++-------------- docs/ref/class-based-views/mixins-editing.txt | 5 +++- 2 files changed, 20 insertions(+), 19 deletions(-) (limited to 'docs') diff --git a/docs/ref/class-based-views/flattened-index.txt b/docs/ref/class-based-views/flattened-index.txt index b98a35634e..df00f87aa0 100644 --- a/docs/ref/class-based-views/flattened-index.txt +++ b/docs/ref/class-based-views/flattened-index.txt @@ -34,7 +34,7 @@ TemplateView * :attr:`~django.views.generic.base.TemplateResponseMixin.content_type` * :attr:`~django.views.generic.base.View.http_method_names` -* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` +* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` [:meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`] * :attr:`~django.views.generic.base.TemplateResponseMixin.template_name` [:meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names`] **Methods** @@ -86,7 +86,7 @@ DetailView * :attr:`~django.views.generic.detail.SingleObjectMixin.model` * :attr:`~django.views.generic.detail.SingleObjectMixin.pk_url_kwarg` * :attr:`~django.views.generic.detail.SingleObjectMixin.queryset` [:meth:`~django.views.generic.detail.SingleObjectMixin.get_queryset`] -* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` +* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` [:meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`] * :attr:`~django.views.generic.detail.SingleObjectMixin.slug_field` [:meth:`~django.views.generic.detail.SingleObjectMixin.get_slug_field`] * :attr:`~django.views.generic.detail.SingleObjectMixin.slug_url_kwarg` * :attr:`~django.views.generic.base.TemplateResponseMixin.template_name` [:meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names`] @@ -122,7 +122,7 @@ ListView * :attr:`~django.views.generic.list.MultipleObjectMixin.paginate_orphans` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_paginate_orphans`] * :attr:`~django.views.generic.list.MultipleObjectMixin.paginator_class` * :attr:`~django.views.generic.list.MultipleObjectMixin.queryset` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_queryset`] -* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` +* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` [:meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`] * :attr:`~django.views.generic.base.TemplateResponseMixin.template_name` [:meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names`] * :attr:`~django.views.generic.list.MultipleObjectTemplateResponseMixin.template_name_suffix` @@ -151,7 +151,7 @@ FormView * :attr:`~django.views.generic.edit.FormMixin.form_class` [:meth:`~django.views.generic.edit.FormMixin.get_form_class`] * :attr:`~django.views.generic.base.View.http_method_names` * :attr:`~django.views.generic.edit.FormMixin.initial` [:meth:`~django.views.generic.edit.FormMixin.get_initial`] -* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` +* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` [:meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`] * :attr:`~django.views.generic.edit.FormMixin.success_url` [:meth:`~django.views.generic.edit.FormMixin.get_success_url`] * :attr:`~django.views.generic.base.TemplateResponseMixin.template_name` [:meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names`] @@ -165,11 +165,9 @@ FormView * :meth:`~django.views.generic.edit.FormMixin.get_context_data` * :meth:`~django.views.generic.edit.FormMixin.get_form` * :meth:`~django.views.generic.edit.FormMixin.get_form_kwargs` -* ``head()`` * :meth:`~django.views.generic.base.View.http_method_not_allowed` -* ``post()`` -* ``put()`` -* :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response` +* :meth:`~django.views.generic.edit.ProcessFormView.post` +* :meth:`~django.views.generic.edit.ProcessFormView.put` CreateView ~~~~~~~~~~ @@ -185,7 +183,7 @@ CreateView * :attr:`~django.views.generic.detail.SingleObjectMixin.model` * :attr:`~django.views.generic.detail.SingleObjectMixin.pk_url_kwarg` * :attr:`~django.views.generic.detail.SingleObjectMixin.queryset` [:meth:`~django.views.generic.detail.SingleObjectMixin.get_queryset`] -* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` +* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` [:meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`] * :attr:`~django.views.generic.detail.SingleObjectMixin.slug_field` [:meth:`~django.views.generic.detail.SingleObjectMixin.get_slug_field`] * :attr:`~django.views.generic.detail.SingleObjectMixin.slug_url_kwarg` * :attr:`~django.views.generic.edit.FormMixin.success_url` [:meth:`~django.views.generic.edit.FormMixin.get_success_url`] @@ -224,7 +222,7 @@ UpdateView * :attr:`~django.views.generic.detail.SingleObjectMixin.model` * :attr:`~django.views.generic.detail.SingleObjectMixin.pk_url_kwarg` * :attr:`~django.views.generic.detail.SingleObjectMixin.queryset` [:meth:`~django.views.generic.detail.SingleObjectMixin.get_queryset`] -* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` +* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` [:meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`] * :attr:`~django.views.generic.detail.SingleObjectMixin.slug_field` [:meth:`~django.views.generic.detail.SingleObjectMixin.get_slug_field`] * :attr:`~django.views.generic.detail.SingleObjectMixin.slug_url_kwarg` * :attr:`~django.views.generic.edit.FormMixin.success_url` [:meth:`~django.views.generic.edit.FormMixin.get_success_url`] @@ -261,7 +259,7 @@ DeleteView * :attr:`~django.views.generic.detail.SingleObjectMixin.model` * :attr:`~django.views.generic.detail.SingleObjectMixin.pk_url_kwarg` * :attr:`~django.views.generic.detail.SingleObjectMixin.queryset` [:meth:`~django.views.generic.detail.SingleObjectMixin.get_queryset`] -* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` +* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` [:meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`] * :attr:`~django.views.generic.detail.SingleObjectMixin.slug_field` [:meth:`~django.views.generic.detail.SingleObjectMixin.get_slug_field`] * :attr:`~django.views.generic.detail.SingleObjectMixin.slug_url_kwarg` * :attr:`~django.views.generic.edit.DeletionMixin.success_url` [:meth:`~django.views.generic.edit.DeletionMixin.get_success_url`] @@ -302,7 +300,7 @@ ArchiveIndexView * :attr:`~django.views.generic.list.MultipleObjectMixin.paginate_orphans` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_paginate_orphans`] * :attr:`~django.views.generic.list.MultipleObjectMixin.paginator_class` * :attr:`~django.views.generic.list.MultipleObjectMixin.queryset` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_queryset`] -* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` +* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` [:meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`] * :attr:`~django.views.generic.base.TemplateResponseMixin.template_name` [:meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names`] * :attr:`~django.views.generic.list.MultipleObjectTemplateResponseMixin.template_name_suffix` @@ -339,7 +337,7 @@ YearArchiveView * :attr:`~django.views.generic.list.MultipleObjectMixin.paginate_orphans` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_paginate_orphans`] * :attr:`~django.views.generic.list.MultipleObjectMixin.paginator_class` * :attr:`~django.views.generic.list.MultipleObjectMixin.queryset` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_queryset`] -* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` +* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` [:meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`] * :attr:`~django.views.generic.base.TemplateResponseMixin.template_name` [:meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names`] * :attr:`~django.views.generic.list.MultipleObjectTemplateResponseMixin.template_name_suffix` * :attr:`~django.views.generic.dates.YearMixin.year` [:meth:`~django.views.generic.dates.YearMixin.get_year`] @@ -379,7 +377,7 @@ MonthArchiveView * :attr:`~django.views.generic.list.MultipleObjectMixin.paginate_orphans` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_paginate_orphans`] * :attr:`~django.views.generic.list.MultipleObjectMixin.paginator_class` * :attr:`~django.views.generic.list.MultipleObjectMixin.queryset` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_queryset`] -* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` +* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` [:meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`] * :attr:`~django.views.generic.base.TemplateResponseMixin.template_name` [:meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names`] * :attr:`~django.views.generic.list.MultipleObjectTemplateResponseMixin.template_name_suffix` * :attr:`~django.views.generic.dates.YearMixin.year` [:meth:`~django.views.generic.dates.YearMixin.get_year`] @@ -419,7 +417,7 @@ WeekArchiveView * :attr:`~django.views.generic.list.MultipleObjectMixin.paginate_orphans` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_paginate_orphans`] * :attr:`~django.views.generic.list.MultipleObjectMixin.paginator_class` * :attr:`~django.views.generic.list.MultipleObjectMixin.queryset` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_queryset`] -* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` +* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` [:meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`] * :attr:`~django.views.generic.base.TemplateResponseMixin.template_name` [:meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names`] * :attr:`~django.views.generic.list.MultipleObjectTemplateResponseMixin.template_name_suffix` * :attr:`~django.views.generic.dates.WeekMixin.week` [:meth:`~django.views.generic.dates.WeekMixin.get_week`] @@ -463,7 +461,7 @@ DayArchiveView * :attr:`~django.views.generic.list.MultipleObjectMixin.paginate_orphans` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_paginate_orphans`] * :attr:`~django.views.generic.list.MultipleObjectMixin.paginator_class` * :attr:`~django.views.generic.list.MultipleObjectMixin.queryset` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_queryset`] -* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` +* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` [:meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`] * :attr:`~django.views.generic.base.TemplateResponseMixin.template_name` [:meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names`] * :attr:`~django.views.generic.list.MultipleObjectTemplateResponseMixin.template_name_suffix` * :attr:`~django.views.generic.dates.YearMixin.year` [:meth:`~django.views.generic.dates.YearMixin.get_year`] @@ -509,7 +507,7 @@ TodayArchiveView * :attr:`~django.views.generic.list.MultipleObjectMixin.paginate_orphans` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_paginate_orphans`] * :attr:`~django.views.generic.list.MultipleObjectMixin.paginator_class` * :attr:`~django.views.generic.list.MultipleObjectMixin.queryset` [:meth:`~django.views.generic.list.MultipleObjectMixin.get_queryset`] -* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` +* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` [:meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`] * :attr:`~django.views.generic.base.TemplateResponseMixin.template_name` [:meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names`] * :attr:`~django.views.generic.list.MultipleObjectTemplateResponseMixin.template_name_suffix` * :attr:`~django.views.generic.dates.YearMixin.year` [:meth:`~django.views.generic.dates.YearMixin.get_year`] @@ -552,7 +550,7 @@ DateDetailView * :attr:`~django.views.generic.dates.MonthMixin.month_format` [:meth:`~django.views.generic.dates.MonthMixin.get_month_format`] * :attr:`~django.views.generic.detail.SingleObjectMixin.pk_url_kwarg` * :attr:`~django.views.generic.detail.SingleObjectMixin.queryset` [:meth:`~django.views.generic.detail.SingleObjectMixin.get_queryset`] -* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` +* :attr:`~django.views.generic.base.TemplateResponseMixin.response_class` [:meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`] * :attr:`~django.views.generic.detail.SingleObjectMixin.slug_field` [:meth:`~django.views.generic.detail.SingleObjectMixin.get_slug_field`] * :attr:`~django.views.generic.detail.SingleObjectMixin.slug_url_kwarg` * :attr:`~django.views.generic.base.TemplateResponseMixin.template_name` [:meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names`] diff --git a/docs/ref/class-based-views/mixins-editing.txt b/docs/ref/class-based-views/mixins-editing.txt index c2493bfc60..a4175369aa 100644 --- a/docs/ref/class-based-views/mixins-editing.txt +++ b/docs/ref/class-based-views/mixins-editing.txt @@ -188,7 +188,10 @@ ProcessFormView Constructs a form, checks the form for validity, and handles it accordingly. - The PUT action is also handled, as an analog of POST. + .. method:: put(*args, **kwargs) + + The ``PUT`` action is also handled and just passes all parameters + through to :meth:`post`. .. class:: django.views.generic.edit.DeletionMixin -- cgit v1.3 From 6293eaa062db473a208c782f0e419314152a071e Mon Sep 17 00:00:00 2001 From: Simon Charette Date: Fri, 29 Mar 2013 14:16:30 -0400 Subject: Fixed #20159 -- Mispelled attribute in multi-db documentation example. Thanks to sane4ka.sh at gmail for the report! --- docs/topics/db/multi-db.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/topics/db/multi-db.txt b/docs/topics/db/multi-db.txt index ae23c3d9f3..182099cc3a 100644 --- a/docs/topics/db/multi-db.txt +++ b/docs/topics/db/multi-db.txt @@ -324,7 +324,7 @@ from:: in the master/slave pool. """ db_list = ('master', 'slave1', 'slave2') - if obj1.state.db in db_list and obj2.state.db in db_list: + if obj1._state.db in db_list and obj2._state.db in db_list: return True return None -- cgit v1.3 From 391ec5a08582f9479366e38afb4cb0547c39f073 Mon Sep 17 00:00:00 2001 From: Baptiste Mispelon Date: Fri, 29 Mar 2013 18:59:34 +0100 Subject: Fixed #20160 -- Erronous reference to `module_name` in admin doc. Ref #19689. --- docs/ref/contrib/admin/index.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/ref/contrib/admin/index.txt b/docs/ref/contrib/admin/index.txt index bc09c36890..c567bc1db4 100644 --- a/docs/ref/contrib/admin/index.txt +++ b/docs/ref/contrib/admin/index.txt @@ -2159,5 +2159,5 @@ To allow easier reversing of the admin urls in templates, Django provides an The action in the examples above match the last part of the URL names for :class:`ModelAdmin` instances described above. The ``opts`` variable can be any -object which has an ``app_label`` and ``module_name`` and is usually supplied -by the admin views for the current model. +object which has an ``app_label`` and ``model_name`` attributes and is usually +supplied by the admin views for the current model. -- cgit v1.3 From 485c024567c83160b66a62d1bd3f152070808281 Mon Sep 17 00:00:00 2001 From: Nimesh Ghelani Date: Sat, 30 Mar 2013 01:01:56 +0530 Subject: Fixed #20150 -- Fixed an error in manager doc example --- docs/topics/db/managers.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/topics/db/managers.txt b/docs/topics/db/managers.txt index dc2f90c8a2..8762717e09 100644 --- a/docs/topics/db/managers.txt +++ b/docs/topics/db/managers.txt @@ -85,7 +85,7 @@ returns a list of all ``OpinionPoll`` objects, each with an extra objects = PollManager() class Response(models.Model): - poll = models.ForeignKey(Poll) + poll = models.ForeignKey(OpinionPoll) person_name = models.CharField(max_length=50) response = models.TextField() -- cgit v1.3 From 9916e69bf10ce80645c362edefa150ab70b532b4 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Fri, 29 Mar 2013 16:46:35 -0400 Subject: Fixed #15379 - Added "how to cite Django" to FAQ. Thanks Russ and Susan Tan. --- docs/faq/general.txt | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'docs') diff --git a/docs/faq/general.txt b/docs/faq/general.txt index dc569840d1..5db3141f82 100644 --- a/docs/faq/general.txt +++ b/docs/faq/general.txt @@ -188,3 +188,31 @@ If you want to find Django-capable people in your local area, try https://people.djangoproject.com/ . .. _developers for hire page: https://code.djangoproject.com/wiki/DevelopersForHire + +How do I cite Django? +--------------------- + +It's difficult to give an official citation format, for two reasons: citation +formats can vary wildly between publications, and citation standards for +software are still a matter of some debate. + +For example, `APA style`_, would dictate something like:: + + Django (Version 1.5) [Computer Software]. (2013). Retrieved from http://djangoproject.com. + +However, the only true guide is what your publisher will accept, so get a copy +of those guidelines and fill in the gaps as best you can. + +If your referencing style guide requires a publisher name, use "Django Software +Foundation". + +If you need a publishing location, use "Lawrence, Kansas". + +If you need a web address, use http://djangoproject.com. + +If you need a name, just use "Django", without any tagline. + +If you need a publication date, use the year of release of the version you're +referencing (e.g., 2013 for v1.5) + +.. _APA style: http://www.apastyle.org -- cgit v1.3 From c32fc79aa120a0a129680805aef6731c1c2c7aef Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Mon, 4 Mar 2013 06:05:11 -0500 Subject: Fixed #19582 - Added a static files tutorial. Thanks James Pic. --- docs/howto/static-files.txt | 508 -------------------------------------- docs/howto/static-files/index.txt | 508 ++++++++++++++++++++++++++++++++++++++ docs/index.txt | 3 +- docs/intro/index.txt | 1 + docs/intro/reusable-apps.txt | 12 +- docs/intro/tutorial05.txt | 11 +- docs/intro/tutorial06.txt | 125 ++++++++++ 7 files changed, 649 insertions(+), 519 deletions(-) delete mode 100644 docs/howto/static-files.txt create mode 100644 docs/howto/static-files/index.txt create mode 100644 docs/intro/tutorial06.txt (limited to 'docs') diff --git a/docs/howto/static-files.txt b/docs/howto/static-files.txt deleted file mode 100644 index 964b5fab61..0000000000 --- a/docs/howto/static-files.txt +++ /dev/null @@ -1,508 +0,0 @@ -===================== -Managing static files -===================== - -Django developers mostly concern themselves with the dynamic parts of web -applications -- the views and templates that render anew for each request. But -web applications have other parts: the static files (images, CSS, -Javascript, etc.) that are needed to render a complete web page. - -For small projects, this isn't a big deal, because you can just keep the -static files somewhere your web server can find it. However, in bigger -projects -- especially those comprised of multiple apps -- dealing with the -multiple sets of static files provided by each application starts to get -tricky. - -That's what ``django.contrib.staticfiles`` is for: it collects static files -from each of your applications (and any other places you specify) into a -single location that can easily be served in production. - -.. note:: - - If you've used the `django-staticfiles`_ third-party app before, then - ``django.contrib.staticfiles`` will look very familiar. That's because - they're essentially the same code: ``django.contrib.staticfiles`` started - its life as `django-staticfiles`_ and was merged into Django 1.3. - - If you're upgrading from ``django-staticfiles``, please see `Upgrading from - django-staticfiles`_, below, for a few minor changes you'll need to make. - -.. _django-staticfiles: http://pypi.python.org/pypi/django-staticfiles/ - -Using ``django.contrib.staticfiles`` -==================================== - -Basic usage ------------ - -1. Put your static files somewhere that ``staticfiles`` will find them. - - By default, this means within ``static/`` subdirectories of apps in your - :setting:`INSTALLED_APPS`. - - Your project will probably also have static assets that aren't tied to a - particular app. The :setting:`STATICFILES_DIRS` setting is a tuple of - filesystem directories to check when loading static files. It's a search - path that is by default empty. See the :setting:`STATICFILES_DIRS` docs - how to extend this list of additional paths. - - Additionally, see the documentation for the :setting:`STATICFILES_FINDERS` - setting for details on how ``staticfiles`` finds your files. - -2. Make sure that ``django.contrib.staticfiles`` is included in your - :setting:`INSTALLED_APPS`. - - For :ref:`local development`, if you are using - :ref:`runserver` or adding - :ref:`staticfiles_urlpatterns` to your - URLconf, you're done with the setup -- your static files will - automatically be served at the default (for - :djadmin:`newly created` projects) :setting:`STATIC_URL` - of ``/static/``. - -3. You'll probably need to refer to these files in your templates. The - easiest method is to use the included context processor which allows - template code like: - - .. code-block:: html+django - - Hi! - - See :ref:`staticfiles-in-templates` for more details, **including** an - alternate method using a template tag. - -Deploying static files in a nutshell ------------------------------------- - -When you're ready to move out of local development and deploy your project: - -1. Set the :setting:`STATIC_URL` setting to the public URL for your static - files (in most cases, the default value of ``/static/`` is just fine). - -2. Set the :setting:`STATIC_ROOT` setting to point to the filesystem path - you'd like your static files collected to when you use the - :djadmin:`collectstatic` management command. For example:: - - STATIC_ROOT = "/home/jacob/projects/mysite.com/sitestatic" - -3. Run the :djadmin:`collectstatic` management command:: - - ./manage.py collectstatic - - This'll churn through your static file storage and copy them into the - directory given by :setting:`STATIC_ROOT`. - -4. Deploy those files by configuring your webserver of choice to serve the - files in :setting:`STATIC_ROOT` at :setting:`STATIC_URL`. - - :ref:`staticfiles-production` covers some common deployment strategies - for static files. - -Those are the **basics**. For more details on common configuration options, -read on; for a detailed reference of the settings, commands, and other bits -included with the framework see -:doc:`the staticfiles reference `. - -.. note:: - - In previous versions of Django, it was common to place static assets in - :setting:`MEDIA_ROOT` along with user-uploaded files, and serve them both - at :setting:`MEDIA_URL`. Part of the purpose of introducing the - ``staticfiles`` app is to make it easier to keep static files separate - from user-uploaded files. - - For this reason, you need to make your :setting:`MEDIA_ROOT` and - :setting:`MEDIA_URL` different from your :setting:`STATIC_ROOT` and - :setting:`STATIC_URL`. You will need to arrange for serving of files in - :setting:`MEDIA_ROOT` yourself; ``staticfiles`` does not deal with - user-uploaded files at all. You can, however, use - :func:`django.views.static.serve` view for serving :setting:`MEDIA_ROOT` - in development; see :ref:`staticfiles-other-directories`. - -.. _staticfiles-in-templates: - -Referring to static files in templates -====================================== - -At some point, you'll probably need to link to static files in your templates. -You could, of course, simply hardcode the path to you assets in the templates: - -.. code-block:: html - - Sample image - -Of course, there are some serious problems with this: it doesn't work well in -development, and it makes it *very* hard to change where you've deployed your -static files. If, for example, you wanted to switch to using a content -delivery network (CDN), then you'd need to change more or less every single -template. - -A far better way is to use the value of the :setting:`STATIC_URL` setting -directly in your templates. This means that a switch of static files servers -only requires changing that single value. Much better! - -Django includes multiple built-in ways of using this setting in your -templates: a context processor and a template tag. - -With a context processor ------------------------- - -The included context processor is the easy way. Simply make sure -``'django.core.context_processors.static'`` is in your -:setting:`TEMPLATE_CONTEXT_PROCESSORS`. It's there by default, and if you're -editing that setting by hand it should look something like:: - - TEMPLATE_CONTEXT_PROCESSORS = ( - 'django.core.context_processors.debug', - 'django.core.context_processors.i18n', - 'django.core.context_processors.media', - 'django.core.context_processors.static', - 'django.contrib.auth.context_processors.auth', - 'django.contrib.messages.context_processors.messages', - ) - -Once that's done, you can refer to :setting:`STATIC_URL` in your templates: - -.. code-block:: html+django - - Hi! - -If ``{{ STATIC_URL }}`` isn't working in your template, you're probably not -using :class:`~django.template.RequestContext` when rendering the template. - -As a brief refresher, context processors add variables into the contexts of -every template. However, context processors require that you use -:class:`~django.template.RequestContext` when rendering templates. This happens -automatically if you're using a :doc:`generic view `, -but in views written by hand you'll need to explicitly use ``RequestContext`` -To see how that works, and to read more details, check out -:ref:`subclassing-context-requestcontext`. - -Another option is the :ttag:`get_static_prefix` template tag that is part of -Django's core. - -With a template tag -------------------- - -The more powerful tool is the :ttag:`static` template -tag. It builds the URL for the given relative path by using the configured -:setting:`STATICFILES_STORAGE` storage. - -.. code-block:: html+django - - {% load staticfiles %} - Hi! - -It is also able to consume standard context variables, e.g. assuming a -``user_stylesheet`` variable is passed to the template: - -.. code-block:: html+django - - {% load staticfiles %} - - -.. note:: - - There is also a template tag named :ttag:`static` in Django's core set - of :ref:`built in template tags` which has - the same argument signature but only uses `urlparse.urljoin()`_ with the - :setting:`STATIC_URL` setting and the given path. This has the - disadvantage of not being able to easily switch the storage backend - without changing the templates, so in doubt use the ``staticfiles`` - :ttag:`static` - template tag. - -.. _`urlparse.urljoin()`: http://docs.python.org/library/urlparse.html#urlparse.urljoin - -.. _staticfiles-development: - -Serving static files in development -=================================== - -The static files tools are mostly designed to help with getting static files -successfully deployed into production. This usually means a separate, -dedicated static file server, which is a lot of overhead to mess with when -developing locally. Thus, the ``staticfiles`` app ships with a -**quick and dirty helper view** that you can use to serve files locally in -development. - -This view is automatically enabled and will serve your static files at -:setting:`STATIC_URL` when you use the built-in -:ref:`runserver` management command. - -To enable this view if you are using some other server for local development, -you'll add a couple of lines to your URLconf. The first line goes at the top -of the file, and the last line at the bottom:: - - from django.contrib.staticfiles.urls import staticfiles_urlpatterns - - # ... the rest of your URLconf goes here ... - - urlpatterns += staticfiles_urlpatterns() - -This will inspect your :setting:`STATIC_URL` setting and wire up the view -to serve static files accordingly. Don't forget to set the -:setting:`STATICFILES_DIRS` setting appropriately to let -``django.contrib.staticfiles`` know where to look for files additionally to -files in app directories. - -.. warning:: - - This will only work if :setting:`DEBUG` is ``True``. - - That's because this view is **grossly inefficient** and probably - **insecure**. This is only intended for local development, and should - **never be used in production**. - - Additionally, when using ``staticfiles_urlpatterns`` your - :setting:`STATIC_URL` setting can't be empty or a full URL, such as - ``http://static.example.com/``. - -For a few more details on how the ``staticfiles`` can be used during -development, see :ref:`staticfiles-development-view`. - -.. _staticfiles-other-directories: - -Serving other directories -------------------------- - -.. currentmodule:: django.views.static -.. function:: serve(request, path, document_root, show_indexes=False) - -There may be files other than your project's static assets that, for -convenience, you'd like to have Django serve for you in local development. -The :func:`~django.views.static.serve` view can be used to serve any directory -you give it. (Again, this view is **not** hardened for production -use, and should be used only as a development aid; you should serve these files -in production using a real front-end webserver). - -The most likely example is user-uploaded content in :setting:`MEDIA_ROOT`. -``staticfiles`` is intended for static assets and has no built-in handling -for user-uploaded files, but you can have Django serve your -:setting:`MEDIA_ROOT` by appending something like this to your URLconf:: - - from django.conf import settings - - # ... the rest of your URLconf goes here ... - - if settings.DEBUG: - urlpatterns += patterns('', - url(r'^media/(?P.*)$', 'django.views.static.serve', { - 'document_root': settings.MEDIA_ROOT, - }), - ) - -Note, the snippet assumes your :setting:`MEDIA_URL` has a value of -``'/media/'``. This will call the :func:`~django.views.static.serve` view, -passing in the path from the URLconf and the (required) ``document_root`` -parameter. - -.. currentmodule:: django.conf.urls.static -.. function:: static(prefix, view='django.views.static.serve', **kwargs) - -Since it can become a bit cumbersome to define this URL pattern, Django -ships with a small URL helper function -:func:`~django.conf.urls.static.static` that takes as parameters the prefix -such as :setting:`MEDIA_URL` and a dotted path to a view, such as -``'django.views.static.serve'``. Any other function parameter will be -transparently passed to the view. - -An example for serving :setting:`MEDIA_URL` (``'/media/'``) during -development:: - - from django.conf import settings - from django.conf.urls.static import static - - urlpatterns = patterns('', - # ... the rest of your URLconf goes here ... - ) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) - -.. note:: - - This helper function will only be operational in debug mode and if - the given prefix is local (e.g. ``/static/``) and not a URL (e.g. - ``http://static.example.com/``). - -.. _staticfiles-production: - -Serving static files in production -================================== - -The basic outline of putting static files into production is simple: run the -:djadmin:`collectstatic` command when static files change, then arrange for -the collected static files directory (:setting:`STATIC_ROOT`) to be moved to -the static file server and served. - -Of course, as with all deployment tasks, the devil's in the details. Every -production setup will be a bit different, so you'll need to adapt the basic -outline to fit your needs. Below are a few common patterns that might help. - -Serving the app and your static files from the same server ----------------------------------------------------------- - -If you want to serve your static files from the same server that's already -serving your site, the basic outline gets modified to look something like: - -* Push your code up to the deployment server. -* On the server, run :djadmin:`collectstatic` to copy all the static files - into :setting:`STATIC_ROOT`. -* Point your web server at :setting:`STATIC_ROOT`. For example, here's - :ref:`how to do this under Apache and mod_wsgi `. - -You'll probably want to automate this process, especially if you've got -multiple web servers. There's any number of ways to do this automation, but -one option that many Django developers enjoy is `Fabric`__. - -__ http://fabfile.org/ - -Below, and in the following sections, we'll show off a few example fabfiles -(i.e. Fabric scripts) that automate these file deployment options. The syntax -of a fabfile is fairly straightforward but won't be covered here; consult -`Fabric's documentation`__, for a complete explanation of the syntax.. - -__ http://docs.fabfile.org/ - -So, a fabfile to deploy static files to a couple of web servers might look -something like:: - - from fabric.api import * - - # Hosts to deploy onto - env.hosts = ['www1.example.com', 'www2.example.com'] - - # Where your project code lives on the server - env.project_root = '/home/www/myproject' - - def deploy_static(): - with cd(env.project_root): - run('./manage.py collectstatic -v0 --noinput') - -Serving static files from a dedicated server --------------------------------------------- - -Most larger Django apps use a separate Web server -- i.e., one that's not also -running Django -- for serving static files. This server often runs a different -type of web server -- faster but less full-featured. Some good choices are: - -* lighttpd_ -* Nginx_ -* TUX_ -* Cherokee_ -* A stripped-down version of Apache_ - -.. _lighttpd: http://www.lighttpd.net/ -.. _Nginx: http://wiki.nginx.org/Main -.. _TUX: http://en.wikipedia.org/wiki/TUX_web_server -.. _Apache: http://httpd.apache.org/ -.. _Cherokee: http://www.cherokee-project.com/ - -Configuring these servers is out of scope of this document; check each -server's respective documentation for instructions. - -Since your static file server won't be running Django, you'll need to modify -the deployment strategy to look something like: - -* When your static files change, run :djadmin:`collectstatic` locally. -* Push your local :setting:`STATIC_ROOT` up to the static file server - into the directory that's being served. ``rsync`` is a good - choice for this step since it only needs to transfer the - bits of static files that have changed. - -Here's how this might look in a fabfile:: - - from fabric.api import * - from fabric.contrib import project - - # Where the static files get collected locally - env.local_static_root = '/tmp/static' - - # Where the static files should go remotely - env.remote_static_root = '/home/www/static.example.com' - - @roles('static') - def deploy_static(): - local('./manage.py collectstatic') - project.rsync_project( - remote_dir = env.remote_static_root, - local_dir = env.local_static_root, - delete = True - ) - -.. _staticfiles-from-cdn: - -Serving static files from a cloud service or CDN ------------------------------------------------- - -Another common tactic is to serve static files from a cloud storage provider -like Amazon's S3__ and/or a CDN (content delivery network). This lets you -ignore the problems of serving static files, and can often make for -faster-loading webpages (especially when using a CDN). - -When using these services, the basic workflow would look a bit like the above, -except that instead of using ``rsync`` to transfer your static files to the -server you'd need to transfer the static files to the storage provider or CDN. - -There's any number of ways you might do this, but if the provider has an API a -:doc:`custom file storage backend ` will make the -process incredibly simple. If you've written or are using a 3rd party custom -storage backend, you can tell :djadmin:`collectstatic` to use it by setting -:setting:`STATICFILES_STORAGE` to the storage engine. - -For example, if you've written an S3 storage backend in -``myproject.storage.S3Storage`` you could use it with:: - - STATICFILES_STORAGE = 'myproject.storage.S3Storage' - -Once that's done, all you have to do is run :djadmin:`collectstatic` and your -static files would be pushed through your storage package up to S3. If you -later needed to switch to a different storage provider, it could be as simple -as changing your :setting:`STATICFILES_STORAGE` setting. - -For details on how you'd write one of these backends, -:doc:`/howto/custom-file-storage`. - -.. seealso:: - - The `django-storages`__ project is a 3rd party app that provides many - storage backends for many common file storage APIs (including `S3`__). - -__ http://s3.amazonaws.com/ -__ http://code.larlet.fr/django-storages/ -__ http://django-storages.readthedocs.org/en/latest/backends/amazon-S3.html - -Upgrading from ``django-staticfiles`` -===================================== - -``django.contrib.staticfiles`` began its life as `django-staticfiles`_. If -you're upgrading from `django-staticfiles`_ older than 1.0 (e.g. 0.3.4) to -``django.contrib.staticfiles``, you'll need to make a few changes: - -* Application files should now live in a ``static`` directory in each app - (`django-staticfiles`_ used the name ``media``, which was slightly - confusing). - -* The management commands ``build_static`` and ``resolve_static`` are now - called :djadmin:`collectstatic` and :djadmin:`findstatic`. - -* The settings ``STATICFILES_PREPEND_LABEL_APPS``, - ``STATICFILES_MEDIA_DIRNAMES`` and ``STATICFILES_EXCLUDED_APPS`` were - removed. - -* The setting ``STATICFILES_RESOLVERS`` was removed, and replaced by the - new :setting:`STATICFILES_FINDERS`. - -* The default for :setting:`STATICFILES_STORAGE` was renamed from - ``staticfiles.storage.StaticFileStorage`` to - ``staticfiles.storage.StaticFilesStorage`` - -* If using :ref:`runserver` for local development - (and the :setting:`DEBUG` setting is ``True``), you no longer need to add - anything to your URLconf for serving static files in development. - -Learn more -========== - -This document has covered the basics and some common usage patterns. For -complete details on all the settings, commands, template tags, and other pieces -include in ``django.contrib.staticfiles``, see :doc:`the staticfiles reference -`. diff --git a/docs/howto/static-files/index.txt b/docs/howto/static-files/index.txt new file mode 100644 index 0000000000..964b5fab61 --- /dev/null +++ b/docs/howto/static-files/index.txt @@ -0,0 +1,508 @@ +===================== +Managing static files +===================== + +Django developers mostly concern themselves with the dynamic parts of web +applications -- the views and templates that render anew for each request. But +web applications have other parts: the static files (images, CSS, +Javascript, etc.) that are needed to render a complete web page. + +For small projects, this isn't a big deal, because you can just keep the +static files somewhere your web server can find it. However, in bigger +projects -- especially those comprised of multiple apps -- dealing with the +multiple sets of static files provided by each application starts to get +tricky. + +That's what ``django.contrib.staticfiles`` is for: it collects static files +from each of your applications (and any other places you specify) into a +single location that can easily be served in production. + +.. note:: + + If you've used the `django-staticfiles`_ third-party app before, then + ``django.contrib.staticfiles`` will look very familiar. That's because + they're essentially the same code: ``django.contrib.staticfiles`` started + its life as `django-staticfiles`_ and was merged into Django 1.3. + + If you're upgrading from ``django-staticfiles``, please see `Upgrading from + django-staticfiles`_, below, for a few minor changes you'll need to make. + +.. _django-staticfiles: http://pypi.python.org/pypi/django-staticfiles/ + +Using ``django.contrib.staticfiles`` +==================================== + +Basic usage +----------- + +1. Put your static files somewhere that ``staticfiles`` will find them. + + By default, this means within ``static/`` subdirectories of apps in your + :setting:`INSTALLED_APPS`. + + Your project will probably also have static assets that aren't tied to a + particular app. The :setting:`STATICFILES_DIRS` setting is a tuple of + filesystem directories to check when loading static files. It's a search + path that is by default empty. See the :setting:`STATICFILES_DIRS` docs + how to extend this list of additional paths. + + Additionally, see the documentation for the :setting:`STATICFILES_FINDERS` + setting for details on how ``staticfiles`` finds your files. + +2. Make sure that ``django.contrib.staticfiles`` is included in your + :setting:`INSTALLED_APPS`. + + For :ref:`local development`, if you are using + :ref:`runserver` or adding + :ref:`staticfiles_urlpatterns` to your + URLconf, you're done with the setup -- your static files will + automatically be served at the default (for + :djadmin:`newly created` projects) :setting:`STATIC_URL` + of ``/static/``. + +3. You'll probably need to refer to these files in your templates. The + easiest method is to use the included context processor which allows + template code like: + + .. code-block:: html+django + + Hi! + + See :ref:`staticfiles-in-templates` for more details, **including** an + alternate method using a template tag. + +Deploying static files in a nutshell +------------------------------------ + +When you're ready to move out of local development and deploy your project: + +1. Set the :setting:`STATIC_URL` setting to the public URL for your static + files (in most cases, the default value of ``/static/`` is just fine). + +2. Set the :setting:`STATIC_ROOT` setting to point to the filesystem path + you'd like your static files collected to when you use the + :djadmin:`collectstatic` management command. For example:: + + STATIC_ROOT = "/home/jacob/projects/mysite.com/sitestatic" + +3. Run the :djadmin:`collectstatic` management command:: + + ./manage.py collectstatic + + This'll churn through your static file storage and copy them into the + directory given by :setting:`STATIC_ROOT`. + +4. Deploy those files by configuring your webserver of choice to serve the + files in :setting:`STATIC_ROOT` at :setting:`STATIC_URL`. + + :ref:`staticfiles-production` covers some common deployment strategies + for static files. + +Those are the **basics**. For more details on common configuration options, +read on; for a detailed reference of the settings, commands, and other bits +included with the framework see +:doc:`the staticfiles reference `. + +.. note:: + + In previous versions of Django, it was common to place static assets in + :setting:`MEDIA_ROOT` along with user-uploaded files, and serve them both + at :setting:`MEDIA_URL`. Part of the purpose of introducing the + ``staticfiles`` app is to make it easier to keep static files separate + from user-uploaded files. + + For this reason, you need to make your :setting:`MEDIA_ROOT` and + :setting:`MEDIA_URL` different from your :setting:`STATIC_ROOT` and + :setting:`STATIC_URL`. You will need to arrange for serving of files in + :setting:`MEDIA_ROOT` yourself; ``staticfiles`` does not deal with + user-uploaded files at all. You can, however, use + :func:`django.views.static.serve` view for serving :setting:`MEDIA_ROOT` + in development; see :ref:`staticfiles-other-directories`. + +.. _staticfiles-in-templates: + +Referring to static files in templates +====================================== + +At some point, you'll probably need to link to static files in your templates. +You could, of course, simply hardcode the path to you assets in the templates: + +.. code-block:: html + + Sample image + +Of course, there are some serious problems with this: it doesn't work well in +development, and it makes it *very* hard to change where you've deployed your +static files. If, for example, you wanted to switch to using a content +delivery network (CDN), then you'd need to change more or less every single +template. + +A far better way is to use the value of the :setting:`STATIC_URL` setting +directly in your templates. This means that a switch of static files servers +only requires changing that single value. Much better! + +Django includes multiple built-in ways of using this setting in your +templates: a context processor and a template tag. + +With a context processor +------------------------ + +The included context processor is the easy way. Simply make sure +``'django.core.context_processors.static'`` is in your +:setting:`TEMPLATE_CONTEXT_PROCESSORS`. It's there by default, and if you're +editing that setting by hand it should look something like:: + + TEMPLATE_CONTEXT_PROCESSORS = ( + 'django.core.context_processors.debug', + 'django.core.context_processors.i18n', + 'django.core.context_processors.media', + 'django.core.context_processors.static', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ) + +Once that's done, you can refer to :setting:`STATIC_URL` in your templates: + +.. code-block:: html+django + + Hi! + +If ``{{ STATIC_URL }}`` isn't working in your template, you're probably not +using :class:`~django.template.RequestContext` when rendering the template. + +As a brief refresher, context processors add variables into the contexts of +every template. However, context processors require that you use +:class:`~django.template.RequestContext` when rendering templates. This happens +automatically if you're using a :doc:`generic view `, +but in views written by hand you'll need to explicitly use ``RequestContext`` +To see how that works, and to read more details, check out +:ref:`subclassing-context-requestcontext`. + +Another option is the :ttag:`get_static_prefix` template tag that is part of +Django's core. + +With a template tag +------------------- + +The more powerful tool is the :ttag:`static` template +tag. It builds the URL for the given relative path by using the configured +:setting:`STATICFILES_STORAGE` storage. + +.. code-block:: html+django + + {% load staticfiles %} + Hi! + +It is also able to consume standard context variables, e.g. assuming a +``user_stylesheet`` variable is passed to the template: + +.. code-block:: html+django + + {% load staticfiles %} + + +.. note:: + + There is also a template tag named :ttag:`static` in Django's core set + of :ref:`built in template tags` which has + the same argument signature but only uses `urlparse.urljoin()`_ with the + :setting:`STATIC_URL` setting and the given path. This has the + disadvantage of not being able to easily switch the storage backend + without changing the templates, so in doubt use the ``staticfiles`` + :ttag:`static` + template tag. + +.. _`urlparse.urljoin()`: http://docs.python.org/library/urlparse.html#urlparse.urljoin + +.. _staticfiles-development: + +Serving static files in development +=================================== + +The static files tools are mostly designed to help with getting static files +successfully deployed into production. This usually means a separate, +dedicated static file server, which is a lot of overhead to mess with when +developing locally. Thus, the ``staticfiles`` app ships with a +**quick and dirty helper view** that you can use to serve files locally in +development. + +This view is automatically enabled and will serve your static files at +:setting:`STATIC_URL` when you use the built-in +:ref:`runserver` management command. + +To enable this view if you are using some other server for local development, +you'll add a couple of lines to your URLconf. The first line goes at the top +of the file, and the last line at the bottom:: + + from django.contrib.staticfiles.urls import staticfiles_urlpatterns + + # ... the rest of your URLconf goes here ... + + urlpatterns += staticfiles_urlpatterns() + +This will inspect your :setting:`STATIC_URL` setting and wire up the view +to serve static files accordingly. Don't forget to set the +:setting:`STATICFILES_DIRS` setting appropriately to let +``django.contrib.staticfiles`` know where to look for files additionally to +files in app directories. + +.. warning:: + + This will only work if :setting:`DEBUG` is ``True``. + + That's because this view is **grossly inefficient** and probably + **insecure**. This is only intended for local development, and should + **never be used in production**. + + Additionally, when using ``staticfiles_urlpatterns`` your + :setting:`STATIC_URL` setting can't be empty or a full URL, such as + ``http://static.example.com/``. + +For a few more details on how the ``staticfiles`` can be used during +development, see :ref:`staticfiles-development-view`. + +.. _staticfiles-other-directories: + +Serving other directories +------------------------- + +.. currentmodule:: django.views.static +.. function:: serve(request, path, document_root, show_indexes=False) + +There may be files other than your project's static assets that, for +convenience, you'd like to have Django serve for you in local development. +The :func:`~django.views.static.serve` view can be used to serve any directory +you give it. (Again, this view is **not** hardened for production +use, and should be used only as a development aid; you should serve these files +in production using a real front-end webserver). + +The most likely example is user-uploaded content in :setting:`MEDIA_ROOT`. +``staticfiles`` is intended for static assets and has no built-in handling +for user-uploaded files, but you can have Django serve your +:setting:`MEDIA_ROOT` by appending something like this to your URLconf:: + + from django.conf import settings + + # ... the rest of your URLconf goes here ... + + if settings.DEBUG: + urlpatterns += patterns('', + url(r'^media/(?P.*)$', 'django.views.static.serve', { + 'document_root': settings.MEDIA_ROOT, + }), + ) + +Note, the snippet assumes your :setting:`MEDIA_URL` has a value of +``'/media/'``. This will call the :func:`~django.views.static.serve` view, +passing in the path from the URLconf and the (required) ``document_root`` +parameter. + +.. currentmodule:: django.conf.urls.static +.. function:: static(prefix, view='django.views.static.serve', **kwargs) + +Since it can become a bit cumbersome to define this URL pattern, Django +ships with a small URL helper function +:func:`~django.conf.urls.static.static` that takes as parameters the prefix +such as :setting:`MEDIA_URL` and a dotted path to a view, such as +``'django.views.static.serve'``. Any other function parameter will be +transparently passed to the view. + +An example for serving :setting:`MEDIA_URL` (``'/media/'``) during +development:: + + from django.conf import settings + from django.conf.urls.static import static + + urlpatterns = patterns('', + # ... the rest of your URLconf goes here ... + ) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + +.. note:: + + This helper function will only be operational in debug mode and if + the given prefix is local (e.g. ``/static/``) and not a URL (e.g. + ``http://static.example.com/``). + +.. _staticfiles-production: + +Serving static files in production +================================== + +The basic outline of putting static files into production is simple: run the +:djadmin:`collectstatic` command when static files change, then arrange for +the collected static files directory (:setting:`STATIC_ROOT`) to be moved to +the static file server and served. + +Of course, as with all deployment tasks, the devil's in the details. Every +production setup will be a bit different, so you'll need to adapt the basic +outline to fit your needs. Below are a few common patterns that might help. + +Serving the app and your static files from the same server +---------------------------------------------------------- + +If you want to serve your static files from the same server that's already +serving your site, the basic outline gets modified to look something like: + +* Push your code up to the deployment server. +* On the server, run :djadmin:`collectstatic` to copy all the static files + into :setting:`STATIC_ROOT`. +* Point your web server at :setting:`STATIC_ROOT`. For example, here's + :ref:`how to do this under Apache and mod_wsgi `. + +You'll probably want to automate this process, especially if you've got +multiple web servers. There's any number of ways to do this automation, but +one option that many Django developers enjoy is `Fabric`__. + +__ http://fabfile.org/ + +Below, and in the following sections, we'll show off a few example fabfiles +(i.e. Fabric scripts) that automate these file deployment options. The syntax +of a fabfile is fairly straightforward but won't be covered here; consult +`Fabric's documentation`__, for a complete explanation of the syntax.. + +__ http://docs.fabfile.org/ + +So, a fabfile to deploy static files to a couple of web servers might look +something like:: + + from fabric.api import * + + # Hosts to deploy onto + env.hosts = ['www1.example.com', 'www2.example.com'] + + # Where your project code lives on the server + env.project_root = '/home/www/myproject' + + def deploy_static(): + with cd(env.project_root): + run('./manage.py collectstatic -v0 --noinput') + +Serving static files from a dedicated server +-------------------------------------------- + +Most larger Django apps use a separate Web server -- i.e., one that's not also +running Django -- for serving static files. This server often runs a different +type of web server -- faster but less full-featured. Some good choices are: + +* lighttpd_ +* Nginx_ +* TUX_ +* Cherokee_ +* A stripped-down version of Apache_ + +.. _lighttpd: http://www.lighttpd.net/ +.. _Nginx: http://wiki.nginx.org/Main +.. _TUX: http://en.wikipedia.org/wiki/TUX_web_server +.. _Apache: http://httpd.apache.org/ +.. _Cherokee: http://www.cherokee-project.com/ + +Configuring these servers is out of scope of this document; check each +server's respective documentation for instructions. + +Since your static file server won't be running Django, you'll need to modify +the deployment strategy to look something like: + +* When your static files change, run :djadmin:`collectstatic` locally. +* Push your local :setting:`STATIC_ROOT` up to the static file server + into the directory that's being served. ``rsync`` is a good + choice for this step since it only needs to transfer the + bits of static files that have changed. + +Here's how this might look in a fabfile:: + + from fabric.api import * + from fabric.contrib import project + + # Where the static files get collected locally + env.local_static_root = '/tmp/static' + + # Where the static files should go remotely + env.remote_static_root = '/home/www/static.example.com' + + @roles('static') + def deploy_static(): + local('./manage.py collectstatic') + project.rsync_project( + remote_dir = env.remote_static_root, + local_dir = env.local_static_root, + delete = True + ) + +.. _staticfiles-from-cdn: + +Serving static files from a cloud service or CDN +------------------------------------------------ + +Another common tactic is to serve static files from a cloud storage provider +like Amazon's S3__ and/or a CDN (content delivery network). This lets you +ignore the problems of serving static files, and can often make for +faster-loading webpages (especially when using a CDN). + +When using these services, the basic workflow would look a bit like the above, +except that instead of using ``rsync`` to transfer your static files to the +server you'd need to transfer the static files to the storage provider or CDN. + +There's any number of ways you might do this, but if the provider has an API a +:doc:`custom file storage backend ` will make the +process incredibly simple. If you've written or are using a 3rd party custom +storage backend, you can tell :djadmin:`collectstatic` to use it by setting +:setting:`STATICFILES_STORAGE` to the storage engine. + +For example, if you've written an S3 storage backend in +``myproject.storage.S3Storage`` you could use it with:: + + STATICFILES_STORAGE = 'myproject.storage.S3Storage' + +Once that's done, all you have to do is run :djadmin:`collectstatic` and your +static files would be pushed through your storage package up to S3. If you +later needed to switch to a different storage provider, it could be as simple +as changing your :setting:`STATICFILES_STORAGE` setting. + +For details on how you'd write one of these backends, +:doc:`/howto/custom-file-storage`. + +.. seealso:: + + The `django-storages`__ project is a 3rd party app that provides many + storage backends for many common file storage APIs (including `S3`__). + +__ http://s3.amazonaws.com/ +__ http://code.larlet.fr/django-storages/ +__ http://django-storages.readthedocs.org/en/latest/backends/amazon-S3.html + +Upgrading from ``django-staticfiles`` +===================================== + +``django.contrib.staticfiles`` began its life as `django-staticfiles`_. If +you're upgrading from `django-staticfiles`_ older than 1.0 (e.g. 0.3.4) to +``django.contrib.staticfiles``, you'll need to make a few changes: + +* Application files should now live in a ``static`` directory in each app + (`django-staticfiles`_ used the name ``media``, which was slightly + confusing). + +* The management commands ``build_static`` and ``resolve_static`` are now + called :djadmin:`collectstatic` and :djadmin:`findstatic`. + +* The settings ``STATICFILES_PREPEND_LABEL_APPS``, + ``STATICFILES_MEDIA_DIRNAMES`` and ``STATICFILES_EXCLUDED_APPS`` were + removed. + +* The setting ``STATICFILES_RESOLVERS`` was removed, and replaced by the + new :setting:`STATICFILES_FINDERS`. + +* The default for :setting:`STATICFILES_STORAGE` was renamed from + ``staticfiles.storage.StaticFileStorage`` to + ``staticfiles.storage.StaticFilesStorage`` + +* If using :ref:`runserver` for local development + (and the :setting:`DEBUG` setting is ``True``), you no longer need to add + anything to your URLconf for serving static files in development. + +Learn more +========== + +This document has covered the basics and some common usage patterns. For +complete details on all the settings, commands, template tags, and other pieces +include in ``django.contrib.staticfiles``, see :doc:`the staticfiles reference +`. diff --git a/docs/index.txt b/docs/index.txt index 197856ea4b..8823888e7b 100644 --- a/docs/index.txt +++ b/docs/index.txt @@ -45,7 +45,8 @@ Are you new to Django or to programming? This is the place to start! :doc:`Part 2 ` | :doc:`Part 3 ` | :doc:`Part 4 ` | - :doc:`Part 5 ` + :doc:`Part 5 ` | + :doc:`Part 6 ` * **Advanced Tutorials:** :doc:`How to write reusable apps ` | diff --git a/docs/intro/index.txt b/docs/intro/index.txt index ea6a3c4d29..6c62eb547c 100644 --- a/docs/intro/index.txt +++ b/docs/intro/index.txt @@ -14,6 +14,7 @@ place: read this material to quickly get up and running. tutorial03 tutorial04 tutorial05 + tutorial06 reusable-apps whatsnext contributing diff --git a/docs/intro/reusable-apps.txt b/docs/intro/reusable-apps.txt index 0e0c9d2ba5..1e0f1da0c5 100644 --- a/docs/intro/reusable-apps.txt +++ b/docs/intro/reusable-apps.txt @@ -2,11 +2,11 @@ Advanced tutorial: How to write reusable apps ============================================= -This advanced tutorial begins where :doc:`Tutorial 5 ` left -off. We'll be turning our Web-poll into a standalone Python package you can -reuse in new projects and share with other people. +This advanced tutorial begins where :doc:`Tutorial 6 ` +left off. We'll be turning our Web-poll into a standalone Python package +you can reuse in new projects and share with other people. -If you haven't recently completed Tutorials 1–5, we encourage you to review +If you haven't recently completed Tutorials 1–6, we encourage you to review these so that your example project matches the one described below. Reusability matters @@ -67,6 +67,10 @@ After the previous tutorials, our project should look like this:: admin.py models.py tests.py + static/ + style.css + images/ + background.gif templates/ polls/ detail.html diff --git a/docs/intro/tutorial05.txt b/docs/intro/tutorial05.txt index 7fb30fbb88..3b0a95f253 100644 --- a/docs/intro/tutorial05.txt +++ b/docs/intro/tutorial05.txt @@ -640,10 +640,9 @@ information about testing. What's next? ============ -The beginner tutorial ends here for the time being. In the meantime, you might -want to check out some pointers on :doc:`where to go from here -`. +For full details on testing, see :doc:`Testing in Django +`. -If you are familiar with Python packaging and interested in learning how to -turn polls into a "reusable app", check out :doc:`Advanced tutorial: How to -write reusable apps`. +When you're comfortable with testing Django views, read +:doc:`part 6 of this tutorial` to learn about +static files management. diff --git a/docs/intro/tutorial06.txt b/docs/intro/tutorial06.txt new file mode 100644 index 0000000000..28e1cabd96 --- /dev/null +++ b/docs/intro/tutorial06.txt @@ -0,0 +1,125 @@ +===================================== +Writing your first Django app, part 6 +===================================== + +This tutorial begins where :doc:`Tutorial 5 ` left off. +We've built a tested Web-poll application, and we'll now add a stylesheet and +an image. + +Aside from the HTML generated by the server, web applications generally need +to serve additional files — such as images, JavaScript, or CSS — necessary to +render the complete web page. In Django, we refer to these files as "static +files". + +For small projects, this isn't a big deal, because you can just keep the +static files somewhere your web server can find it. However, in bigger +projects -- especially those comprised of multiple apps -- dealing with the +multiple sets of static files provided by each application starts to get +tricky. + +That's what ``django.contrib.staticfiles`` is for: it collects static files +from each of your applications (and any other places you specify) into a +single location that can easily be served in production. + +Customize your *app's* look and feel +==================================== + +First, create a directory called ``static`` in your ``polls`` directory. Django +will look for static files there, similarly to how Django finds templates +inside ``polls/templates/``. + +Django's :setting:`STATICFILES_FINDERS` setting contains a list +of finders that know how to discover static files from various +sources. One of the defaults is ``AppDirectoriesFinder`` which +looks for a "static" subdirectory in each of the +:setting:`INSTALLED_APPS`, like the one in ``polls`` we just created. The admin +site uses the same directory structure for its static files. + +Within the ``static`` directory you have just created, create another directory +called ``polls`` and within that create a file called ``style.css``. In other +words, your stylesheet should be at ``polls/static/polls/style.css``. Because +of how the ``AppDirectoriesFinder`` staticfile finder works, you can refer to +this static file in Django simply as ``polls/style.css``, similar to how you +reference the path for templates. + +.. admonition:: Static file namespacing + + Just like templates, we *might* be able to get away with putting our static + files directly in ``polls/static`` (rather than creating another ``polls`` + subdirectory), but it would actually be a bad idea. Django will choose the + first static file it finds whose name matches, and if you had a static file + with the same name in a *different* application, Django would be unable to + distinguish between them. We need to be able to point Django at the right + one, and the easiest way to ensure this is by *namespacing* them. That is, + by putting those static files inside *another* directory named for the + application itself. + +Put the following code in that stylesheet (``polls/static/polls/style.css``): + +.. code-block:: css + + li a { + color: green; + } + +Next, add the following at the top of ``polls/templates/polls/index.html``: + +.. code-block:: html+django + + {% load staticfiles %} + + + +``{% load staticfiles %}`` loads the :ttag:`{% static %} ` +template tag from the ``staticfiles`` template library. The ``{% static %}`` +template tag generates the absolute URL of the static file. + +That's all you need to do for development. Reload +``http://localhost:8000/polls/`` and you should see that the poll links are +green (Django style!) which means that your stylesheet was properly loaded. + +Adding a background-image +========================= + +Next, we'll create a subdirectory for images. Create an ``images`` subdirectory +in the ``polls/static/polls/`` directory. Inside this directory, put an image +called ``background.gif``. In other words, put your image in +``polls/static/polls/images/background.gif``. + +Then, add to your stylesheet (``polls/static/polls/style.css``): + +.. code-block:: css + + body { + background: white url("images/background.gif") no-repeat right bottom; + } + +Reload ``http://localhost:8000/polls/`` and you should see the background +loaded in the bottom right of the screen. + +.. warning:: + + Of course the ``{% static %}`` template tag is not available for use in + static files like your stylesheet which aren't generated by Django. You + should always use **relative paths** to link your static files between each + other, because then you can change :setting:`STATIC_URL` (used by the + :ttag:`static` template tag to generate its URLs) without having to modify + a bunch of paths in your static files as well. + +These are the **basics**. For more details on settings and other bits included +with the framework see +:doc:`the static files howto ` and the +:doc:`the staticfiles reference `. :doc:`Deploying +static files ` discusses how to use static +files on a real server. + +What's next? +============ + +The beginner tutorial ends here for the time being. In the meantime, you might +want to check out some pointers on :doc:`where to go from here +`. + +If you are familiar with Python packaging and interested in learning how to +turn polls into a "reusable app", check out :doc:`Advanced tutorial: How to +write reusable apps`. -- cgit v1.3 From 6c730da1f6d34f5c38fa1d990d368286e016546c Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Thu, 7 Mar 2013 14:15:39 -0500 Subject: Fixed #19897 - Updated static files howto. Thanks Jan Murre, Reinout van Rees and Wim Feijen, plus Remco Wendt for reviewing. --- docs/howto/deployment/checklist.txt | 2 +- docs/howto/index.txt | 3 +- docs/howto/static-files/deployment.txt | 159 ++++++++++ docs/howto/static-files/index.txt | 527 +++++---------------------------- docs/index.txt | 3 +- docs/intro/overview.txt | 2 +- docs/intro/tutorial06.txt | 2 +- docs/ref/contrib/staticfiles.txt | 29 +- docs/ref/django-admin.txt | 7 +- docs/ref/index.txt | 1 + docs/ref/settings.txt | 2 +- docs/ref/templates/builtins.txt | 6 +- docs/ref/urls.txt | 14 + docs/ref/views.txt | 48 +++ docs/releases/1.3-alpha-1.txt | 2 +- docs/releases/1.3-beta-1.txt | 2 +- docs/releases/1.3.txt | 2 +- docs/releases/1.4-alpha-1.txt | 2 +- docs/releases/1.4-beta-1.txt | 2 +- docs/releases/1.4.txt | 2 +- docs/topics/files.txt | 2 +- docs/topics/testing/overview.txt | 2 +- 22 files changed, 340 insertions(+), 481 deletions(-) create mode 100644 docs/howto/static-files/deployment.txt create mode 100644 docs/ref/views.txt (limited to 'docs') diff --git a/docs/howto/deployment/checklist.txt b/docs/howto/deployment/checklist.txt index 72c15b7807..b092048870 100644 --- a/docs/howto/deployment/checklist.txt +++ b/docs/howto/deployment/checklist.txt @@ -113,7 +113,7 @@ Static files are automatically served by the development server. In production, you must define a :setting:`STATIC_ROOT` directory where :djadmin:`collectstatic` will copy them. -See :doc:`/howto/static-files` for more information. +See :doc:`/howto/static-files/index` for more information. :setting:`MEDIA_ROOT` and :setting:`MEDIA_URL` ---------------------------------------------- diff --git a/docs/howto/index.txt b/docs/howto/index.txt index d39222be26..9d5b067a82 100644 --- a/docs/howto/index.txt +++ b/docs/howto/index.txt @@ -21,7 +21,8 @@ you quickly accomplish common tasks. legacy-databases outputting-csv outputting-pdf - static-files + static-files/index + static-files/deployment .. seealso:: diff --git a/docs/howto/static-files/deployment.txt b/docs/howto/static-files/deployment.txt new file mode 100644 index 0000000000..865a5c6b41 --- /dev/null +++ b/docs/howto/static-files/deployment.txt @@ -0,0 +1,159 @@ +====================== +Deploying static files +====================== + +.. seealso:: + + For an introduction to the use of :mod:`django.contrib.staticfiles`, see + :doc:`/howto/static-files/index`. + +.. _staticfiles-production: + +Serving static files in production +================================== + +The basic outline of putting static files into production is simple: run the +:djadmin:`collectstatic` command when static files change, then arrange for +the collected static files directory (:setting:`STATIC_ROOT`) to be moved to +the static file server and served. Depending on :setting:`STATICFILES_STORAGE`, +files may need to be moved to a new location manually or the :func:`post_process +` method +of the ``Storage`` class might take care of that. + +Of course, as with all deployment tasks, the devil's in the details. Every +production setup will be a bit different, so you'll need to adapt the basic +outline to fit your needs. Below are a few common patterns that might help. + +Serving the site and your static files from the same server +----------------------------------------------------------- + +If you want to serve your static files from the same server that's already +serving your site, the process may look something like: + +* Push your code up to the deployment server. +* On the server, run :djadmin:`collectstatic` to copy all the static files + into :setting:`STATIC_ROOT`. +* Configure your web server to serve the files in :setting:`STATIC_ROOT` + under the URL :setting:`STATIC_URL`. For example, here's + :ref:`how to do this with Apache and mod_wsgi `. + +You'll probably want to automate this process, especially if you've got +multiple web servers. There's any number of ways to do this automation, but +one option that many Django developers enjoy is `Fabric +`_. + +Below, and in the following sections, we'll show off a few example fabfiles +(i.e. Fabric scripts) that automate these file deployment options. The syntax +of a fabfile is fairly straightforward but won't be covered here; consult +`Fabric's documentation `_, for a complete +explanation of the syntax. + +So, a fabfile to deploy static files to a couple of web servers might look +something like:: + + from fabric.api import * + + # Hosts to deploy onto + env.hosts = ['www1.example.com', 'www2.example.com'] + + # Where your project code lives on the server + env.project_root = '/home/www/myproject' + + def deploy_static(): + with cd(env.project_root): + run('./manage.py collectstatic -v0 --noinput') + +Serving static files from a dedicated server +-------------------------------------------- + +Most larger Django sites use a separate Web server -- i.e., one that's not also +running Django -- for serving static files. This server often runs a different +type of web server -- faster but less full-featured. Some common choices are: + +* lighttpd_ +* Nginx_ +* TUX_ +* Cherokee_ +* A stripped-down version of Apache_ + +.. _lighttpd: http://www.lighttpd.net/ +.. _Nginx: http://wiki.nginx.org/Main +.. _TUX: http://en.wikipedia.org/wiki/TUX_web_server +.. _Apache: http://httpd.apache.org/ +.. _Cherokee: http://www.cherokee-project.com/ + +Configuring these servers is out of scope of this document; check each +server's respective documentation for instructions. + +Since your static file server won't be running Django, you'll need to modify +the deployment strategy to look something like: + +* When your static files change, run :djadmin:`collectstatic` locally. + +* Push your local :setting:`STATIC_ROOT` up to the static file server into the + directory that's being served. `rsync `_ is a + common choice for this step since it only needs to transfer the bits of + static files that have changed. + +Here's how this might look in a fabfile:: + + from fabric.api import * + from fabric.contrib import project + + # Where the static files get collected locally. Your STATIC_ROOT setting. + env.local_static_root = '/tmp/static' + + # Where the static files should go remotely + env.remote_static_root = '/home/www/static.example.com' + + @roles('static') + def deploy_static(): + local('./manage.py collectstatic') + project.rsync_project( + remote_dir = env.remote_static_root, + local_dir = env.local_static_root, + delete = True + ) + +.. _staticfiles-from-cdn: + +Serving static files from a cloud service or CDN +------------------------------------------------ + +Another common tactic is to serve static files from a cloud storage provider +like Amazon's S3 and/or a CDN (content delivery network). This lets you +ignore the problems of serving static files and can often make for +faster-loading webpages (especially when using a CDN). + +When using these services, the basic workflow would look a bit like the above, +except that instead of using ``rsync`` to transfer your static files to the +server you'd need to transfer the static files to the storage provider or CDN. + +There's any number of ways you might do this, but if the provider has an API a +:doc:`custom file storage backend ` will make the +process incredibly simple. If you've written or are using a 3rd party custom +storage backend, you can tell :djadmin:`collectstatic` to use it by setting +:setting:`STATICFILES_STORAGE` to the storage engine. + +For example, if you've written an S3 storage backend in +``myproject.storage.S3Storage`` you could use it with:: + + STATICFILES_STORAGE = 'myproject.storage.S3Storage' + +Once that's done, all you have to do is run :djadmin:`collectstatic` and your +static files would be pushed through your storage package up to S3. If you +later needed to switch to a different storage provider, it could be as simple +as changing your :setting:`STATICFILES_STORAGE` setting. + +For details on how you'd write one of these backends, see +:doc:`/howto/custom-file-storage`. There are 3rd party apps available that +provide storage backends for many common file storage APIs. A good starting +point is the `overview at djangopackages.com +`_. + +Learn more +========== + +For complete details on all the settings, commands, template tags, and other +pieces included in :mod:`django.contrib.staticfiles`, see :doc:`the +staticfiles reference `. diff --git a/docs/howto/static-files/index.txt b/docs/howto/static-files/index.txt index 964b5fab61..2c98566e88 100644 --- a/docs/howto/static-files/index.txt +++ b/docs/howto/static-files/index.txt @@ -1,314 +1,79 @@ -===================== -Managing static files -===================== - -Django developers mostly concern themselves with the dynamic parts of web -applications -- the views and templates that render anew for each request. But -web applications have other parts: the static files (images, CSS, -Javascript, etc.) that are needed to render a complete web page. - -For small projects, this isn't a big deal, because you can just keep the -static files somewhere your web server can find it. However, in bigger -projects -- especially those comprised of multiple apps -- dealing with the -multiple sets of static files provided by each application starts to get -tricky. - -That's what ``django.contrib.staticfiles`` is for: it collects static files -from each of your applications (and any other places you specify) into a -single location that can easily be served in production. - -.. note:: - - If you've used the `django-staticfiles`_ third-party app before, then - ``django.contrib.staticfiles`` will look very familiar. That's because - they're essentially the same code: ``django.contrib.staticfiles`` started - its life as `django-staticfiles`_ and was merged into Django 1.3. - - If you're upgrading from ``django-staticfiles``, please see `Upgrading from - django-staticfiles`_, below, for a few minor changes you'll need to make. - -.. _django-staticfiles: http://pypi.python.org/pypi/django-staticfiles/ +=================================== +Managing static files (CSS, images) +=================================== -Using ``django.contrib.staticfiles`` -==================================== +Websites generally need to serve additional files such as images, JavaScript, +or CSS. In Django, we refer to these files as "static files". Django provides +:mod:`django.contrib.staticfiles` to help you manage them. -Basic usage ------------ +This page describes how you can serve these static files. -1. Put your static files somewhere that ``staticfiles`` will find them. +Configuring static files +======================== - By default, this means within ``static/`` subdirectories of apps in your +1. Make sure that ``django.contrib.staticfiles`` is included in your :setting:`INSTALLED_APPS`. - Your project will probably also have static assets that aren't tied to a - particular app. The :setting:`STATICFILES_DIRS` setting is a tuple of - filesystem directories to check when loading static files. It's a search - path that is by default empty. See the :setting:`STATICFILES_DIRS` docs - how to extend this list of additional paths. +2. In your settings file, define :setting:`STATIC_URL`, for example:: - Additionally, see the documentation for the :setting:`STATICFILES_FINDERS` - setting for details on how ``staticfiles`` finds your files. - -2. Make sure that ``django.contrib.staticfiles`` is included in your - :setting:`INSTALLED_APPS`. + STATIC_URL = '/static/' - For :ref:`local development`, if you are using - :ref:`runserver` or adding - :ref:`staticfiles_urlpatterns` to your - URLconf, you're done with the setup -- your static files will - automatically be served at the default (for - :djadmin:`newly created` projects) :setting:`STATIC_URL` - of ``/static/``. +3. In your templates, either hardcode the url like + ``/static/my_app/myexample.jpg`` or, preferably, use the + :ttag:`static` template tag to build the URL for the given + relative path by using the configured :setting:`STATICFILES_STORAGE` storage + (this makes it much easier when you want to switch to a content delivery + network (CDN) for serving static files). -3. You'll probably need to refer to these files in your templates. The - easiest method is to use the included context processor which allows - template code like: + .. _staticfiles-in-templates: .. code-block:: html+django - Hi! - - See :ref:`staticfiles-in-templates` for more details, **including** an - alternate method using a template tag. - -Deploying static files in a nutshell ------------------------------------- - -When you're ready to move out of local development and deploy your project: - -1. Set the :setting:`STATIC_URL` setting to the public URL for your static - files (in most cases, the default value of ``/static/`` is just fine). - -2. Set the :setting:`STATIC_ROOT` setting to point to the filesystem path - you'd like your static files collected to when you use the - :djadmin:`collectstatic` management command. For example:: - - STATIC_ROOT = "/home/jacob/projects/mysite.com/sitestatic" - -3. Run the :djadmin:`collectstatic` management command:: - - ./manage.py collectstatic - - This'll churn through your static file storage and copy them into the - directory given by :setting:`STATIC_ROOT`. - -4. Deploy those files by configuring your webserver of choice to serve the - files in :setting:`STATIC_ROOT` at :setting:`STATIC_URL`. - - :ref:`staticfiles-production` covers some common deployment strategies - for static files. - -Those are the **basics**. For more details on common configuration options, -read on; for a detailed reference of the settings, commands, and other bits -included with the framework see -:doc:`the staticfiles reference `. - -.. note:: - - In previous versions of Django, it was common to place static assets in - :setting:`MEDIA_ROOT` along with user-uploaded files, and serve them both - at :setting:`MEDIA_URL`. Part of the purpose of introducing the - ``staticfiles`` app is to make it easier to keep static files separate - from user-uploaded files. - - For this reason, you need to make your :setting:`MEDIA_ROOT` and - :setting:`MEDIA_URL` different from your :setting:`STATIC_ROOT` and - :setting:`STATIC_URL`. You will need to arrange for serving of files in - :setting:`MEDIA_ROOT` yourself; ``staticfiles`` does not deal with - user-uploaded files at all. You can, however, use - :func:`django.views.static.serve` view for serving :setting:`MEDIA_ROOT` - in development; see :ref:`staticfiles-other-directories`. + {% load staticfiles %} + My image -.. _staticfiles-in-templates: +3. Store your static files in a folder called ``static`` in your app. For + example ``my_app/static/my_app/myimage.jpg``. -Referring to static files in templates -====================================== +Now, if you use ``./manage.py runserver``, all static files should be served +automatically at the :setting:`STATIC_URL` and be shown correctly. -At some point, you'll probably need to link to static files in your templates. -You could, of course, simply hardcode the path to you assets in the templates: +Your project will probably also have static assets that aren't tied to a +particular app. In addition to using a ``static/`` directory inside your apps, +you can define a list of directories (:setting:`STATICFILES_DIRS`) in your +settings file where Django will also look for static files. For example:: -.. code-block:: html - - Sample image - -Of course, there are some serious problems with this: it doesn't work well in -development, and it makes it *very* hard to change where you've deployed your -static files. If, for example, you wanted to switch to using a content -delivery network (CDN), then you'd need to change more or less every single -template. - -A far better way is to use the value of the :setting:`STATIC_URL` setting -directly in your templates. This means that a switch of static files servers -only requires changing that single value. Much better! - -Django includes multiple built-in ways of using this setting in your -templates: a context processor and a template tag. - -With a context processor ------------------------- - -The included context processor is the easy way. Simply make sure -``'django.core.context_processors.static'`` is in your -:setting:`TEMPLATE_CONTEXT_PROCESSORS`. It's there by default, and if you're -editing that setting by hand it should look something like:: - - TEMPLATE_CONTEXT_PROCESSORS = ( - 'django.core.context_processors.debug', - 'django.core.context_processors.i18n', - 'django.core.context_processors.media', - 'django.core.context_processors.static', - 'django.contrib.auth.context_processors.auth', - 'django.contrib.messages.context_processors.messages', + STATICFILES_DIRS = ( + os.path.join(BASE_DIR, "static"), + '/var/www/static/', ) -Once that's done, you can refer to :setting:`STATIC_URL` in your templates: - -.. code-block:: html+django - - Hi! - -If ``{{ STATIC_URL }}`` isn't working in your template, you're probably not -using :class:`~django.template.RequestContext` when rendering the template. - -As a brief refresher, context processors add variables into the contexts of -every template. However, context processors require that you use -:class:`~django.template.RequestContext` when rendering templates. This happens -automatically if you're using a :doc:`generic view `, -but in views written by hand you'll need to explicitly use ``RequestContext`` -To see how that works, and to read more details, check out -:ref:`subclassing-context-requestcontext`. - -Another option is the :ttag:`get_static_prefix` template tag that is part of -Django's core. - -With a template tag -------------------- - -The more powerful tool is the :ttag:`static` template -tag. It builds the URL for the given relative path by using the configured -:setting:`STATICFILES_STORAGE` storage. - -.. code-block:: html+django - - {% load staticfiles %} - Hi! - -It is also able to consume standard context variables, e.g. assuming a -``user_stylesheet`` variable is passed to the template: - -.. code-block:: html+django - - {% load staticfiles %} - - -.. note:: - - There is also a template tag named :ttag:`static` in Django's core set - of :ref:`built in template tags` which has - the same argument signature but only uses `urlparse.urljoin()`_ with the - :setting:`STATIC_URL` setting and the given path. This has the - disadvantage of not being able to easily switch the storage backend - without changing the templates, so in doubt use the ``staticfiles`` - :ttag:`static` - template tag. - -.. _`urlparse.urljoin()`: http://docs.python.org/library/urlparse.html#urlparse.urljoin - -.. _staticfiles-development: - -Serving static files in development -=================================== - -The static files tools are mostly designed to help with getting static files -successfully deployed into production. This usually means a separate, -dedicated static file server, which is a lot of overhead to mess with when -developing locally. Thus, the ``staticfiles`` app ships with a -**quick and dirty helper view** that you can use to serve files locally in -development. - -This view is automatically enabled and will serve your static files at -:setting:`STATIC_URL` when you use the built-in -:ref:`runserver` management command. - -To enable this view if you are using some other server for local development, -you'll add a couple of lines to your URLconf. The first line goes at the top -of the file, and the last line at the bottom:: +See the documentation for the :setting:`STATICFILES_FINDERS` setting for +details on how ``staticfiles`` finds your files. - from django.contrib.staticfiles.urls import staticfiles_urlpatterns +.. admonition:: Static file namespacing - # ... the rest of your URLconf goes here ... + Now we *might* be able to get away with putting our static files directly + in ``my_app/static/`` (rather than creating another ``my_app`` + subdirectory), but it would actually be a bad idea. Django will use the + last static file it finds whose name matches, and if you had a static file + with the same name in a *different* application, Django would be unable to + distinguish between them. We need to be able to point Django at the right + one, and the easiest way to ensure this is by *namespacing* them. That is, + by putting those static files inside *another* directory named for the + application itself. - urlpatterns += staticfiles_urlpatterns() -This will inspect your :setting:`STATIC_URL` setting and wire up the view -to serve static files accordingly. Don't forget to set the -:setting:`STATICFILES_DIRS` setting appropriately to let -``django.contrib.staticfiles`` know where to look for files additionally to -files in app directories. +Serving files uploaded by a user +================================ -.. warning:: +During development, you can serve user-uploaded media files from +:setting:`MEDIA_ROOT` using the :func:`django.contrib.staticfiles.views.serve` +view. This is not suitable for production use! For some common deployment +strategies, see :doc:`/howto/static-files/deployment`. - This will only work if :setting:`DEBUG` is ``True``. - - That's because this view is **grossly inefficient** and probably - **insecure**. This is only intended for local development, and should - **never be used in production**. - - Additionally, when using ``staticfiles_urlpatterns`` your - :setting:`STATIC_URL` setting can't be empty or a full URL, such as - ``http://static.example.com/``. - -For a few more details on how the ``staticfiles`` can be used during -development, see :ref:`staticfiles-development-view`. - -.. _staticfiles-other-directories: - -Serving other directories -------------------------- - -.. currentmodule:: django.views.static -.. function:: serve(request, path, document_root, show_indexes=False) - -There may be files other than your project's static assets that, for -convenience, you'd like to have Django serve for you in local development. -The :func:`~django.views.static.serve` view can be used to serve any directory -you give it. (Again, this view is **not** hardened for production -use, and should be used only as a development aid; you should serve these files -in production using a real front-end webserver). - -The most likely example is user-uploaded content in :setting:`MEDIA_ROOT`. -``staticfiles`` is intended for static assets and has no built-in handling -for user-uploaded files, but you can have Django serve your -:setting:`MEDIA_ROOT` by appending something like this to your URLconf:: - - from django.conf import settings - - # ... the rest of your URLconf goes here ... - - if settings.DEBUG: - urlpatterns += patterns('', - url(r'^media/(?P.*)$', 'django.views.static.serve', { - 'document_root': settings.MEDIA_ROOT, - }), - ) - -Note, the snippet assumes your :setting:`MEDIA_URL` has a value of -``'/media/'``. This will call the :func:`~django.views.static.serve` view, -passing in the path from the URLconf and the (required) ``document_root`` -parameter. - -.. currentmodule:: django.conf.urls.static -.. function:: static(prefix, view='django.views.static.serve', **kwargs) - -Since it can become a bit cumbersome to define this URL pattern, Django -ships with a small URL helper function -:func:`~django.conf.urls.static.static` that takes as parameters the prefix -such as :setting:`MEDIA_URL` and a dotted path to a view, such as -``'django.views.static.serve'``. Any other function parameter will be -transparently passed to the view. - -An example for serving :setting:`MEDIA_URL` (``'/media/'``) during -development:: +For example, if your :setting:`MEDIA_URL` is defined as '/media/', you can do +this by adding the following snippet to your urls.py:: from django.conf import settings from django.conf.urls.static import static @@ -319,190 +84,36 @@ development:: .. note:: - This helper function will only be operational in debug mode and if + This helper function works only in debug mode and only if the given prefix is local (e.g. ``/static/``) and not a URL (e.g. ``http://static.example.com/``). -.. _staticfiles-production: - -Serving static files in production -================================== - -The basic outline of putting static files into production is simple: run the -:djadmin:`collectstatic` command when static files change, then arrange for -the collected static files directory (:setting:`STATIC_ROOT`) to be moved to -the static file server and served. - -Of course, as with all deployment tasks, the devil's in the details. Every -production setup will be a bit different, so you'll need to adapt the basic -outline to fit your needs. Below are a few common patterns that might help. - -Serving the app and your static files from the same server ----------------------------------------------------------- - -If you want to serve your static files from the same server that's already -serving your site, the basic outline gets modified to look something like: - -* Push your code up to the deployment server. -* On the server, run :djadmin:`collectstatic` to copy all the static files - into :setting:`STATIC_ROOT`. -* Point your web server at :setting:`STATIC_ROOT`. For example, here's - :ref:`how to do this under Apache and mod_wsgi `. - -You'll probably want to automate this process, especially if you've got -multiple web servers. There's any number of ways to do this automation, but -one option that many Django developers enjoy is `Fabric`__. - -__ http://fabfile.org/ - -Below, and in the following sections, we'll show off a few example fabfiles -(i.e. Fabric scripts) that automate these file deployment options. The syntax -of a fabfile is fairly straightforward but won't be covered here; consult -`Fabric's documentation`__, for a complete explanation of the syntax.. - -__ http://docs.fabfile.org/ - -So, a fabfile to deploy static files to a couple of web servers might look -something like:: - - from fabric.api import * - - # Hosts to deploy onto - env.hosts = ['www1.example.com', 'www2.example.com'] - - # Where your project code lives on the server - env.project_root = '/home/www/myproject' - - def deploy_static(): - with cd(env.project_root): - run('./manage.py collectstatic -v0 --noinput') - -Serving static files from a dedicated server --------------------------------------------- - -Most larger Django apps use a separate Web server -- i.e., one that's not also -running Django -- for serving static files. This server often runs a different -type of web server -- faster but less full-featured. Some good choices are: - -* lighttpd_ -* Nginx_ -* TUX_ -* Cherokee_ -* A stripped-down version of Apache_ - -.. _lighttpd: http://www.lighttpd.net/ -.. _Nginx: http://wiki.nginx.org/Main -.. _TUX: http://en.wikipedia.org/wiki/TUX_web_server -.. _Apache: http://httpd.apache.org/ -.. _Cherokee: http://www.cherokee-project.com/ - -Configuring these servers is out of scope of this document; check each -server's respective documentation for instructions. - -Since your static file server won't be running Django, you'll need to modify -the deployment strategy to look something like: - -* When your static files change, run :djadmin:`collectstatic` locally. -* Push your local :setting:`STATIC_ROOT` up to the static file server - into the directory that's being served. ``rsync`` is a good - choice for this step since it only needs to transfer the - bits of static files that have changed. - -Here's how this might look in a fabfile:: - - from fabric.api import * - from fabric.contrib import project - - # Where the static files get collected locally - env.local_static_root = '/tmp/static' - - # Where the static files should go remotely - env.remote_static_root = '/home/www/static.example.com' - - @roles('static') - def deploy_static(): - local('./manage.py collectstatic') - project.rsync_project( - remote_dir = env.remote_static_root, - local_dir = env.local_static_root, - delete = True - ) - -.. _staticfiles-from-cdn: - -Serving static files from a cloud service or CDN ------------------------------------------------- - -Another common tactic is to serve static files from a cloud storage provider -like Amazon's S3__ and/or a CDN (content delivery network). This lets you -ignore the problems of serving static files, and can often make for -faster-loading webpages (especially when using a CDN). - -When using these services, the basic workflow would look a bit like the above, -except that instead of using ``rsync`` to transfer your static files to the -server you'd need to transfer the static files to the storage provider or CDN. - -There's any number of ways you might do this, but if the provider has an API a -:doc:`custom file storage backend ` will make the -process incredibly simple. If you've written or are using a 3rd party custom -storage backend, you can tell :djadmin:`collectstatic` to use it by setting -:setting:`STATICFILES_STORAGE` to the storage engine. - -For example, if you've written an S3 storage backend in -``myproject.storage.S3Storage`` you could use it with:: - - STATICFILES_STORAGE = 'myproject.storage.S3Storage' - -Once that's done, all you have to do is run :djadmin:`collectstatic` and your -static files would be pushed through your storage package up to S3. If you -later needed to switch to a different storage provider, it could be as simple -as changing your :setting:`STATICFILES_STORAGE` setting. - -For details on how you'd write one of these backends, -:doc:`/howto/custom-file-storage`. - -.. seealso:: - - The `django-storages`__ project is a 3rd party app that provides many - storage backends for many common file storage APIs (including `S3`__). - -__ http://s3.amazonaws.com/ -__ http://code.larlet.fr/django-storages/ -__ http://django-storages.readthedocs.org/en/latest/backends/amazon-S3.html - -Upgrading from ``django-staticfiles`` -===================================== +Deployment +========== -``django.contrib.staticfiles`` began its life as `django-staticfiles`_. If -you're upgrading from `django-staticfiles`_ older than 1.0 (e.g. 0.3.4) to -``django.contrib.staticfiles``, you'll need to make a few changes: +:mod:`django.contrib.staticfiles` provides a convenience management command +for gathering static files in a single directory so you can serve them easily. -* Application files should now live in a ``static`` directory in each app - (`django-staticfiles`_ used the name ``media``, which was slightly - confusing). +1. Set the :setting:`STATIC_ROOT` setting to the directory from which you'd + like to serve these files, for example:: -* The management commands ``build_static`` and ``resolve_static`` are now - called :djadmin:`collectstatic` and :djadmin:`findstatic`. + STATIC_ROOT = "/var/www/example.com/static/" -* The settings ``STATICFILES_PREPEND_LABEL_APPS``, - ``STATICFILES_MEDIA_DIRNAMES`` and ``STATICFILES_EXCLUDED_APPS`` were - removed. +2. Run the :djadmin:`collectstatic` management command:: -* The setting ``STATICFILES_RESOLVERS`` was removed, and replaced by the - new :setting:`STATICFILES_FINDERS`. + ./manage.py collectstatic -* The default for :setting:`STATICFILES_STORAGE` was renamed from - ``staticfiles.storage.StaticFileStorage`` to - ``staticfiles.storage.StaticFilesStorage`` + This will copy all files from your static folders into the + :setting:`STATIC_ROOT` directory. -* If using :ref:`runserver` for local development - (and the :setting:`DEBUG` setting is ``True``), you no longer need to add - anything to your URLconf for serving static files in development. +3. Use a webserver of your choice to serve the + files. :doc:`/howto/static-files/deployment` covers some common deployment + strategies for static files. Learn more ========== This document has covered the basics and some common usage patterns. For complete details on all the settings, commands, template tags, and other pieces -include in ``django.contrib.staticfiles``, see :doc:`the staticfiles reference -`. +included in :mod:`django.contrib.staticfiles`, see :doc:`the staticfiles +reference `. diff --git a/docs/index.txt b/docs/index.txt index 8823888e7b..6473aa3168 100644 --- a/docs/index.txt +++ b/docs/index.txt @@ -99,6 +99,7 @@ to know about views via the links below: :doc:`Decorators ` * **Reference:** + :doc:`Built-in Views ` | :doc:`Request/response objects ` | :doc:`TemplateResponse objects ` @@ -191,7 +192,7 @@ testing of Django applications: :doc:`Overview ` | :doc:`WSGI servers ` | :doc:`FastCGI/SCGI/AJP ` | - :doc:`Handling static files ` | + :doc:`Deploying static files ` | :doc:`Tracking code errors by email ` The admin diff --git a/docs/intro/overview.txt b/docs/intro/overview.txt index 2081c960fc..8753817256 100644 --- a/docs/intro/overview.txt +++ b/docs/intro/overview.txt @@ -272,7 +272,7 @@ following blocks." In short, that lets you dramatically cut down on redundancy in templates: each template has to define only what's unique to that template. Here's what the "base.html" template, including the use of :doc:`static files -`, might look like: +`, might look like: .. code-block:: html+django diff --git a/docs/intro/tutorial06.txt b/docs/intro/tutorial06.txt index 28e1cabd96..6b3d0f35e2 100644 --- a/docs/intro/tutorial06.txt +++ b/docs/intro/tutorial06.txt @@ -108,7 +108,7 @@ loaded in the bottom right of the screen. These are the **basics**. For more details on settings and other bits included with the framework see -:doc:`the static files howto ` and the +:doc:`the static files howto ` and the :doc:`the staticfiles reference `. :doc:`Deploying static files ` discusses how to use static files on a real server. diff --git a/docs/ref/contrib/staticfiles.txt b/docs/ref/contrib/staticfiles.txt index fa740f4e2c..b7de75baf1 100644 --- a/docs/ref/contrib/staticfiles.txt +++ b/docs/ref/contrib/staticfiles.txt @@ -12,7 +12,8 @@ can easily be served in production. .. seealso:: For an introduction to the static files app and some usage examples, see - :doc:`/howto/static-files`. + :doc:`/howto/static-files/index`. For guidelines on deploying static files, + see :doc:`/howto/static-files/deployment`. .. _staticfiles-settings: @@ -326,9 +327,18 @@ files: Static file development view ---------------------------- +.. currentmodule:: django.contrib.staticfiles + +The static files tools are mostly designed to help with getting static files +successfully deployed into production. This usually means a separate, +dedicated static file server, which is a lot of overhead to mess with when +developing locally. Thus, the ``staticfiles`` app ships with a +**quick and dirty helper view** that you can use to serve files locally in +development. + .. highlight:: python -.. function:: django.contrib.staticfiles.views.serve(request, path) +.. function:: views.serve(request, path) This view function serves static files in development. @@ -355,9 +365,10 @@ primary URL configuration:: Note, the beginning of the pattern (``r'^static/'``) should be your :setting:`STATIC_URL` setting. -Since this is a bit finicky, there's also a helper function that'll do this for you: +Since this is a bit finicky, there's also a helper function that'll do this for +you: -.. function:: django.contrib.staticfiles.urls.staticfiles_urlpatterns() +.. function:: urls.staticfiles_urlpatterns() This will return the proper URL pattern for serving static files to your already defined pattern list. Use it like this:: @@ -368,8 +379,18 @@ already defined pattern list. Use it like this:: urlpatterns += staticfiles_urlpatterns() +This will inspect your :setting:`STATIC_URL` setting and wire up the view +to serve static files accordingly. Don't forget to set the +:setting:`STATICFILES_DIRS` setting appropriately to let +``django.contrib.staticfiles`` know where to look for files in addition to +files in app directories. + .. warning:: This helper function will only work if :setting:`DEBUG` is ``True`` and your :setting:`STATIC_URL` setting is neither empty nor a full URL such as ``http://static.example.com/``. + + That's because this view is **grossly inefficient** and probably + **insecure**. This is only intended for local development, and should + **never be used in production**. diff --git a/docs/ref/django-admin.txt b/docs/ref/django-admin.txt index 6277b22a30..c63c118e3d 100644 --- a/docs/ref/django-admin.txt +++ b/docs/ref/django-admin.txt @@ -761,7 +761,8 @@ Serving static files with the development server By default, the development server doesn't serve any static files for your site (such as CSS files, images, things under :setting:`MEDIA_URL` and so forth). If -you want to configure Django to serve static media, read :doc:`/howto/static-files`. +you want to configure Django to serve static media, read +:doc:`/howto/static-files/index`. shell ----- @@ -1289,7 +1290,7 @@ collectstatic ~~~~~~~~~~~~~ This command is only available if the :doc:`static files application -` (``django.contrib.staticfiles``) is installed. +` (``django.contrib.staticfiles``) is installed. Please refer to its :djadmin:`description ` in the :doc:`staticfiles ` documentation. @@ -1298,7 +1299,7 @@ findstatic ~~~~~~~~~~ This command is only available if the :doc:`static files application -` (``django.contrib.staticfiles``) is installed. +` (``django.contrib.staticfiles``) is installed. Please refer to its :djadmin:`description ` in the :doc:`staticfiles ` documentation. diff --git a/docs/ref/index.txt b/docs/ref/index.txt index fc874a97eb..1d71b62f41 100644 --- a/docs/ref/index.txt +++ b/docs/ref/index.txt @@ -25,3 +25,4 @@ API Reference urls utils validators + views diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt index 2bfbbe0897..8d7ea6adfb 100644 --- a/docs/ref/settings.txt +++ b/docs/ref/settings.txt @@ -2437,7 +2437,7 @@ Example: ``"/var/www/example.com/static/"`` If the :doc:`staticfiles` contrib app is enabled (default) the :djadmin:`collectstatic` management command will collect static files into this directory. See the howto on :doc:`managing static -files` for more details about usage. +files` for more details about usage. .. warning:: diff --git a/docs/ref/templates/builtins.txt b/docs/ref/templates/builtins.txt index 149a557356..0e81df9190 100644 --- a/docs/ref/templates/builtins.txt +++ b/docs/ref/templates/builtins.txt @@ -2418,8 +2418,10 @@ slightly different call:: The :mod:`staticfiles` contrib app also ships with a :ttag:`static template tag` which uses ``staticfiles'`` :setting:`STATICFILES_STORAGE` to build the URL of the - given path. Use that instead if you have an advanced use case such as - :ref:`using a cloud service to serve static files`:: + given path (rather than simply using :func:`urlparse.urljoin` with the + :setting:`STATIC_URL` setting and the given path). Use that instead if you + have an advanced use case such as :ref:`using a cloud service to serve + static files`:: {% load static from staticfiles %} Hi! diff --git a/docs/ref/urls.txt b/docs/ref/urls.txt index 59fb97828c..e68edc8254 100644 --- a/docs/ref/urls.txt +++ b/docs/ref/urls.txt @@ -44,6 +44,20 @@ The ``optional_dictionary`` and ``optional_name`` parameters are described in patterns you can construct. The only limit is that you can only create 254 at a time (the 255th argument is the initial prefix argument). +static() +-------- + +.. function:: static.static(prefix, view='django.views.static.serve', **kwargs) + +Helper function to return a URL pattern for serving files in debug mode:: + + from django.conf import settings + from django.conf.urls.static import static + + urlpatterns = patterns('', + # ... the rest of your URLconf goes here ... + ) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + url() ----- diff --git a/docs/ref/views.txt b/docs/ref/views.txt new file mode 100644 index 0000000000..3753f83f07 --- /dev/null +++ b/docs/ref/views.txt @@ -0,0 +1,48 @@ +============== +Built-in Views +============== + +.. module:: django.views + :synopsis: Django's built-in views. + +Several of Django's built-in views are documented in +:doc:`/topics/http/views` as well as elsewhere in the documentation. + +Serving files in development +---------------------------- + +.. function:: static.serve(request, path, document_root, show_indexes=False) + +There may be files other than your project's static assets that, for +convenience, you'd like to have Django serve for you in local development. +The :func:`~django.views.static.serve` view can be used to serve any directory +you give it. (This view is **not** hardened for production use and should be +used only as a development aid; you should serve these files in production +using a real front-end webserver). + +The most likely example is user-uploaded content in :setting:`MEDIA_ROOT`. +``django.contrib.staticfiles`` is intended for static assets and has no +built-in handling for user-uploaded files, but you can have Django serve your +:setting:`MEDIA_ROOT` by appending something like this to your URLconf:: + + from django.conf import settings + + # ... the rest of your URLconf goes here ... + + if settings.DEBUG: + urlpatterns += patterns('', + url(r'^media/(?P.*)$', 'django.views.static.serve', { + 'document_root': settings.MEDIA_ROOT, + }), + ) + +Note, the snippet assumes your :setting:`MEDIA_URL` has a value of +``'/media/'``. This will call the :func:`~django.views.static.serve` view, +passing in the path from the URLconf and the (required) ``document_root`` +parameter. + +Since it can become a bit cumbersome to define this URL pattern, Django +ships with a small URL helper function :func:`~django.conf.urls.static.static` +that takes as parameters the prefix such as :setting:`MEDIA_URL` and a dotted +path to a view, such as ``'django.views.static.serve'``. Any other function +parameter will be transparently passed to the view. diff --git a/docs/releases/1.3-alpha-1.txt b/docs/releases/1.3-alpha-1.txt index 7c9f233921..c71736dc60 100644 --- a/docs/releases/1.3-alpha-1.txt +++ b/docs/releases/1.3-alpha-1.txt @@ -72,7 +72,7 @@ at :setting:`STATIC_URL`. See the :doc:`reference documentation of the app ` for more details or learn how to :doc:`manage static files -`. +`. ``unittest2`` support ~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/releases/1.3-beta-1.txt b/docs/releases/1.3-beta-1.txt index 69f8023eb3..aa7800bb94 100644 --- a/docs/releases/1.3-beta-1.txt +++ b/docs/releases/1.3-beta-1.txt @@ -37,7 +37,7 @@ Based on feedback from the community this release adds two new options to the See the :doc:`staticfiles reference documentation ` for more details, or learn :doc:`how to manage static files -`. +`. Translation comments ~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/releases/1.3.txt b/docs/releases/1.3.txt index f689a3dffd..9a41f903f8 100644 --- a/docs/releases/1.3.txt +++ b/docs/releases/1.3.txt @@ -115,7 +115,7 @@ at :setting:`STATIC_URL`. See the :doc:`reference documentation of the app ` for more details or learn how to :doc:`manage static files -`. +`. unittest2 support ~~~~~~~~~~~~~~~~~ diff --git a/docs/releases/1.4-alpha-1.txt b/docs/releases/1.4-alpha-1.txt index 92ec0b6483..cb218ac698 100644 --- a/docs/releases/1.4-alpha-1.txt +++ b/docs/releases/1.4-alpha-1.txt @@ -578,7 +578,7 @@ If you've previously used a URL path for ``ADMIN_MEDIA_PREFIX`` (e.g. ``/media/``) simply make sure :setting:`STATIC_URL` and :setting:`STATIC_ROOT` are configured and your web server serves the files correctly. The development server continues to serve the admin files just like before. Don't hesitate to -consult the :doc:`static files howto ` for further +consult the :doc:`static files howto ` for further details. In case your ``ADMIN_MEDIA_PREFIX`` is set to an specific domain (e.g. diff --git a/docs/releases/1.4-beta-1.txt b/docs/releases/1.4-beta-1.txt index d3f1bb807d..84b1bf6987 100644 --- a/docs/releases/1.4-beta-1.txt +++ b/docs/releases/1.4-beta-1.txt @@ -646,7 +646,7 @@ If you've previously used a URL path for ``ADMIN_MEDIA_PREFIX`` (e.g. ``/media/``) simply make sure :setting:`STATIC_URL` and :setting:`STATIC_ROOT` are configured and your web server serves the files correctly. The development server continues to serve the admin files just like before. Don't hesitate to -consult the :doc:`static files howto ` for further +consult the :doc:`static files howto ` for further details. In case your ``ADMIN_MEDIA_PREFIX`` is set to an specific domain (e.g. diff --git a/docs/releases/1.4.txt b/docs/releases/1.4.txt index 3025a37098..83a5f54fc7 100644 --- a/docs/releases/1.4.txt +++ b/docs/releases/1.4.txt @@ -708,7 +708,7 @@ If you've previously used a URL path for ``ADMIN_MEDIA_PREFIX`` (e.g. ``/media/``) simply make sure :setting:`STATIC_URL` and :setting:`STATIC_ROOT` are configured and your Web server serves those files correctly. The development server continues to serve the admin files just like before. Read -the :doc:`static files howto ` for more details. +the :doc:`static files howto ` for more details. If your ``ADMIN_MEDIA_PREFIX`` is set to an specific domain (e.g. ``http://media.example.com/admin/``), make sure to also set your diff --git a/docs/topics/files.txt b/docs/topics/files.txt index c36094a599..c05f98ef7e 100644 --- a/docs/topics/files.txt +++ b/docs/topics/files.txt @@ -5,7 +5,7 @@ Managing files This document describes Django's file access APIs for files such as those uploaded by a user. The lower level APIs are general enough that you could use them for other purposes. If you want to handle "static files" (JS, CSS, etc), -see :doc:`/howto/static-files`. +see :doc:`/howto/static-files/index`. By default, Django stores files locally, using the :setting:`MEDIA_ROOT` and :setting:`MEDIA_URL` settings. The examples below assume that you're using these diff --git a/docs/topics/testing/overview.txt b/docs/topics/testing/overview.txt index 628a161554..259c39618b 100644 --- a/docs/topics/testing/overview.txt +++ b/docs/topics/testing/overview.txt @@ -1102,7 +1102,7 @@ out the `full reference`_ for more details. .. note:: ``LiveServerTestCase`` makes use of the :doc:`staticfiles contrib app - ` so you'll need to have your project configured + ` so you'll need to have your project configured accordingly (in particular by setting :setting:`STATIC_URL`). .. note:: -- cgit v1.3 From 33503600b5562a2d0c0ba8d376a40432a4b30893 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sat, 30 Mar 2013 08:36:31 -0400 Subject: Fixed #18277 - Clarified startproject documentation. --- docs/ref/django-admin.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/ref/django-admin.txt b/docs/ref/django-admin.txt index c63c118e3d..9c193c86f0 100644 --- a/docs/ref/django-admin.txt +++ b/docs/ref/django-admin.txt @@ -1036,7 +1036,8 @@ through the template engine: the files whose extensions match the with the ``--name`` option. The :class:`template context ` used is: -- Any option passed to the startproject command +- Any option passed to the startapp command (among the command's supported + options) - ``project_name`` -- the project name as passed to the command - ``project_directory`` -- the full path of the newly created project - ``secret_key`` -- a random key for the :setting:`SECRET_KEY` setting -- cgit v1.3 From 91d06ea719f505e1e223d5ea058a837e4d2c613a Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sat, 30 Mar 2013 16:21:59 -0400 Subject: Fixed #19492 - Added a link to the uWSGI/Django tutorial. --- docs/howto/deployment/wsgi/uwsgi.txt | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'docs') diff --git a/docs/howto/deployment/wsgi/uwsgi.txt b/docs/howto/deployment/wsgi/uwsgi.txt index b5d438450e..5b40d5f2f7 100644 --- a/docs/howto/deployment/wsgi/uwsgi.txt +++ b/docs/howto/deployment/wsgi/uwsgi.txt @@ -9,6 +9,14 @@ container server coded in pure C. .. _uWSGI: http://projects.unbit.it/uwsgi/ +.. seealso:: + + The uWSGI docs offer a `tutorial`_ covering Django, nginx, and uWSGI (one + possible deployment setup of many). The docs below are focused on how to + integrate Django with uWSGI. + + .. _tutorial: https://uwsgi.readthedocs.org/en/latest/tutorials/Django_and_nginx.html + Prerequisite: uWSGI =================== -- cgit v1.3 From ffc8e2e0ae9f1e35f4b7c78e6235bd0e3ba41aa9 Mon Sep 17 00:00:00 2001 From: Julien Phalip Date: Sat, 30 Mar 2013 16:23:27 -0700 Subject: Fixes #20162 -- Added a note in the documentation for `static.serve()` about the need for updating the system's map files when incorrect content types are returned. Many thanks to Simon Charette and Claude Paroz for their feedback. --- docs/ref/contrib/staticfiles.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'docs') diff --git a/docs/ref/contrib/staticfiles.txt b/docs/ref/contrib/staticfiles.txt index b7de75baf1..806d135deb 100644 --- a/docs/ref/contrib/staticfiles.txt +++ b/docs/ref/contrib/staticfiles.txt @@ -350,6 +350,16 @@ This view function serves static files in development. **insecure**. This is only intended for local development, and should **never be used in production**. +.. note:: + + To guess the served files' content types, this view relies on the + :py:mod:`mimetypes` module from the Python standard library, which itself + relies on the underlying platform's map files. If you find that this view + doesn't return proper content types for certain files, it is most likely + that the platform's map files need to be updated. This can be achieved, for + example, by installing or updating the ``mailcap`` package on a Red Hat + distribution, or ``mime-support`` on a Debian distribution. + This view is automatically enabled by :djadmin:`runserver` (with a :setting:`DEBUG` setting set to ``True``). To use the view with a different local development server, add the following snippet to the end of your -- cgit v1.3 From b5e1e2ec0320bc5b114b7dbffc8cbf16cefb0a4f Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sat, 30 Mar 2013 19:49:31 -0400 Subject: Fixed some markup in formtools docs. --- docs/ref/contrib/formtools/form-wizard.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'docs') diff --git a/docs/ref/contrib/formtools/form-wizard.txt b/docs/ref/contrib/formtools/form-wizard.txt index 0032eeb5d8..f85ae8356d 100644 --- a/docs/ref/contrib/formtools/form-wizard.txt +++ b/docs/ref/contrib/formtools/form-wizard.txt @@ -247,7 +247,7 @@ wizard's ``as_view()`` method takes a list of your .. versionchanged:: 1.6 -You can also pass the form list as a class attribute named ``form_list``. +You can also pass the form list as a class attribute named ``form_list``:: class ContactWizard(WizardView): form_list = [ContactForm1, ContactForm2] @@ -304,8 +304,8 @@ The ``urls.py`` file would contain something like:: .. versionchanged:: 1.6 -The ``condiction_dict`` can be passed as attribute for the ``as_view()`` -method or as a class attribute named ``condition_dict``. +The ``condiction_dict`` can be passed as attribute for the ``as_view()` +method or as a class attribute named ``condition_dict``:: class OrderWizard(WizardView): condition_dict = {'cc': pay_by_credit_card} -- cgit v1.3 From c119d0f152e939420613868294d58fa4b902e18a Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sun, 31 Mar 2013 03:40:44 -0400 Subject: Fixed #20168 - Generalized a PostgreSQL specific database query in the docs. Thanks Russ for the suggestion. --- docs/topics/db/managers.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/topics/db/managers.txt b/docs/topics/db/managers.txt index 8762717e09..56bdd16e84 100644 --- a/docs/topics/db/managers.txt +++ b/docs/topics/db/managers.txt @@ -70,8 +70,8 @@ returns a list of all ``OpinionPoll`` objects, each with an extra SELECT p.id, p.question, p.poll_date, COUNT(*) FROM polls_opinionpoll p, polls_response r WHERE p.id = r.poll_id - GROUP BY 1, 2, 3 - ORDER BY 3 DESC""") + GROUP BY p.id, p.question, p.poll_date + ORDER BY p.poll_date DESC""") result_list = [] for row in cursor.fetchall(): p = self.model(id=row[0], question=row[1], poll_date=row[2]) -- cgit v1.3 From ac4d82b94a700214ebb13bcdcbbdd4fd9bdefc0f Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sun, 31 Mar 2013 03:59:34 -0400 Subject: Fixed #9913 - Clarified User.is_authenticated docs. Thanks rshea for the draft text. --- docs/ref/contrib/auth.txt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'docs') diff --git a/docs/ref/contrib/auth.txt b/docs/ref/contrib/auth.txt index 6ec6af607a..40b3629f63 100644 --- a/docs/ref/contrib/auth.txt +++ b/docs/ref/contrib/auth.txt @@ -111,10 +111,14 @@ Methods .. method:: is_authenticated() - Always returns ``True``. This is a way to tell if the user has been - authenticated. This does not imply any permissions, and doesn't check - if the user is active - it only indicates that the user has provided a - valid username and password. + Always returns ``True`` (as opposed to + ``AnonymousUser.is_authenticated()`` which always returns ``False``). + This is a way to tell if the user has been authenticated. This does not + imply any permissions, and doesn't check if the user is active - it + only indicates that ``request.user`` has been populated by the + :class:`~django.contrib.auth.middleware.AuthenticationMiddleware` with + a :class:`~django.contrib.auth.models.User` object representing the + currently logged-in user. .. method:: get_full_name() -- cgit v1.3 From 4a1d425cfe88983b34b1ecd3ad2aa9993af84467 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sun, 31 Mar 2013 04:34:28 -0400 Subject: Fixed #8649 - Documented a caveat about dynamically adjusting formsets. --- docs/topics/forms/formsets.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/topics/forms/formsets.txt b/docs/topics/forms/formsets.txt index f0a7668e0d..c9bfda8d4f 100644 --- a/docs/topics/forms/formsets.txt +++ b/docs/topics/forms/formsets.txt @@ -193,7 +193,10 @@ this management data, an exception will be raised:: It is used to keep track of how many form instances are being displayed. If you are adding new forms via JavaScript, you should increment the count fields -in this form as well. +in this form as well. On the other hand, if you are using JavaScript to allow +deletion of existing objects, then you need to ensure the ones being removed +are properly marked for deletion by including ``form-#-DELETE`` in the ``POST`` +data. It is expected that all forms are present in the ``POST`` data regardless. The management form is available as an attribute of the formset itself. When rendering a formset in a template, you can include all -- cgit v1.3 From 2bcbca3451cf7738d8e88c20023f9e799a044e9d Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Mon, 1 Apr 2013 14:03:55 +0200 Subject: Updated some 'Dive Into Python' links --- AUTHORS | 3 ++- django/template/defaultfilters.py | 2 +- docs/intro/contributing.txt | 5 +++-- docs/intro/index.txt | 6 ++++-- docs/ref/templates/builtins.txt | 2 +- 5 files changed, 11 insertions(+), 7 deletions(-) (limited to 'docs') diff --git a/AUTHORS b/AUTHORS index 91f9452c63..084aefd647 100644 --- a/AUTHORS +++ b/AUTHORS @@ -619,6 +619,7 @@ A big THANK YOU goes to: Ian Bicking for convincing Adrian to ditch code generation. - Mark Pilgrim for diveintopython.org, which unfortunately no longer exists. + Mark Pilgrim for "Dive Into Python" (http://diveintopython.net, + http://www.diveintopython3.net). Guido van Rossum for creating Python. diff --git a/django/template/defaultfilters.py b/django/template/defaultfilters.py index 85202b62a4..88526e5a20 100644 --- a/django/template/defaultfilters.py +++ b/django/template/defaultfilters.py @@ -551,7 +551,7 @@ def slice_filter(value, arg): Returns a slice of the list. Uses the same syntax as Python's list slicing; see - http://diveintopython.org/native_data_types/lists.html#odbchelper.list.slice + http://www.diveintopython3.net/native-datatypes.html#slicinglists for an introduction. """ try: diff --git a/docs/intro/contributing.txt b/docs/intro/contributing.txt index 0078435601..8747375b0a 100644 --- a/docs/intro/contributing.txt +++ b/docs/intro/contributing.txt @@ -20,8 +20,8 @@ For this tutorial, we expect that you have at least a basic understanding of how Django works. This means you should be comfortable going through the existing tutorials on :doc:`writing your first Django app`. In addition, you should have a good understanding of Python itself. But if you -don't, `Dive Into Python`__ is a fantastic (and free) online book for beginning -Python programmers. +don't, "Dive Into Python" (for `Python 2`__, for `Python 3`__) is a fantastic +(and free) online book for beginning Python programmers. Those of you who are unfamiliar with version control systems and Trac will find that this tutorial and its links include just enough information to get started. @@ -38,6 +38,7 @@ so that it can be of use to the widest audience. chat with other Django users who might be able to help. __ http://diveintopython.net/toc/index.html +__ http://diveintopython3.net/ __ http://groups.google.com/group/django-developers __ irc://irc.freenode.net/django-dev diff --git a/docs/intro/index.txt b/docs/intro/index.txt index 6c62eb547c..9e88402f6d 100644 --- a/docs/intro/index.txt +++ b/docs/intro/index.txt @@ -29,12 +29,14 @@ place: read this material to quickly get up and running. `list of Python resources for non-programmers`_ If you already know a few other languages and want to get up to speed with - Python quickly, we recommend `Dive Into Python`_ (also available in a + Python quickly, we recommend "Dive Into Python" (for `Python 2`_, for + `Python 3`_, also available in a `dead-tree version`_). If that's not quite your style, there are quite a few other `books about Python`_. .. _python: http://python.org/ .. _list of Python resources for non-programmers: http://wiki.python.org/moin/BeginnersGuide/NonProgrammers - .. _dive into python: http://diveintopython.net/ + .. _Python 2: http://diveintopython.net/ + .. _Python 3: http://diveintopython3.net/ .. _dead-tree version: http://www.amazon.com/exec/obidos/ASIN/1590593561/ref=nosim/jacobian20 .. _books about Python: http://wiki.python.org/moin/PythonBooks diff --git a/docs/ref/templates/builtins.txt b/docs/ref/templates/builtins.txt index 0e81df9190..955d2ab67b 100644 --- a/docs/ref/templates/builtins.txt +++ b/docs/ref/templates/builtins.txt @@ -1936,7 +1936,7 @@ slice Returns a slice of the list. Uses the same syntax as Python's list slicing. See -http://diveintopython.net/native_data_types/lists.html#odbchelper.list.slice +http://www.diveintopython3.net/native-datatypes.html#slicinglists for an introduction. Example:: -- cgit v1.3 From b9dbd1dd2fddbd4ba20e1ab983b0d6712d21da00 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 2 Apr 2013 12:59:43 -0400 Subject: Fixed #19748 - Documented django.utils.module_loading.import_by_path --- docs/ref/utils.txt | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'docs') diff --git a/docs/ref/utils.txt b/docs/ref/utils.txt index b103a9acdf..a7d5b6690e 100644 --- a/docs/ref/utils.txt +++ b/docs/ref/utils.txt @@ -643,6 +643,28 @@ escaping HTML. Converts a positive integer to a base 36 string. On Python 2 ``i`` must be smaller than :data:`sys.maxint`. +``django.utils.module_loading`` +=============================== + +.. module:: django.utils.module_loading + :synopsis: Functions for working with Python modules. + +Functions for working with Python modules. + +.. function:: import_by_path(dotted_path, error_prefix='') + + Imports a dotted module path and returns the attribute/class designated by + the last name in the path. Raises + :exc:`~django.core.exceptions.ImproperlyConfigured` if something goes + wrong. For example:: + + from django.utils.module_loading import import_by_path + import_by_path = import_by_path('django.utils.module_loading.import_by_path') + + is equivalent to:: + + from django.utils.module_loading import import_by_path + ``django.utils.safestring`` =========================== -- cgit v1.3 From f2d3c4b0caccd509dda8463ec71549a1a0cda0b7 Mon Sep 17 00:00:00 2001 From: Ramiro Morales Date: Mon, 25 Mar 2013 21:11:23 -0300 Subject: Added a dedication to Malcolm to release notes. --- docs/releases/1.6.txt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'docs') diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 372dde8ff9..3258798c13 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -2,6 +2,24 @@ Django 1.6 release notes - UNDER DEVELOPMENT ============================================ +.. note:: + + Dedicated to Malcolm Tredinnick + + On March 17, 2013, the Django project and the free software community lost + a very dear friend and developer. + + Malcolm was a long-time contributor to Django, a model community member, a + brilliant mind, and a friend. His contributions to Django — and to many other + open source projects — are nearly impossible to enumerate. Many on the core + Django team had their first patches reviewed by him; his mentorship enriched + us. His consideration, patience, and dedication will always be an inspiration + to us. + + This release of Django is for Malcolm. + + -- The Django Developers + Welcome to Django 1.6! These release notes cover the `new features`_, as well as some `backwards -- cgit v1.3 From 2c27300f343df2bae0db0f4c3594e5ae5b0b219f Mon Sep 17 00:00:00 2001 From: Baptiste Mispelon Date: Thu, 4 Apr 2013 18:12:12 +0200 Subject: Fix #20195: wrong reference in session settings documentation. --- docs/ref/settings.txt | 2 +- docs/topics/http/sessions.txt | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt index 8d7ea6adfb..1fc9d2ff92 100644 --- a/docs/ref/settings.txt +++ b/docs/ref/settings.txt @@ -2372,7 +2372,7 @@ SESSION_EXPIRE_AT_BROWSER_CLOSE Default: ``False`` Whether to expire the session when the user closes his or her browser. See -"Browser-length sessions vs. persistent sessions" above. +:ref:`browser-length-vs-persistent-sessions`. .. setting:: SESSION_FILE_PATH diff --git a/docs/topics/http/sessions.txt b/docs/topics/http/sessions.txt index f21c3a497e..f5c688e254 100644 --- a/docs/topics/http/sessions.txt +++ b/docs/topics/http/sessions.txt @@ -453,6 +453,8 @@ session cookie is sent. .. versionchanged:: 1.5 The session is not saved if the response's status code is 500. +.. _browser-length-vs-persistent-sessions: + Browser-length sessions vs. persistent sessions =============================================== -- cgit v1.3 From ce23e33399a8a21a87de94bfbf12ae57f833b52c Mon Sep 17 00:00:00 2001 From: Jacob Kaplan-Moss Date: Thu, 4 Apr 2013 15:03:45 -0500 Subject: Removed instructions about download_url from release process notes. This is no longer something that has to happen now that 5c771da3 is in. --- docs/internals/howto-release-django.txt | 4 ---- 1 file changed, 4 deletions(-) (limited to 'docs') diff --git a/docs/internals/howto-release-django.txt b/docs/internals/howto-release-django.txt index 46595956d3..a49251da76 100644 --- a/docs/internals/howto-release-django.txt +++ b/docs/internals/howto-release-django.txt @@ -161,10 +161,6 @@ OK, this is the fun part, where we actually push out a release! __ https://github.com/django/django/commit/18d920ea4839fb54f9d2a5dcb555b6a5666ee469 - Make sure the ``download_url`` in ``setup.py`` is the actual URL you'll - use for the new release package, not the redirect URL (some tools can't - properly follow redirects). - #. If this is a pre-release package, update the "Development Status" trove classifier in ``setup.py`` to reflect this. Otherwise, make sure the classifier is set to ``Development Status :: 5 - Production/Stable``. -- cgit v1.3 From 17be12df473c24f5b717dd553400971893a9676c Mon Sep 17 00:00:00 2001 From: Andrew Brown Date: Fri, 5 Apr 2013 01:52:12 -0400 Subject: Removed a trailing space in the template name on line 174. This trailing space may seem innocuous, but can be easily copied-and-pasted from the docs. This can lead to bizarre File Not Found errors where the checked paths look correct, but actually aren't because the trailing space is hard to see in an error message. --- docs/ref/templates/builtins.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/ref/templates/builtins.txt b/docs/ref/templates/builtins.txt index 955d2ab67b..123e114c4a 100644 --- a/docs/ref/templates/builtins.txt +++ b/docs/ref/templates/builtins.txt @@ -171,7 +171,7 @@ just declare the cycle, but not output the first value, you can add a {% for obj in some_list %} {% cycle 'row1' 'row2' as rowcolors silent %} - {% include "subtemplate.html " %} + {% include "subtemplate.html" %} {% endfor %} This will output a list of ```` elements with ``class`` -- cgit v1.3 From 975c5afdb5a0c2f9f61f9faecf8dbd928c4996b7 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Fri, 5 Apr 2013 14:15:30 +0200 Subject: Added release note about percent literals in cursor.execute Thanks Aymeric Augustin for noticing the omission and Tim Graham for the text review. Fixes #9055 (again). --- docs/releases/1.6.txt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'docs') diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 3258798c13..2f06756a1b 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -392,6 +392,24 @@ If you do not apply this change, the behaviour is unchanged: on MySQL, IPv6 addresses are silently truncated; on Oracle, an exception is generated. No database change is needed for SQLite or PostgreSQL databases. +Percent literals in ``cursor.execute`` queries +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +When you are running raw SQL queries through the +:ref:`cursor.execute ` method, the rule about doubling +percent literals (``%``) inside the query has been unified. Past behavior +depended on the database backend. Now, across all backends, you only need to +double literal percent characters if you are also providing replacement +parameters. For example:: + + # No parameters, no percent doubling + cursor.execute("SELECT foo FROM bar WHERE baz = '30%'") + + # Parameters passed, non-placeholders have to be doubled + cursor.execute("SELECT foo FROM bar WHERE baz = '30%%' and id = %s", [self.id]) + +``SQLite`` users need to check and update such queries. + Miscellaneous ~~~~~~~~~~~~~ -- cgit v1.3 From 4a7292df3be2338ff5d915a9ab3107067f662534 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Mon, 8 Apr 2013 19:49:08 +0200 Subject: Removed references to the DDN triage state. Rephrased "How can I help with triaging?" a bit to reflect the current practice. --- docs/internals/_images/triage_process.graffle | 927 +++++------------------ docs/internals/_images/triage_process.pdf | Bin 70123 -> 59051 bytes docs/internals/_images/triage_process.svg | 2 +- docs/internals/contributing/new-contributors.txt | 9 - docs/internals/contributing/triaging-tickets.txt | 58 +- 5 files changed, 230 insertions(+), 766 deletions(-) (limited to 'docs') diff --git a/docs/internals/_images/triage_process.graffle b/docs/internals/_images/triage_process.graffle index cd1e89cc3a..291c0397f7 100644 --- a/docs/internals/_images/triage_process.graffle +++ b/docs/internals/_images/triage_process.graffle @@ -14,7 +14,7 @@ BackgroundGraphic Bounds - {{0, 0}, {1118.5799560546875, 782.8900146484375}} + {{0, 0}, {559.28997802734375, 782.8900146484375}} Class SolidGraphic ID @@ -54,19 +54,17 @@ Class LineGraphic + Head + + ID + 132 + ID - 104 - OrthogonalBarAutomatic - - OrthogonalBarPoint - {0, 0} - OrthogonalBarPosition - -1 + 151 Points - {98.499995506345428, 441} - {45, 441} - {36, 576} + {252, 288} + {315, 324} Style @@ -75,173 +73,35 @@ Color b - 0.6 + 0 g - 0.6 + 0.501961 r - 0.6 + 0 HeadArrow - 0 + FilledArrow Legacy - LineType - 2 - Pattern - 1 TailArrow 0 + Width + 2 Tail ID - 103 - - - - Bounds - {{99, 432}, {18, 18}} - Class - ShapedGraphic - ID - 103 - Shape - Circle - Style - - fill - - Draws - NO - - shadow - - Draws - NO - - stroke - - Color - - b - 0.6 - g - 0.6 - r - 0.6 - - Pattern - 1 - - - - - Bounds - {{27, 576}, {342, 36}} - Class - ShapedGraphic - FontInfo - - Font - Helvetica - Size - 12 - - HFlip - YES - ID - 102 - Shape - Rectangle - Style - - shadow - - Draws - NO - - stroke - - Color - - b - 0.6 - g - 0.6 - r - 0.6 - - Pattern - 1 - - - Text - - Pad - 4 - Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 -\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;\red102\green102\blue102;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc - -\f0\i\fs24 \cf2 The ticket has a patch which applies cleanly and includes all needed tests and docs. A core developer can commit it as is.} - - VFlip - YES - - - Bounds - {{27, 543.5}, {342, 12}} - Class - ShapedGraphic - FitText - Vertical - Flow - Resize - ID - 100 - Shape - Rectangle - Style - - fill - - Draws - NO - - shadow - - Draws - NO - - stroke - - Draws - NO - - - Text - - Pad - 0 - Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 -\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc - -\f0\i\fs20 \cf0 For clarity, only the most common transitions are shown.} - VerticalPad - 0 + 82 + Info + 1 Class LineGraphic ID - 98 + 104 OrthogonalBarAutomatic OrthogonalBarPoint @@ -250,9 +110,9 @@ -1 Points - {98.499995506345428, 333} - {45, 333} - {36, 189} + {134.4999955076145, 414} + {90, 414} + {81, 522} Style @@ -282,16 +142,16 @@ Tail ID - 97 + 103 Bounds - {{99, 324}, {18, 18}} + {{135, 405}, {18, 18}} Class ShapedGraphic ID - 97 + 103 Shape Circle Style @@ -324,7 +184,7 @@ Bounds - {{27, 135}, {108, 54}} + {{72, 522}, {342, 36}} Class ShapedGraphic FontInfo @@ -337,7 +197,7 @@ HFlip YES ID - 96 + 102 Shape Rectangle Style @@ -367,63 +227,32 @@ Pad 4 Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;\red102\green102\blue102;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc -\f0\i\fs24 \cf2 The ticket is a bug and obviously should be fixed.} +\f0\i\fs24 \cf2 The ticket has a patch which applies cleanly and includes all needed tests and docs. A core developer can commit it as is.} VFlip YES - - Bounds - {{189, 306}, {18, 18}} - Class - ShapedGraphic - ID - 94 - Shape - Circle - Style - - fill - - Draws - NO - - shadow - - Draws - NO - - stroke - - Color - - b - 0.6 - g - 0.6 - r - 0.6 - - Pattern - 1 - - - Class LineGraphic ID - 93 + 98 + OrthogonalBarAutomatic + + OrthogonalBarPoint + {0, 0} + OrthogonalBarPosition + -1 Points - {204.18279336665475, 307.78674107223611} - {252, 252} - {252, 189} + {134.4999955076145, 324} + {90, 324} + {81, 198} Style @@ -442,6 +271,8 @@ 0 Legacy + LineType + 2 Pattern 1 TailArrow @@ -451,71 +282,16 @@ Tail ID - 94 - - - - Bounds - {{162, 135}, {180, 54}} - Class - ShapedGraphic - FontInfo - - Font - Helvetica - Size - 12 - - HFlip - YES - ID - 95 - Shape - Rectangle - Style - - shadow - - Draws - NO - - stroke - - Color - - b - 0.6 - g - 0.6 - r - 0.6 - - Pattern - 1 - - - Text - - Pad - 4 - Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 -\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;\red102\green102\blue102;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc - -\f0\i\fs24 \cf2 The ticket requires a discussion by the community and a design decision by a core developer.} + 97 - VFlip - YES Bounds - {{387, 279}, {18, 18}} + {{135, 315}, {18, 18}} Class ShapedGraphic ID - 91 + 97 Shape Circle Style @@ -546,50 +322,9 @@ - - Class - LineGraphic - ID - 90 - Points - - {396, 278.49999548261451} - {396, 189} - - Style - - stroke - - Color - - b - 0.6 - g - 0.6 - r - 0.6 - - HeadArrow - 0 - Legacy - - LineType - 1 - Pattern - 1 - TailArrow - 0 - - - Tail - - ID - 91 - - Bounds - {{369, 135}, {198, 54}} + {{72, 144}, {99, 54}} Class ShapedGraphic FontInfo @@ -602,7 +337,7 @@ HFlip YES ID - 89 + 96 Shape Rectangle Style @@ -632,206 +367,62 @@ Pad 4 Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;\red102\green102\blue102;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc -\f0\i\fs24 \cf2 The ticket was already reported, isn't a bug, doesn't provide enough information, or can't be reproduced.} +\f0\i\fs24 \cf2 The ticket is a bug and should be fixed.} VFlip YES + Bounds + {{243, 279}, {18, 18}} Class - LineGraphic - Head - - ID - 132 - Info - 4 - - ID - 134 - Points - - {342, 342} - {393, 395} - {450, 450} - - Style - - stroke - - Color - - b - 0.501961 - g - 0.25098 - r - 0 - - HeadArrow - FilledArrow - Legacy - - TailArrow - 0 - Width - 2 - - - Tail - - ID - 16 - - - - Class - LineGraphic - Head - - ID - 132 - + ShapedGraphic ID - 133 - Points - - {342, 450} - {450, 450} - + 91 + Shape + Circle Style - stroke + fill - Color - - b - 0.501961 - g - 0.25098 - r - 0 - - HeadArrow - FilledArrow - Legacy - - TailArrow - 0 - Width - 2 + Draws + NO - - Tail - - ID - 17 - - - - Class - LineGraphic - Head - - ID - 10 - - ID - 60 - Points - - {108, 423} - {108, 477} - - Style - - stroke + shadow - Color - - b - 0 - g - 0.501961 - r - 0 - - HeadArrow - FilledArrow - Legacy - - TailArrow - 0 - Width - 2 + Draws + NO - - Tail - - ID - 11 - - - - Class - LineGraphic - ID - 82 - Points - - {162, 288} - {396, 288} - - Style - stroke Color b - 0 + 0.6 g - 0.501961 + 0.6 r - 0 + 0.6 - HeadArrow - 0 - Legacy - - TailArrow - 0 - Width - 2 + Pattern + 1 - Tail - - ID - 12 - Info - 3 - Class LineGraphic - Head - - ID - 11 - ID - 54 + 90 Points - {108, 315} - {108, 369} + {252, 278.49999548068274} + {252, 198} Style @@ -840,75 +431,84 @@ Color b - 0 + 0.6 g - 0.501961 + 0.6 r - 0 + 0.6 HeadArrow - FilledArrow + 0 Legacy + LineType + 1 + Pattern + 1 TailArrow 0 - Width - 2 Tail ID - 12 - Info - 1 + 91 + Bounds + {{189, 144}, {243, 54}} Class - LineGraphic - Head + ShapedGraphic + FontInfo - ID - 130 + Font + Helvetica + Size + 12 + HFlip + YES ID - 131 - Points - - {162, 504} - {450, 504} - + 89 + Shape + Rectangle Style + shadow + + Draws + NO + stroke Color b - 0.501961 + 0.6 g - 0.25098 + 0.6 r - 0 + 0.6 - HeadArrow - FilledArrow - Legacy - - TailArrow - 0 - Width - 2 + Pattern + 1 - Tail + Text - ID - 10 - Info - 3 + Pad + 4 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;\red102\green102\blue102;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\i\fs24 \cf2 The ticket was already reported, was already rejected, isn't a bug, doesn't contain enough information, or can't be reproduced.} + VFlip + YES Class @@ -916,14 +516,14 @@ Head ID - 11 + 10 ID - 58 + 60 Points - {234.0000000000002, 342} - {162, 396} + {144, 396} + {144, 450} Style @@ -932,9 +532,9 @@ Color b - 0.501961 + 0 g - 0.25098 + 0.501961 r 0 @@ -951,23 +551,18 @@ Tail ID - 16 + 11 Class LineGraphic - Head - - ID - 11 - ID - 57 + 82 Points - {234.0000000000002, 450} - {162, 396} + {198, 288} + {252, 288} Style @@ -976,14 +571,14 @@ Color b - 0.501961 + 0 g - 0.25098 + 0.501961 r 0 HeadArrow - FilledArrow + 0 Legacy TailArrow @@ -995,7 +590,9 @@ Tail ID - 17 + 12 + Info + 3 @@ -1004,14 +601,14 @@ Head ID - 17 + 11 ID - 56 + 54 Points - {288, 369} - {288, 423} + {144, 306} + {144, 360} Style @@ -1020,9 +617,9 @@ Color b - 0.501961 + 0 g - 0.25098 + 0.501961 r 0 @@ -1039,7 +636,9 @@ Tail ID - 16 + 12 + Info + 1 @@ -1048,14 +647,14 @@ Head ID - 16 + 130 ID - 55 + 131 Points - {162, 288} - {234.0000000000002, 342} + {198, 468} + {315, 468} Style @@ -1064,9 +663,9 @@ Color b - 0 - g 0.501961 + g + 0.25098 r 0 @@ -1083,7 +682,9 @@ Tail ID - 12 + 10 + Info + 3 @@ -1100,8 +701,8 @@ 136 Points - {396, 288} - {450, 405} + {252, 288} + {315, 432} Style @@ -1141,13 +742,15 @@ ID 137 + Info + 4 ID 138 Points - {396, 288} - {450, 360} + {252, 288} + {315, 396} Style @@ -1187,13 +790,15 @@ ID 139 + Info + 4 ID 140 Points - {396, 288} - {450, 315} + {252, 288} + {315, 360} Style @@ -1240,8 +845,8 @@ 124 Points - {396, 288} - {450, 270} + {252, 288} + {315, 288} Style @@ -1276,7 +881,7 @@ Bounds - {{315, 630}, {125.99999999999999, 18}} + {{270, 576}, {81, 18}} Class ShapedGraphic FontInfo @@ -1318,17 +923,17 @@ Text Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc -\f0\fs24 \cf0 development status} +\f0\i\fs24 \cf0 status} Bounds - {{26.999999999999993, 650}, {108.00000000000001, 14}} + {{72.000000000000057, 596}, {99, 14}} Class ShapedGraphic FitText @@ -1371,7 +976,7 @@ Pad 0 Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;\red0\green64\blue128;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr @@ -1388,8 +993,8 @@ 44 Points - {144, 657} - {180, 657} + {183.59999999999997, 603} + {221.39999999999998, 603} Style @@ -1419,7 +1024,7 @@ Bounds - {{26.999999999999993, 632}, {108.00000000000001, 14}} + {{72.000000000000057, 578}, {99, 14}} Class ShapedGraphic FitText @@ -1462,7 +1067,7 @@ Pad 0 Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;\red0\green128\blue0;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr @@ -1479,8 +1084,8 @@ 42 Points - {144, 639} - {180, 639} + {183.59999999999997, 585} + {221.39999999999998, 585} Style @@ -1510,7 +1115,7 @@ Bounds - {{315, 648}, {125.99999999999999, 18}} + {{270, 594}, {81, 18}} Class ShapedGraphic FontInfo @@ -1563,7 +1168,7 @@ Text Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc @@ -1573,7 +1178,7 @@ Bounds - {{441, 630}, {125.99999999999999, 18}} + {{351, 576}, {81, 18}} Class ShapedGraphic FontInfo @@ -1626,7 +1231,7 @@ Text Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc @@ -1636,7 +1241,7 @@ Bounds - {{441, 648}, {125.99999999999999, 18}} + {{351, 594}, {81, 18}} Class ShapedGraphic FontInfo @@ -1689,7 +1294,7 @@ Text Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc @@ -1704,8 +1309,8 @@ 36 Points - {423, 234} - {567, 234} + {288, 243} + {432, 243} Style @@ -1727,8 +1332,8 @@ 33 Points - {27, 234} - {369, 234} + {72, 243} + {216, 243} Style @@ -1745,7 +1350,7 @@ Bounds - {{450, 441}, {90.000000000000014, 18}} + {{315, 315}, {90.000000000000014, 18}} Class ShapedGraphic FontInfo @@ -1788,7 +1393,7 @@ Text Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc @@ -1798,7 +1403,7 @@ Bounds - {{450, 396}, {90.000000000000014, 18}} + {{315, 423}, {90.000000000000014, 18}} Class ShapedGraphic FontInfo @@ -1841,7 +1446,7 @@ Text Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc @@ -1851,7 +1456,7 @@ Bounds - {{450, 351}, {90.000000000000014, 18}} + {{315, 387}, {90.000000000000014, 18}} Class ShapedGraphic FontInfo @@ -1894,7 +1499,7 @@ Text Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc @@ -1904,7 +1509,7 @@ Bounds - {{450, 306}, {90.000000000000014, 18}} + {{315, 351}, {90.000000000000014, 18}} Class ShapedGraphic FontInfo @@ -1947,7 +1552,7 @@ Text Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc @@ -1957,7 +1562,7 @@ Bounds - {{450, 495}, {90.000000000000014, 18}} + {{315, 459}, {90.000000000000014, 18}} Class ShapedGraphic FontInfo @@ -2000,7 +1605,7 @@ Text Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc @@ -2010,7 +1615,7 @@ Bounds - {{450, 261}, {90.000000000000014, 18}} + {{315, 279}, {90.000000000000014, 18}} Class ShapedGraphic FontInfo @@ -2053,7 +1658,7 @@ Text Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc @@ -2063,123 +1668,7 @@ Bounds - {{234, 423}, {108, 54}} - Class - ShapedGraphic - FontInfo - - Font - Helvetica - Size - 12 - - ID - 17 - Magnets - - {0, 1} - {0, -1} - {1, 0} - {-1, 0} - - Shape - Rectangle - Style - - fill - - Color - - a - 0.3 - b - 1 - g - 0.501961 - r - 0 - - - stroke - - CornerRadius - 5 - - - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 -\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc - -\f0\fs24 \cf0 Someday\ -/\ -Mabye} - - - - Bounds - {{234, 315}, {108, 54}} - Class - ShapedGraphic - FontInfo - - Font - Helvetica - Size - 12 - - ID - 16 - Magnets - - {0, 1} - {0, -1} - {1, 0} - {-1, 0} - - Shape - Rectangle - Style - - fill - - Color - - a - 0.3 - b - 1 - g - 0.501961 - r - 0 - - - stroke - - CornerRadius - 5 - - - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 -\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc - -\f0\fs24 \cf0 Design\ -Decision\ -Needed} - - - - Bounds - {{54, 261}, {108, 54}} + {{90, 270}, {108, 36}} Class ShapedGraphic FontInfo @@ -2225,7 +1714,7 @@ Needed} Text Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc @@ -2235,7 +1724,7 @@ Needed} Bounds - {{54, 369}, {108, 54}} + {{90, 360}, {108, 36}} Class ShapedGraphic FontInfo @@ -2281,7 +1770,7 @@ Needed} Text Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc @@ -2291,7 +1780,7 @@ Needed} Bounds - {{54, 477}, {108, 54}} + {{90, 450}, {108, 36}} Class ShapedGraphic FontInfo @@ -2337,7 +1826,7 @@ Needed} Text Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc @@ -2347,7 +1836,7 @@ Needed} Bounds - {{27, 207}, {342, 351}} + {{72, 216}, {144, 288}} Class ShapedGraphic FontInfo @@ -2366,7 +1855,7 @@ Needed} Text Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc @@ -2377,14 +1866,14 @@ Needed} \fs12 \cf0 \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc -\fs24 \cf0 triage state} +\i\fs24 \cf0 triage state} TextPlacement 0 Bounds - {{423, 207}, {144, 351}} + {{288, 216}, {144, 288}} Class ShapedGraphic FontInfo @@ -2403,7 +1892,7 @@ Needed} Text Text - {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc @@ -2414,14 +1903,14 @@ Needed} \fs12 \cf0 \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc -\fs24 \cf0 resolution} +\i\fs24 \cf0 resolution} TextPlacement 0 Bounds - {{315, 630}, {252, 36}} + {{270, 576}, {162, 36}} Class ShapedGraphic FontInfo @@ -2458,7 +1947,7 @@ Needed} Bounds - {{27, 630}, {180, 36}} + {{72, 576}, {162, 36}} Class ShapedGraphic FontInfo @@ -2506,7 +1995,7 @@ Needed} GuidesVisible YES HPages - 2 + 1 ImageCounter 1 KeepToScale @@ -2546,7 +2035,7 @@ Needed} MasterSheets ModificationDate - 2012-12-22 18:00:58 +0000 + 2013-04-08 16:32:00 +0000 Modifier Aymeric Augustin NotesVisible @@ -2636,7 +2125,7 @@ Needed} SidebarWidth 120 VisibleRegion - {{0, 50.450449800270746}, {950.45043820152921, 662.1621536285536}} + {{-195, 118.01801649706192}, {950.4504382015291, 662.16215362855348}} Zoom 1.1100000143051147 ZoomValues diff --git a/docs/internals/_images/triage_process.pdf b/docs/internals/_images/triage_process.pdf index a157fa8960..f731e3e584 100644 Binary files a/docs/internals/_images/triage_process.pdf and b/docs/internals/_images/triage_process.pdf differ diff --git a/docs/internals/_images/triage_process.svg b/docs/internals/_images/triage_process.svg index 363ba41aef..787f5ca647 100644 --- a/docs/internals/_images/triage_process.svg +++ b/docs/internals/_images/triage_process.svg @@ -1,3 +1,3 @@ -2012-12-22 18:00ZCanevas 1Calque 1Closed ticketsresolutionOpen ticketstriage stateReady for CheckinAcceptedUnreviewedDesignDecisionNeededSomeday/Mabyeduplicatefixedinvalidneedsinfoworksformewontfixcompletedstoppedin progressTicket triagers Committersdevelopment statusThe ticket was already reported, isn't a bug, doesn't provide enough information, or can't be reproduced.The ticket requires a discussion by the community and a design decision by a core developer.The ticket is a bug and obviously should be fixed.For clarity, only the most common transitions are shown.The ticket has a patch which applies cleanly and includes all needed tests and docs. A core developer can commit it as is. +2013-04-08 16:32ZCanevas 1Calque 1Closed ticketsresolutionOpen ticketstriage stateReady for CheckinAcceptedUnreviewedduplicatefixedinvalidneedsinfoworksformewontfixcompletedstoppedin progressTicket triagers CommittersstatusThe ticket was already reported, was already rejected, isn't a bug, doesn't contain enough information, or can't be reproduced.The ticket is a bug and should be fixed.The ticket has a patch which applies cleanly and includes all needed tests and docs. A core developer can commit it as is. diff --git a/docs/internals/contributing/new-contributors.txt b/docs/internals/contributing/new-contributors.txt index b752503248..0d4ad0cf3f 100644 --- a/docs/internals/contributing/new-contributors.txt +++ b/docs/internals/contributing/new-contributors.txt @@ -140,12 +140,3 @@ FAQ Short answer: No. It's always better to get another set of eyes on a ticket. If you're having trouble getting that second set of eyes, see question 1, above. - -3. **My ticket has been in DDN forever! What should I do?** - - Design Decision Needed requires consensus about the right solution. At the - very least it needs consensus among the core developers, and ideally it has - consensus from the community as well. The best way to accomplish this is to - start a thread on the django-developers mailing list, and for very complex - issues to start a wiki page summarizing the problem and the possible - solutions. diff --git a/docs/internals/contributing/triaging-tickets.txt b/docs/internals/contributing/triaging-tickets.txt index 19298c55fb..9c88d6961b 100644 --- a/docs/internals/contributing/triaging-tickets.txt +++ b/docs/internals/contributing/triaging-tickets.txt @@ -51,8 +51,8 @@ attribute easily tells us what and who each ticket is waiting on. Since a picture is worth a thousand words, let's start there: .. image:: /internals/_images/triage_process.* - :height: 564 - :width: 580 + :height: 501 + :width: 400 :alt: Django's ticket triage workflow We've got two roles in this diagram: @@ -128,30 +128,13 @@ Beyond that there are several considerations: and docs, running the test suite with the included patch, and leaving feedback on the ticket. -* **Accepted + Has Patch + (any other flag)** +* **Accepted + Has Patch + Needs ...** This means the ticket has been reviewed, and has been found to need further work. "Needs tests" and "Needs documentation" are self-explanatory. "Patch needs improvement" will generally be accompanied by a comment on the ticket explaining what is needed to improve the code. -Design Decision Needed -~~~~~~~~~~~~~~~~~~~~~~ - -This stage is for issues which may be contentious, may be backwards -incompatible, or otherwise involve high-level design decisions. These issues -should be discussed either in the ticket comments or on `django-developers`_. - -If a ticket has been marked as "DDN", decisions are generally eventually -made by the core committers, however that is not a requirement. See the -:ref:`New contributors' FAQ` for "My ticket has been in -DDN forever! What should I do?" - -This stage will often be used for feature requests. It can also be used for -issues that *might* be bugs, depending on opinion or interpretation. Obvious -bugs (such as crashes, incorrect query results, or non-compliance with a -standard) skip this stage and move straight to "Accepted". - Ready For Checkin ~~~~~~~~~~~~~~~~~ @@ -165,11 +148,13 @@ RFC forever! What should I do?" Someday/Maybe ~~~~~~~~~~~~~ -Generally only used for vague/high-level features or design ideas. These -tickets are uncommon and overall less useful since they don't describe +This stage isn't shown on the diagram. It's only used by core developers to +keep track of high-level ideas or long term feature requests. + +These tickets are uncommon and overall less useful since they don't describe concrete actionable issues. They are enhancement requests that we might consider adding someday to the framework if an excellent patch is submitted. -These tickets are not a high priority. +They are not a high priority. Other triage attributes ----------------------- @@ -301,20 +286,23 @@ developers and bring the issue to django-developers_ instead. How can I help with triaging? ----------------------------- -Although the core developers make the big decisions in the ticket triage -process, there's a lot that general community members can do to help the -triage process. Really, **ANYONE** can help. +The triage process is primarily driven by community members. Really, +**ANYONE** can help. -Start by `creating an account on Trac`_. If you have an account but have -forgotten your password, you can reset it using the `password reset page`_. +Core developers may provide feedback on issues they're familiar with, or make +decisions on controversial ones, but they aren't responsible for triaging +tickets in general. + +To get involved, start by `creating an account on Trac`_. If you have an +account but have forgotten your password, you can reset it using the `password +reset page`_. Then, you can help out by: * Closing "Unreviewed" tickets as "invalid", "worksforme" or "duplicate." -* Promoting "Unreviewed" tickets to "Design decision needed" if a design - decision needs to be made, or "Accepted" in case of obvious bugs or - sensible, clearly defined, feature requests. +* Closing "Unreviewed" tickets as "needsinfo" when they're feature requests + requiring a discussion on `django-developers`_. * Correcting the "Needs tests", "Needs documentation", or "Has patch" flags for tickets where they are incorrectly set. @@ -322,22 +310,18 @@ Then, you can help out by: * Setting the "`Easy pickings`_" flag for tickets that are small and relatively straightforward. +* Set the *type* of tickets that are still uncategorized. + * Checking that old tickets are still valid. If a ticket hasn't seen any activity in a long time, it's possible that the problem has been fixed but the ticket hasn't yet been closed. -* Contacting the owners of tickets that have been claimed but have not - seen any recent activity. If the owner doesn't respond after a week - or so, remove the owner's claim on the ticket. - * Identifying trends and themes in the tickets. If there a lot of bug reports about a particular part of Django, it may indicate we should consider refactoring that part of the code. If a trend is emerging, you should raise it for discussion (referencing the relevant tickets) on `django-developers`_. -* Set the *type* of tickets that are still uncategorized. - * Verify if patches submitted by other users are correct. If they do and also contain appropriate documentation and tests then move them to the "Ready for Checkin" stage. If they don't then leave a comment to explain -- cgit v1.3 From 18255779e9711354372085179d7bf94d803b6895 Mon Sep 17 00:00:00 2001 From: Preston Holmes Date: Tue, 9 Apr 2013 22:39:36 -0700 Subject: Added some further guidance to "accepted" triage stage Now that DDN is gone, I felt it was worth some extra language about what "accepted" means, and qualify what it means to be "safe" to start writing a patch. --- docs/internals/contributing/triaging-tickets.txt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/internals/contributing/triaging-tickets.txt b/docs/internals/contributing/triaging-tickets.txt index 9c88d6961b..4ad0e8510d 100644 --- a/docs/internals/contributing/triaging-tickets.txt +++ b/docs/internals/contributing/triaging-tickets.txt @@ -119,7 +119,14 @@ Beyond that there are several considerations: * **Accepted + No Flags** The ticket is valid, but no one has submitted a patch for it yet. Often this - means you could safely start writing a patch for it. + means you could safely start writing a patch for it. This is generally more + true for the case of accepted bugs than accepted features. A ticket for a bug + that has been accepted means that the issue has been verified by at least one + triager as a legitimate bug - and should probably be fixed if possible. An + accepted new feature may only mean that one triager thought the feature would + be good to have, but this alone does not represent a consensus view or imply + with any certainty that a patch will be accepted for that feature. Seek more + feedback before writing an extensive patch if you are in doubt. * **Accepted + Has Patch** -- cgit v1.3 From 68d6c52ed63d2b3f4834cd3138a487fe5f6c1fc7 Mon Sep 17 00:00:00 2001 From: Julien Phalip Date: Wed, 10 Apr 2013 17:11:26 -0700 Subject: Turned the triage attributes to actual sections so they can be more easily linked to in the documentation. --- docs/internals/contributing/triaging-tickets.txt | 81 ++++++++++++++++++------ 1 file changed, 61 insertions(+), 20 deletions(-) (limited to 'docs') diff --git a/docs/internals/contributing/triaging-tickets.txt b/docs/internals/contributing/triaging-tickets.txt index 4ad0e8510d..bc6148ca46 100644 --- a/docs/internals/contributing/triaging-tickets.txt +++ b/docs/internals/contributing/triaging-tickets.txt @@ -168,28 +168,41 @@ Other triage attributes A number of flags, appearing as checkboxes in Trac, can be set on a ticket: -* Has patch - This means the ticket has an associated - :doc:`patch`. These will be reviewed - to see if the patch is "good". +Has patch +~~~~~~~~~ -* Needs documentation: - This flag is used for tickets with patches that need associated - documentation. Complete documentation of features is a prerequisite - before we can check them into the codebase. +This means the ticket has an associated +:doc:`patch`. These will be reviewed +to see if the patch is "good". -* Needs tests - This flags the patch as needing associated unit tests. Again, this - is a required part of a valid patch. +Needs documentation +~~~~~~~~~~~~~~~~~~~ -* Patch needs improvement - This flag means that although the ticket *has* a patch, it's not quite - ready for checkin. This could mean the patch no longer applies - cleanly, there is a flaw in the implementation, or that the code - doesn't meet our standards. +This flag is used for tickets with patches that need associated +documentation. Complete documentation of features is a prerequisite +before we can check them into the codebase. -* Easy pickings - Tickets that would require small, easy, patches. +Needs tests +~~~~~~~~~~~ + +This flags the patch as needing associated unit tests. Again, this +is a required part of a valid patch. + +Patch needs improvement +~~~~~~~~~~~~~~~~~~~~~~~ + +This flag means that although the ticket *has* a patch, it's not quite +ready for checkin. This could mean the patch no longer applies +cleanly, there is a flaw in the implementation, or that the code +doesn't meet our standards. + +Easy pickings +~~~~~~~~~~~~~ + +Tickets that would require small, easy, patches. + +Type +~~~~ Tickets should be categorized by *type* between: @@ -203,19 +216,47 @@ Tickets should be categorized by *type* between: For when nothing is broken but something could be made cleaner, better, faster, stronger. -Tickets should also be classified into *components* indicating which area of +Component +~~~~~~~~~ + +Tickets should be classified into *components* indicating which area of the Django codebase they belong to. This makes tickets better organized and easier to find. +Severity +~~~~~~~~ + The *severity* attribute is used to identify blockers, that is, issues which should get fixed before releasing the next version of Django. Typically those issues are bugs causing regressions from earlier versions or potentially causing severe data losses. This attribute is quite rarely used and the vast majority of tickets have a severity of "Normal". -Finally, it is possible to use the *version* attribute to indicate in which +Version +~~~~~~~ + +It is possible to use the *version* attribute to indicate in which version the reported bug was identified. +UI/UX +~~~~~ + +This flag is used for tickets that relate to User Interface and User +Experiences questions. For example, this flag would be appropriate for +user-facing features in forms or the admin interface. + +Cc +~~ + +You may add your username or email address to this field to be notified when +new contributions are made to the ticket. + +Keywords +~~~~~~~~ + +With this field you may label a ticket with multiple keywords. This can be +useful, for example, to group several tickets of a same theme. + .. _closing-tickets: Closing Tickets -- cgit v1.3 From c852d4568186b9a23af510762acb94003fc83e65 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Wed, 10 Apr 2013 20:38:25 -0400 Subject: Fixed #20204 - Consistent usage of url() in URL dispatcher documentation Thanks Baptiste Mispelon for the patch and dave.lampton@ for the suggestion. --- docs/topics/http/urls.txt | 129 ++++++++++++++++++++++++---------------------- 1 file changed, 66 insertions(+), 63 deletions(-) (limited to 'docs') diff --git a/docs/topics/http/urls.txt b/docs/topics/http/urls.txt index c1c52f5781..9a96199dba 100644 --- a/docs/topics/http/urls.txt +++ b/docs/topics/http/urls.txt @@ -66,13 +66,13 @@ Example Here's a sample URLconf:: - from django.conf.urls import patterns + from django.conf.urls import patterns, url urlpatterns = patterns('', - (r'^articles/2003/$', 'news.views.special_case_2003'), - (r'^articles/(\d{4})/$', 'news.views.year_archive'), - (r'^articles/(\d{4})/(\d{2})/$', 'news.views.month_archive'), - (r'^articles/(\d{4})/(\d{2})/(\d+)/$', 'news.views.article_detail'), + url(r'^articles/2003/$', 'news.views.special_case_2003'), + url(r'^articles/(\d{4})/$', 'news.views.year_archive'), + url(r'^articles/(\d{4})/(\d{2})/$', 'news.views.month_archive'), + url(r'^articles/(\d{4})/(\d{2})/(\d+)/$', 'news.views.article_detail'), ) Notes: @@ -124,10 +124,10 @@ is ``(?Ppattern)``, where ``name`` is the name of the group and Here's the above example URLconf, rewritten to use named groups:: urlpatterns = patterns('', - (r'^articles/2003/$', 'news.views.special_case_2003'), - (r'^articles/(?P\d{4})/$', 'news.views.year_archive'), - (r'^articles/(?P\d{4})/(?P\d{2})/$', 'news.views.month_archive'), - (r'^articles/(?P\d{4})/(?P\d{2})/(?P\d{2})/$', 'news.views.article_detail'), + url(r'^articles/2003/$', 'news.views.special_case_2003'), + url(r'^articles/(?P\d{4})/$', 'news.views.year_archive'), + url(r'^articles/(?P\d{4})/(?P\d{2})/$', 'news.views.month_archive'), + url(r'^articles/(?P\d{4})/(?P\d{2})/(?P\d{2})/$', 'news.views.article_detail'), ) This accomplishes exactly the same thing as the previous example, with one @@ -183,7 +183,7 @@ Each captured argument is sent to the view as a plain Python string, regardless of what sort of match the regular expression makes. For example, in this URLconf line:: - (r'^articles/(?P\d{4})/$', 'news.views.year_archive'), + url(r'^articles/(?P\d{4})/$', 'news.views.year_archive'), ...the ``year`` argument to ``news.views.year_archive()`` will be a string, not an integer, even though the ``\d{4}`` will only match integer strings. @@ -193,13 +193,14 @@ Here's an example URLconf and view:: # URLconf urlpatterns = patterns('', - (r'^blog/$', 'blog.views.page'), - (r'^blog/page(?P\d+)/$', 'blog.views.page'), + url(r'^blog/$', 'blog.views.page'), + url(r'^blog/page(?P\d+)/$', 'blog.views.page'), ) # View (in blog/views.py) def page(request, num="1"): # Output the appropriate page of blog entries, according to num. + ... In the above example, both URL patterns point to the same view -- ``blog.views.page`` -- but the first pattern doesn't capture anything from the @@ -255,12 +256,12 @@ code duplication. Here's the example URLconf from the :doc:`Django overview `:: - from django.conf.urls import patterns + from django.conf.urls import patterns, url urlpatterns = patterns('', - (r'^articles/(\d{4})/$', 'news.views.year_archive'), - (r'^articles/(\d{4})/(\d{2})/$', 'news.views.month_archive'), - (r'^articles/(\d{4})/(\d{2})/(\d+)/$', 'news.views.article_detail'), + url(r'^articles/(\d{4})/$', 'news.views.year_archive'), + url(r'^articles/(\d{4})/(\d{2})/$', 'news.views.month_archive'), + url(r'^articles/(\d{4})/(\d{2})/(\d+)/$', 'news.views.article_detail'), ) In this example, each view has a common prefix -- ``'news.views'``. @@ -270,12 +271,12 @@ each view function. With this in mind, the above example can be written more concisely as:: - from django.conf.urls import patterns + from django.conf.urls import patterns, url urlpatterns = patterns('news.views', - (r'^articles/(\d{4})/$', 'year_archive'), - (r'^articles/(\d{4})/(\d{2})/$', 'month_archive'), - (r'^articles/(\d{4})/(\d{2})/(\d+)/$', 'article_detail'), + url(r'^articles/(\d{4})/$', 'year_archive'), + url(r'^articles/(\d{4})/(\d{2})/$', 'month_archive'), + url(r'^articles/(\d{4})/(\d{2})/(\d+)/$', 'article_detail'), ) Note that you don't put a trailing dot (``"."``) in the prefix. Django puts @@ -291,25 +292,25 @@ Just add multiple ``patterns()`` objects together, like this: Old:: - from django.conf.urls import patterns + from django.conf.urls import patterns, url urlpatterns = patterns('', - (r'^$', 'myapp.views.app_index'), - (r'^(?P\d{4})/(?P[a-z]{3})/$', 'myapp.views.month_display'), - (r'^tag/(?P\w+)/$', 'weblog.views.tag'), + url(r'^$', 'myapp.views.app_index'), + url(r'^(?P\d{4})/(?P[a-z]{3})/$', 'myapp.views.month_display'), + url(r'^tag/(?P\w+)/$', 'weblog.views.tag'), ) New:: - from django.conf.urls import patterns + from django.conf.urls import patterns, url urlpatterns = patterns('myapp.views', - (r'^$', 'app_index'), - (r'^(?P\d{4})/(?P[a-z]{3})/$','month_display'), + url(r'^$', 'app_index'), + url(r'^(?P\d{4})/(?P[a-z]{3})/$','month_display'), ) urlpatterns += patterns('weblog.views', - (r'^tag/(?P\w+)/$', 'tag'), + url(r'^tag/(?P\w+)/$', 'tag'), ) .. _including-other-urlconfs: @@ -323,13 +324,13 @@ essentially "roots" a set of URLs below other ones. For example, here's an excerpt of the URLconf for the `Django Web site`_ itself. It includes a number of other URLconfs:: - from django.conf.urls import patterns, include + from django.conf.urls import include, patterns, url urlpatterns = patterns('', # ... snip ... - (r'^comments/', include('django.contrib.comments.urls')), - (r'^community/', include('django_website.aggregator.urls')), - (r'^contact/', include('django_website.contact.urls')), + url(r'^comments/', include('django.contrib.comments.urls')), + url(r'^community/', include('django_website.aggregator.urls')), + url(r'^contact/', include('django_website.contact.urls')), # ... snip ... ) @@ -344,7 +345,7 @@ URLconf Python module defining them as the ``include()`` argument but by using directly the pattern list as returned by :func:`~django.conf.urls.patterns` instead. For example, consider this URLconf:: - from django.conf.urls import patterns, url, include + from django.conf.urls import include, patterns, url extra_patterns = patterns('', url(r'^reports/(?P\d+)/$', 'credit.views.report'), @@ -353,8 +354,8 @@ instead. For example, consider this URLconf:: urlpatterns = patterns('', url(r'^$', 'apps.main.views.homepage'), - (r'^help/', include('apps.help.urls')), - (r'^credit/', include(extra_patterns)), + url(r'^help/', include('apps.help.urls')), + url(r'^credit/', include(extra_patterns)), ) In this example, the ``/credit/reports/`` URL will be handled by the @@ -370,13 +371,13 @@ the following example is valid:: # In settings/urls/main.py urlpatterns = patterns('', - (r'^(?P\w+)/blog/', include('foo.urls.blog')), + url(r'^(?P\w+)/blog/', include('foo.urls.blog')), ) # In foo/urls/blog.py urlpatterns = patterns('foo.views', - (r'^$', 'blog.index'), - (r'^archive/$', 'blog.archive'), + url(r'^$', 'blog.index'), + url(r'^archive/$', 'blog.archive'), ) In the above example, the captured ``"username"`` variable is passed to the @@ -390,13 +391,14 @@ Passing extra options to view functions URLconfs have a hook that lets you pass extra arguments to your view functions, as a Python dictionary. -Any URLconf tuple can have an optional third element, which should be a -dictionary of extra keyword arguments to pass to the view function. +The :func:`django.conf.urls.url` function can take an optional third argument +which should be a dictionary of extra keyword arguments to pass to the view +function. For example:: urlpatterns = patterns('blog.views', - (r'^blog/(?P\d{4})/$', 'year_archive', {'foo': 'bar'}), + url(r'^blog/(?P\d{4})/$', 'year_archive', {'foo': 'bar'}), ) In this example, for a request to ``/blog/2005/``, Django will call @@ -426,26 +428,26 @@ Set one:: # main.py urlpatterns = patterns('', - (r'^blog/', include('inner'), {'blogid': 3}), + url(r'^blog/', include('inner'), {'blogid': 3}), ) # inner.py urlpatterns = patterns('', - (r'^archive/$', 'mysite.views.archive'), - (r'^about/$', 'mysite.views.about'), + url(r'^archive/$', 'mysite.views.archive'), + url(r'^about/$', 'mysite.views.about'), ) Set two:: # main.py urlpatterns = patterns('', - (r'^blog/', include('inner')), + url(r'^blog/', include('inner')), ) # inner.py urlpatterns = patterns('', - (r'^archive/$', 'mysite.views.archive', {'blogid': 3}), - (r'^about/$', 'mysite.views.about', {'blogid': 3}), + url(r'^archive/$', 'mysite.views.archive', {'blogid': 3}), + url(r'^about/$', 'mysite.views.about', {'blogid': 3}), ) Note that extra options will *always* be passed to *every* line in the included @@ -463,9 +465,9 @@ supported -- you can pass any callable object as the view. For example, given this URLconf in "string" notation:: urlpatterns = patterns('', - (r'^archive/$', 'mysite.views.archive'), - (r'^about/$', 'mysite.views.about'), - (r'^contact/$', 'mysite.views.contact'), + url(r'^archive/$', 'mysite.views.archive'), + url(r'^about/$', 'mysite.views.about'), + url(r'^contact/$', 'mysite.views.contact'), ) You can accomplish the same thing by passing objects rather than strings. Just @@ -474,9 +476,9 @@ be sure to import the objects:: from mysite.views import archive, about, contact urlpatterns = patterns('', - (r'^archive/$', archive), - (r'^about/$', about), - (r'^contact/$', contact), + url(r'^archive/$', archive), + url(r'^about/$', about), + url(r'^contact/$', contact), ) The following example is functionally identical. It's just a bit more compact @@ -486,9 +488,9 @@ each view individually:: from mysite import views urlpatterns = patterns('', - (r'^archive/$', views.archive), - (r'^about/$', views.about), - (r'^contact/$', views.contact), + url(r'^archive/$', views.archive), + url(r'^about/$', views.about), + url(r'^contact/$', views.contact), ) The style you use is up to you. @@ -502,7 +504,7 @@ imported:: from mysite.views import ClassBasedView urlpatterns = patterns('', - (r'^myview/$', ClassBasedView.as_view()), + url(r'^myview/$', ClassBasedView.as_view()), ) Reverse resolution of URLs @@ -611,8 +613,8 @@ your URLconf. For example, these two URL patterns both point to the ``archive`` view:: urlpatterns = patterns('', - (r'^archive/(\d{4})/$', archive), - (r'^archive-summary/(\d{4})/$', archive, {'summary': True}), + url(r'^archive/(\d{4})/$', archive), + url(r'^archive-summary/(\d{4})/$', archive, {'summary': True}), ) This is completely valid, but it leads to problems when you try to do reverse @@ -630,7 +632,7 @@ Here's the above example, rewritten to use named URL patterns:: urlpatterns = patterns('', url(r'^archive/(\d{4})/$', archive, name="full-archive"), - url(r'^archive-summary/(\d{4})/$', archive, {'summary': True}, "arch-summary"), + url(r'^archive-summary/(\d{4})/$', archive, {'summary': True}, name="arch-summary"), ) With these names in place (``full-archive`` and ``arch-summary``), you can @@ -642,7 +644,8 @@ target each pattern individually by using its name: {% url 'full-archive' 2007 %} Even though both URL patterns refer to the ``archive`` view here, using the -``name`` parameter to ``url()`` allows you to tell them apart in templates. +``name`` parameter to :func:`django.conf.urls.url` allows you to tell them +apart in templates. The string used for the URL name can contain any characters you like. You are not restricted to valid Python names. @@ -785,7 +788,7 @@ Firstly, you can provide the :term:`application ` and :func:`django.conf.urls.include()` when you construct your URL patterns. For example,:: - (r'^help/', include('apps.help.urls', namespace='foo', app_name='bar')), + url(r'^help/', include('apps.help.urls', namespace='foo', app_name='bar')), This will include the URLs defined in ``apps.help.urls`` into the :term:`application namespace` ``'bar'``, with the :term:`instance namespace` @@ -805,7 +808,7 @@ For example:: url(r'^advanced/$', 'apps.help.views.views.advanced'), ) - (r'^help/', include(help_patterns, 'bar', 'foo')), + url(r'^help/', include(help_patterns, 'bar', 'foo')), This will include the nominated URL patterns into the given application and instance namespace. -- cgit v1.3 From 408da7b4578ee6616d7a72fda9591364f254e9a6 Mon Sep 17 00:00:00 2001 From: Andrew Badr Date: Thu, 11 Apr 2013 16:27:14 +0300 Subject: remove confusing phrase from DecimalField docs The phrase "if it exists" was used in reference to the `decimal_places` argument to `DecimalField`, when in fact that field is required. --- docs/ref/models/fields.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/ref/models/fields.txt b/docs/ref/models/fields.txt index f22436e5fe..7ef251c907 100644 --- a/docs/ref/models/fields.txt +++ b/docs/ref/models/fields.txt @@ -476,7 +476,7 @@ A fixed-precision decimal number, represented in Python by a .. attribute:: 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``, if it exists. + must be greater than or equal to ``decimal_places``. .. attribute:: DecimalField.decimal_places -- cgit v1.3 From 712a7927139e3abf9532d73bc88d35e0ebb3a022 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Thu, 11 Apr 2013 14:13:09 -0400 Subject: Fixed #20243 - Clarified when RelatedManager.remove() exists. --- docs/ref/models/relations.txt | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'docs') diff --git a/docs/ref/models/relations.txt b/docs/ref/models/relations.txt index 37986ec08d..c923961a19 100644 --- a/docs/ref/models/relations.txt +++ b/docs/ref/models/relations.txt @@ -82,14 +82,13 @@ Related objects reference >>> e = Entry.objects.get(id=234) >>> b.entry_set.remove(e) # Disassociates Entry e from Blog b. - In order to prevent database inconsistency, this method only exists on - :class:`~django.db.models.ForeignKey` objects where ``null=True``. If - the related field can't be set to ``None`` (``NULL``), then an object - can't be removed from a relation without being added to another. In the - above example, removing ``e`` from ``b.entry_set()`` is equivalent to - doing ``e.blog = None``, and because the ``blog`` - :class:`~django.db.models.ForeignKey` doesn't have ``null=True``, this - is invalid. + For :class:`~django.db.models.ForeignKey` objects, this method only + exists if ``null=True``. If the related field can't be set to ``None`` + (``NULL``), then an object can't be removed from a relation without + being added to another. In the above example, removing ``e`` from + ``b.entry_set()`` is equivalent to doing ``e.blog = None``, and because + the ``blog`` :class:`~django.db.models.ForeignKey` doesn't have + ``null=True``, this is invalid. .. method:: clear() -- cgit v1.3 From 0f99246b6f4e7d08600c19fbbeb8feb1a335f985 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Fri, 12 Apr 2013 10:13:38 +0200 Subject: Documented BoundField.label_tag --- docs/ref/forms/api.txt | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'docs') diff --git a/docs/ref/forms/api.txt b/docs/ref/forms/api.txt index 4c5c275806..34ed2e493e 100644 --- a/docs/ref/forms/api.txt +++ b/docs/ref/forms/api.txt @@ -639,6 +639,19 @@ For a field's list of errors, access the field's ``errors`` attribute. >>> str(f['subject'].errors) '' +.. method:: BoundField.label_tag(contents=None, attrs=None) + +To separately render the label tag of a form field, you can call its +``label_tag`` method:: + + >>> f = ContactForm(data) + >>> print(f['message'].label_tag()) + + +Optionally, you can provide the ``contents`` parameter which will replace the +auto-generated label tag. An optional ``attrs`` dictionary may contain +additional attributes for the ``