diff --git a/competition/models.py b/competition/models.py index e5cc3ec0..f0cef652 100644 --- a/competition/models.py +++ b/competition/models.py @@ -420,7 +420,7 @@ def change_text(self, new_text): if self.state != CommentPublishState.PUBLISHED: self.text = new_text else: - raise ValueError('Published comment can not be changed') + raise ValueError('Publikovaný komentár nemôže byť zmenený') def can_user_modify(self, user): return self.problem.can_user_modify(user) diff --git a/competition/views.py b/competition/views.py index 67faa286..8a9f8a13 100644 --- a/competition/views.py +++ b/competition/views.py @@ -266,7 +266,7 @@ def upload_model_solution(self, request, pk=None): """Nahrá užívateľské riešenie k úlohe""" problem: Problem = self.get_object() if 'file' not in request.FILES: - raise exceptions.ParseError(detail='Request neobsahoval súbor') + raise exceptions.ParseError(detail='Požiadavka neobsahovala súbor') file = request.FILES['file'] if mime_type(file) != 'application/pdf': raise exceptions.ParseError( @@ -338,17 +338,17 @@ def upload_solutions_with_points(self, request, pk=None): """Nahrá .zip archív s opravenými riešeniami (pdf-kami).""" if 'file' not in request.data: - raise exceptions.ParseError(detail='No file attached') + raise exceptions.ParseError(detail='Nie je priložený súbor') zfile = request.data['file'] if not zipfile.is_zipfile(zfile): raise exceptions.ParseError( - detail='Attached file is not a zip file') + detail='Priložený súbor nie je súbor s príponou zip.') with zipfile.ZipFile(zfile) as zfile: if zfile.testzip(): - raise exceptions.ParseError(detail='Zip file is corrupted') + raise exceptions.ParseError(detail='Súbor zip je poškodený') parsed_filenames = [] errors = [] @@ -367,20 +367,20 @@ def upload_solutions_with_points(self, request, pk=None): except (IndexError, ValueError, AssertionError): errors.append({ 'filename': filename, - 'status': 'Cannot parse file' + 'status': 'Nie je možné analyzovať súbor' }) continue except EventRegistration.DoesNotExist: errors.append({ 'filename': filename, - 'status': f'User registration with id {registration_pk} does not exist' + 'status': f'Registrácia používateľa s id {registration_pk} neexistuje' }) continue except Solution.DoesNotExist: errors.append({ 'filename': filename, - 'status': f'Solution with registration id {registration_pk}' - f'and problem id {problem_pk} does not exist' + 'status': f'Riešenie s registračným id {registration_pk}' + f'a id úlohy {problem_pk} neexistuje' }) continue @@ -518,7 +518,7 @@ def file_corrected(self, request, pk=None): def upload_solution_file(self, request, pk=None): solution: Solution = self.get_object() if 'file' not in request.FILES: - raise exceptions.ParseError(detail='Request neobsahoval súbor') + raise exceptions.ParseError(detail='Požiadavka neobsahovala súbor') file = request.FILES['file'] if mime_type(file) != 'application/pdf': @@ -535,7 +535,7 @@ def upload_solution_file(self, request, pk=None): def upload_corrected_solution_file(self, request, pk=None): solution: Solution = self.get_object() if 'file' not in request.FILES: - raise exceptions.ParseError(detail='Request neobsahoval súbor') + raise exceptions.ParseError(detail='Požiadavka neobsahovala súbor') file = request.FILES['file'] if mime_type(file) != 'application/pdf': @@ -830,7 +830,7 @@ def download_publication(self, request, pk=None): def upload_publication(self, request): """Nahrá súbor publikácie""" if 'file' not in request.data: - raise exceptions.ParseError(detail='Request neobsahoval súbor') + raise exceptions.ParseError(detail='Požiadavka neobsahovala súbor') file = request.data['file'] if mime_type(file) not in ['application/pdf', 'application/zip']: diff --git a/locale/sk/LC_MESSAGES/django.mo b/locale/sk/LC_MESSAGES/django.mo new file mode 100644 index 00000000..d6eedfe8 Binary files /dev/null and b/locale/sk/LC_MESSAGES/django.mo differ diff --git a/locale/sk/LC_MESSAGES/django.po b/locale/sk/LC_MESSAGES/django.po new file mode 100644 index 00000000..54021529 --- /dev/null +++ b/locale/sk/LC_MESSAGES/django.po @@ -0,0 +1,1236 @@ +# 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. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-11-12 15:13+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \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 == 1 ? 0 : n % 1 == 0 && n " +">= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n" + +#: .\StromBackend\Lib\site-packages\django\contrib\messages\apps.py:7 +msgid "Messages" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\contrib\sitemaps\apps.py:8 +msgid "Site Maps" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\contrib\staticfiles\apps.py:9 +msgid "Static Files" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\contrib\syndication\apps.py:7 +msgid "Syndication" +msgstr "" + +#. Translators: String used to replace omitted page numbers in elided page +#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. +#: .\StromBackend\Lib\site-packages\django\core\paginator.py:30 +msgid "…" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\core\paginator.py:51 +msgid "That page number is not an integer" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\core\paginator.py:53 +msgid "That page number is less than 1" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\core\paginator.py:58 +msgid "That page contains no results" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\core\validators.py:22 +msgid "Enter a valid value." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\core\validators.py:93 +#: .\StromBackend\Lib\site-packages\django\forms\fields.py:675 +msgid "Enter a valid URL." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\core\validators.py:150 +msgid "Enter a valid integer." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\core\validators.py:161 +msgid "Enter a valid email address." +msgstr "" + +#. Translators: "letters" means latin letters: a-z and A-Z. +#: .\StromBackend\Lib\site-packages\django\core\validators.py:262 +msgid "" +"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\core\validators.py:269 +msgid "" +"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\core\validators.py:278 +#: .\StromBackend\Lib\site-packages\django\core\validators.py:288 +#: .\StromBackend\Lib\site-packages\django\core\validators.py:311 +msgid "Enter a valid IPv4 address." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\core\validators.py:296 +#: .\StromBackend\Lib\site-packages\django\core\validators.py:312 +msgid "Enter a valid IPv6 address." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\core\validators.py:306 +#: .\StromBackend\Lib\site-packages\django\core\validators.py:310 +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\core\validators.py:340 +msgid "Enter only digits separated by commas." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\core\validators.py:346 +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\core\validators.py:379 +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\core\validators.py:388 +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\core\validators.py:398 +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +#: .\StromBackend\Lib\site-packages\django\core\validators.py:413 +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +#: .\StromBackend\Lib\site-packages\django\core\validators.py:432 +#: .\StromBackend\Lib\site-packages\django\forms\fields.py:292 +#: .\StromBackend\Lib\site-packages\django\forms\fields.py:327 +msgid "Enter a number." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\core\validators.py:434 +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" +msgstr[1] "" + +#: .\StromBackend\Lib\site-packages\django\core\validators.py:439 +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +msgstr[1] "" + +#: .\StromBackend\Lib\site-packages\django\core\validators.py:444 +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +msgstr[1] "" + +#: .\StromBackend\Lib\site-packages\django\core\validators.py:506 +#, python-format +msgid "" +"File extension “%(extension)s” is not allowed. Allowed extensions are: " +"%(allowed_extensions)s." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\core\validators.py:559 +msgid "Null characters are not allowed." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\base.py:1210 +#: .\StromBackend\Lib\site-packages\django\forms\models.py:768 +msgid "and" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\base.py:1212 +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:100 +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:101 +msgid "This field cannot be null." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:102 +msgid "This field cannot be blank." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:103 +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "" + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:107 +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:126 +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:958 +#, python-format +msgid "“%(value)s” value must be either True or False." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:959 +#, python-format +msgid "“%(value)s” value must be either True, False, or None." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:961 +msgid "Boolean (Either True or False)" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:1002 +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:1096 +msgid "Comma-separated integers" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:1145 +#, python-format +msgid "" +"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:1147 +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:1290 +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:1150 +msgid "Date (without time)" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:1288 +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:1292 +#, python-format +msgid "" +"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:1296 +msgid "Date (with time)" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:1444 +#, python-format +msgid "“%(value)s” value must be a decimal number." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:1446 +msgid "Decimal number" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:1585 +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." +"uuuuuu] format." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:1588 +msgid "Duration" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:1638 +msgid "Email address" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:1661 +msgid "File path" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:1727 +#, python-format +msgid "“%(value)s” value must be a float." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:1729 +msgid "Floating point number" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:1767 +#, python-format +msgid "“%(value)s” value must be an integer." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:1769 +msgid "Integer" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:1852 +msgid "Big (8 byte) integer" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:1867 +msgid "Small integer" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:1875 +msgid "IPv4 address" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:1906 +msgid "IP address" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:1986 +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:1987 +#, python-format +msgid "“%(value)s” value must be either None, True or False." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:1989 +msgid "Boolean (Either True, False or None)" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:2043 +msgid "Positive big integer" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:2056 +msgid "Positive integer" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:2069 +msgid "Positive small integer" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:2083 +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:2115 +msgid "Text" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:2181 +#, python-format +msgid "" +"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:2183 +#, python-format +msgid "" +"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:2186 +msgid "Time" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:2312 +msgid "URL" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:2334 +msgid "Raw binary data" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:2399 +#, python-format +msgid "“%(value)s” is not a valid UUID." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\__init__.py:2401 +msgid "Universally unique identifier" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\files.py:226 +msgid "File" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\files.py:375 +msgid "Image" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\json.py:18 +msgid "A JSON object" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\json.py:20 +msgid "Value must be valid JSON." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\related.py:790 +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\related.py:792 +msgid "Foreign Key (type determined by related field)" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\related.py:1045 +msgid "One-to-one relationship" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\related.py:1099 +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\related.py:1100 +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\db\models\fields\related.py:1142 +msgid "Many-to-many relationship" +msgstr "" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the label +#: .\StromBackend\Lib\site-packages\django\forms\boundfield.py:150 +msgid ":?.!" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\fields.py:54 +msgid "This field is required." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\fields.py:247 +msgid "Enter a whole number." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\fields.py:402 +#: .\StromBackend\Lib\site-packages\django\forms\fields.py:1143 +msgid "Enter a valid date." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\fields.py:426 +#: .\StromBackend\Lib\site-packages\django\forms\fields.py:1144 +msgid "Enter a valid time." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\fields.py:454 +msgid "Enter a valid date/time." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\fields.py:488 +msgid "Enter a valid duration." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\fields.py:489 +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\fields.py:549 +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\fields.py:550 +msgid "No file was submitted." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\fields.py:551 +msgid "The submitted file is empty." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\fields.py:553 +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +msgstr[1] "" + +#: .\StromBackend\Lib\site-packages\django\forms\fields.py:556 +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\fields.py:617 +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\fields.py:779 +#: .\StromBackend\Lib\site-packages\django\forms\fields.py:869 +#: .\StromBackend\Lib\site-packages\django\forms\models.py:1309 +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\fields.py:870 +#: .\StromBackend\Lib\site-packages\django\forms\fields.py:985 +#: .\StromBackend\Lib\site-packages\django\forms\models.py:1308 +msgid "Enter a list of values." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\fields.py:986 +msgid "Enter a complete value." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\fields.py:1202 +msgid "Enter a valid UUID." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\fields.py:1232 +msgid "Enter a valid JSON." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +#: .\StromBackend\Lib\site-packages\django\forms\forms.py:76 +msgid ":" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\forms.py:203 +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\formsets.py:61 +#, python-format +msgid "" +"ManagementForm data is missing or has been tampered with. Missing fields: " +"%(field_names)s. You may need to file a bug report if the issue persists." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\formsets.py:370 +#, python-format +msgid "Please submit at most %d form." +msgid_plural "Please submit at most %d forms." +msgstr[0] "" +msgstr[1] "" + +#: .\StromBackend\Lib\site-packages\django\forms\formsets.py:377 +#, python-format +msgid "Please submit at least %d form." +msgid_plural "Please submit at least %d forms." +msgstr[0] "" +msgstr[1] "" + +#: .\StromBackend\Lib\site-packages\django\forms\formsets.py:405 +#: .\StromBackend\Lib\site-packages\django\forms\formsets.py:412 +msgid "Order" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\formsets.py:417 +msgid "Delete" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\models.py:763 +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\models.py:767 +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\models.py:773 +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\models.py:782 +msgid "Please correct the duplicate values below." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\models.py:1109 +msgid "The inline value did not match the parent instance." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\models.py:1193 +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\models.py:1311 +#, python-format +msgid "“%(pk)s” is not a valid value." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\utils.py:172 +#, python-format +msgid "" +"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\widgets.py:427 +msgid "Clear" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\widgets.py:428 +msgid "Currently" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\widgets.py:429 +msgid "Change" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\widgets.py:738 +msgid "Unknown" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\widgets.py:739 +msgid "Yes" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\forms\widgets.py:740 +msgid "No" +msgstr "" + +#. Translators: Please do not add spaces around commas. +#: .\StromBackend\Lib\site-packages\django\template\defaultfilters.py:817 +msgid "yes,no,maybe" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\template\defaultfilters.py:846 +#: .\StromBackend\Lib\site-packages\django\template\defaultfilters.py:863 +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "" +msgstr[1] "" + +#: .\StromBackend\Lib\site-packages\django\template\defaultfilters.py:865 +#, python-format +msgid "%s KB" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\template\defaultfilters.py:867 +#, python-format +msgid "%s MB" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\template\defaultfilters.py:869 +#, python-format +msgid "%s GB" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\template\defaultfilters.py:871 +#, python-format +msgid "%s TB" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\template\defaultfilters.py:873 +#, python-format +msgid "%s PB" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dateformat.py:66 +msgid "p.m." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dateformat.py:67 +msgid "a.m." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dateformat.py:72 +msgid "PM" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dateformat.py:73 +msgid "AM" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dateformat.py:146 +msgid "midnight" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dateformat.py:148 +msgid "noon" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:6 +msgid "Monday" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:6 +msgid "Tuesday" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:6 +msgid "Wednesday" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:6 +msgid "Thursday" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:6 +msgid "Friday" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:7 +msgid "Saturday" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:7 +msgid "Sunday" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:10 +msgid "Mon" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:10 +msgid "Tue" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:10 +msgid "Wed" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:10 +msgid "Thu" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:10 +msgid "Fri" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:11 +msgid "Sat" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:11 +msgid "Sun" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:14 +msgid "January" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:14 +msgid "February" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:14 +msgid "March" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:14 +msgid "April" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:14 +msgid "May" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:14 +msgid "June" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:15 +msgid "July" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:15 +msgid "August" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:15 +msgid "September" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:15 +msgid "October" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:15 +msgid "November" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:16 +msgid "December" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:19 +msgid "jan" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:19 +msgid "feb" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:19 +msgid "mar" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:19 +msgid "apr" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:19 +msgid "may" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:19 +msgid "jun" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:20 +msgid "jul" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:20 +msgid "aug" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:20 +msgid "sep" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:20 +msgid "oct" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:20 +msgid "nov" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:20 +msgid "dec" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:23 +msgctxt "abbrev. month" +msgid "Jan." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:24 +msgctxt "abbrev. month" +msgid "Feb." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:25 +msgctxt "abbrev. month" +msgid "March" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:26 +msgctxt "abbrev. month" +msgid "April" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:27 +msgctxt "abbrev. month" +msgid "May" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:28 +msgctxt "abbrev. month" +msgid "June" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:29 +msgctxt "abbrev. month" +msgid "July" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:30 +msgctxt "abbrev. month" +msgid "Aug." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:31 +msgctxt "abbrev. month" +msgid "Sept." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:32 +msgctxt "abbrev. month" +msgid "Oct." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:33 +msgctxt "abbrev. month" +msgid "Nov." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:34 +msgctxt "abbrev. month" +msgid "Dec." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:37 +msgctxt "alt. month" +msgid "January" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:38 +msgctxt "alt. month" +msgid "February" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:39 +msgctxt "alt. month" +msgid "March" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:40 +msgctxt "alt. month" +msgid "April" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:41 +msgctxt "alt. month" +msgid "May" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:42 +msgctxt "alt. month" +msgid "June" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:43 +msgctxt "alt. month" +msgid "July" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:44 +msgctxt "alt. month" +msgid "August" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:45 +msgctxt "alt. month" +msgid "September" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:46 +msgctxt "alt. month" +msgid "October" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:47 +msgctxt "alt. month" +msgid "November" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\dates.py:48 +msgctxt "alt. month" +msgid "December" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\ipv6.py:8 +msgid "This is not a valid IPv6 address." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\text.py:71 +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s…" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\text.py:240 +msgid "or" +msgstr "" + +#. Translators: This string is used as a separator between list elements +#: .\StromBackend\Lib\site-packages\django\utils\text.py:259 +#: .\StromBackend\Lib\site-packages\django\utils\timesince.py:94 +msgid ", " +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\utils\timesince.py:9 +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "" +msgstr[1] "" + +#: .\StromBackend\Lib\site-packages\django\utils\timesince.py:10 +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "" +msgstr[1] "" + +#: .\StromBackend\Lib\site-packages\django\utils\timesince.py:11 +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "" +msgstr[1] "" + +#: .\StromBackend\Lib\site-packages\django\utils\timesince.py:12 +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "" +msgstr[1] "" + +#: .\StromBackend\Lib\site-packages\django\utils\timesince.py:13 +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" +msgstr[1] "" + +#: .\StromBackend\Lib\site-packages\django\utils\timesince.py:14 +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" +msgstr[1] "" + +#: .\StromBackend\Lib\site-packages\django\views\csrf.py:110 +msgid "Forbidden" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\csrf.py:111 +msgid "CSRF verification failed. Request aborted." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\csrf.py:115 +msgid "" +"You are seeing this message because this HTTPS site requires a “Referer " +"header” to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\csrf.py:120 +msgid "" +"If you have configured your browser to disable “Referer” headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for “same-" +"origin” requests." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\csrf.py:124 +msgid "" +"If you are using the tag or " +"including the “Referrer-Policy: no-referrer” header, please remove them. The " +"CSRF protection requires the “Referer” header to do strict referer checking. " +"If you’re concerned about privacy, use alternatives like for links to third-party sites." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\csrf.py:132 +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\csrf.py:137 +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for “same-origin” requests." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\csrf.py:142 +msgid "More information is available with DEBUG=True." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\generic\dates.py:41 +msgid "No year specified" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\generic\dates.py:61 +#: .\StromBackend\Lib\site-packages\django\views\generic\dates.py:111 +#: .\StromBackend\Lib\site-packages\django\views\generic\dates.py:208 +msgid "Date out of range" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\generic\dates.py:90 +msgid "No month specified" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\generic\dates.py:142 +msgid "No day specified" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\generic\dates.py:188 +msgid "No week specified" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\generic\dates.py:338 +#: .\StromBackend\Lib\site-packages\django\views\generic\dates.py:367 +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\generic\dates.py:594 +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\generic\dates.py:628 +#, python-format +msgid "Invalid date string “%(datestr)s” given format “%(format)s”" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\generic\detail.py:54 +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\generic\list.py:67 +msgid "Page is not “last”, nor can it be converted to an int." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\generic\list.py:72 +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\generic\list.py:154 +#, python-format +msgid "Empty list and “%(class_name)s.allow_empty” is False." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\static.py:40 +msgid "Directory indexes are not allowed here." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\static.py:42 +#, python-format +msgid "“%(path)s” does not exist" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\static.py:80 +#, python-format +msgid "Index of %(directory)s" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\templates\default_urlconf.html:7 +#: .\StromBackend\Lib\site-packages\django\views\templates\default_urlconf.html:221 +msgid "The install worked successfully! Congratulations!" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\templates\default_urlconf.html:207 +#, python-format +msgid "" +"View release notes for Django %(version)s" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\templates\default_urlconf.html:222 +#, python-format +msgid "" +"You are seeing this page because DEBUG=True is in your settings file and you have not configured any " +"URLs." +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\templates\default_urlconf.html:230 +msgid "Django Documentation" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\templates\default_urlconf.html:231 +msgid "Topics, references, & how-to’s" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\templates\default_urlconf.html:239 +msgid "Tutorial: A Polling App" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\templates\default_urlconf.html:240 +msgid "Get started with Django" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\templates\default_urlconf.html:248 +msgid "Django Community" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django\views\templates\default_urlconf.html:249 +msgid "Connect, get help, or contribute" +msgstr "" + +#: .\StromBackend\Lib\site-packages\django_admin_listfilter_dropdown\templates\django_admin_listfilter_dropdown\dropdown_filter.html:3 +#, python-format +msgid " By %(filter_title)s " +msgstr "" + +#: .\StromBackend\Lib\site-packages\drf_writable_nested\mixins.py:239 +msgid "Arguments to nested serializer's `save` must be dict's" +msgstr "" + +#: .\StromBackend\Lib\site-packages\drf_writable_nested\mixins.py:272 +#, python-brace-format +msgid "Cannot delete {instances} because protected relation exists" +msgstr "" + +#: .\StromBackend\Lib\site-packages\isort\main.py:158 +msgid "show this help message and exit" +msgstr "" + +#: .\StromBackend\Lib\site-packages\pylint_django\tests\input\func_noerror_gettext_lazy_format.py:7 +#: .\StromBackend\Lib\site-packages\pylint_django\tests\input\func_noerror_ugettext_lazy_format.py:7 +#, python-brace-format +msgid "{something}" +msgstr "" diff --git a/user/serializers.py b/user/serializers.py index a01ae106..51b2076c 100644 --- a/user/serializers.py +++ b/user/serializers.py @@ -5,6 +5,7 @@ from django.core.mail import send_mail from django.template.loader import render_to_string from django_typomatic import ts_interface +from django.utils.translation import gettext_lazy from rest_framework import exceptions, serializers from competition.models import Grade @@ -39,7 +40,7 @@ def get_auth_user(self, email, password): def validate_auth_user_status(self, user): if not user.is_active: - msg = 'User nie je aktívny' + msg = 'Používateľ nie je aktívny' raise exceptions.ValidationError(msg) def validate_email_verification_status(self, user): @@ -176,8 +177,9 @@ class Meta: def validate_email(self, email): email = get_adapter().clean_email(email) if email and EmailAddress.objects.filter(email__iexact=email).exists(): - raise serializers.ValidationError( - "Používateľ s danou emailovou adresou už existuje.") + text = gettext_lazy("Zadaná emailová adresa je už používaná." + + "Prosíme skús vyskúsať inú emailovú adresu.") + raise serializers.ValidationError(text) return email def validate_password1(self, password): diff --git a/webstrom/settings.py b/webstrom/settings.py index 9d6c95af..cf123354 100644 --- a/webstrom/settings.py +++ b/webstrom/settings.py @@ -50,12 +50,17 @@ 'problem_database' ] +LOCALE_PATHS = ( + os.path.join(BASE_DIR, 'locale'), +) + INSTALLED_APPS = DJANGO_APPS + THIRD_PARTY_APPS + LOCAL_APPS SITE_ID = 1 MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', + 'django.middleware.locale.LocaleMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware',