diff --git a/boards/forms.py b/boards/forms.py --- a/boards/forms.py +++ b/boards/forms.py @@ -7,7 +7,7 @@ from django import forms from django.core.files.uploadedfile import SimpleUploadedFile from django.core.exceptions import ObjectDoesNotExist from django.forms.util import ErrorList -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import ugettext_lazy as _, ungettext_lazy from boards.mdx_neboard import formatters from boards.models.attachment.downloaders import Downloader @@ -35,7 +35,8 @@ LABEL_TEXT = _('Text') LABEL_TAG = _('Tag') LABEL_SEARCH = _('Search') -ERROR_SPEED = _('Please wait %s seconds before sending message') +ERROR_SPEED = 'Please wait %(delay)d second before sending message' +ERROR_SPEED_PLURAL = 'Please wait %(delay)d seconds before sending message' TAG_MAX_LENGTH = 20 @@ -266,9 +267,8 @@ class PostForm(NeboardForm): now = time.time() current_delay = 0 - need_delay = False - if not LAST_POST_TIME in self.session: + if LAST_POST_TIME not in self.session: self.session[LAST_POST_TIME] = now need_delay = True @@ -279,8 +279,9 @@ class PostForm(NeboardForm): need_delay = current_delay < posting_delay if need_delay: - error_message = ERROR_SPEED % str(posting_delay - - current_delay) + delay = posting_delay - current_delay + error_message = ungettext_lazy(ERROR_SPEED, ERROR_SPEED_PLURAL, + delay) % {'delay': delay} self._errors['text'] = self.error_class([error_message]) can_post = False diff --git a/boards/locale/ru/LC_MESSAGES/django.mo b/boards/locale/ru/LC_MESSAGES/django.mo index bd3cae0b03220890b441cdae66d5855e90820079..b063281dfa76464315cb0f73be9d8386b08611be GIT binary patch literal 8458 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 ADgXcg diff --git a/boards/locale/ru/LC_MESSAGES/django.po b/boards/locale/ru/LC_MESSAGES/django.po --- a/boards/locale/ru/LC_MESSAGES/django.po +++ b/boards/locale/ru/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-09-04 19:00+0300\n" +"POT-Creation-Date: 2015-09-05 22:33+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -63,79 +63,74 @@ msgstr "Метка" msgid "Search" msgstr "Поиск" -#: forms.py:38 -#, python-format -msgid "Please wait %s seconds before sending message" -msgstr "Пожалуйста подождите %s секунд перед отправкой сообщения" - -#: forms.py:138 +#: forms.py:139 msgid "File" msgstr "Файл" -#: forms.py:141 +#: forms.py:142 msgid "File URL" msgstr "URL файла" -#: forms.py:147 +#: forms.py:148 msgid "e-mail" msgstr "" -#: forms.py:150 +#: forms.py:151 msgid "Additional threads" msgstr "Дополнительные темы" -#: forms.py:161 +#: forms.py:162 #, python-format msgid "Title must have less than %s characters" msgstr "Заголовок должен иметь меньше %s символов" -#: forms.py:171 +#: forms.py:172 #, python-format msgid "Text must have less than %s characters" msgstr "Текст должен быть короче %s символов" -#: forms.py:191 +#: forms.py:192 msgid "Invalid URL" msgstr "Неверный URL" -#: forms.py:212 +#: forms.py:213 msgid "Invalid additional thread list" msgstr "Неверный список дополнительных тем" -#: forms.py:257 +#: forms.py:258 msgid "Either text or file must be entered." msgstr "Текст или файл должны быть введены." -#: forms.py:316 templates/boards/all_threads.html:148 +#: forms.py:317 templates/boards/all_threads.html:148 #: templates/boards/rss/post.html:10 templates/boards/tags.html:6 msgid "Tags" msgstr "Метки" -#: forms.py:323 +#: forms.py:324 msgid "Inappropriate characters in tags." msgstr "Недопустимые символы в метках." -#: forms.py:337 +#: forms.py:338 msgid "Need at least one section." msgstr "Нужен хотя бы один раздел." -#: forms.py:349 +#: forms.py:350 msgid "Theme" msgstr "Тема" -#: forms.py:350 +#: forms.py:351 msgid "Image view mode" msgstr "Режим просмотра изображений" -#: forms.py:351 +#: forms.py:352 msgid "User name" msgstr "Имя пользователя" -#: forms.py:352 +#: forms.py:353 msgid "Time zone" msgstr "Часовой пояс" -#: forms.py:358 +#: forms.py:359 msgid "Inappropriate characters." msgstr "Недопустимые символы." @@ -325,6 +320,13 @@ msgstr[0] "%(count)s сообщение" msgstr[1] "%(count)s сообщения" msgstr[2] "%(count)s сообщений" +#, python-format +msgid "Please wait %(delay)d second before sending message" +msgid_plural "Please wait %(delay)d seconds before sending message" +msgstr[0] "Пожалуйста подождите %(delay)d секунду перед отправкой сообщения" +msgstr[1] "Пожалуйста подождите %(delay)d секунды перед отправкой сообщения" +msgstr[2] "Пожалуйста подождите %(delay)d секунд перед отправкой сообщения" + #: templates/boards/post.html:106 #, python-format msgid "%(count)s image" @@ -424,7 +426,6 @@ msgid "Tree" msgstr "Дерево" #: templates/boards/thread.html:36 -#| msgid "messages" msgid "message" msgid_plural "messages" msgstr[0] "сообщение" diff --git a/boards/static/css/md/base_page.css b/boards/static/css/md/base_page.css --- a/boards/static/css/md/base_page.css +++ b/boards/static/css/md/base_page.css @@ -424,6 +424,8 @@ li { padding: 5px; color: #eee; font-size: 2ex; + margin-top: .5ex; + margin-bottom: .5ex; } .skipped_replies {